tx · HEzWfHE964PR9sRh4xkjy6rrPNy9SPnyTtYTkFb66Jk4

3NAefciWv6f9fWvEXdGgpHfanJFG8HqfjuT:  -0.04100000 Waves

2023.05.02 09:59 [2559815] smart account 3NAefciWv6f9fWvEXdGgpHfanJFG8HqfjuT > SELF 0.00000000 Waves

{ "type": 13, "id": "HEzWfHE964PR9sRh4xkjy6rrPNy9SPnyTtYTkFb66Jk4", "fee": 4100000, "feeAssetId": null, "timestamp": 1683010755058, "version": 2, "chainId": 84, "sender": "3NAefciWv6f9fWvEXdGgpHfanJFG8HqfjuT", "senderPublicKey": "D1BL65meykxFZTCuq7jq9HSGLLnWvQamQPUNrguW5w39", "proofs": [ "FH6W62kHoKaq1Laeh9znA5JiBpQD7RdjooWbUgn3DFxkb2CS5EEMCHcsr5wdF18twUVa7WWug3T1JcefiMWPm9G" ], "script": "base64:BgK4LAgCEgUKAwEEARIHCgUBBAEIARIDCgEIEgMKAQgSABIECgIBBBIECgIBBBIDCgEBEgASBAoCCAESABIECgIIARIECgIIARIECgIBARIDCgEBEgUKAwEBARIFCgMBCAESBAoCAQgSBAoCAQgSBAoCCAgSABIDCgEIEgUKAwEBARIECgIIARIECgIBARIECgIICBILCgkIAQECAQIIBAQSBgoECAgBCBIAIgZzY2FsZTgiDHNjYWxlOEJpZ0ludCIHc2NhbGUxOCIKemVyb0JpZ0ludCIEYmlnMCIEYmlnMSIEYmlnMiIEYmlnMyIEYmlnNCIKc2xpcHBhZ2U0RCILd2F2ZXNTdHJpbmciBUFtdWx0IgVEY29udiIDU0VQIgVFTVBUWSIKUG9vbEFjdGl2ZSIKUG9vbFB1dERpcyIOUG9vbE1hdGNoZXJEaXMiDFBvb2xTaHV0ZG93biIOaWR4UG9vbEFkZHJlc3MiCWlkeFBvb2xTdCIJaWR4TFBBc0lkIglpZHhBbUFzSWQiCWlkeFByQXNJZCILaWR4QW10QXNEY20iDWlkeFByaWNlQXNEY20iC2lkeElBbXRBc0lkIg1pZHhJUHJpY2VBc0lkIg9pZHhGYWN0U3Rha0NudHIiEmlkeEZhY3RvcnlSZXN0Q250ciIQaWR4RmFjdFNsaXBwQ250ciIRaWR4RmFjdEd3eFJld0NudHIiCmZlZURlZmF1bHQiAnQxIgdvcmlnVmFsIg1vcmlnU2NhbGVNdWx0Igh0MUJpZ0ludCICZjEiA3ZhbCIPcmVzdWx0U2NhbGVNdWx0Igxmcm9tWDE4Um91bmQiBXJvdW5kIgJ0MiICZjIiAnRzIgNhbXQiCHJlc1NjYWxlIghjdXJTY2FsZSIDYWJzIglhYnNCaWdJbnQiAmZjIgNtcGsiBHBtcGsiAnBsIgJwaCIBaCIBdCIDcGF1IgJ1YSIEdHhJZCIDZ2F1IgJhYSICcGEiA2FtcCINa2V5QW1wSGlzdG9yeSIMaGVpZ2h0QmxvY2tzIhRrZXlDaGFuZ2VBbXBMYXN0Q2FsbCIGa2V5RmVlIgNmZWUiBmtleURMcCIVa2V5RExwUmVmcmVzaGVkSGVpZ2h0IhJrZXlETHBSZWZyZXNoRGVsYXkiFmRMcFJlZnJlc2hEZWxheURlZmF1bHQiD2RMcFJlZnJlc2hEZWxheSIEZmNmZyIEbXRwayICcGMiBmlBbXRBcyIFaVByQXMiA21iYSIFYkFTdHIiA2FwcyIca2V5QWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaCIWa2V5RmVlQ29sbGVjdG9yQWRkcmVzcyIWa2V5U2tpcE9yZGVyVmFsaWRhdGlvbiILcG9vbEFkZHJlc3MiD3Rocm93T3JkZXJFcnJvciIKb3JkZXJWYWxpZCIOb3JkZXJWYWxpZEluZm8iC3NlbmRlclZhbGlkIgxtYXRjaGVyVmFsaWQiBHN0cmYiBGFkZHIiA2tleSIEaW50ZiIIdGhyb3dFcnIiA21zZyIGZm10RXJyIgNmY2EiBWluRmVlIgFAIgZvdXRGZWUiAUEiA2lncyICbXAiE2ZlZUNvbGxlY3RvckFkZHJlc3MiA2dwYyIFYW10QXMiB3ByaWNlQXMiCGlQcmljZUFzIgxwYXJzZUFzc2V0SWQiBWlucHV0Ig9hc3NldElkVG9TdHJpbmciD3BhcnNlUG9vbENvbmZpZyIKcG9vbENvbmZpZyIQcG9vbENvbmZpZ1BhcnNlZCILJHQwODE2NTgzOTQiDmNmZ1Bvb2xBZGRyZXNzIg1jZmdQb29sU3RhdHVzIgxjZmdMcEFzc2V0SWQiEGNmZ0Ftb3VudEFzc2V0SWQiD2NmZ1ByaWNlQXNzZXRJZCIWY2ZnQW1vdW50QXNzZXREZWNpbWFscyIVY2ZnUHJpY2VBc3NldERlY2ltYWxzIhJjZmdJbkFtb3VudEFzc2VkSWQiEWNmZ0luUHJpY2VBc3NldElkIgNnZmMiDWZhY3RvcnlDb25maWciD3N0YWtpbmdDb250cmFjdCIPc2xpcGFnZUNvbnRyYWN0Igtnd3hDb250cmFjdCIMcmVzdENvbnRyYWN0IhFkYXRhUHV0QWN0aW9uSW5mbyINaW5BbXRBc3NldEFtdCIPaW5QcmljZUFzc2V0QW10IghvdXRMcEFtdCIFcHJpY2UiCnNsaXBCeVVzZXIiDHNsaXBwYWdlUmVhbCIIdHhIZWlnaHQiC3R4VGltZXN0YW1wIgxzbGlwYWdlQW1BbXQiDHNsaXBhZ2VQckFtdCIRZGF0YUdldEFjdGlvbkluZm8iDm91dEFtdEFzc2V0QW10IhBvdXRQcmljZUFzc2V0QW10IgdpbkxwQW10Ig1nZXRBY2NCYWxhbmNlIgdhc3NldElkIgRjcGJpIghwckFtdFgxOCIIYW1BbXRYMTgiBWNwYmlyIgN2YWQiAkExIgJBMiIIc2xpcHBhZ2UiBGRpZmYiBHBhc3MiAnZkIgJEMSICRDAiBHNscGciBGZhaWwiA3BjcCIKYW1Bc3NldERjbSIKcHJBc3NldERjbSIFYW1BbXQiBXByQW10IgthbXRBc0FtdFgxOCIKcHJBc0FtdFgxOCIKY2FsY1ByaWNlcyIFbHBBbXQiCGFtdEFzRGNtIgdwckFzRGNtIghwcmljZVgxOCIIbHBBbXRYMTgiDWxwUHJJbkFtQXNYMTgiDWxwUHJJblByQXNYMTgiD2NhbGN1bGF0ZVByaWNlcyIBcCIHdGFrZUZlZSIGYW1vdW50IglmZWVBbW91bnQiBGdldEQiAnhwIgN4cDAiA3hwMSIBcyIBYSIDYW5uIgt4cDBfeHAxX25fbiIFYW5uX3MiBWFubl8xIgljYWxjRE5leHQiAWQiAmRkIgNkZGQiAmRwIgRjYWxjIgNhY2MiAWkiBWROZXh0IghkRGlmZlJhdyIFZERpZmYiA2FyciINJHQwMTI4OTkxMjk0NyICJGwiAiRzIgUkYWNjMCIFJGYwXzEiAiRhIgIkaSIFJGYwXzIiBWZvdW5kIgNlZ28iBnR4SWQ1OCIKcG10QXNzZXRJZCIIcG10THBBbXQiC3VzZXJBZGRyZXNzIgRscElkIgRhbUlkIgRwcklkIgVhbURjbSIFcHJEY20iA3N0cyIHbHBFbWlzcyIJYW1CYWxhbmNlIgxhbUJhbGFuY2VYMTgiCXByQmFsYW5jZSIMcHJCYWxhbmNlWDE4IgtjdXJQcmljZVgxOCIIY3VyUHJpY2UiC3BtdExwQW10WDE4IgpscEVtaXNzWDE4IgtvdXRBbUFtdFgxOCILb3V0UHJBbXRYMTgiCG91dEFtQW10IghvdXRQckFtdCIFc3RhdGUiA2VwbyIHaW5BbUFtdCIGaW5BbUlkIgdpblByQW10IgZpblBySWQiBmlzRXZhbCIGZW1pdExwIgppc09uZUFzc2V0IhB2YWxpZGF0ZVNsaXBwYWdlIgZwbXRBbXQiBXBtdElkIgdhbUlkU3RyIgdwcklkU3RyIglpbkFtSWRTdHIiCWluUHJJZFN0ciIGYW10RGNtIghwcmljZURjbSIEbHBFbSIPaW5BbUFzc2V0QW10WDE4Ig9pblByQXNzZXRBbXRYMTgiDHVzZXJQcmljZVgxOCIBciIGY2hlY2tEIgtzbGlwcGFnZVgxOCIPc2xpcHBhZ2VSZWFsWDE4Ig1scEVtaXNzaW9uWDE4IgpwclZpYUFtWDE4IgphbVZpYVByWDE4IgxleHBlY3RlZEFtdHMiEWV4cEFtdEFzc2V0QW10WDE4IhNleHBQcmljZUFzc2V0QW10WDE4IgljYWxjTHBBbXQiDmNhbGNBbUFzc2V0UG10Ig5jYWxjUHJBc3NldFBtdCIMc2xpcHBhZ2VDYWxjIgllbWl0THBBbXQiBmFtRGlmZiIGcHJEaWZmIg0kdDAyMDc4NjIxMTMxIgp3cml0ZUFtQW10Igp3cml0ZVByQW10Igtjb21tb25TdGF0ZSIFZ2V0WUQiAUQiAW4iAXgiCmFQcmVjaXNpb24iAWMiAWIiA2N1ciINJHQwMjIzMjYyMjM0NiIBeSIFeU5leHQiBXlEaWZmIg0kdDAyMjY1MzIyNzAwIgdjYWxjRExwIg1hbW91bnRCYWxhbmNlIgxwcmljZUJhbGFuY2UiCmxwRW1pc3Npb24iCnVwZGF0ZWRETHAiDmNhbGNDdXJyZW50RExwIhBhbW91bnRBc3NldERlbHRhIg9wcmljZUFzc2V0RGVsdGEiFGxwQXNzZXRFbWlzc2lvbkRlbHRhIhJhbW91bnRBc3NldEJhbGFuY2UiEXByaWNlQXNzZXRCYWxhbmNlIg9scEFzc2V0RW1pc3Npb24iCmN1cnJlbnRETHAiEnJlZnJlc2hETHBJbnRlcm5hbCIXYW1vdW50QXNzZXRCYWxhbmNlRGVsdGEiFnByaWNlQXNzZXRCYWxhbmNlRGVsdGEiB2FjdGlvbnMiEnZhbGlkYXRlVXBkYXRlZERMcCIGb2xkRExwIht2YWxpZGF0ZU1hdGNoZXJPcmRlckFsbG93ZWQiBW9yZGVyIhFhbW91bnRBc3NldEFtb3VudCIQcHJpY2VBc3NldEFtb3VudCINJHQwMjQ4OTgyNTExMCIDZExwIg0kdDAyNTQ1MjI1NTUyIg11bnVzZWRBY3Rpb25zIgZkTHBOZXciDGlzT3JkZXJWYWxpZCIEaW5mbyICY2ciA3BtdCICY3AiBmNhbGxlciIHYW1Bc1BtdCIHcHJBc1BtdCINY2FsY1B1dE9uZVRrbiIJcG10QW10UmF3Igt3aXRoVGFrZUZlZSINY2hlY2hFbWlzc2lvbiINJHQwMjgyMDgyODY3MCIMYW1CYWxhbmNlT2xkIgxwckJhbGFuY2VPbGQiDSR0MDI4Njc2Mjg4NTIiC2FtQW1vdW50UmF3IgtwckFtb3VudFJhdyINJHQwMjg4NTYyOTExMCIIYW1BbW91bnQiCHByQW1vdW50IgxhbUJhbGFuY2VOZXciDHByQmFsYW5jZU5ldyIIbHBBbW91bnQiDnBvb2xQcm9wb3J0aW9uIg9hbW91bnRBc3NldFBhcnQiDnByaWNlQXNzZXRQYXJ0IglscEFtdEJvdGgiBWJvbnVzIhNnZXRPbmVUa25WMkludGVybmFsIgpvdXRBc3NldElkIgxtaW5PdXRBbW91bnQiCHBheW1lbnRzIgxvcmlnaW5DYWxsZXIiDXRyYW5zYWN0aW9uSWQiCmFtRGVjaW1hbHMiCnByRGVjaW1hbHMiCnBvb2xTdGF0dXMiDSR0MDMxMjIyMzEzMzMiCHRvdGFsR2V0Igt0b3RhbEFtb3VudCINJHQwMzE1MjMzMTgzMCIFb3V0QW0iBW91dFByIghjdXJQclgxOCIFY3VyUHIiEW91dEFzc2V0SWRPcldhdmVzIhBzZW5kRmVlVG9NYXRjaGVyIgRidXJuIg0kdDAzMjYxNTMyOTY1IhBmZWVBbW91bnRGb3JDYWxjIhBvdXRJbkFtb3VudEFzc2V0Ig0kdDAzMjk2ODMzMDc2IhFyZWZyZXNoRExwQWN0aW9ucyIRaXNVcGRhdGVkRExwVmFsaWQiAW0iByRtYXRjaDAiAnBtIgJwZCIJaXNNYW5hZ2VyIgJwayICbW0iBGdldFkiCWlzUmV2ZXJzZSITcG9vbEFtb3VudEluQmFsYW5jZSINJHQwMzQ1MjMzNDU0MyINJHQwMzQ4NzQzNDkyMSITc2tpcE9yZGVyVmFsaWRhdGlvbiINY2xlYW5BbW91bnRJbiINZmVlUG9vbEFtb3VudCINJHQwMzUyNzMzNTY5NyIIYXNzZXRPdXQiAmR5Igt0b3RhbEdldFJhdyIFbmV3WHAiBG5ld0QiDGFtb3VudE91dE1pbiIJYWRkcmVzc1RvIgtzd2FwQ29udGFjdCIGY2hlY2tzIgdhc3NldEluIg0kdDAzNzEzMzM3NTI3IghjaGVja01pbiIXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiAmNtIgNocG0iA2NwbSIEc2xpcCIJYXV0b1N0YWtlIgdmYWN0Q2ZnIgtzdGFraW5nQ250ciIIc2xpcENudHIiCmFtQXNzZXRQbXQiCnByQXNzZXRQbXQiAWUiCWxwQXNzZXRJZCICZWwiBmxlZ2FjeSICc2EiAnNwIghscFRybnNmciICc3MiDSR0MDQyMTQ2NDIyODgiBWNoZWNrIhRscEFzc2V0RW1pc3Npb25BZnRlciIgaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiDWlzUHV0RGlzYWJsZWQiDSR0MDQzOTI5NDQwODciB2VzdGltTFAiDSR0MDQ0OTcyNDUzMjEiFHBheW1lbnRJbkFtb3VudEFzc2V0Ig0kdDA0NTMyNDQ1NDMyIgdtYXhTbHBnIgZlc3RQdXQiDSR0MDQ2NDYyNDY1MjciCW91dEFtdEFtdCINJHQwNDc3MDA0Nzc4MiINaXNHZXREaXNhYmxlZCINJHQwNDg0MDA0ODU1NSIYbGFzdFJlZnJlc2hlZEJsb2NrSGVpZ2h0Ih1jaGVja0xhc3RSZWZyZXNoZWRCbG9ja0hlaWdodCINJHQwNDkwNzk0OTE0MyIQZExwVXBkYXRlQWN0aW9ucyINbHBBc3NldEFtb3VudCIFaW5kZXgiBG5ld1kiDSR0MDUwMTUzNTAyMDgiDSR0MDUwNTgzNTA2OTgiDnN1bU9mR2V0QXNzZXRzIhJub0xlc3NUaGVuQW10QXNzZXQiFG5vTGVzc1RoZW5QcmljZUFzc2V0IhRidXJuTFBBc3NldE9uRmFjdG9yeSINJHQwNTE4NjQ1MTk0NSINY2hlY2tQYXltZW50cyIKZmFjdG9yeUNmZyIHc3Rha2luZyIKdW5zdGFrZUludiIBdiIFYnVybkEiDSR0MDUyOTcyNTMwNTMiDXVuc3Rha2VBbW91bnQiFW5vTGVzc1RoZW5BbW91bnRBc3NldCIDcmVzIgxjaGVja0Ftb3VudHMiDSR0MDU0MzA0NTQzODUiF2xwQXNzZXRSZWNpcGllbnRBZGRyZXNzIg0kdDA1NTQwNzU1NTk1IhBwYXltZW50QW1vdW50UmF3Ig5wYXltZW50QXNzZXRJZCINJHQwNTU3MjM1NTgyNiINJHQwNTU5NzQ1NjA3OCIIYW10QXNTdHIiB3ByQXNTdHIiAnByIgxyZXNTY2FsZU11bHQiB3VzckFkZHIiB3BtdEFzSWQiA2NmZyINJHQwNTg0MzI1ODYzMSIEbGlzdCIFZGVsYXkiBWRlbHRhIgZ0YXJnZXQiBmN1ckFtcCIJbmV3QW1wUmF3IgZuZXdBbXAiCGxhc3RDYWxsIgR3YWl0IgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXkiCm1hdGNoZXJQdWIiDSR0MDU5NTQzNTk2NjAiB25ld0hhc2giC2FsbG93ZWRIYXNoIgtjdXJyZW50SGFzaIUBAAFhAIDC1y8AAWIJALYCAQCAwtcvAAFjCQC2AgEAgICQu7rWrfANAAFkCQC2AgEAAAABZQkAtgIBAAAAAWYJALYCAQABAAFnCQC2AgEAAgABaAkAtgIBAAMAAWkJALYCAQAEAAFqCQC2AgEJAGUCBQFhCQBpAgkAaAIFAWEAAQUBYQABawIFV0FWRVMAAWwCAzEwMAABbQIBMQABbgICX18AAW8CAAABcAABAAFxAAIAAXIAAwABcwAEAAF0AAEAAXUAAgABdgADAAF3AAQAAXgABQABeQAGAAF6AAcAAUEACAABQgAJAAFDAAEAAUQABgABRQAHAAFGAAoAAUcJAGsDAAoFAWEAkE4BAUgCAUkBSgkAvAIDCQC2AgEFAUkFAWMJALYCAQUBSgEBSwIBSQFKCQC8AgMFAUkFAWMFAUoBAUwCAU0BTgkAoAMBCQC8AgMFAU0JALYCAQUBTgUBYwEBTwMBTQFOAVAJAKADAQkAvQIEBQFNCQC2AgEFAU4FAWMFAVABAVECAUkBSgkAvAIDBQFJBQFjCQC2AgEFAUoBAVICAU0BTgkAvAIDBQFNCQC2AgEFAU4FAWMBAVMDAVQBVQFWCQBrAwUBVAUBVQUBVgEBVwEBTQMJAL8CAgUBZAUBTQkAvgIBBQFNBQFNAQFYAQFNAwkAvwICBQFkBQFNCQC+AgEFAU0FAU0BAVkAAhMlc19fZmFjdG9yeUNvbnRyYWN0AQFaAAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBAmFhAAIbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AQJhYgACESVzJXNfX3ByaWNlX19sYXN0AQJhYwICYWQCYWUJALkJAgkAzAgCAhglcyVzJWQlZF9fcHJpY2VfX2hpc3RvcnkJAMwIAgkApAMBBQJhZAkAzAgCCQCkAwEFAmFlBQNuaWwFAW4BAmFmAgJhZwJhaAkArAICCQCsAgIJAKwCAgILJXMlcyVzX19QX18FAmFnAgJfXwUCYWgBAmFpAgJhZwJhaAkArAICCQCsAgIJAKwCAgILJXMlcyVzX19HX18FAmFnAgJfXwUCYWgBAmFqAAIPJXNfX2Ftb3VudEFzc2V0AQJhawACDiVzX19wcmljZUFzc2V0AQJhbAACByVzX19hbXABAmFtAQJhbgkArAICAgslcyVkX19hbXBfXwkApAMBBQJhbgECYW8AAhUlc19fY2hhbmdlQW1wTGFzdENhbGwAAmFwAgclc19fZmVlAAJhcQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJhcAUBRwACYXIJALkJAgkAzAgCAgIlcwkAzAgCAgNkTHAFA25pbAUBbgACYXMJALkJAgkAzAgCAgIlcwkAzAgCAhJkTHBSZWZyZXNoZWRIZWlnaHQFA25pbAUBbgACYXQJALkJAgkAzAgCAgIlcwkAzAgCAg9yZWZyZXNoRExwRGVsYXkFA25pbAUBbgACYXUAHgACYXYJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCYXQFAmF1AQJhdwACESVzX19mYWN0b3J5Q29uZmlnAQJheAACGCVzJXNfX21hdGNoZXJfX3B1YmxpY0tleQECYXkCAmF6AmFBCQCsAgIJAKwCAgkArAICCQCsAgICCCVkJWQlc19fBQJhegICX18FAmFBAghfX2NvbmZpZwECYUIBAmFDCQCsAgICKCVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJpbnRlcm5hbElkX18FAmFDAQJhRAACDCVzX19zaHV0ZG93bgECYUUAAh0lc19fYWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaAECYUYAAhclc19fZmVlQ29sbGVjdG9yQWRkcmVzcwECYUcBAmFICQCsAgICGyVzJXNfX3NraXBPcmRlclZhbGlkYXRpb25fXwUCYUgBAmFJBAJhSgJhSwJhTAJhTQkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAiRvcmRlciB2YWxpZGF0aW9uIGZhaWxlZDogb3JkZXJWYWxpZD0JAKUDAQUCYUoCAiAoBQJhSwIBKQINIHNlbmRlclZhbGlkPQkApQMBBQJhTAIOIG1hdGNoZXJWYWxpZD0JAKUDAQUCYU0BAmFOAgJhTwJhUAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFAmFPBQJhUAkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQJhTwkAzAgCAgEuCQDMCAIFAmFQCQDMCAICDCBub3QgZGVmaW5lZAUDbmlsAgABAmFRAgJhTwJhUAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFAmFPBQJhUAkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQJhTwkAzAgCAgEuCQDMCAIFAmFQCQDMCAICDCBub3QgZGVmaW5lZAUDbmlsAgABAmFSAQJhUwkAAgEJALkJAgkAzAgCAg9scF9zdGFibGUucmlkZToJAMwIAgUCYVMFA25pbAIBIAECYVQBAmFTCQC5CQIJAMwIAgIPbHBfc3RhYmxlLnJpZGU6CQDMCAIFAmFTBQNuaWwCASAAAmFVCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYU4CBQR0aGlzCQEBWQAAAmFWCgACYVcJAPwHBAUCYVUCEGdldEluRmVlUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJhVwIDSW50BQJhVwkAAgEJAKwCAgkAAwEFAmFXAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQAAmFYCgACYVcJAPwHBAUCYVUCEWdldE91dEZlZVJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYVcCA0ludAUCYVcJAAIBCQCsAgIJAAMBBQJhVwIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AAJhWQkBAmFOAgUEdGhpcwkBAmFsAAECYVoACQELdmFsdWVPckVsc2UCCQCbCAIFAmFVCQECYUQABwECYmEACQDZBAEJAQJhTgIFAmFVCQECYXgAAAJiYgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmFOAgUCYVUJAQJhRgABAmJjAAQCYmQJAQJhTgIFBHRoaXMJAQJhagAEAmJlCQECYU4CBQR0aGlzCQECYWsABAJiZgkBAmFRAgUCYVUJAQJhQgEFAmJlBAJhegkBAmFRAgUCYVUJAQJhQgEFAmJkCQC1CQIJAQJhTgIFAmFVCQECYXkCCQCkAwEFAmF6CQCkAwEFAmJmBQFuAQJiZwECYmgDCQAAAgUCYmgFAWsFBHVuaXQJANkEAQUCYmgBAmJpAQJiaAMJAAACBQJiaAUEdW5pdAUBawkA2AQBCQEFdmFsdWUBBQJiaAECYmoBAmJrCQCbCgkJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYmsFAXQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiawUBdQkA2QQBCQCRAwIFAmJrBQF2CQECYmcBCQCRAwIFAmJrBQF3CQECYmcBCQCRAwIFAmJrBQF4CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYmsFAXkJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiawUBegkA2QQBCQCRAwIFAmJrBQFBCQDZBAEJAJEDAgUCYmsFAUIAAmJsCQECYmoBCQECYmMAAAJibQUCYmwAAmJuCAUCYm0CXzEAAmJvCAUCYm0CXzIAAmJwCAUCYm0CXzMAAmJxCAUCYm0CXzQAAmJyCAUCYm0CXzUAAmJzCAUCYm0CXzYAAmJ0CAUCYm0CXzcAAmJ1CAUCYm0CXzgAAmJ2CAUCYm0CXzkBAmJ3AAkAtQkCCQECYU4CBQJhVQkBAmF3AAUBbgACYngJAQJidwAAAmJ5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJieAUBQwIgSW52YWxpZCBzdGFraW5nIGNvbnRyYWN0IGFkZHJlc3MAAmJ6CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJieAUBRQIgSW52YWxpZCBzbGlwYWdlIGNvbnRyYWN0IGFkZHJlc3MAAmJBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJieAUBRgIcSW52YWxpZCBnd3ggY29udHJhY3QgYWRkcmVzcwACYkIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmJ4BQFEAhxJbnZhbGlkIGd3eCBjb250cmFjdCBhZGRyZXNzAQJiQwoCYkQCYkUCYkYCYkcCYkgCYkkCYkoCYksCYkwCYk0JALkJAgkAzAgCAhQlZCVkJWQlZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmJECQDMCAIJAKQDAQUCYkUJAMwIAgkApAMBBQJiRgkAzAgCCQCkAwEFAmJHCQDMCAIJAKQDAQUCYkgJAMwIAgkApAMBBQJiSQkAzAgCCQCkAwEFAmJKCQDMCAIJAKQDAQUCYksJAMwIAgkApAMBBQJiTAkAzAgCCQCkAwEFAmJNBQNuaWwFAW4BAmJOBgJiTwJiUAJiUQJiRwJiSgJiSwkAuQkCCQDMCAICDCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmJPCQDMCAIJAKQDAQUCYlAJAMwIAgkApAMBBQJiUQkAzAgCCQCkAwEFAmJHCQDMCAIJAKQDAQUCYkoJAMwIAgkApAMBBQJiSwUDbmlsBQFuAQJiUgECYlMDCQAAAgUCYlMCBVdBVkVTCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQkA8AcCBQR0aGlzCQDZBAEFAmJTAQJiVAICYlUCYlYJALwCAwUCYlUFAWMFAmJWAQJiVwMCYlUCYlYBUAkAvQIEBQJiVQUBYwUCYlYFAVABAmJYAwJiWQJiWgJjYQQCY2IJALwCAwkAuAICBQJiWQUCYloFAWIFAmJaBAJjYwkAvwICCQC4AgIFAmNhCQEBVwEFAmNiBQFkAwkBASEBBQJjYwkAAgEJAKwCAgIKQmlnIHNscGc6IAkApgMBBQJjYgkAlAoCBQJjYwkAmQMBCQDMCAIFAmJZCQDMCAIFAmJaBQNuaWwBAmNkAwJjZQJjZgJjZwQCY2IJALwCAwUCY2YFAWIFAmNlBAJjaAkAvwICBQJjZwUCY2IDAwUCY2gGCQC/AgIFAmNmBQJjZQkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKYDAQUCY2YCASAJAKYDAQUCY2UCASAJAKYDAQUCY2ICASAJAKYDAQUCY2cFAmNoAQJjaQQCY2oCY2sCY2wCY20EAmNuCQEBSAIFAmNsBQJjagQCY28JAQFIAgUCY20FAmNrCQECYlQCBQJjbwUCY24BAmNwAwJjbAJjbQJjcQQCY3IFAmJzBAJjcwUCYnQEAmN0CQECY2kEBQJjcgUCY3MFAmNsBQJjbQQCYlYJAQFIAgUCY2wFAmNyBAJiVQkBAUgCBQJjbQUCY3MEAmN1CQEBSAIFAmNxBQFhBAJjdgkBAmJUAgUCYlYFAmN1BAJjdwkBAmJUAgUCYlUFAmN1CQDMCAIFAmN0CQDMCAIFAmN2CQDMCAIFAmN3BQNuaWwBAmN4AwJjbAJjbQJjcQQCY3kJAQJjcAMFAmNsBQJjbQUCY3EJAMwIAgkBAUwCCQCRAwIFAmN5AAAFAWEJAMwIAgkBAUwCCQCRAwIFAmN5AAEFAWEJAMwIAgkBAUwCCQCRAwIFAmN5AAIFAWEFA25pbAECY3oCAmNBAmFxBAJjQgMJAAACBQJhcQAAAAAJAGsDBQJjQQUCYXEFAWEJAJQKAgkAZQIFAmNBBQJjQgUCY0IBAmNDAQJjRAQCY0UJAJEDAgUCY0QAAAQCY0YJAJEDAgUCY0QAAQQCY0cJALcCAgUCY0UFAmNGAwkAAAIFAmNHBQFlBQFlBAJjSAkBDXBhcnNlSW50VmFsdWUBBQJhWQQCY0kJAGgCBQJjSAACBAJjeQkAvAIDBQJjRQUCY0YFAWYEAmNKCQC8AgMFAmN5BQFpBQFmBAJjSwkAvAIDCQC2AgEFAmNJBQJjRwUBZgQCY0wJALYCAQkAZQIFAmNJAAEKAQJjTQECY04EAmNPCQC8AgMFAmNOBQJjTgUBZgQCY1AJALwCAwUCY08FAmNOBQFmBAJjUQkAvAIDBQJjUAUBZgUCY0oJALwCAwkAtwICBQJjSwkAvAIDBQJjUQUBZwUBZgUCY04JALcCAgkAvAIDBQJjTAUCY04FAWYJALwCAwUBaAUCY1EFAWYKAQJjUgICY1MCY1QDCAUCY1MCXzIFAmNTBAJjTggFAmNTAl8xBAJjVQkBAmNNAQUCY04EAmNWCQC4AgIFAmNVCQEFdmFsdWUBBQJjTgQCY1cDCQC/AgIFAWUFAmNWCQC+AgEFAmNWBQJjVgMJAMACAgUBZgUCY1cJAJQKAgUCY1UGCQCUCgIFAmNVBwQCY1gJAMwIAgAACQDMCAIAAQkAzAgCAAIJAMwIAgADCQDMCAIABAkAzAgCAAUJAMwIAgAGCQDMCAIABwkAzAgCAAgJAMwIAgAJCQDMCAIACgkAzAgCAAsJAMwIAgAMCQDMCAIADQkAzAgCAA4JAMwIAgAPCQDMCAIAEAUDbmlsBAJjWQoAAmNaBQJjWAoAAmRhCQCQAwEFAmNaCgACZGIJAJQKAgUCY0cHCgECZGMCAmRkAmRlAwkAZwIFAmRlBQJkYQUCZGQJAQJjUgIFAmRkCQCRAwIFAmNaBQJkZQoBAmRmAgJkZAJkZQMJAGcCBQJkZQUCZGEFAmRkCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTcJAQJkZgIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIJAQJkYwIFAmRiAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARBAJjTggFAmNZAl8xBAJkZwgFAmNZAl8yAwUCZGcFAmNOCQACAQkArAICAhlEIGNhbGN1bGF0aW9uIGVycm9yLCBEID0gCQCmAwEFAmNOAQJkaAQCZGkCZGoCZGsCZGwEAmRtBQJicAQCZG4JANgEAQkBBXZhbHVlAQUCYnEEAmRvCQDYBAEJAQV2YWx1ZQEFAmJyBAJkcAUCYnMEAmRxBQJidAQCZHIJAKQDAQUCYm8EAmRzCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmRtAgtXcm9uZyBMUCBpZAhxdWFudGl0eQMJAQIhPQIJANgEAQUCZG0FAmRqCQACAQIPV3JvbmcgcG10IGFzc2V0BAJkdAkBAmJSAQUCZG4EAmR1CQEBSAIFAmR0BQJkcAQCZHYJAQJiUgEFAmRvBAJkdwkBAUgCBQJkdgUCZHEEAmR4CQECYlQCBQJkdwUCZHUEAmR5CQEBTAIFAmR4BQFhBAJkegkBAUgCBQJkawUBYQQCZEEJAQFIAgUCZHMFAWEEAmRCCQC8AgMFAmR1BQJkegUCZEEEAmRDCQC8AgMFAmR3BQJkegUCZEEEAmRECQEBTwMFAmRCBQJkcAUFRkxPT1IEAmRFCQEBTwMFAmRDBQJkcQUFRkxPT1IEAmRGAwkAAAIFAmRpAgAFA25pbAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJkbAUCZEQDCQAAAgUCZG4CBVdBVkVTBQR1bml0CQDZBAEFAmRuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmRsBQJkRQMJAAACBQJkbwIFV0FWRVMFBHVuaXQJANkEAQUCZG8JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFpAgkApQgBBQJkbAUCZGkJAQJiTgYFAmREBQJkRQUCZGsFAmR5BQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWIABQJkeQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFjAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZHkFA25pbAkAnAoKBQJkRAUCZEUFAmRuBQJkbwUCZHQFAmR2BQJkcwUCZHgFAmRyBQJkRgECZEcNAmRpAmNhAmRIAmRJAmRKAmRLAmRsAmRMAmRNAmROAmRPAmRQAmRRBAJkbQUCYnAEAmRSCQDYBAEJAQV2YWx1ZQEFAmJxBAJkUwkA2AQBCQEFdmFsdWUBBQJicgQCZFQFAmJ1BAJkVQUCYnYEAmRWBQJicwQCZFcFAmJ0BAJkcgkApAMBBQJibwQCZFgICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCZG0CCFdyIGxwIGFzCHF1YW50aXR5BAJkdAMFAmRMCQECYlIBBQJkUgMDBQJkTgkAAAIFAmRRBQJkUgcJAGUCCQECYlIBBQJkUgUCZFADBQJkTgkBAmJSAQUCZFIJAGUCCQECYlIBBQJkUgUCZEgEAmR2AwUCZEwJAQJiUgEFAmRTAwMFAmROCQAAAgUCZFEFAmRTBwkAZQIJAQJiUgEFAmRTBQJkUAMFAmROCQECYlIBBQJkUwkAZQIJAQJiUgEFAmRTBQJkSgQCZFkJAQFIAgUCZEgFAmRWBAJkWgkBAUgCBQJkSgUCZFcEAmVhCQECYlQCBQJkWgUCZFkEAmR1CQEBSAIFAmR0BQJkVgQCZHcJAQFIAgUCZHYFAmRXBAJjZgkBAmNDAQkAzAgCBQJkdQkAzAgCBQJkdwUDbmlsBAJlYgMJAAACBQJkWAAABAJjZQkBAmNDAQkAzAgCCQC3AgIFAmR1BQJkWQkAzAgCCQC3AgIFAmR3BQJkWgUDbmlsBAJlYwMJAL8CAgUCY2UFAmNmBgkAAgECHEQxIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gRDADCQAAAgUCZWMFAmVjBAJkeAUBZAQCZWQFAWQEAmN1BQJjZQkAlwoFCQEBTAIFAmN1BQFhCQEBTAIFAmRZBQJkVgkBAUwCBQJkWgUCZFcJAQJiVAIJALcCAgUCZHcFAmRaCQC3AgIFAmR1BQJkWQUCZWQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EAmR4CQECYlQCBQJkdwUCZHUEAmVlCQC8AgMJAQFXAQkAuAICBQJkeAUCZWEFAWMFAmR4BAJlZAkBAUgCBQJjYQUBYQMDAwUCZE8JAQIhPQIFAmR4BQFkBwkAvwICBQJlZQUCZWQHCQACAQkArAICCQCsAgIJAKwCAgIPUHJpY2Ugc2xpcHBhZ2UgCQCmAwEFAmVlAgMgPiAJAKYDAQUCZWQEAmVmCQEBSAIFAmRYBQFhBAJlZwkAvQIEBQJkWQkBAmJXAwUCZHcFAmR1BQdDRUlMSU5HBQFjBQdDRUlMSU5HBAJlaAkAvQIEBQJkWgUBYwkBAmJXAwUCZHcFAmR1BQVGTE9PUgUHQ0VJTElORwQCZWkDCQC/AgIFAmVnBQJkWgkAlAoCBQJlaAUCZFoJAJQKAgUCZFkFAmVnBAJlaggFAmVpAl8xBAJlawgFAmVpAl8yBAJjZQkBAmNDAQkAzAgCCQC3AgIFAmR1BQJlagkAzAgCCQC3AgIFAmR3BQJlawUDbmlsBAJlYwMJAL8CAgUCY2UFAmNmBgkAAgECHEQxIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gRDADCQAAAgUCZWMFAmVjBAJjdQkAvAIDBQJlZgkAuAICBQJjZQUCY2YFAmNmCQCXCgUJAQFPAwUCY3UFAWEFBUZMT09SCQEBTwMFAmVqBQJkVgUHQ0VJTElORwkBAU8DBQJlawUCZFcFB0NFSUxJTkcFAmR4BQJlZAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQCZWwIBQJlYgJfMQQCZW0IBQJlYgJfMgQCZW4IBQJlYgJfMwQCZHkJAQFMAggFAmViAl80BQFhBAJlbwkBAUwCCAUCZWICXzUFAWEDCQBnAgAABQJlbAkAAgECB0xQIDw9IDAEAmVwAwkBASEBBQJkTQAABQJlbAQCZXEJAGUCBQJkSAUCZW0EAmVyCQBlAgUCZEoFAmVuBAJlcwMDBQJkTgkAAAIFAmRRBQJkUgcJAJQKAgUCZFAAAAMDBQJkTgkAAAIFAmRRBQJkUwcJAJQKAgAABQJkUAkAlAoCBQJlbQUCZW4EAmV0CAUCZXMCXzEEAmV1CAUCZXMCXzIEAmV2CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWIABQJkeQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFjAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZHkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFmAgUCZGwFAmRpCQECYkMKBQJldAUCZXUFAmVwBQJkeQUCY2EFAmVvBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJlcQUCZXIFA25pbAkAnwoNBQJlbAUCZXAFAmR5BQJkdAUCZHYFAmRYBQJkbQUCZHIFAmV2BQJlcQUCZXIFAmRJBQJkSwECZXcDAmNEAmNUAmV4BAJleQUBZwQCZXoJAJEDAgUCY0QDCQAAAgUCY1QAAAABAAAEAmVBCQCnAwEFAWwEAmNICQC5AgIJAKcDAQUCYVkFAmVBBAJjRwUCZXoEAmNJCQC5AgIFAmNIBQJleQQCZUIJALoCAgkAuQICCQC5AgIJALoCAgkAuQICBQJleAUCZXgJALkCAgUCZXoFAmV5BQJleAUCZUEJALkCAgUCY0kFAmV5BAJlQwkAuAICCQC3AgIFAmNHCQC6AgIJALkCAgUCZXgFAmVBBQJjSQUCZXgKAQJjUgICY1MCZUQEAmVFBQJjUwQCZUYIBQJlRQJfMQQCZGcIBQJlRQJfMgMJAQIhPQIFAmRnBQR1bml0BQJjUwQCZUcJALoCAgkAtwICCQC5AgIFAmVGBQJlRgUCZUIJALcCAgkAuQICBQFnBQJlRgUCZUMEAmVICQEBWAEJALgCAgUCZUcJAQV2YWx1ZQEFAmVGAwkAwAICBQFmBQJlSAkAlAoCBQJlRwUCZUQJAJQKAgUCZUcFBHVuaXQEAmNYCQDMCAIAAAkAzAgCAAEJAMwIAgACCQDMCAIAAwkAzAgCAAQJAMwIAgAFCQDMCAIABgkAzAgCAAcJAMwIAgAICQDMCAIACQkAzAgCAAoJAMwIAgALCQDMCAIADAkAzAgCAA0JAMwIAgAOBQNuaWwEAmVJCgACY1oFAmNYCgACZGEJAJADAQUCY1oKAAJkYgkAlAoCBQJleAUEdW5pdAoBAmRjAgJkZAJkZQMJAGcCBQJkZQUCZGEFAmRkCQECY1ICBQJkZAkAkQMCBQJjWgUCZGUKAQJkZgICZGQCZGUDCQBnAgUCZGUFAmRhBQJkZAkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDE1CQECZGYCCQECZGMCCQECZGMCCQECZGMCCQECZGMCCQECZGMCCQECZGMCCQECZGMCCQECZGMCCQECZGMCCQECZGMCCQECZGMCCQECZGMCCQECZGMCCQECZGMCCQECZGMCBQJkYgAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPBAJlRggFAmVJAl8xBAJkZwgFAmVJAl8yAwkBAiE9AgUCZGcFBHVuaXQFAmVGCQACAQkArAICAhlZIGNhbGN1bGF0aW9uIGVycm9yLCBZID0gCQCmAwEFAmVGAQJlSgMCZUsCZUwCZU0EAmVOCQC8AgMJAQJjQwEJAMwIAgkBAUsCBQJlSwkAtgIBBQJicwkAzAgCCQEBSwIFAmVMCQC2AgEFAmJ0BQNuaWwFAWMFAmVNAwkAAAIFAmVNBQFlBQFlBQJlTgECZU8DAmVQAmVRAmVSBAJlUwkAuAICCQC2AgEJAQJiUgEJAQJiaQEFAmJxBQJlUAQCZVQJALgCAgkAtgIBCQECYlIBCQECYmkBBQJicgUCZVEEAmVVCQC4AgIJALYCAQgJAQV2YWx1ZQEJAOwHAQUCYnAIcXVhbnRpdHkFAmVSBAJlVgkBAmVKAwUCZVMFAmVUBQJlVQUCZVYBAmVXAwJlWAJlWQJlUgQCZVMJAGQCCQECYlIBCQECYmkBBQJicQUCZVgEAmVUCQBkAgkBAmJSAQkBAmJpAQUCYnIFAmVZBAJlVQkAZAIICQEFdmFsdWUBCQDsBwEFAmJwCHF1YW50aXR5BQJlUgQCZU4JAQJlSgMJALYCAQUCZVMJALYCAQUCZVQJALYCAQUCZVUEAmVaCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJhcwUGaGVpZ2h0CQDMCAIJAQtTdHJpbmdFbnRyeQIFAmFyCQCmAwEFAmVOBQNuaWwJAJQKAgUCZVoFAmVOAQJmYQICZmICZU4DCQDAAgIFAmVOBQJmYgYJAQJhUgECInVwZGF0ZWQgRExwIGxvd2VyIHRoYW4gY3VycmVudCBETHABAmZjAQJmZAQCZVMJAQJiUgEJAQJiaQEFAmJxBAJlVAkBAmJSAQkBAmJpAQUCYnIEAmZlCAUCZmQGYW1vdW50BAJmZgkAbgQIBQJmZAZhbW91bnQIBQJmZAVwcmljZQUBYQUFRkxPT1IEAmZnAwkAAAIIBQJmZAlvcmRlclR5cGUFA0J1eQkAlAoCBQJmZQkBAS0BBQJmZgkAlAoCCQEBLQEFAmZlBQJmZgQCZVgIBQJmZwJfMQQCZVkIBQJmZwJfMgMDAwkBAmFaAAYJAAACBQJibwUBcgYJAAACBQJibwUBcwkAAgECDUFkbWluIGJsb2NrZWQDAwkBAiE9AggIBQJmZAlhc3NldFBhaXILYW1vdW50QXNzZXQFAmJxBgkBAiE9AggIBQJmZAlhc3NldFBhaXIKcHJpY2VBc3NldAUCYnIJAAIBAglXciBhc3NldHMEAmZoCQCnAwEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUCYXICATAEAmZpCQECZVcDBQJlWAUCZVkAAAQCZmoIBQJmaQJfMQQCZmsIBQJmaQJfMgQCZmwJAMACAgUCZmsFAmZoBAJmbQkAuQkCCQDMCAICBGRMcD0JAMwIAgkApgMBBQJmaAkAzAgCAgggZExwTmV3PQkAzAgCCQCmAwEFAmZrCQDMCAICFCBhbW91bnRBc3NldEJhbGFuY2U9CQDMCAIJAKQDAQUCZVMJAMwIAgITIHByaWNlQXNzZXRCYWxhbmNlPQkAzAgCCQCkAwEFAmVUCQDMCAICGSBhbW91bnRBc3NldEJhbGFuY2VEZWx0YT0JAMwIAgkApAMBBQJlWAkAzAgCAhggcHJpY2VBc3NldEJhbGFuY2VEZWx0YT0JAMwIAgkApAMBBQJlWQkAzAgCAgggaGVpZ2h0PQkAzAgCCQCkAwEFBmhlaWdodAUDbmlsAgAJAJQKAgUCZmwFAmZtAQJmbgECY1QDCQECIT0CCQCQAwEIBQJjVAhwYXltZW50cwABCQACAQIKMSBwbW50IGV4cAQCZm8JAQV2YWx1ZQEJAJEDAggFAmNUCHBheW1lbnRzAAAEAmRqCQEFdmFsdWUBCAUCZm8HYXNzZXRJZAQCZFAIBQJmbwZhbW91bnQEAmViCQECZGgECQDYBAEIBQJjVA10cmFuc2FjdGlvbklkCQDYBAEFAmRqBQJkUAgFAmNUBmNhbGxlcgQCZEQIBQJlYgJfMQQCZEUIBQJlYgJfMgQCZHIJAQ1wYXJzZUludFZhbHVlAQgFAmViAl85BAJkRggFAmViA18xMAMDCQECYVoABgkAAAIFAmRyBQFzCQACAQkArAICAg9BZG1pbiBibG9ja2VkOiAJAKQDAQUCZHIJAJcKBQUCZEQFAmRFBQJkUAUCZGoFAmRGAQJmcAoCZnECYWgCZnICZnMCY2ECZE0CZE4CZE8CZFACZFEEAmViCQECZEcNBQJhaAUCY2EICQEFdmFsdWUBBQJmcgZhbW91bnQICQEFdmFsdWUBBQJmcgdhc3NldElkCAkBBXZhbHVlAQUCZnMGYW1vdW50CAkBBXZhbHVlAQUCZnMHYXNzZXRJZAUCZnEJAAACBQJhaAIABQJkTQUCZE4FAmRPBQJkUAUCZFEEAmRyCQENcGFyc2VJbnRWYWx1ZQEIBQJlYgJfOAMDAwkBAmFaAAYJAAACBQJkcgUBcQYJAAACBQJkcgUBcwkAAgEJAKwCAgIIQmxvY2tlZDoJAKQDAQUCZHIFAmViAQJmdAUCZnUCZGoCZGwCYWgCZnYEAmRuCQDYBAEJAQV2YWx1ZQEFAmJxBAJkbwkA2AQBCQEFdmFsdWUBBQJicgQCZG0FAmJwBAJkVgUCYnMEAmRXBQJidAQCZVUJALYCAQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJkbQIQaW52YWxpZCBscCBhc3NldAhxdWFudGl0eQQCZncDCQC/AgIFAmVVBQFlBgkAAgECImluaXRpYWwgZGVwb3NpdCByZXF1aXJlcyBhbGwgY29pbnMDCQAAAgUCZncFAmZ3BAJkdAkBAmJSAQUCZG4EAmR2CQECYlIBBQJkbwQCZngDCQAAAgUCYWgCAAkAlAoCBQJkdAUCZHYDCQAAAgUCZGoFAmRuAwkAZgIFAmZ1BQJkdAkAAgECFmludmFsaWQgcGF5bWVudCBhbW91bnQJAJQKAgkAZQIFAmR0BQJmdQUCZHYDCQAAAgUCZGoFAmRvAwkAZgIFAmZ1BQJkdgkAAgECFmludmFsaWQgcGF5bWVudCBhbW91bnQJAJQKAgUCZHQJAGUCBQJkdgUCZnUJAAIBAhB3cm9uZyBwbXRBc3NldElkBAJmeQgFAmZ4Al8xBAJmeggFAmZ4Al8yBAJmQQMJAAACBQJkagUCZG4JAJQKAgUCZnUAAAMJAAACBQJkagUCZG8JAJQKAgAABQJmdQkAAgECD2ludmFsaWQgcGF5bWVudAQCZkIIBQJmQQJfMQQCZkMIBQJmQQJfMgQCZkQDBQJmdgkAlQoDCAkBAmN6AgUCZkIFAmFWAl8xCAkBAmN6AgUCZkMFAmFWAl8xCAkBAmN6AgUCZnUFAmFWAl8yCQCVCgMFAmZCBQJmQwAABAJmRQgFAmZEAl8xBAJmRggFAmZEAl8yBAJjQggFAmZEAl8zBAJmRwkAZAIFAmZ5BQJmRQQCZkgJAGQCBQJmegUCZkYEAmNmCQECY0MBCQDMCAIJAQFIAgUCZnkFAmJzCQDMCAIJAQFIAgUCZnoFAmJ0BQNuaWwEAmNlCQECY0MBCQDMCAIJAQFIAgUCZkcFAmJzCQDMCAIJAQFIAgUCZkgFAmJ0BQNuaWwEAmVjAwkAvwICBQJjZQUCY2YGCQEFdGhyb3cAAwkAAAIFAmVjBQJlYwQCZkkJAL0CBAUCZVUJALgCAgUCY2UFAmNmBQJjZgUFRkxPT1IEAmR5CQEBTAIJAQJiVAIJAQFIAgUCZkgFAmRXCQEBSAIFAmZHBQJkVgUBYQQCZXYJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhYgAFAmR5CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWMCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJkeQkAzAgCCQELU3RyaW5nRW50cnkCCQECYWYCBQJkbAUCYWgJAQJiQwoFAmZCBQJmQwkAoAMBBQJmSQUCZHkAAAAABQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wAAAAAAUDbmlsBAJmSgkAawMFAmZ6BQFhBQJmeQQCZksJAGsDBQJmdQUBYQkAZAIFAmZKBQFhBAJmTAkAZQIFAmZ1BQJmSwQCZk0JALwCAwUCZVUJALYCAQUCZkwJALYCAQUCZnoEAmZOCQCgAwEJALwCAwkAuAICBQJmSQUCZk0FAWIFAmZNCQCWCgQJAKADAQUCZkkFAmV2BQJjQgUCZk4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmZPBgJmUAJmUQJmUgJmcQJmUwJmVAQCZG0JANgEAQkBBXZhbHVlAQUCYnAEAmRuCQDYBAEJAQV2YWx1ZQEFAmJxBAJkbwkA2AQBCQEFdmFsdWUBBQJicgQCZlUFAmJzBAJmVgUCYnQEAmZXBQJibwQCZGwDCQAAAgUCZnEFAmJCBQJmUwUCZnEEAmZvCQEFdmFsdWUBCQCRAwIFAmZSAAAEAmRqCQEFdmFsdWUBCAUCZm8HYXNzZXRJZAQCZFAIBQJmbwZhbW91bnQEAmVWCQECZU8DBQFlBQFlBQFlAwkAAAIFAmVWBQJlVgQCZGkJANgEAQUCZlQDCQECIT0CBQJkbQkA2AQBBQJkagkAAgECCFdyb25nIExQBAJkdAkBAmJSAQUCZG4EAmR2CQECYlIBBQJkbwQCZlgKAAJhVwkA/AcEBQR0aGlzAhNnZXRPbmVUa25WMlJFQURPTkxZCQDMCAIFAmZQCQDMCAIFAmRQBQNuaWwFA25pbAMJAAECBQJhVwIKKEludCwgSW50KQUCYVcJAAIBCQCsAgIJAAMBBQJhVwIfIGNvdWxkbid0IGJlIGNhc3QgdG8gKEludCwgSW50KQMJAAACBQJmWAUCZlgEAmNCCAUCZlgCXzIEAmZZCAUCZlgCXzEEAmZaAwMJAGYCBQJmUQAACQBmAgUCZlEFAmZZBwkBAmFSAQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJmUQUDbmlsAgAFAmZZBAJnYQMJAAACBQJmUAUCZG4JAJYKBAUCZloAAAkAZQIJAGUCBQJkdAUCZloFAmNCBQJkdgMJAAACBQJmUAUCZG8JAJYKBAAABQJmWgUCZHQJAGUCCQBlAgUCZHYFAmZaBQJjQgkAAgECFGludmFsaWQgb3V0IGFzc2V0IGlkBAJnYggFAmdhAl8xBAJnYwgFAmdhAl8yBAJmRwgFAmdhAl8zBAJmSAgFAmdhAl80BAJnZAkBAmJUAgkBAUgCBQJmSAUCZlYJAQFIAgUCZkcFAmZVBAJnZQkBAUwCBQJnZAUBYQQCZ2YDCQAAAgUCZlACBVdBVkVTBQR1bml0CQDZBAEFAmZQBAJnZwMJAGYCBQJjQgAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmJiBQJjQgUCZ2YFA25pbAUDbmlsBAJkRgkAzggCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmRsBQJmWgUCZ2YJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFpAgkApQgBBQJkbAUCZGkJAQJiTgYFAmdiBQJnYwUCZFAFAmdlBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWIABQJnZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFjAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZ2UFA25pbAUCZ2cDCQAAAgUCZEYFAmRGBAJnaAkA/AcEBQJhVQIEYnVybgkAzAgCBQJkUAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJkagUCZFAFA25pbAMJAAACBQJnaAUCZ2gEAmdpBAJnagMJAAACBQR0aGlzBQJiYgAABQJjQgQCZ2sDCQAAAgkBAmJnAQUCZlAFAmJxBgcDBQJnawkAlAoCCQEBLQEJAGQCBQJmWQUCZ2oAAAkAlAoCAAAJAQEtAQkAZAIFAmZZBQJnagQCZVgIBQJnaQJfMQQCZVkIBQJnaQJfMgQCZ2wJAQJlVwMFAmVYBQJlWQAABAJnbQgFAmdsAl8xBAJlTggFAmdsAl8yBAJnbgkBAmZhAgUCZVYFAmVOAwkAAAIFAmduBQJnbgkAlAoCCQDOCAIFAmRGBQJnbQUCZloJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmdvAAQCZ3AJAKIIAQkBAVoAAwkAAQIFAmdwAgZTdHJpbmcEAmNHBQJncAkA2QQBBQJjRwMJAAECBQJncAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJncQAEAmdwCQCiCAEJAQJhYQADCQABAgUCZ3ACBlN0cmluZwQCY0cFAmdwCQDZBAEFAmNHAwkAAQIFAmdwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAAmdyCQACAQIRUGVybWlzc2lvbiBkZW5pZWQBAmdzAQJjVAQCZ3AJAQJnbwADCQABAgUCZ3ACCkJ5dGVWZWN0b3IEAmd0BQJncAkAAAIIBQJjVA9jYWxsZXJQdWJsaWNLZXkFAmd0AwkAAQIFAmdwAgRVbml0CQAAAggFAmNUBmNhbGxlcgUEdGhpcwkAAgECC01hdGNoIGVycm9yAQJndQECY1QEAmdwCQECZ28AAwkAAQIFAmdwAgpCeXRlVmVjdG9yBAJndAUCZ3ADCQAAAggFAmNUD2NhbGxlclB1YmxpY0tleQUCZ3QGBQJncgMJAAECBQJncAIEVW5pdAMJAAACCAUCY1QGY2FsbGVyBQR0aGlzBgUCZ3IJAAIBAgtNYXRjaCBlcnJvcgECZ3YDAmd3AmV4Amd4BAJiawkBAmJjAAQCZG4JAJEDAgUCYmsFAXcEAmRvCQCRAwIFAmJrBQF4BAJleQUBZwQCZUEJAKcDAQUBbAQCY0gJALkCAgkApwMBBQJhWQUCZUEEAmNEAwkAAAIFAmd3BwkAzAgCCQC3AgIJALYCAQkBAmJSAQUCZG4FAmd4CQDMCAIJALYCAQkBAmJSAQUCZG8FA25pbAkAzAgCCQC3AgIJALYCAQkBAmJSAQUCZG8FAmd4CQDMCAIJALYCAQkBAmJSAQUCZG4FA25pbAQCZXoJAJEDAgUCY0QAAAQCY0cFAmV6BAJjSQkAuQICBQJjSAUCZXkEAmVCCQC6AgIJALkCAgkAuQICCQC6AgIJALkCAgUCZXgFAmV4CQC5AgIFAmV6BQJleQUCZXgFAmVBCQC5AgIFAmNJBQJleQQCZUMJALgCAgkAtwICBQJjRwkAugICCQC5AgIFAmV4BQJlQQUCY0kFAmV4CgECY1ICAmNTAmVEBAJneQUCY1MEAmVGCAUCZ3kCXzEEAmRnCAUCZ3kCXzIDCQECIT0CBQJkZwUEdW5pdAUCY1MEAmVHCQC6AgIJALcCAgkAuQICBQJlRgUCZUYFAmVCCQC3AgIJALkCAgUBZwUCZUYFAmVDBAJlSAkBAVgBCQC4AgIFAmVHCQEFdmFsdWUBBQJlRgMJAMACAgUBZgUCZUgJAJQKAgUCZUcFAmVECQCUCgIFAmVHBQR1bml0BAJjWAkAzAgCAAAJAMwIAgABCQDMCAIAAgkAzAgCAAMJAMwIAgAECQDMCAIABQkAzAgCAAYJAMwIAgAHCQDMCAIACAkAzAgCAAkJAMwIAgAKCQDMCAIACwkAzAgCAAwJAMwIAgANCQDMCAIADgUDbmlsBAJnegoAAmNaBQJjWAoAAmRhCQCQAwEFAmNaCgACZGIJAJQKAgUCZXgFBHVuaXQKAQJkYwICZGQCZGUDCQBnAgUCZGUFAmRhBQJkZAkBAmNSAgUCZGQJAJEDAgUCY1oFAmRlCgECZGYCAmRkAmRlAwkAZwIFAmRlBQJkYQUCZGQJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxNQkBAmRmAgkBAmRjAgkBAmRjAgkBAmRjAgkBAmRjAgkBAmRjAgkBAmRjAgkBAmRjAgkBAmRjAgkBAmRjAgkBAmRjAgkBAmRjAgkBAmRjAgkBAmRjAgkBAmRjAgkBAmRjAgUCZGIAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwQCZUYIBQJnegJfMQQCZGcIBQJnegJfMgMJAQIhPQIFAmRnBQR1bml0BQJlRgkAAgEJAKwCAgIZWSBjYWxjdWxhdGlvbiBlcnJvciwgWSA9IAkApgMBBQJlRgECZ0EACQELdmFsdWVPckVsc2UCCQCbCAIFAmFVCQECYUcBCQClCAEFBHRoaXMHHQJjVAEhY2FsY3VsYXRlQW1vdW50T3V0Rm9yU3dhcFJFQURPTkxZAwJnQgJndwJnQwQCZ0QDCQAAAgUCZ3cHBAJnRQkBAmFOAgUEdGhpcwkBAmFrAAQCZ3gJALcCAgkAtgIBCQECYlIBCQECYU4CBQR0aGlzCQECYWoACQC2AgEFAmdCCQCUCgIFAmdFBQJneAQCZ0UJAQJhTgIFBHRoaXMJAQJhagAEAmd4CQC3AgIJALYCAQkBAmJSAQkBAmFOAgUEdGhpcwkBAmFrAAkAtgIBBQJnQgkAlAoCBQJnRQUCZ3gEAmdFCAUCZ0QCXzEEAmd4CAUCZ0QCXzIEAmJrCQECYmMABAJkbgkAkQMCBQJiawUBdwQCZG8JAJEDAgUCYmsFAXgEAmNECQDMCAIJALYCAQkBAmJSAQUCZG4JAMwIAgkAtgIBCQECYlIBBQJkbwUDbmlsBAJleAkBAmNDAQUCY0QEAmVGCQECZ3YDBQJndwUCZXgJALYCAQUCZ0IEAmdGCQC4AgIJALgCAgkAtgIBCQECYlIBBQJnRQUCZUYJALYCAQABBAJnRwkAlgMBCQDMCAIAAAkAzAgCCQCgAwEFAmdGBQNuaWwEAmdIAwkAAAIFAmd3BwkAzAgCCQC3AgIJALcCAgkAtgIBCQECYlIBBQJkbgkAtgIBBQJnQgkAtgIBBQJnQwkAzAgCCQC4AgIJALYCAQkBAmJSAQUCZG8FAmdGBQNuaWwJAMwIAgkAuAICCQC2AgEJAQJiUgEFAmRuBQJnRgkAzAgCCQC3AgIJALcCAgkAtgIBCQECYlIBBQJkbwkAtgIBBQJnQgkAtgIBBQJnQwUDbmlsBAJnSQkBAmNDAQUCZ0gEAmVjAwkAwAICBQJnSQUCZXgGCQACAQkAuQkCCQDMCAICFG5ldyBEIGlzIGZld2VyIGVycm9yCQDMCAIJAKYDAQUCZXgJAMwIAgkApgMBBQJnSQUDbmlsAgJfXwMJAAACBQJlYwUCZWMJAJQKAgUDbmlsBQJnRwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjVAEmY2FsY3VsYXRlQW1vdW50T3V0Rm9yU3dhcEFuZFNlbmRUb2tlbnMFAmdCAmd3AmdKAmdLAmdDBAJnTAoAAmFXCQD8BwQFAmFVAhdnZXRTd2FwQ29udHJhY3RSRUFET05MWQUDbmlsBQNuaWwDCQABAgUCYVcCBlN0cmluZwUCYVcJAAIBCQCsAgIJAAMBBQJhVwIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nBAJnTQkAzAgCAwkAZwIICQEFdmFsdWUBCQCRAwIIBQJjVAhwYXltZW50cwAABmFtb3VudAUCZ0IGCQECYVIBAgxXcm9uZyBhbW91bnQJAMwIAgMJAAACCAUCY1QGY2FsbGVyCQERQGV4dHJOYXRpdmUoMTA2MikBBQJnTAYJAQJhUgECEVBlcm1pc3Npb24gZGVuaWVkBQNuaWwDCQAAAgUCZ00FAmdNBAJmbwkBBXZhbHVlAQkAkQMCCAUCY1QIcGF5bWVudHMAAAQCZ04JAQJiaQEIBQJmbwdhc3NldElkBAJnTwMJAAACBQJndwcEAmdFCQECYU4CBQR0aGlzCQECYWsABAJneAkAZQIJAQJiUgEFAmdOCAkBBXZhbHVlAQkAkQMCCAUCY1QIcGF5bWVudHMAAAZhbW91bnQJAJQKAgUCZ0UFAmd4BAJnRQkBAmFOAgUEdGhpcwkBAmFqAAQCZ3gJAGUCCQECYlIBBQJnTggJAQV2YWx1ZQEJAJEDAggFAmNUCHBheW1lbnRzAAAGYW1vdW50CQCUCgIFAmdFBQJneAQCZ0UIBQJnTwJfMQQCZ3gIBQJnTwJfMgQCYmsJAQJiYwAEAmRuCQCRAwIFAmJrBQF3BAJkbwkAkQMCBQJiawUBeAQCY0QDCQAAAgUCZ3cHCQDMCAIJALgCAgkAtgIBCQECYlIBBQJkbgkAtgIBCAkBBXZhbHVlAQkAkQMCCAUCY1QIcGF5bWVudHMAAAZhbW91bnQJAMwIAgkAtgIBCQECYlIBBQJkbwUDbmlsCQDMCAIJALYCAQkBAmJSAQUCZG4JAMwIAgkAuAICCQC2AgEJAQJiUgEFAmRvCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJjVAhwYXltZW50cwAABmFtb3VudAUDbmlsBAJleAkBAmNDAQUCY0QEAmVGCQECZ3YDBQJndwUCZXgJALYCAQAABAJnRgkAuAICCQC4AgIJALYCAQkBAmJSAQUCZ0UFAmVGCQC2AgEAAQQCZ0cJAJYDAQkAzAgCAAAJAMwIAgkAoAMBBQJnRgUDbmlsBAJnUAMJAGcCBQJnRwUCZ0oGCQACAQIsRXhjaGFuZ2UgcmVzdWx0IGlzIGZld2VyIGNvaW5zIHRoYW4gZXhwZWN0ZWQDCQAAAgUCZ1AFAmdQBAJnSAMJAAACBQJndwcJAMwIAgkAtwICCQC2AgEJAQJiUgEFAmRuCQC2AgEFAmdDCQDMCAIJALgCAgkAtgIBCQECYlIBBQJkbwUCZ0YFA25pbAkAzAgCCQC4AgIJALYCAQkBAmJSAQUCZG4FAmdGCQDMCAIJALcCAgkAtgIBCQECYlIBBQJkbwkAtgIBBQJnQwUDbmlsBAJnSQkBAmNDAQUCZ0gEAmVjAwkAwAICBQJnSQUCZXgGCQACAQIUbmV3IEQgaXMgZmV3ZXIgZXJyb3IDCQAAAgUCZWMFAmVjCQCUCgIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUCZ0sFAmdHCQECYmcBBQJnRQUDbmlsBQJnRwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjVAELY29uc3RydWN0b3IBAVkEAmVCCQECZ3UBBQJjVAMJAAACBQJlQgUCZUIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVkABQFZBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY1QBCnNldE1hbmFnZXIBAmdRBAJlQgkBAmd1AQUCY1QDCQAAAgUCZUIFAmVCBAJnUgkA2QQBBQJnUQMJAAACBQJnUgUCZ1IJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFhAAUCZ1EFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjVAEOY29uZmlybU1hbmFnZXIABAJjeQkBAmdxAAQCZ1MDCQEJaXNEZWZpbmVkAQUCY3kGCQACAQISTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmdTBQJnUwQCZ1QDCQAAAggFAmNUD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCY3kGCQACAQIbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmdUBQJnVAkAzAgCCQELU3RyaW5nRW50cnkCCQEBWgAJANgEAQkBBXZhbHVlAQUCY3kJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFhAAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNUAQNwdXQCAmdVAmdWBAJnVwkBAmJ3AAQCZ1gJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmdXBQFDAgpXciBzdCBhZGRyBAJnWQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCZ1cFAUUCCldyIHNsIGFkZHIDCQBmAgAABQJnVQkAAgECDldyb25nIHNsaXBwYWdlAwkBAiE9AgkAkAMBCAUCY1QIcGF5bWVudHMAAgkAAgECDDIgcG1udHMgZXhwZAQCZ1oJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmNUCHBheW1lbnRzAAAGYW1vdW50BAJoYQkAtgIBCAkBBXZhbHVlAQkAkQMCCAUCY1QIcGF5bWVudHMAAQZhbW91bnQEAmVTCQC4AgIJALYCAQkBAmJSAQkBAmJpAQUCYnEFAmdaAwkAAAIFAmVTBQJlUwQCZVQJALgCAgkAtgIBCQECYlIBCQECYmkBBQJicgUCaGEDCQAAAgUCZVQFAmVUBAJlVQkAtgIBCAkBBXZhbHVlAQkA7AcBBQJicAhxdWFudGl0eQMJAAACBQJlVQUCZVUEAmVWCQECZU8DBQJnWgUCaGEJALYCAQAAAwkAAAIFAmVWBQJlVgQCaGIJAQJmcAoJAKUIAQgFAmNUBmNhbGxlcgkA2AQBCAUCY1QNdHJhbnNhY3Rpb25JZAkBD0F0dGFjaGVkUGF5bWVudAIICQEFdmFsdWUBCQCRAwIIBQJjVAhwYXltZW50cwAAB2Fzc2V0SWQICQEFdmFsdWUBCQCRAwIIBQJjVAhwYXltZW50cwAABmFtb3VudAkAkQMCCAUCY1QIcGF5bWVudHMAAQUCZ1UGBwYAAAIABAJlcAgFAmhiAl8yBAJoYwgFAmhiAl83BAJkRggFAmhiAl85BAJlcQgFAmhiA18xMAQCZXIIBQJoYgNfMTEEAmRuCAUCaGIDXzEyBAJkbwgFAmhiA18xMwQCZWIJAPwHBAUCYVUCBGVtaXQJAMwIAgUCZXAFA25pbAUDbmlsAwkAAAIFAmViBQJlYgQCaGQEAmdwBQJlYgMJAAECBQJncAIHQWRkcmVzcwQCaGUFAmdwCQD8BwQFAmhlAgRlbWl0CQDMCAIFAmVwBQNuaWwFA25pbAUEdW5pdAMJAAACBQJoZAUCaGQEAmhmAwkAZgIFAmVxAAAJAPwHBAUCZ1kCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJkbgUCZXEFA25pbAUDbmlsAwkAAAIFAmhmBQJoZgQCaGcDCQBmAgUCZXIAAAkA/AcEBQJnWQIDcHV0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmRvBQJlcgUDbmlsBQNuaWwDCQAAAgUCaGcFAmhnBAJoaAMFAmdWBAJoaQkA/AcEBQJnWAIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCaGMFAmVwBQNuaWwDCQAAAgUCaGkFAmhpBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmNUBmNhbGxlcgUCZXAFAmhjBQNuaWwEAmhqCQECZVcDAAAAAAAABAJnbQgFAmhqAl8xBAJlTggFAmhqAl8yBAJoawMJAMACAgUCZU4FAmVWBgkBAmFSAQkAuQkCCQDMCAICInVwZGF0ZWQgRExwIGxvd2VyIHRoYW4gY3VycmVudCBETHAJAMwIAgkApgMBBQJlUwkAzAgCCQCmAwEFAmVUCQDMCAIJAKYDAQUCZVUJAMwIAgkApgMBBQJlVgkAzAgCCQCmAwEFAmVOCQDMCAIJAKQDAQUCZXEJAMwIAgkApAMBBQJlcgUDbmlsAgEgAwkAAAIFAmhrBQJoawQCaGwICQEFdmFsdWUBCQDsBwEFAmJwCHF1YW50aXR5AwkAAAIFAmhsBQJobAkAzggCCQDOCAIFAmRGBQJoaAUCZ20JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY1QBC3B1dE9uZVRrblYyAgJmUQJnVgQCaG0KAAJhVwkA/AcEBQJhVQIoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmFXAgdCb29sZWFuBQJhVwkAAgEJAKwCAgkAAwEFAmFXAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJobgMDAwkBAmFaAAYJAAACBQJibwUBcQYJAAACBQJibwUBcwYFAmhtBAJnTQkAzAgCAwMJAQEhAQUCaG4GCQECZ3MBBQJjVAYJAQJhUgECIXB1dCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmNUCHBheW1lbnRzAAEGCQECYVIBAh5leGFjdGx5IDEgcGF5bWVudCBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJnTQUCZ00EAmRuCQDYBAEJAQV2YWx1ZQEFAmJxBAJkbwkA2AQBCQEFdmFsdWUBBQJicgQCZG0FAmJwBAJmVQUCYnMEAmZWBQJidAQCZGwDCQAAAggFAmNUBmNhbGxlcgUEdGhpcwgFAmNUDG9yaWdpbkNhbGxlcggFAmNUBmNhbGxlcgQCZm8JAQV2YWx1ZQEJAJEDAggFAmNUCHBheW1lbnRzAAAEAmRqCQDYBAEJAQV2YWx1ZQEIBQJmbwdhc3NldElkBAJkUAgFAmZvBmFtb3VudAQCZVYDCQAAAggFAmZvB2Fzc2V0SWQFAmJxCQECZU8DCQC2AgEFAmRQCQC2AgEAAAkAtgIBAAAJAQJlTwMJALYCAQAACQC2AgEFAmRQCQC2AgEAAAMJAAACBQJlVgUCZVYEAmhvCQECZnQFBQJkUAUCZGoJAKUIAQUCZGwJANgEAQgFAmNUDXRyYW5zYWN0aW9uSWQGAwkAAAIFAmhvBQJobwQCY0IIBQJobwJfMwQCZEYIBQJobwJfMgQCaHAIBQJobwJfMQQCZXADAwkAZgIFAmZRAAAJAGYCBQJmUQUCaHAHCQECYVIBCQC5CQIJAMwIAgIfYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmZRBQNuaWwCAAUCaHAEAmhiCQD8BwQFAmFVAgRlbWl0CQDMCAIFAmVwBQNuaWwFA25pbAMJAAACBQJoYgUCaGIEAmhkBAJncAUCaGIDCQABAgUCZ3ACB0FkZHJlc3MEAmhlBQJncAkA/AcEBQJoZQIEZW1pdAkAzAgCBQJlcAUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCaGQFAmhkBAJoaAMFAmdWBAJoaQkA/AcEBQJieQIIc3Rha2VGb3IJAMwIAgkApQgBCAUCY1QGY2FsbGVyBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmRtBQJlcAUDbmlsAwkAAAIFAmhpBQJoaQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJjVAZjYWxsZXIFAmVwBQJkbQUDbmlsBAJnZwMJAGYCBQJjQgAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmJiBQJjQgkA2QQBBQJkagUDbmlsBQNuaWwEAmhxAwkAAAIFBHRoaXMFAmJiCQCUCgIAAAAABAJocgMJAAACCAUCZm8HYXNzZXRJZAUCYnEGBwMFAmhyCQCUCgIJAQEtAQUCY0IAAAkAlAoCAAAJAQEtAQUCY0IEAmVYCAUCaHECXzEEAmVZCAUCaHECXzIEAmhzCQECZVcDBQJlWAUCZVkAAAQCZ20IBQJocwJfMQQCZU4IBQJocwJfMgQCZ24JAQJmYQIFAmVWBQJlTgMJAAACBQJnbgUCZ24JAJQKAgkAzggCCQDOCAIJAM4IAgUCZEYFAmhoBQJnZwUCZ20FAmVwCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNUAQpwdXRGb3JGcmVlAQJodAMJAGYCAAAFAmh0CQACAQIKV3Jvbmcgc2xwZwMJAQIhPQIJAJADAQgFAmNUCHBheW1lbnRzAAIJAAIBAgwyIHBtbnRzIGV4cGQEAmh1CQECZnAKCQClCAEIBQJjVAZjYWxsZXIJANgEAQgFAmNUDXRyYW5zYWN0aW9uSWQJAQ9BdHRhY2hlZFBheW1lbnQCCAkBBXZhbHVlAQkAkQMCCAUCY1QIcGF5bWVudHMAAAdhc3NldElkCAkBBXZhbHVlAQkAkQMCCAUCY1QIcGF5bWVudHMAAAZhbW91bnQJAJEDAggFAmNUCHBheW1lbnRzAAEFAmh0BwcGAAACAAQCZEYIBQJodQJfOQQCZ1oJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmNUCHBheW1lbnRzAAAGYW1vdW50BAJoYQkAtgIBCAkBBXZhbHVlAQkAkQMCCAUCY1QIcGF5bWVudHMAAQZhbW91bnQEAmVWCQECZU8DBQJnWgUCaGEJALYCAQAAAwkAAAIFAmVWBQJlVgQCaHYJAQJlVwMAAAAAAAAEAmdtCAUCaHYCXzEEAmVOCAUCaHYCXzIEAmduCQECZmECBQJlVgUCZU4DCQAAAgUCZ24FAmduCQDOCAIFAmRGBQJnbQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjVAEDZ2V0AAQCZVYJAQJlTwMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZVYFAmVWBAJlYgkBAmZuAQUCY1QEAmh3CAUCZWICXzEEAmRFCAUCZWICXzIEAmRQCAUCZWICXzMEAmRqCAUCZWICXzQEAmRGCAUCZWICXzUEAmVDCQD8BwQFAmFVAgRidXJuCQDMCAIFAmRQBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmRqBQJkUAUDbmlsAwkAAAIFAmVDBQJlQwQCaHgJAQJlVwMJAQEtAQUCaHcJAQEtAQUCZEUAAAQCZ20IBQJoeAJfMQQCZU4IBQJoeAJfMgQCZ24JAQJmYQIFAmVWBQJlTgMJAAACBQJnbgUCZ24JAM4IAgUCZEYFAmdtCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNUAQtnZXRPbmVUa25WMgICZlACZlEEAmhtCgACYVcJAPwHBAUCYVUCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJhVwIHQm9vbGVhbgUCYVcJAAIBCQCsAgIJAAMBBQJhVwIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCaHkDAwkBAmFaAAYJAAACBQJibwUBcwYFAmhtBAJnTQkAzAgCAwMJAQEhAQUCaHkGCQECZ3MBBQJjVAYJAQJhUgECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmNUCHBheW1lbnRzAAEGCQECYVIBAh5leGFjdGx5IDEgcGF5bWVudCBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJnTQUCZ00EAmh6CQECZk8GBQJmUAUCZlEIBQJjVAhwYXltZW50cwgFAmNUBmNhbGxlcggFAmNUDG9yaWdpbkNhbGxlcggFAmNUDXRyYW5zYWN0aW9uSWQEAmRGCAUCaHoCXzEEAmZaCAUCaHoCXzIJAJQKAgUCZEYFAmZaCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNUAQpyZWZyZXNoRExwAAQCaEEJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUCYXMAAAQCaEIDCQBnAgkAZQIFBmhlaWdodAUCaEEFAmF2BQR1bml0CQECYVIBCQC5CQIJAMwIAgkApAMBBQJhdgkAzAgCAi8gYmxvY2tzIGhhdmUgbm90IHBhc3NlZCBzaW5jZSB0aGUgcHJldmlvdXMgY2FsbAUDbmlsAgADCQAAAgUCaEIFAmhCBAJmaAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCoAwEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUCYXICATAJAQJhVAECC2ludmFsaWQgZExwBAJoQwkBAmVXAwAAAAAAAAQCaEQIBQJoQwJfMQQCZU4IBQJoQwJfMgQCZVoDCQECIT0CBQJmaAUCZU4FAmhECQECYVIBAhJub3RoaW5nIHRvIHJlZnJlc2gJAJQKAgUCZVoJAKYDAQUCZU4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY1QBE2dldE9uZVRrblYyUkVBRE9OTFkCAmZQAmhFBAJkbgkA2AQBCQEFdmFsdWUBBQJicQQCZG8JANgEAQkBBXZhbHVlAQUCYnIEAmRtCQDYBAEJAQV2YWx1ZQEFAmJwBAJjRAkAzAgCCQC2AgEJAQJiUgEFAmRuCQDMCAIJALYCAQkBAmJSAQUCZG8FA25pbAQCZU0JALYCAQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBCQDZBAEFAmRtAhBpbnZhbGlkIGxwIGFzc2V0CHF1YW50aXR5BAJjZgkBAmNDAQUCY0QEAmNlCQC4AgIFAmNmCQC8AgMJALYCAQUCaEUFAmNmBQJlTQQCaEYDCQAAAgUCZlAFAmRuAAADCQAAAgUCZlAFAmRvAAEJAAIBAhRpbnZhbGlkIG91dCBhc3NldCBpZAQCaEcJAQJldwMFAmNEBQJoRgUCY2UEAmdGCQC4AgIJAJEDAgUCY0QFAmhGBQJoRwQCZ0cJAJYDAQkAzAgCAAAJAMwIAgkAoAMBCQC4AgIFAmdGBQFmBQNuaWwEAmhICQECY3oCBQJnRwUCYVgEAmZZCAUCaEgCXzEEAmNCCAUCaEgCXzIJAJQKAgUDbmlsCQCUCgIFAmZZBQJjQgJjVAEcZ2V0T25lVGtuVjJXaXRoQm9udXNSRUFET05MWQICZlACaEUEAmRuCQDYBAEJAQV2YWx1ZQEFAmJxBAJkbwkA2AQBCQEFdmFsdWUBBQJicgQCZG0JANgEAQkBBXZhbHVlAQUCYnAEAmR0CQECYlIBBQJkbgQCZHYJAQJiUgEFAmRvBAJoSQoAAmFXCQD8BwQFBHRoaXMCE2dldE9uZVRrblYyUkVBRE9OTFkJAMwIAgUCZlAJAMwIAgUCaEUFA25pbAUDbmlsAwkAAQIFAmFXAgooSW50LCBJbnQpBQJhVwkAAgEJAKwCAgkAAwEFAmFXAh8gY291bGRuJ3QgYmUgY2FzdCB0byAoSW50LCBJbnQpBAJmWQgFAmhJAl8xBAJjQggFAmhJAl8yBAJlYgkBAmRoBAIABQJkbQUCaEUFBHRoaXMEAmRECAUCZWICXzEEAmRFCAUCZWICXzIEAmhKCQBkAgUCZEQFAmRFBAJmTgMJAAACBQJoSgAAAwkAAAIFAmZZAAAAAAkAAgECF2JvbnVzIGNhbGN1bGF0aW9uIGVycm9yCQBrAwkAZQIFAmZZBQJoSgUBYQUCaEoJAJQKAgUDbmlsCQCVCgMFAmZZBQJjQgUCZk4CY1QBCWdldE5vTGVzcwICaEsCaEwEAmViCQECZm4BBQJjVAQCZEQIBQJlYgJfMQQCZEUIBQJlYgJfMgQCZFAIBQJlYgJfMwQCZGoIBQJlYgJfNAQCZEYIBQJlYgJfNQMJAGYCBQJoSwUCZEQJAAIBCQCsAgIJAKwCAgkArAICAglGYWlsZWQ6ICAJAKQDAQUCZEQCAyA8IAkApAMBBQJoSwMJAGYCBQJoTAUCZEUJAAIBCQCsAgIJAKwCAgkArAICAghGYWlsZWQ6IAkApAMBBQJkRQIDIDwgCQCkAwEFAmhMBAJlVgkBAmVPAwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJlVgUCZVYEAmhNCQD8BwQFAmFVAgRidXJuCQDMCAIFAmRQBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmRqBQJkUAUDbmlsAwkAAAIFAmhNBQJoTQQCaE4JAQJlVwMJAQEtAQUCZEQJAQEtAQUCZEUAAAQCZ20IBQJoTgJfMQQCZU4IBQJoTgJfMgQCZ24JAQJmYQIFAmVWBQJlTgMJAAACBQJnbgUCZ24JAM4IAgUCZEYFAmdtCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNUAQ11bnN0YWtlQW5kR2V0AQJjQQQCaE8DCQECIT0CCQCQAwEIBQJjVAhwYXltZW50cwAACQACAQINTm8gcG1udHMgZXhwZAYDCQAAAgUCaE8FAmhPBAJoUAkBAmJ3AAQCaGMFAmJwBAJoUQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCaFAFAUMCCldyIHN0IGFkZHIEAmVWCQECZU8DCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmVWBQJlVgQCaFIJAPwHBAUCaFECB3Vuc3Rha2UJAMwIAgkA2AQBBQJoYwkAzAgCBQJjQQUDbmlsBQNuaWwDCQAAAgUCaFIFAmhSBAJlYgkBAmRoBAkA2AQBCAUCY1QNdHJhbnNhY3Rpb25JZAkA2AQBBQJoYwUCY0EIBQJjVAZjYWxsZXIEAmRECAUCZWICXzEEAmRFCAUCZWICXzIEAmRyCQENcGFyc2VJbnRWYWx1ZQEIBQJlYgJfOQQCZEYIBQJlYgNfMTAEAmhTAwMJAQJhWgAGCQAAAgUCZHIFAXMJAAIBCQCsAgICCUJsb2NrZWQ6IAkApAMBBQJkcgYDCQAAAgUCaFMFAmhTBAJoVAkA/AcEBQJhVQIEYnVybgkAzAgCBQJjQQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJoYwUCY0EFA25pbAMJAAACBQJoVAUCaFQEAmhVCQECZVcDCQEBLQEFAmRECQEBLQEFAmRFAAAEAmdtCAUCaFUCXzEEAmVOCAUCaFUCXzIEAmduCQECZmECBQJlVgUCZU4DCQAAAgUCZ24FAmduCQDOCAIFAmRGBQJnbQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjVAETdW5zdGFrZUFuZEdldE5vTGVzcwMCaFYCaFcCaEwEAmh5AwkBAmFaAAYJAAACBQJibwUBcwQCZ00JAMwIAgMJAQEhAQUCaHkGCQACAQIhZ2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCY1QIcGF5bWVudHMAAAYJAAIBAhhubyBwYXltZW50cyBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJnTQUCZ00EAmVWCQECZU8DCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmVWBQJlVgQCaFIJAPwHBAUCYnkCB3Vuc3Rha2UJAMwIAgkA2AQBBQJicAkAzAgCBQJoVgUDbmlsBQNuaWwDCQAAAgUCaFIFAmhSBAJoWAkBAmRoBAkA2AQBCAUCY1QNdHJhbnNhY3Rpb25JZAkA2AQBBQJicAUCaFYIBQJjVAZjYWxsZXIEAmRECAUCaFgCXzEEAmRFCAUCaFgCXzIEAmRGCAUCaFgDXzEwBAJoWQkAzAgCAwkAZwIFAmREBQJoVwYJAAIBCQC5CQIJAMwIAgIsYW1vdW50IGFzc2V0IGFtb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJoVwUDbmlsAgAJAMwIAgMJAGcCBQJkRQUCaEwGCQACAQkAuQkCCQDMCAICK3ByaWNlIGFzc2V0IGFtb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJoTAUDbmlsAgAFA25pbAMJAAACBQJoWQUCaFkEAmhNCQD8BwQFAmFVAgRidXJuCQDMCAIFAmhWBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJwBQJoVgUDbmlsAwkAAAIFAmhNBQJoTQQCaFoJAQJlVwMJAQEtAQUCZEQJAQEtAQUCZEUAAAQCZ20IBQJoWgJfMQQCZU4IBQJoWgJfMgQCZ24JAQJmYQIFAmVWBQJlTgMJAAACBQJnbgUCZ24JAM4IAgUCZEYFAmdtCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNUARV1bnN0YWtlQW5kR2V0T25lVGtuVjIDAmhWAmZQAmZRBAJobQoAAmFXCQD8BwQFAmFVAihpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYVcCB0Jvb2xlYW4FAmFXCQACAQkArAICCQADAQUCYVcCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmh5AwMJAQJhWgAGCQAAAgUCYm8FAXMGBQJobQQCZ00JAMwIAgMDCQEBIQEFAmh5BgkBAmdzAQUCY1QGCQECYVIBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJjVAhwYXltZW50cwAABgkBAmFSAQIYbm8gcGF5bWVudHMgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZ00FAmdNBAJoUAkBAmJ3AAQCaGMFAmJwBAJoUQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCaFAFAUMCCldyIHN0IGFkZHIEAmRsCAUCY1QGY2FsbGVyBAJpYQUEdGhpcwQCaFIJAPwHBAUCaFECD3Vuc3Rha2VJTlRFUk5BTAkAzAgCBQJoYwkAzAgCBQJoVgkAzAgCCAUCZGwFYnl0ZXMJAMwIAggFAmlhBWJ5dGVzBQNuaWwFA25pbAMJAAACBQJoUgUCaFIEAmliCQECZk8GBQJmUAUCZlEJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmhjBQJoVgUDbmlsCAUCY1QGY2FsbGVyCAUCY1QMb3JpZ2luQ2FsbGVyCAUCY1QNdHJhbnNhY3Rpb25JZAQCZEYIBQJpYgJfMQQCZloIBQJpYgJfMgkAlAoCBQJkRgUCZloJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY1QBHHB1dE9uZVRrblYyV2l0aEJvbnVzUkVBRE9OTFkCAmljAmlkBAJpZQkBAmZ0BQUCaWMFAmlkAgACAAYEAmZJCAUCaWUCXzEEAmRGCAUCaWUCXzIEAmNCCAUCaWUCXzMEAmZOCAUCaWUCXzQJAJQKAgUDbmlsCQCVCgMFAmZJBQJjQgUCZk4CY1QBIXB1dE9uZVRrblYyV2l0aG91dFRha2VGZWVSRUFET05MWQICaWMCaWQEAmlmCQECZnQFBQJpYwUCaWQCAAIABwQCZkkIBQJpZgJfMQQCZEYIBQJpZgJfMgQCY0IIBQJpZgJfMwQCZk4IBQJpZgJfNAkAlAoCBQNuaWwJAJUKAwUCZkkFAmNCBQJmTgJjVAEIYWN0aXZhdGUCAmlnAmloAwkBAiE9AgkApQgBCAUCY1QGY2FsbGVyCQClCAEFAmFVCQACAQIGZGVuaWVkCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFqAAUCaWcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFrAAUCaWgFA25pbAIHc3VjY2VzcwJjVAEcZ2V0UG9vbENvbmZpZ1dyYXBwZXJSRUFET05MWQAJAJQKAgUDbmlsCQECYmMAAmNUARxnZXRBY2NCYWxhbmNlV3JhcHBlclJFQURPTkxZAQJiUwkAlAoCBQNuaWwJAQJiUgEFAmJTAmNUARljYWxjUHJpY2VzV3JhcHBlclJFQURPTkxZAwJjbAJjbQJjcQQCaWkJAQJjcAMFAmNsBQJjbQUCY3EJAJQKAgUDbmlsCQDMCAIJAKYDAQkAkQMCBQJpaQAACQDMCAIJAKYDAQkAkQMCBQJpaQABCQDMCAIJAKYDAQkAkQMCBQJpaQACBQNuaWwCY1QBFmZyb21YMThXcmFwcGVyUkVBRE9OTFkCAU0CaWoJAJQKAgUDbmlsCQEBTAIJAKcDAQUBTQUCaWoCY1QBFHRvWDE4V3JhcHBlclJFQURPTkxZAgFJAUoJAJQKAgUDbmlsCQCmAwEJAQFIAgUBSQUBSgJjVAEeY2FsY1ByaWNlQmlnSW50V3JhcHBlclJFQURPTkxZAgJiVQJiVgkAlAoCBQNuaWwJAKYDAQkBAmJUAgkApwMBBQJiVQkApwMBBQJiVgJjVAEjZXN0aW1hdGVQdXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkJAmRpAmNhAmRIAmRJAmRKAmRLAmlrAmRMAmRNCQCUCgIFA25pbAkBAmRHDQUCZGkFAmNhBQJkSAUCZEkFAmRKBQJkSwUCaWsFAmRMBQJkTQYHAAACAAJjVAEjZXN0aW1hdGVHZXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkEAmRpAmlsAmRrAmlrBAJlYgkBAmRoBAUCZGkFAmlsBQJkawkBEUBleHRyTmF0aXZlKDEwNjIpAQUCaWsJAJQKAgUDbmlsCQCcCgoIBQJlYgJfMQgFAmViAl8yCAUCZWICXzMIBQJlYgJfNAgFAmViAl81CAUCZWICXzYIBQJlYgJfNwkApgMBCAUCZWICXzgIBQJlYgJfOQgFAmViA18xMAJjVAEJY2hhbmdlQW1wAAQCaW0JAPwHBAUCYVUCGmdldENoYW5nZUFtcENvbmZpZ1JFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwEAmluBAJncAUCaW0DCQABAgUCZ3ACCUxpc3RbQW55XQQCaW8FAmdwCQCVCgMKAAJhVwkAkQMCBQJpbwAAAwkAAQIFAmFXAgNJbnQFAmFXCQACAQkArAICCQADAQUCYVcCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAoAAmFXCQCRAwIFAmlvAAEDCQABAgUCYVcCA0ludAUCYVcJAAIBCQCsAgIJAAMBBQJhVwIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50CgACYVcJAJEDAgUCaW8AAgMJAAECBQJhVwIDSW50BQJhVwkAAgEJAKwCAgkAAwEFAmFXAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQJAQJhUgECEmludmFsaWQgZW50cnkgdHlwZQQCaXAIBQJpbgJfMQQCaXEIBQJpbgJfMgQCaXIIBQJpbgJfMwQCaXMJAQ1wYXJzZUludFZhbHVlAQkBEUBleHRyTmF0aXZlKDEwNTgpAQkBAmFsAAQCaXQJAGQCBQJpcwUCaXEEAml1AwkAZgIAAAUCaXEDCQBmAgUCaXIFAml0BQJpcgUCaXQDCQBmAgUCaXQFAmlyBQJpcgUCaXQEAml2CQELdmFsdWVPckVsc2UCCQCfCAEJAQJhbwAAAAQCaXcJAGQCBQJpdgUCaXAEAmdNCQDMCAIDCQBmAgUGaGVpZ2h0BQJpdwYJAQJhUgECF3RyeSBhZ2FpbiBpbiBmZXcgYmxvY2tzCQDMCAIDCQECIT0CBQJpcwUCaXUGCQECYVIBAhZhbHJlYWR5IHJlYWNoZWQgdGFyZ2V0BQNuaWwDCQAAAgUCZ00FAmdNCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYW8ABQZoZWlnaHQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFsAAkApAMBBQJpdQkAzAgCCQELU3RyaW5nRW50cnkCCQECYW0BBQZoZWlnaHQJAKQDAQUCaXUFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECaXgBAml5AAQCaXoEAmdwCQECZ28AAwkAAQIFAmdwAgpCeXRlVmVjdG9yBAJndAUCZ3AFAmd0AwkAAQIFAmdwAgRVbml0CAUCaXgPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IEAmdwBQJpeAMJAAECBQJncAIFT3JkZXIEAmZkBQJncAQCaUEJAQJiYQAEAmlCAwkBAmdBAAkAlAoCBgIACQECZmMBBQJmZAQCYUoIBQJpQgJfMQQCYUsIBQJpQgJfMgQCYUwJAPQDAwgFAmZkCWJvZHlCeXRlcwkAkQMCCAUCZmQGcHJvb2ZzAAAIBQJmZA9zZW5kZXJQdWJsaWNLZXkEAmFNCQD0AwMIBQJmZAlib2R5Qnl0ZXMJAJEDAggFAmZkBnByb29mcwABBQJpQQMDAwUCYUoFAmFMBwUCYU0HBgkBAmFJBAUCYUoFAmFLBQJhTAUCYU0DCQABAgUCZ3ACFFNldFNjcmlwdFRyYW5zYWN0aW9uBAJjRwUCZ3ADCQD0AwMIBQJpeAlib2R5Qnl0ZXMJAJEDAggFAml4BnByb29mcwAABQJpegYEAmlDCQD2AwEJAQV2YWx1ZQEIBQJjRwZzY3JpcHQEAmlECQDbBAEJAQV2YWx1ZQEJAJ0IAgUCYVUJAQJhRQAEAmlFCQDxBwEFBHRoaXMDCQAAAgUCaUQFAmlDCQECIT0CBQJpRQUCaUMHCQD0AwMIBQJpeAlib2R5Qnl0ZXMJAJEDAggFAml4BnByb29mcwAABQJpeigbTyU=", "height": 2559815, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: ExGc3NgbitCdkWmd3LQDw56uxJcgkdic1PkSm1TXZ8mH Next: CJASj7QXvp6QQUVdoaVjmEpTFAcPkCXUabAvTkycPBWr Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = true
4+let a = 100000000
55
6-let b = 100000000
6+let b = toBigInt(100000000)
77
8-let c = toBigInt(100000000)
8+let c = toBigInt(1000000000000000000)
99
10-let d = toBigInt(1000000000000000000)
10+let d = toBigInt(0)
1111
1212 let e = toBigInt(0)
1313
14-let f = toBigInt(0)
14+let f = toBigInt(1)
1515
16-let g = toBigInt(1)
16+let g = toBigInt(2)
1717
18-let h = toBigInt(2)
18+let h = toBigInt(3)
1919
20-let i = toBigInt(3)
20+let i = toBigInt(4)
2121
22-let j = toBigInt(4)
22+let j = toBigInt((a - ((a * 1) / a)))
2323
24-let k = toBigInt((b - ((b * 1) / b)))
24+let k = "WAVES"
2525
26-let l = "WAVES"
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, b, 10000)
71-
72-func I (J,K) = fraction(toBigInt(J), d, toBigInt(K))
70+func H (I,J) = fraction(toBigInt(I), c, toBigInt(J))
7371
7472
75-func L (J,K) = fraction(J, d, K)
73+func K (I,J) = fraction(I, c, J)
7674
7775
78-func M (N,O) = toInt(fraction(N, toBigInt(O), d))
76+func L (M,N) = toInt(fraction(M, toBigInt(N), c))
7977
8078
81-func P (N,O,Q) = toInt(fraction(N, toBigInt(O), d, Q))
79+func O (M,N,P) = toInt(fraction(M, toBigInt(N), c, P))
8280
8381
84-func R (J,K) = fraction(J, d, toBigInt(K))
82+func Q (I,J) = fraction(I, c, toBigInt(J))
8583
8684
87-func S (N,O) = fraction(N, toBigInt(O), d)
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 ((e > 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 ((e > 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 == l))
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))
233- then l
234- else toBase58String(value(bi))
230+func bi (bh) = if ((bh == unit))
231+ then k
232+ else toBase58String(value(bh))
235233
236234
237-func bk (bl) = $Tuple9(addressFromStringValue(bl[u]), parseIntValue(bl[v]), fromBase58String(bl[w]), bh(bl[x]), bh(bl[y]), parseIntValue(bl[z]), parseIntValue(bl[A]), fromBase58String(bl[B]), fromBase58String(bl[C]))
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-let bv = bn._8
256+let bu = bm._8
259257
260-let bw = bn._9
258+let bv = bm._9
261259
262-func bx () = split(aO(aV, ax()), o)
260+func bw () = split(aN(aU, aw()), n)
263261
264262
265-let by = bx()
263+let bx = bw()
266264
267-let bz = valueOrErrorMessage(addressFromString(by[D]), "Invalid staking contract address")
265+let by = valueOrErrorMessage(addressFromString(bx[C]), "Invalid staking contract address")
268266
269-let bA = valueOrErrorMessage(addressFromString(by[F]), "Invalid slipage contract address")
267+let bz = valueOrErrorMessage(addressFromString(bx[E]), "Invalid slipage contract address")
270268
271-let bB = valueOrErrorMessage(addressFromString(by[G]), "Invalid gwx contract address")
269+let bA = valueOrErrorMessage(addressFromString(bx[F]), "Invalid gwx contract address")
272270
273-let bC = valueOrErrorMessage(addressFromString(by[E]), "Invalid gwx contract address")
271+let bB = valueOrErrorMessage(addressFromString(bx[D]), "Invalid gwx contract address")
274272
275-func bD (bE,bF,bG,bH,bI,bJ,bK,bL,bM,bN) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bE), toString(bF), toString(bG), toString(bH), toString(bI), toString(bJ), toString(bK), toString(bL), toString(bM), toString(bN)], 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)
276274
277275
278-func bO (bP,bQ,bR,bH,bK,bL) = makeString(["%d%d%d%d%d%d", toString(bP), toString(bQ), toString(bR), toString(bH), toString(bK), toString(bL)], 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)
279277
280278
281-func bS (bT) = if ((bT == "WAVES"))
279+func bR (bS) = if ((bS == "WAVES"))
282280 then wavesBalance(this).available
283- else assetBalance(this, fromBase58String(bT))
281+ else assetBalance(this, fromBase58String(bS))
284282
285283
286-func bU (bV,bW) = fraction(bV, d, bW)
284+func bT (bU,bV) = fraction(bU, c, bV)
287285
288286
289-func bX (bV,bW,Q) = fraction(bV, d, bW, Q)
287+func bW (bU,bV,P) = fraction(bU, c, bV, P)
290288
291289
292-func bY (bZ,ca,cb) = {
293- let cc = fraction((bZ - ca), c, ca)
294- let cd = ((cb - X(cc)) > e)
295- if (!(cd))
296- then throw(("Big slpg: " + toString(cc)))
297- else $Tuple2(cd, min([bZ, ca]))
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]))
298296 }
299297
300298
301-func ce (cf,cg,ch) = {
302- let cc = fraction(cg, c, cf)
303- let ci = (ch > cc)
304- if (if (ci)
299+func cd (ce,cf,cg) = {
300+ let cb = fraction(cf, b, ce)
301+ let ch = (cg > cb)
302+ if (if (ch)
305303 then true
306- else (cg > cf))
307- then throw(((((((toString(cg) + " ") + toString(cf)) + " ") + toString(cc)) + " ") + toString(ch)))
308- else ci
304+ else (cf > ce))
305+ then throw(((((((toString(cf) + " ") + toString(ce)) + " ") + toString(cb)) + " ") + toString(cg)))
306+ else ch
309307 }
310308
311309
312-func cj (ck,cl,cm,cn) = {
313- let co = I(cm, ck)
314- let cp = I(cn, cl)
315- bU(cp, co)
310+func ci (cj,ck,cl,cm) = {
311+ let cn = H(cl, cj)
312+ let co = H(cm, ck)
313+ bT(co, cn)
316314 }
317315
318316
319-func cq (cm,cn,cr) = {
317+func cp (cl,cm,cq) = {
318+ let cr = bs
320319 let cs = bt
321- let ct = bu
322- let cu = cj(cs, ct, cm, cn)
323- let bW = I(cm, cs)
324- let bV = I(cn, ct)
325- let cv = I(cr, b)
326- let cw = bU(bW, cv)
327- let cx = bU(bV, cv)
328-[cu, cw, cx]
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]
329327 }
330328
331329
332-func cy (cm,cn,cr) = {
333- let cz = cq(cm, cn, cr)
334-[M(cz[0], b), M(cz[1], b), M(cz[2], b)]
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)]
335333 }
336334
337335
338-func cA (cB,ar) = {
339- let cC = if ((ar == 0))
336+func cz (cA,aq) = {
337+ let cB = if ((aq == 0))
340338 then 0
341- else fraction(cB, ar, b)
342- $Tuple2((cB - cC), cC)
339+ else fraction(cA, aq, a)
340+ $Tuple2((cA - cB), cB)
343341 }
344342
345343
346-func cD (cE) = {
347- let cF = cE[0]
348- let cG = cE[1]
349- let cH = (cF + cG)
350- if ((cH == f))
351- then f
344+func cC (cD) = {
345+ let cE = cD[0]
346+ let cF = cD[1]
347+ let cG = (cE + cF)
348+ if ((cG == e))
349+ then e
352350 else {
353- let cI = parseIntValue(aZ)
354- let cJ = (cI * 2)
355- let cz = fraction(cF, cG, g)
356- let cK = fraction(cz, j, g)
357- let cL = fraction(toBigInt(cJ), cH, g)
358- let cM = toBigInt((cJ - 1))
359- func cN (cO) = {
360- let cP = fraction(cO, cO, g)
361- let cQ = fraction(cP, cO, g)
362- let cR = fraction(cQ, g, cK)
363- fraction((cL + fraction(cR, h, g)), cO, (fraction(cM, cO, g) + fraction(i, cR, g)))
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)))
364362 }
365363
366- func cS (cT,cU) = if (cT._2)
367- then cT
364+ func cR (cS,cT) = if (cS._2)
365+ then cS
368366 else {
369- let cO = cT._1
370- let cV = cN(cO)
371- let cW = (cV - value(cO))
372- let cX = if ((f > cW))
373- then -(cW)
374- else cW
375- if ((g >= cX))
376- then $Tuple2(cV, true)
377- else $Tuple2(cV, 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)
378376 }
379377
380- let cY = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
381- let cZ = {
382- let da = cY
383- let db = size(da)
384- let dc = $Tuple2(cH, false)
385- func dd (de,df) = if ((df >= db))
386- then de
387- else cS(de, da[df])
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])
388386
389- func dg (de,df) = if ((df >= db))
390- then de
387+ func df (dd,de) = if ((de >= da))
388+ then dd
391389 else throw("List size exceeds 17")
392390
393- dg(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dc, 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)
394392 }
395- let cO = cZ._1
396- let dh = cZ._2
397- if (dh)
398- then cO
399- else throw(("D calculation error, D = " + toString(cO)))
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)))
400398 }
401399 }
402400
403401
404-func di (dj,dk,dl,dm) = {
405- let dn = bq
402+func dh (di,dj,dk,dl) = {
403+ let dm = bp
404+ let dn = toBase58String(value(bq))
406405 let do = toBase58String(value(br))
407- let dp = toBase58String(value(bs))
406+ let dp = bs
408407 let dq = bt
409- let dr = bu
410- let ds = toString(bp)
411- let dt = valueOrErrorMessage(assetInfo(dn), "Wrong LP id").quantity
412- if ((toBase58String(dn) != dk))
408+ let dr = toString(bo)
409+ let ds = valueOrErrorMessage(assetInfo(dm), "Wrong LP id").quantity
410+ if ((toBase58String(dm) != dj))
413411 then throw("Wrong pmt asset")
414412 else {
415- let du = bS(do)
416- let dv = I(du, dq)
417- let dw = bS(dp)
418- let dx = I(dw, dr)
419- let dy = bU(dx, dv)
420- let dz = M(dy, b)
421- let dA = I(dl, b)
422- let dB = I(dt, b)
423- let dC = fraction(dv, dA, dB)
424- let dD = fraction(dx, dA, dB)
425- let dE = P(dC, dq, FLOOR)
426- let dF = P(dD, dr, FLOOR)
427- let dG = if ((dj == ""))
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 == ""))
428426 then nil
429- else [ScriptTransfer(dm, dE, if ((do == "WAVES"))
427+ else [ScriptTransfer(dl, dD, if ((dn == "WAVES"))
430428 then unit
431- else fromBase58String(do)), ScriptTransfer(dm, dF, if ((dp == "WAVES"))
429+ else fromBase58String(dn)), ScriptTransfer(dl, dE, if ((do == "WAVES"))
432430 then unit
433- else fromBase58String(dp)), StringEntry(aj(toString(dm), dj), bO(dE, dF, dl, dz, height, lastBlock.timestamp)), IntegerEntry(ac(), dz), IntegerEntry(ad(height, lastBlock.timestamp), dz)]
434- $Tuple10(dE, dF, do, dp, du, dw, dt, dy, ds, dG)
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)
435433 }
436434 }
437435
438436
439-func dH (dj,cb,dI,dJ,dK,dL,dm,dM,dN,dO,dP,dQ,dR) = {
440- let dn = bq
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))
441440 let dS = toBase58String(value(br))
442- let dT = toBase58String(value(bs))
441+ let dT = bu
443442 let dU = bv
444- let dV = bw
443+ let dV = bs
445444 let dW = bt
446- let dX = bu
447- let ds = toString(bp)
448- let dY = valueOrErrorMessage(assetInfo(dn), "Wr lp as").quantity
449- let du = if (dM)
450- then bS(dS)
451- else if (if (dO)
452- then (dR == dS)
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)
453451 else false)
454- then (bS(dS) - dQ)
455- else if (dO)
456- then bS(dS)
457- else (bS(dS) - dI)
458- let dw = if (dM)
459- then bS(dT)
460- else if (if (dO)
461- then (dR == dT)
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)
462460 else false)
463- then (bS(dT) - dQ)
464- else if (dO)
465- then bS(dT)
466- else (bS(dT) - dK)
467- let dZ = I(dI, dW)
468- let ea = I(dK, dX)
469- let eb = bU(ea, dZ)
470- let dv = I(du, dW)
471- let dx = I(dw, dX)
472- let cg = cD([dv, dx])
473- let ec = if ((dY == 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))
474472 then {
475- let cf = cD([(dv + dZ), (dx + ea)])
476- let ed = if ((cf > cg))
473+ let ce = cC([(du + dY), (dw + dZ)])
474+ let ec = if ((ce > cf))
477475 then true
478476 else throw("D1 should be greater than D0")
479- if ((ed == ed))
477+ if ((ec == ec))
480478 then {
481- let dy = e
482- let ee = e
483- let cv = cf
484- $Tuple5(M(cv, b), M(dZ, dW), M(ea, dX), bU((dx + ea), (dv + dZ)), ee)
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)
485483 }
486484 else throw("Strict value is not equal to itself.")
487485 }
488486 else {
489- let dy = bU(dx, dv)
490- let ef = fraction(X((dy - eb)), d, dy)
491- let ee = I(cb, b)
492- if (if (if (dP)
493- then (dy != e)
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)
494492 else false)
495- then (ef > ee)
493+ then (ee > ed)
496494 else false)
497- then throw(((("Price slippage " + toString(ef)) + " > ") + toString(ee)))
495+ then throw(((("Price slippage " + toString(ee)) + " > ") + toString(ed)))
498496 else {
499- let eg = I(dY, b)
500- let eh = fraction(dZ, bX(dx, dv, CEILING), d, CEILING)
501- let ei = fraction(ea, d, bX(dx, dv, FLOOR), CEILING)
502- let ej = if ((eh > ea))
503- then $Tuple2(ei, ea)
504- else $Tuple2(dZ, eh)
505- let ek = ej._1
506- let el = ej._2
507- let cf = cD([(dv + ek), (dx + el)])
508- let ed = if ((cf > cg))
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))
509507 then true
510508 else throw("D1 should be greater than D0")
511- if ((ed == ed))
509+ if ((ec == ec))
512510 then {
513- let cv = fraction(eg, (cf - cg), cg)
514- $Tuple5(P(cv, b, FLOOR), P(ek, dW, CEILING), P(el, dX, CEILING), dy, ee)
511+ let cu = fraction(ef, (ce - cf), cf)
512+ $Tuple5(O(cu, a, FLOOR), O(ej, dV, CEILING), O(ek, dW, CEILING), dx, ed)
515513 }
516514 else throw("Strict value is not equal to itself.")
517515 }
518516 }
519- let em = ec._1
520- let en = ec._2
521- let eo = ec._3
522- let dz = M(ec._4, b)
523- let ep = M(ec._5, b)
524- if ((0 >= em))
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))
525523 then throw("LP <= 0")
526524 else {
527- let eq = if (!(dN))
525+ let ep = if (!(dM))
528526 then 0
529- else em
530- let er = (dI - en)
531- let es = (dK - eo)
532- let et = if (if (dO)
533- then (dR == dS)
527+ else el
528+ let eq = (dH - em)
529+ let er = (dJ - en)
530+ let es = if (if (dN)
531+ then (dQ == dR)
534532 else false)
535- then $Tuple2(dQ, 0)
536- else if (if (dO)
537- then (dR == dT)
533+ then $Tuple2(dP, 0)
534+ else if (if (dN)
535+ then (dQ == dS)
538536 else false)
539- then $Tuple2(0, dQ)
540- else $Tuple2(en, eo)
541- let eu = et._1
542- let ev = et._2
543- let ew = [IntegerEntry(ac(), dz), IntegerEntry(ad(height, lastBlock.timestamp), dz), StringEntry(ag(dm, dj), bD(eu, ev, eq, dz, cb, ep, height, lastBlock.timestamp, er, es))]
544- $Tuple13(em, eq, dz, du, dw, dY, dn, ds, ew, er, es, dJ, dL)
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)
545543 }
546544 }
547545
548546
549-func ex (cE,cU,ey) = {
550- let ez = h
551- let eA = cE[if ((cU == 0))
547+func ew (cD,cT,ex) = {
548+ let ey = g
549+ let ez = cD[if ((cT == 0))
552550 then 1
553551 else 0]
554- let eB = parseBigIntValue(m)
555- let cI = (parseBigIntValue(aZ) * eB)
556- let cH = eA
557- let cJ = (cI * ez)
558- let eC = (((((ey * ey) / (eA * ez)) * ey) * eB) / (cJ * ez))
559- let eD = ((cH + ((ey * eB) / cJ)) - ey)
560- func cS (cT,eE) = {
561- let eF = cT
562- let eG = eF._1
563- let dh = eF._2
564- if ((dh != unit))
565- then cT
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
566564 else {
567- let eH = (((eG * eG) + eC) / ((h * eG) + eD))
568- let eI = Y((eH - value(eG)))
569- if ((g >= eI))
570- then $Tuple2(eH, eE)
571- else $Tuple2(eH, 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)
572570 }
573571 }
574572
575- let cY = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
576- let eJ = {
577- let da = cY
578- let db = size(da)
579- let dc = $Tuple2(ey, unit)
580- func dd (de,df) = if ((df >= db))
581- then de
582- else cS(de, da[df])
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])
583581
584- func dg (de,df) = if ((df >= db))
585- then de
582+ func df (dd,de) = if ((de >= da))
583+ then dd
586584 else throw("List size exceeds 15")
587585
588- dg(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dc, 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)
589587 }
590- let eG = eJ._1
591- let dh = eJ._2
592- if ((dh != unit))
593- then eG
594- else throw(("Y calculation error, Y = " + toString(eG)))
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)))
595593 }
596594
597595
598-func eK (eL,eM,eN) = {
599- let eO = fraction(cD([L(eL, toBigInt(bt)), L(eM, toBigInt(bu))]), d, eN)
600- if ((eN == f))
601- then f
602- else eO
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))
599+ then e
600+ else eN
603601 }
604602
605603
606-func eP (eQ,eR,eS) = {
607- let eT = (toBigInt(bS(bj(br))) - eQ)
608- let eU = (toBigInt(bS(bj(bs))) - eR)
609- let eV = (toBigInt(value(assetInfo(bq)).quantity) - eS)
610- let eW = eK(eT, eU, eV)
611- eW
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
612610 }
613611
614612
615-func eX (eY,eZ,eS) = {
616- let eT = (bS(bj(br)) + eY)
617- let eU = (bS(bj(bs)) + eZ)
618- let eV = (value(assetInfo(bq)).quantity + eS)
619- let eO = eK(toBigInt(eT), toBigInt(eU), toBigInt(eV))
620- let fa = [IntegerEntry(at, height), StringEntry(as, toString(eO))]
621- $Tuple2(fa, eO)
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)
622620 }
623621
624622
625-func fb (fc,eO) = if ((eO >= fc))
623+func fa (fb,eN) = if ((eN >= fb))
626624 then true
627- else aS("updated DLp lower than current DLp")
625+ else aR("updated DLp lower than current DLp")
628626
629627
630-func fd (fe) = {
631- let eT = bS(bj(br))
632- let eU = bS(bj(bs))
633- let ff = fe.amount
634- let fg = fraction(fe.amount, fe.price, b, FLOOR)
635- let fh = if ((fe.orderType == Buy))
636- then $Tuple2(ff, -(fg))
637- else $Tuple2(-(ff), fg)
638- let eY = fh._1
639- let eZ = fh._2
640- 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())
641639 then true
642- else (bp == s))
640+ else (bo == r))
643641 then true
644- else (bp == t))
642+ else (bo == s))
645643 then throw("Admin blocked")
646- else if (if ((fe.assetPair.amountAsset != br))
644+ else if (if ((fd.assetPair.amountAsset != bq))
647645 then true
648- else (fe.assetPair.priceAsset != bs))
646+ else (fd.assetPair.priceAsset != br))
649647 then throw("Wr assets")
650648 else {
651- let fi = parseBigIntValue(valueOrElse(getString(this, as), "0"))
652- let fj = eX(eY, eZ, 0)
653- let fk = fj._1
654- let fl = fj._2
655- let fm = (fl >= fi)
656- let fn = makeString(["dLp=", toString(fi), " dLpNew=", toString(fl), " amountAssetBalance=", toString(eT), " priceAssetBalance=", toString(eU), " amountAssetBalanceDelta=", toString(eY), " priceAssetBalanceDelta=", toString(eZ), " height=", toString(height)], "")
657- $Tuple2(fm, fn)
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)
658656 }
659657 }
660658
661659
662-func fo (cU) = if ((size(cU.payments) != 1))
660+func fn (cT) = if ((size(cT.payments) != 1))
663661 then throw("1 pmnt exp")
664662 else {
665- let fp = value(cU.payments[0])
666- let dk = value(fp.assetId)
667- let dQ = fp.amount
668- let ec = di(toBase58String(cU.transactionId), toBase58String(dk), dQ, cU.caller)
669- let dE = ec._1
670- let dF = ec._2
671- let ds = parseIntValue(ec._9)
672- let dG = ec._10
673- 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())
674672 then true
675- else (ds == t))
676- then throw(("Admin blocked: " + toString(ds)))
677- else $Tuple5(dE, dF, dQ, dk, dG)
673+ else (dr == s))
674+ then throw(("Admin blocked: " + toString(dr)))
675+ else $Tuple5(dD, dE, dP, dj, dF)
678676 }
679677
680678
681-func fq (fr,ai,fs,ft,cb,dN,dO,dP,dQ,dR) = {
682- let ec = dH(ai, cb, value(fs).amount, value(fs).assetId, value(ft).amount, value(ft).assetId, fr, (ai == ""), dN, dO, dP, dQ, dR)
683- let ds = parseIntValue(ec._8)
684- 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())
685683 then true
686- else (ds == r))
684+ else (dr == q))
687685 then true
688- else (ds == t))
689- then throw(("Blocked:" + toString(ds)))
690- else ec
686+ else (dr == s))
687+ then throw(("Blocked:" + toString(dr)))
688+ else eb
691689 }
692690
693691
694-func fu (fv,dk,dm,ai,fw) = {
692+func ft (fu,dj,dl,ah,fv) = {
693+ let dn = toBase58String(value(bq))
695694 let do = toBase58String(value(br))
696- let dp = toBase58String(value(bs))
697- let dn = bq
695+ let dm = bp
696+ let dV = bs
698697 let dW = bt
699- let dX = bu
700- let eV = toBigInt(valueOrErrorMessage(assetInfo(dn), "invalid lp asset").quantity)
701- let fx = if ((eV > f))
698+ let eU = toBigInt(valueOrErrorMessage(assetInfo(dm), "invalid lp asset").quantity)
699+ let fw = if ((eU > e))
702700 then true
703701 else throw("initial deposit requires all coins")
704- if ((fx == fx))
702+ if ((fw == fw))
705703 then {
706- let du = bS(do)
707- let dw = bS(dp)
708- let fy = if ((ai == ""))
709- then $Tuple2(du, dw)
710- else if ((dk == do))
711- then if ((fv > du))
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))
712710 then throw("invalid payment amount")
713- else $Tuple2((du - fv), dw)
714- else if ((dk == dp))
715- then if ((fv > dw))
711+ else $Tuple2((dt - fu), dv)
712+ else if ((dj == do))
713+ then if ((fu > dv))
716714 then throw("invalid payment amount")
717- else $Tuple2(du, (dw - fv))
715+ else $Tuple2(dt, (dv - fu))
718716 else throw("wrong pmtAssetId")
719- let fz = fy._1
720- let fA = fy._2
721- let fB = if ((dk == do))
722- then $Tuple2(fv, 0)
723- else if ((dk == dp))
724- then $Tuple2(0, fv)
717+ let fy = fx._1
718+ let fz = fx._2
719+ let fA = if ((dj == dn))
720+ then $Tuple2(fu, 0)
721+ else if ((dj == do))
722+ then $Tuple2(0, fu)
725723 else throw("invalid payment")
726- let fC = fB._1
727- let fD = fB._2
728- let fE = if (fw)
729- then $Tuple3(cA(fC, aW)._1, cA(fD, aW)._1, cA(fv, aW)._2)
730- else $Tuple3(fC, fD, 0)
731- let fF = fE._1
732- let fG = fE._2
733- let cC = fE._3
724+ let fB = fA._1
725+ let fC = fA._2
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)
734733 let fH = (fz + fF)
735- let fI = (fA + fG)
736- let cg = cD([I(fz, bt), I(fA, bu)])
737- let cf = cD([I(fH, bt), I(fI, bu)])
738- let ed = if ((cf > cg))
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))
739737 then true
740738 else throw()
741- if ((ed == ed))
739+ if ((ec == ec))
742740 then {
743- let fJ = fraction(eV, (cf - cg), cg, FLOOR)
744- let dz = M(bU(I(fI, dX), I(fH, dW)), b)
745- let ew = [IntegerEntry(ac(), dz), IntegerEntry(ad(height, lastBlock.timestamp), dz), StringEntry(ag(dm, ai), bD(fC, fD, toInt(fJ), dz, 0, 0, height, lastBlock.timestamp, 0, 0))]
746- let fK = fraction(fA, b, fz)
747- let fL = fraction(fv, b, (fK + b))
748- let fM = (fv - fL)
749- let fN = fraction(eV, toBigInt(fM), toBigInt(fA))
750- let fO = toInt(fraction((fJ - fN), c, fN))
751- $Tuple4(toInt(fJ), ew, cC, fO)
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)
752750 }
753751 else throw("Strict value is not equal to itself.")
754752 }
756754 }
757755
758756
759-func fP (fQ,fR,fS,fr,fT,fU) = {
757+func fO (fP,fQ,fR,fq,fS,fT) = {
758+ let dm = toBase58String(value(bp))
760759 let dn = toBase58String(value(bq))
761760 let do = toBase58String(value(br))
762- let dp = toBase58String(value(bs))
761+ let fU = bs
763762 let fV = bt
764- let fW = bu
765- let fX = bp
766- let dm = if ((fr == bC))
767- then fT
768- else fr
769- let fp = value(fS[0])
770- let dk = value(fp.assetId)
771- let dQ = fp.amount
772- let eW = eP(f, f, f)
773- if ((eW == eW))
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))
774772 then {
775- let dj = toBase58String(fU)
776- if ((dn != toBase58String(dk)))
773+ let di = toBase58String(fT)
774+ if ((dm != toBase58String(dj)))
777775 then throw("Wrong LP")
778776 else {
779- let du = bS(do)
780- let dw = bS(dp)
781- let fY = {
782- let aX = invoke(this, "getOneTknV2READONLY", [fQ, dQ], nil)
783- if ($isInstanceOf(aX, "(Int, Int)"))
784- then aX
785- 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)"))
786784 }
787- if ((fY == fY))
785+ if ((fX == fX))
788786 then {
789- let cC = fY._2
790- let fZ = fY._1
791- let ga = if (if ((fR > 0))
792- then (fR > fZ)
787+ let cB = fX._2
788+ let fY = fX._1
789+ let fZ = if (if ((fQ > 0))
790+ then (fQ > fY)
793791 else false)
794- then aS(makeString(["amount to receive is less than ", toString(fR)], ""))
795- else fZ
796- let gb = if ((fQ == do))
797- then $Tuple4(ga, 0, ((du - ga) - cC), dw)
798- else if ((fQ == dp))
799- then $Tuple4(0, ga, du, ((dw - ga) - cC))
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))
800798 else throw("invalid out asset id")
801- let gc = gb._1
802- let gd = gb._2
803- let fH = gb._3
804- let fI = gb._4
805- let ge = bU(I(fI, fW), I(fH, fV))
806- let gf = M(ge, b)
807- let gg = if ((fQ == "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"))
808806 then unit
809- else fromBase58String(fQ)
810- let gh = if ((cC > 0))
811- then [ScriptTransfer(bc, cC, gg)]
807+ else fromBase58String(fP)
808+ let gg = if ((cB > 0))
809+ then [ScriptTransfer(bb, cB, gf)]
812810 else nil
813- let dG = ([ScriptTransfer(dm, ga, gg), StringEntry(aj(toString(dm), dj), bO(gc, gd, dQ, gf, height, lastBlock.timestamp)), IntegerEntry(ac(), gf), IntegerEntry(ad(height, lastBlock.timestamp), gf)] ++ gh)
814- if ((dG == dG))
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))
815813 then {
816- let gi = invoke(aV, "burn", [dQ], [AttachedPayment(dk, dQ)])
817- if ((gi == gi))
814+ let gh = invoke(aU, "burn", [dP], [AttachedPayment(dj, dP)])
815+ if ((gh == gh))
818816 then {
819- let gj = {
820- let gk = if ((this == bc))
817+ let gi = {
818+ let gj = if ((this == bb))
821819 then 0
822- else cC
823- let gl = if ((bh(fQ) == br))
820+ else cB
821+ let gk = if ((bg(fP) == bq))
824822 then true
825823 else false
826- if (gl)
827- then $Tuple2(-((fZ + gk)), 0)
828- else $Tuple2(0, -((fZ + gk)))
824+ if (gk)
825+ then $Tuple2(-((fY + gj)), 0)
826+ else $Tuple2(0, -((fY + gj)))
829827 }
830- let eY = gj._1
831- let eZ = gj._2
832- let gm = eX(eY, eZ, 0)
833- let gn = gm._1
834- let eO = gm._2
835- let go = fb(eW, eO)
836- if ((go == go))
837- then $Tuple2((dG ++ gn), ga)
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)
838836 else throw("Strict value is not equal to itself.")
839837 }
840838 else throw("Strict value is not equal to itself.")
848846 }
849847
850848
851-func gp () = {
852- let gq = getString(aa())
853- if ($isInstanceOf(gq, "String"))
849+func go () = {
850+ let gp = getString(Z())
851+ if ($isInstanceOf(gp, "String"))
854852 then {
855- let cH = gq
856- fromBase58String(cH)
853+ let cG = gp
854+ fromBase58String(cG)
857855 }
858- else if ($isInstanceOf(gq, "Unit"))
856+ else if ($isInstanceOf(gp, "Unit"))
859857 then unit
860858 else throw("Match error")
861859 }
862860
863861
864-func gr () = {
865- let gq = getString(ab())
866- if ($isInstanceOf(gq, "String"))
862+func gq () = {
863+ let gp = getString(aa())
864+ if ($isInstanceOf(gp, "String"))
867865 then {
868- let cH = gq
869- fromBase58String(cH)
866+ let cG = gp
867+ fromBase58String(cG)
870868 }
871- else if ($isInstanceOf(gq, "Unit"))
869+ else if ($isInstanceOf(gp, "Unit"))
872870 then unit
873871 else throw("Match error")
874872 }
875873
876874
877-let gs = throw("Permission denied")
875+let gr = throw("Permission denied")
878876
879-func gt (cU) = {
880- let gq = gp()
881- if ($isInstanceOf(gq, "ByteVector"))
877+func gs (cT) = {
878+ let gp = go()
879+ if ($isInstanceOf(gp, "ByteVector"))
882880 then {
883- let gu = gq
884- (cU.callerPublicKey == gu)
881+ let gt = gp
882+ (cT.callerPublicKey == gt)
885883 }
886- else if ($isInstanceOf(gq, "Unit"))
887- then (cU.caller == this)
884+ else if ($isInstanceOf(gp, "Unit"))
885+ then (cT.caller == this)
888886 else throw("Match error")
889887 }
890888
891889
892-func gv (cU) = {
893- let gq = gp()
894- if ($isInstanceOf(gq, "ByteVector"))
890+func gu (cT) = {
891+ let gp = go()
892+ if ($isInstanceOf(gp, "ByteVector"))
895893 then {
896- let gu = gq
897- if ((cU.callerPublicKey == gu))
894+ let gt = gp
895+ if ((cT.callerPublicKey == gt))
898896 then true
899- else gs
897+ else gr
900898 }
901- else if ($isInstanceOf(gq, "Unit"))
902- then if ((cU.caller == this))
899+ else if ($isInstanceOf(gp, "Unit"))
900+ then if ((cT.caller == this))
903901 then true
904- else gs
902+ else gr
905903 else throw("Match error")
906904 }
907905
908906
909-func gw (gx,ey,gy) = {
910- let bl = bd()
911- let do = bl[x]
912- let dp = bl[y]
913- let ez = h
914- let eB = parseBigIntValue(m)
915- let cI = (parseBigIntValue(aZ) * eB)
916- let cE = if ((gx == false))
917- then [(toBigInt(bS(do)) + gy), toBigInt(bS(dp))]
918- else [(toBigInt(bS(dp)) + gy), toBigInt(bS(do))]
919- let eA = cE[0]
920- let cH = eA
921- let cJ = (cI * ez)
922- let eC = (((((ey * ey) / (eA * ez)) * ey) * eB) / (cJ * ez))
923- let eD = ((cH + ((ey * eB) / cJ)) - ey)
924- func cS (cT,eE) = {
925- let gz = cT
926- let eG = gz._1
927- let dh = gz._2
928- if ((dh != unit))
929- then cT
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
930928 else {
931- let eH = (((eG * eG) + eC) / ((h * eG) + eD))
932- let eI = Y((eH - value(eG)))
933- if ((g >= eI))
934- then $Tuple2(eH, eE)
935- else $Tuple2(eH, 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)
936934 }
937935 }
938936
939- let cY = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
940- let gA = {
941- let da = cY
942- let db = size(da)
943- let dc = $Tuple2(ey, unit)
944- func dd (de,df) = if ((df >= db))
945- then de
946- else cS(de, da[df])
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])
947945
948- func dg (de,df) = if ((df >= db))
949- then de
946+ func df (dd,de) = if ((de >= da))
947+ then dd
950948 else throw("List size exceeds 15")
951949
952- dg(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dc, 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)
953951 }
954- let eG = gA._1
955- let dh = gA._2
956- if ((dh != unit))
957- then eG
958- else throw(("Y calculation error, Y = " + toString(eG)))
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)))
959957 }
960958
961959
962-func gB () = valueOrElse(getBoolean(aV, aH(toString(this))), false)
960+func gA () = valueOrElse(getBoolean(aU, aG(toString(this))), false)
963961
964962
965-@Callable(cU)
966-func calculateAmountOutForSwapREADONLY (gC,gx,gD) = {
967- let gE = if ((gx == false))
963+@Callable(cT)
964+func calculateAmountOutForSwapREADONLY (gB,gw,gC) = {
965+ let gD = if ((gw == false))
968966 then {
969- let gF = aO(this, al())
970- let gy = (toBigInt(bS(aO(this, ak()))) + toBigInt(gC))
971- $Tuple2(gF, gy)
967+ let gE = aN(this, ak())
968+ let gx = (toBigInt(bR(aN(this, aj()))) + toBigInt(gB))
969+ $Tuple2(gE, gx)
972970 }
973971 else {
974- let gF = aO(this, ak())
975- let gy = (toBigInt(bS(aO(this, al()))) + toBigInt(gC))
976- $Tuple2(gF, gy)
972+ let gE = aN(this, aj())
973+ let gx = (toBigInt(bR(aN(this, ak()))) + toBigInt(gB))
974+ $Tuple2(gE, gx)
977975 }
978- let gF = gE._1
979- let gy = gE._2
980- let bl = bd()
981- let do = bl[x]
982- let dp = bl[y]
983- let cE = [toBigInt(bS(do)), toBigInt(bS(dp))]
984- let ey = cD(cE)
985- let eG = gw(gx, ey, toBigInt(gC))
986- let gG = ((toBigInt(bS(gF)) - eG) - toBigInt(1))
987- let gH = max([0, toInt(gG)])
988- let gI = if ((gx == false))
989- then [((toBigInt(bS(do)) + toBigInt(gC)) + toBigInt(gD)), (toBigInt(bS(dp)) - gG)]
990- else [(toBigInt(bS(do)) - gG), ((toBigInt(bS(dp)) + toBigInt(gC)) + toBigInt(gD))]
991- let gJ = cD(gI)
992- let ed = if ((gJ >= ey))
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))
993991 then true
994- else throw(makeString(["new D is fewer error", toString(ey), toString(gJ)], "__"))
995- if ((ed == ed))
996- then $Tuple2(nil, gH)
992+ else throw(makeString(["new D is fewer error", toString(ex), toString(gI)], "__"))
993+ if ((ec == ec))
994+ then $Tuple2(nil, gG)
997995 else throw("Strict value is not equal to itself.")
998996 }
999997
1000998
1001999
1002-@Callable(cU)
1003-func calculateAmountOutForSwapAndSendTokens (gC,gx,gK,gL,gD) = {
1004- let gM = {
1005- let aX = invoke(aV, "getSwapContractREADONLY", nil, nil)
1006- if ($isInstanceOf(aX, "String"))
1007- then aX
1008- 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"))
10091007 }
1010- let gN = [if ((value(cU.payments[0]).amount >= gC))
1008+ let gM = [if ((value(cT.payments[0]).amount >= gB))
10111009 then true
1012- else aS("Wrong amount"), if ((cU.caller == addressFromStringValue(gM)))
1010+ else aR("Wrong amount"), if ((cT.caller == addressFromStringValue(gL)))
10131011 then true
1014- else aS("Permission denied")]
1015- if ((gN == gN))
1012+ else aR("Permission denied")]
1013+ if ((gM == gM))
10161014 then {
1017- let fp = value(cU.payments[0])
1018- let gO = bj(fp.assetId)
1019- let gP = if ((gx == false))
1015+ let fo = value(cT.payments[0])
1016+ let gN = bi(fo.assetId)
1017+ let gO = if ((gw == false))
10201018 then {
1021- let gF = aO(this, al())
1022- let gy = (bS(gO) - value(cU.payments[0]).amount)
1023- $Tuple2(gF, gy)
1019+ let gE = aN(this, ak())
1020+ let gx = (bR(gN) - value(cT.payments[0]).amount)
1021+ $Tuple2(gE, gx)
10241022 }
10251023 else {
1026- let gF = aO(this, ak())
1027- let gy = (bS(gO) - value(cU.payments[0]).amount)
1028- $Tuple2(gF, gy)
1024+ let gE = aN(this, aj())
1025+ let gx = (bR(gN) - value(cT.payments[0]).amount)
1026+ $Tuple2(gE, gx)
10291027 }
1030- let gF = gP._1
1031- let gy = gP._2
1032- let bl = bd()
1033- let do = bl[x]
1034- let dp = bl[y]
1035- let cE = if ((gx == false))
1036- then [(toBigInt(bS(do)) - toBigInt(value(cU.payments[0]).amount)), toBigInt(bS(dp))]
1037- else [toBigInt(bS(do)), (toBigInt(bS(dp)) - toBigInt(value(cU.payments[0]).amount))]
1038- let ey = cD(cE)
1039- let eG = gw(gx, ey, toBigInt(0))
1040- let gG = ((toBigInt(bS(gF)) - eG) - toBigInt(1))
1041- let gH = max([0, toInt(gG)])
1042- let gQ = if ((gH >= gK))
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))
10431041 then true
10441042 else throw("Exchange result is fewer coins than expected")
1045- if ((gQ == gQ))
1043+ if ((gP == gP))
10461044 then {
1047- let gI = if ((gx == false))
1048- then [(toBigInt(bS(do)) + toBigInt(gD)), (toBigInt(bS(dp)) - gG)]
1049- else [(toBigInt(bS(do)) - gG), (toBigInt(bS(dp)) + toBigInt(gD))]
1050- let gJ = cD(gI)
1051- let ed = if ((gJ >= ey))
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))
10521050 then true
10531051 else throw("new D is fewer error")
1054- if ((ed == ed))
1055- then $Tuple2([ScriptTransfer(addressFromStringValue(gL), gH, bh(gF))], gH)
1052+ if ((ec == ec))
1053+ then $Tuple2([ScriptTransfer(addressFromStringValue(gK), gG, bg(gE))], gG)
10561054 else throw("Strict value is not equal to itself.")
10571055 }
10581056 else throw("Strict value is not equal to itself.")
10621060
10631061
10641062
1065-@Callable(cU)
1066-func constructor (Z) = {
1067- let eC = gv(cU)
1068- if ((eC == eC))
1069- 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)]
10701068 else throw("Strict value is not equal to itself.")
10711069 }
10721070
10731071
10741072
1075-@Callable(cU)
1076-func setManager (gR) = {
1077- let eC = gv(cU)
1078- if ((eC == eC))
1073+@Callable(cT)
1074+func setManager (gQ) = {
1075+ let eB = gu(cT)
1076+ if ((eB == eB))
10791077 then {
1080- let gS = fromBase58String(gR)
1081- if ((gS == gS))
1082- then [StringEntry(ab(), gR)]
1078+ let gR = fromBase58String(gQ)
1079+ if ((gR == gR))
1080+ then [StringEntry(aa(), gQ)]
10831081 else throw("Strict value is not equal to itself.")
10841082 }
10851083 else throw("Strict value is not equal to itself.")
10871085
10881086
10891087
1090-@Callable(cU)
1088+@Callable(cT)
10911089 func confirmManager () = {
1092- let cz = gr()
1093- let gT = if (isDefined(cz))
1090+ let cy = gq()
1091+ let gS = if (isDefined(cy))
10941092 then true
10951093 else throw("No pending manager")
1096- if ((gT == gT))
1094+ if ((gS == gS))
10971095 then {
1098- let gU = if ((cU.callerPublicKey == value(cz)))
1096+ let gT = if ((cT.callerPublicKey == value(cy)))
10991097 then true
11001098 else throw("You are not pending manager")
1101- if ((gU == gU))
1102- then [StringEntry(aa(), toBase58String(value(cz))), DeleteEntry(ab())]
1099+ if ((gT == gT))
1100+ then [StringEntry(Z(), toBase58String(value(cy))), DeleteEntry(aa())]
11031101 else throw("Strict value is not equal to itself.")
11041102 }
11051103 else throw("Strict value is not equal to itself.")
11071105
11081106
11091107
1110-@Callable(cU)
1111-func put (gV,gW) = {
1112- let gX = bx()
1113- let gY = valueOrErrorMessage(addressFromString(gX[D]), "Wr st addr")
1114- let gZ = valueOrErrorMessage(addressFromString(gX[F]), "Wr sl addr")
1115- if ((0 > gV))
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))
11161114 then throw("Wrong slippage")
1117- else if ((size(cU.payments) != 2))
1115+ else if ((size(cT.payments) != 2))
11181116 then throw("2 pmnts expd")
11191117 else {
1120- let ha = toBigInt(value(cU.payments[0]).amount)
1121- let hb = toBigInt(value(cU.payments[1]).amount)
1122- let eT = (toBigInt(bS(bj(br))) - ha)
1123- if ((eT == eT))
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))
11241122 then {
1125- let eU = (toBigInt(bS(bj(bs))) - hb)
1126- if ((eU == eU))
1123+ let eT = (toBigInt(bR(bi(br))) - ha)
1124+ if ((eT == eT))
11271125 then {
1128- let eV = toBigInt(value(assetInfo(bq)).quantity)
1129- if ((eV == eV))
1126+ let eU = toBigInt(value(assetInfo(bp)).quantity)
1127+ if ((eU == eU))
11301128 then {
1131- let eW = eP(ha, hb, toBigInt(0))
1132- if ((eW == eW))
1129+ let eV = eO(gZ, ha, toBigInt(0))
1130+ if ((eV == eV))
11331131 then {
1134- let hc = fq(toString(cU.caller), toBase58String(cU.transactionId), AttachedPayment(value(cU.payments[0]).assetId, value(cU.payments[0]).amount), cU.payments[1], gV, true, false, true, 0, "")
1135- let eq = hc._2
1136- let hd = hc._7
1137- let dG = hc._9
1138- let er = hc._10
1139- let es = hc._11
1140- let do = hc._12
1141- let dp = hc._13
1142- let ec = invoke(aV, "emit", [eq], nil)
1143- if ((ec == ec))
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))
11441142 then {
1145- let he = {
1146- let gq = ec
1147- if ($isInstanceOf(gq, "Address"))
1143+ let hd = {
1144+ let gp = eb
1145+ if ($isInstanceOf(gp, "Address"))
11481146 then {
1149- let hf = gq
1150- invoke(hf, "emit", [eq], nil)
1147+ let he = gp
1148+ invoke(he, "emit", [ep], nil)
11511149 }
11521150 else unit
11531151 }
1154- if ((he == he))
1152+ if ((hd == hd))
11551153 then {
1156- let hg = if ((er > 0))
1157- then invoke(gZ, "put", nil, [AttachedPayment(do, er)])
1154+ let hf = if ((eq > 0))
1155+ then invoke(gY, "put", nil, [AttachedPayment(dn, eq)])
11581156 else nil
1159- if ((hg == hg))
1157+ if ((hf == hf))
11601158 then {
1161- let hh = if ((es > 0))
1162- then invoke(gZ, "put", nil, [AttachedPayment(dp, es)])
1159+ let hg = if ((er > 0))
1160+ then invoke(gY, "put", nil, [AttachedPayment(do, er)])
11631161 else nil
1164- if ((hh == hh))
1162+ if ((hg == hg))
11651163 then {
1166- let hi = if (gW)
1164+ let hh = if (gV)
11671165 then {
1168- let hj = invoke(gY, "stake", nil, [AttachedPayment(hd, eq)])
1169- if ((hj == hj))
1166+ let hi = invoke(gX, "stake", nil, [AttachedPayment(hc, ep)])
1167+ if ((hi == hi))
11701168 then nil
11711169 else throw("Strict value is not equal to itself.")
11721170 }
1173- else [ScriptTransfer(cU.caller, eq, hd)]
1174- let hk = eX(0, 0, 0)
1175- let gn = hk._1
1176- let eO = hk._2
1177- let hl = if ((eO >= eW))
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))
11781176 then true
1179- else aS(makeString(["updated DLp lower than current DLp", toString(eT), toString(eU), toString(eV), toString(eW), toString(eO), toString(er), toString(es)], " "))
1180- if ((hl == hl))
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))
11811179 then {
1182- let hm = value(assetInfo(bq)).quantity
1183- if ((hm == hm))
1184- then ((dG ++ hi) ++ gn)
1180+ let hl = value(assetInfo(bp)).quantity
1181+ if ((hl == hl))
1182+ then ((dF ++ hh) ++ gm)
11851183 else throw("Strict value is not equal to itself.")
11861184 }
11871185 else throw("Strict value is not equal to itself.")
12061204
12071205
12081206
1209-@Callable(cU)
1210-func putOneTknV2 (fR,gW) = {
1211- let hn = {
1212- let aX = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1213- if ($isInstanceOf(aX, "Boolean"))
1214- then aX
1215- 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"))
12161214 }
1217- let ho = if (if (if (ba())
1215+ let hn = if (if (if (aZ())
12181216 then true
1219- else (bp == r))
1217+ else (bo == q))
12201218 then true
1221- else (bp == t))
1219+ else (bo == s))
12221220 then true
1223- else hn
1224- let gN = [if (if (!(ho))
1221+ else hm
1222+ let gM = [if (if (!(hn))
12251223 then true
1226- else gt(cU))
1224+ else gs(cT))
12271225 then true
1228- else aS("put operation is blocked by admin"), if ((size(cU.payments) == 1))
1226+ else aR("put operation is blocked by admin"), if ((size(cT.payments) == 1))
12291227 then true
1230- else aS("exactly 1 payment are expected")]
1231- if ((gN == gN))
1228+ else aR("exactly 1 payment are expected")]
1229+ if ((gM == gM))
12321230 then {
1231+ let dn = toBase58String(value(bq))
12331232 let do = toBase58String(value(br))
1234- let dp = toBase58String(value(bs))
1235- let dn = bq
1233+ let dm = bp
1234+ let fU = bs
12361235 let fV = bt
1237- let fW = bu
1238- let dm = if ((cU.caller == this))
1239- then cU.originCaller
1240- else cU.caller
1241- let fp = value(cU.payments[0])
1242- let dk = toBase58String(value(fp.assetId))
1243- let dQ = fp.amount
1244- let eW = if ((fp.assetId == br))
1245- then eP(toBigInt(dQ), toBigInt(0), toBigInt(0))
1246- else eP(toBigInt(0), toBigInt(dQ), toBigInt(0))
1247- if ((eW == eW))
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))
12481246 then {
1249- let hp = fu(dQ, dk, toString(dm), toBase58String(cU.transactionId), true)
1250- if ((hp == hp))
1247+ let ho = ft(dP, dj, toString(dl), toBase58String(cT.transactionId), true)
1248+ if ((ho == ho))
12511249 then {
1252- let cC = hp._3
1253- let dG = hp._2
1254- let hq = hp._1
1255- let eq = if (if ((fR > 0))
1256- then (fR > hq)
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)
12571255 else false)
1258- then aS(makeString(["amount to receive is less than ", toString(fR)], ""))
1259- else hq
1260- let hc = invoke(aV, "emit", [eq], nil)
1261- if ((hc == hc))
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))
12621260 then {
1263- let he = {
1264- let gq = hc
1265- if ($isInstanceOf(gq, "Address"))
1261+ let hd = {
1262+ let gp = hb
1263+ if ($isInstanceOf(gp, "Address"))
12661264 then {
1267- let hf = gq
1268- invoke(hf, "emit", [eq], nil)
1265+ let he = gp
1266+ invoke(he, "emit", [ep], nil)
12691267 }
12701268 else unit
12711269 }
1272- if ((he == he))
1270+ if ((hd == hd))
12731271 then {
1274- let hi = if (gW)
1272+ let hh = if (gV)
12751273 then {
1276- let hj = invoke(bz, "stakeFor", [toString(cU.caller)], [AttachedPayment(dn, eq)])
1277- if ((hj == hj))
1274+ let hi = invoke(by, "stakeFor", [toString(cT.caller)], [AttachedPayment(dm, ep)])
1275+ if ((hi == hi))
12781276 then nil
12791277 else throw("Strict value is not equal to itself.")
12801278 }
1281- else [ScriptTransfer(cU.caller, eq, dn)]
1282- let gh = if ((cC > 0))
1283- then [ScriptTransfer(bc, cC, fromBase58String(dk))]
1279+ else [ScriptTransfer(cT.caller, ep, dm)]
1280+ let gg = if ((cB > 0))
1281+ then [ScriptTransfer(bb, cB, fromBase58String(dj))]
12841282 else nil
1285- let hr = if ((this == bc))
1283+ let hq = if ((this == bb))
12861284 then $Tuple2(0, 0)
12871285 else {
1288- let hs = if ((fp.assetId == br))
1286+ let hr = if ((fo.assetId == bq))
12891287 then true
12901288 else false
1291- if (hs)
1292- then $Tuple2(-(cC), 0)
1293- else $Tuple2(0, -(cC))
1289+ if (hr)
1290+ then $Tuple2(-(cB), 0)
1291+ else $Tuple2(0, -(cB))
12941292 }
1295- let eY = hr._1
1296- let eZ = hr._2
1297- let ht = eX(eY, eZ, 0)
1298- let gn = ht._1
1299- let eO = ht._2
1300- let go = fb(eW, eO)
1301- if ((go == go))
1302- then $Tuple2((((dG ++ hi) ++ gh) ++ gn), eq)
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)
13031301 else throw("Strict value is not equal to itself.")
13041302 }
13051303 else throw("Strict value is not equal to itself.")
13151313
13161314
13171315
1318-@Callable(cU)
1319-func putForFree (hu) = if ((0 > hu))
1316+@Callable(cT)
1317+func putForFree (ht) = if ((0 > ht))
13201318 then throw("Wrong slpg")
1321- else if ((size(cU.payments) != 2))
1319+ else if ((size(cT.payments) != 2))
13221320 then throw("2 pmnts expd")
13231321 else {
1324- let hv = fq(toString(cU.caller), toBase58String(cU.transactionId), AttachedPayment(value(cU.payments[0]).assetId, value(cU.payments[0]).amount), cU.payments[1], hu, false, false, true, 0, "")
1325- let dG = hv._9
1326- let ha = toBigInt(value(cU.payments[0]).amount)
1327- let hb = toBigInt(value(cU.payments[1]).amount)
1328- let eW = eP(ha, hb, toBigInt(0))
1329- if ((eW == eW))
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))
13301328 then {
1331- let hw = eX(0, 0, 0)
1332- let gn = hw._1
1333- let eO = hw._2
1334- let go = fb(eW, eO)
1335- if ((go == go))
1336- then (dG ++ gn)
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)
13371335 else throw("Strict value is not equal to itself.")
13381336 }
13391337 else throw("Strict value is not equal to itself.")
13411339
13421340
13431341
1344-@Callable(cU)
1342+@Callable(cT)
13451343 func get () = {
1346- let eW = eP(toBigInt(0), toBigInt(0), toBigInt(0))
1347- if ((eW == eW))
1344+ let eV = eO(toBigInt(0), toBigInt(0), toBigInt(0))
1345+ if ((eV == eV))
13481346 then {
1349- let ec = fo(cU)
1350- let hx = ec._1
1351- let dF = ec._2
1352- let dQ = ec._3
1353- let dk = ec._4
1354- let dG = ec._5
1355- let eD = invoke(aV, "burn", [dQ], [AttachedPayment(dk, dQ)])
1356- if ((eD == eD))
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))
13571355 then {
1358- let hy = eX(-(hx), -(dF), 0)
1359- let gn = hy._1
1360- let eO = hy._2
1361- let go = fb(eW, eO)
1362- if ((go == go))
1363- then (dG ++ gn)
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)
13641362 else throw("Strict value is not equal to itself.")
13651363 }
13661364 else throw("Strict value is not equal to itself.")
13701368
13711369
13721370
1373-@Callable(cU)
1374-func getOneTknV2 (fQ,fR) = {
1375- let hn = {
1376- let aX = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1377- if ($isInstanceOf(aX, "Boolean"))
1378- then aX
1379- 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"))
13801378 }
1381- let hz = if (if (ba())
1379+ let hy = if (if (aZ())
13821380 then true
1383- else (bp == t))
1381+ else (bo == s))
13841382 then true
1385- else hn
1386- let gN = [if (if (!(hz))
1383+ else hm
1384+ let gM = [if (if (!(hy))
13871385 then true
1388- else gt(cU))
1386+ else gs(cT))
13891387 then true
1390- else aS("get operation is blocked by admin"), if ((size(cU.payments) == 1))
1388+ else aR("get operation is blocked by admin"), if ((size(cT.payments) == 1))
13911389 then true
1392- else aS("exactly 1 payment are expected")]
1393- if ((gN == gN))
1390+ else aR("exactly 1 payment are expected")]
1391+ if ((gM == gM))
13941392 then {
1395- let hA = fP(fQ, fR, cU.payments, cU.caller, cU.originCaller, cU.transactionId)
1396- let dG = hA._1
1397- let ga = hA._2
1398- $Tuple2(dG, ga)
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)
13991397 }
14001398 else throw("Strict value is not equal to itself.")
14011399 }
14021400
14031401
14041402
1405-@Callable(cU)
1403+@Callable(cT)
14061404 func refreshDLp () = {
1407- let hB = valueOrElse(getInteger(at), 0)
1408- let hC = if (((height - hB) >= aw))
1405+ let hA = valueOrElse(getInteger(as), 0)
1406+ let hB = if (((height - hA) >= av))
14091407 then unit
1410- else aS(makeString([toString(aw), " blocks have not passed since the previous call"], ""))
1411- if ((hC == hC))
1408+ else aR(makeString([toString(av), " blocks have not passed since the previous call"], ""))
1409+ if ((hB == hB))
14121410 then {
1413- let fi = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, as), "0")), aU("invalid dLp"))
1414- let hD = eX(0, 0, 0)
1415- let hE = hD._1
1416- let eO = hD._2
1417- let fa = if ((fi != eO))
1418- then hE
1419- else aS("nothing to refresh")
1420- $Tuple2(fa, toString(eO))
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))
14211419 }
14221420 else throw("Strict value is not equal to itself.")
14231421 }
14241422
14251423
14261424
1427-@Callable(cU)
1428-func getOneTknV2READONLY (fQ,hF) = {
1425+@Callable(cT)
1426+func getOneTknV2READONLY (fP,hE) = {
1427+ let dn = toBase58String(value(bq))
14291428 let do = toBase58String(value(br))
1430- let dp = toBase58String(value(bs))
1431- let dn = toBase58String(value(bq))
1432- let cE = [toBigInt(bS(do)), toBigInt(bS(dp))]
1433- let eN = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(dn)), "invalid lp asset").quantity)
1434- let cg = cD(cE)
1435- let cf = (cg - fraction(toBigInt(hF), cg, eN))
1436- let hG = if ((fQ == do))
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))
14371435 then 0
1438- else if ((fQ == dp))
1436+ else if ((fP == do))
14391437 then 1
14401438 else throw("invalid out asset id")
1441- let hH = ex(cE, hG, cf)
1442- let gG = (cE[hG] - hH)
1443- let gH = max([0, toInt((gG - g))])
1444- let hI = cA(gH, aY)
1445- let fZ = hI._1
1446- let cC = hI._2
1447- $Tuple2(nil, $Tuple2(fZ, cC))
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))
14481446 }
14491447
14501448
14511449
1452-@Callable(cU)
1453-func getOneTknV2WithBonusREADONLY (fQ,hF) = {
1450+@Callable(cT)
1451+func getOneTknV2WithBonusREADONLY (fP,hE) = {
1452+ let dn = toBase58String(value(bq))
14541453 let do = toBase58String(value(br))
1455- let dp = toBase58String(value(bs))
1456- let dn = toBase58String(value(bq))
1457- let du = bS(do)
1458- let dw = bS(dp)
1459- let hJ = {
1460- let aX = invoke(this, "getOneTknV2READONLY", [fQ, hF], nil)
1461- if ($isInstanceOf(aX, "(Int, Int)"))
1462- then aX
1463- else throw(($getType(aX) + " couldn't be cast to (Int, Int)"))
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)"))
14641462 }
1465- let fZ = hJ._1
1466- let cC = hJ._2
1467- let ec = di("", dn, hF, this)
1468- let dE = ec._1
1469- let dF = ec._2
1470- let hK = (dE + dF)
1471- let fO = if ((hK == 0))
1472- then if ((fZ == 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))
14731471 then 0
14741472 else throw("bonus calculation error")
1475- else fraction((fZ - hK), b, hK)
1476- $Tuple2(nil, $Tuple3(fZ, cC, fO))
1473+ else fraction((fY - hJ), a, hJ)
1474+ $Tuple2(nil, $Tuple3(fY, cB, fN))
14771475 }
14781476
14791477
14801478
1481-@Callable(cU)
1482-func getNoLess (hL,hM) = {
1483- let ec = fo(cU)
1484- let dE = ec._1
1485- let dF = ec._2
1486- let dQ = ec._3
1487- let dk = ec._4
1488- let dG = ec._5
1489- if ((hL > dE))
1490- then throw(((("Failed: " + toString(dE)) + " < ") + toString(hL)))
1491- else if ((hM > dF))
1492- then throw(((("Failed: " + toString(dF)) + " < ") + toString(hM)))
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)))
14931491 else {
1494- let eW = eP(toBigInt(0), toBigInt(0), toBigInt(0))
1495- if ((eW == eW))
1492+ let eV = eO(toBigInt(0), toBigInt(0), toBigInt(0))
1493+ if ((eV == eV))
14961494 then {
1497- let hN = invoke(aV, "burn", [dQ], [AttachedPayment(dk, dQ)])
1498- if ((hN == hN))
1495+ let hM = invoke(aU, "burn", [dP], [AttachedPayment(dj, dP)])
1496+ if ((hM == hM))
14991497 then {
1500- let hO = eX(-(dE), -(dF), 0)
1501- let gn = hO._1
1502- let eO = hO._2
1503- let go = fb(eW, eO)
1504- if ((go == go))
1505- then (dG ++ gn)
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)
15061504 else throw("Strict value is not equal to itself.")
15071505 }
15081506 else throw("Strict value is not equal to itself.")
15131511
15141512
15151513
1516-@Callable(cU)
1517-func unstakeAndGet (cB) = {
1518- let hP = if ((size(cU.payments) != 0))
1514+@Callable(cT)
1515+func unstakeAndGet (cA) = {
1516+ let hO = if ((size(cT.payments) != 0))
15191517 then throw("No pmnts expd")
15201518 else true
1521- if ((hP == hP))
1519+ if ((hO == hO))
15221520 then {
1523- let hQ = bx()
1524- let hd = bq
1525- let hR = valueOrErrorMessage(addressFromString(hQ[D]), "Wr st addr")
1526- let eW = eP(toBigInt(0), toBigInt(0), toBigInt(0))
1527- if ((eW == eW))
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))
15281526 then {
1529- let hS = invoke(hR, "unstake", [toBase58String(hd), cB], nil)
1530- if ((hS == hS))
1527+ let hR = invoke(hQ, "unstake", [toBase58String(hc), cA], nil)
1528+ if ((hR == hR))
15311529 then {
1532- let ec = di(toBase58String(cU.transactionId), toBase58String(hd), cB, cU.caller)
1533- let dE = ec._1
1534- let dF = ec._2
1535- let ds = parseIntValue(ec._9)
1536- let dG = ec._10
1537- let hT = 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())
15381536 then true
1539- else (ds == t))
1540- then throw(("Blocked: " + toString(ds)))
1537+ else (dr == s))
1538+ then throw(("Blocked: " + toString(dr)))
15411539 else true
1542- if ((hT == hT))
1540+ if ((hS == hS))
15431541 then {
1544- let hU = invoke(aV, "burn", [cB], [AttachedPayment(hd, cB)])
1545- if ((hU == hU))
1542+ let hT = invoke(aU, "burn", [cA], [AttachedPayment(hc, cA)])
1543+ if ((hT == hT))
15461544 then {
1547- let hV = eX(-(dE), -(dF), 0)
1548- let gn = hV._1
1549- let eO = hV._2
1550- let go = fb(eW, eO)
1551- if ((go == go))
1552- then (dG ++ gn)
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)
15531551 else throw("Strict value is not equal to itself.")
15541552 }
15551553 else throw("Strict value is not equal to itself.")
15651563
15661564
15671565
1568-@Callable(cU)
1569-func unstakeAndGetNoLess (hW,hX,hM) = {
1570- let hz = if (ba())
1566+@Callable(cT)
1567+func unstakeAndGetNoLess (hV,hW,hL) = {
1568+ let hy = if (aZ())
15711569 then true
1572- else (bp == t)
1573- let gN = [if (!(hz))
1570+ else (bo == s)
1571+ let gM = [if (!(hy))
15741572 then true
1575- else throw("get operation is blocked by admin"), if ((size(cU.payments) == 0))
1573+ else throw("get operation is blocked by admin"), if ((size(cT.payments) == 0))
15761574 then true
15771575 else throw("no payments are expected")]
1578- if ((gN == gN))
1576+ if ((gM == gM))
15791577 then {
1580- let eW = eP(toBigInt(0), toBigInt(0), toBigInt(0))
1581- if ((eW == eW))
1578+ let eV = eO(toBigInt(0), toBigInt(0), toBigInt(0))
1579+ if ((eV == eV))
15821580 then {
1583- let hS = invoke(bz, "unstake", [toBase58String(bq), hW], nil)
1584- if ((hS == hS))
1581+ let hR = invoke(by, "unstake", [toBase58String(bp), hV], nil)
1582+ if ((hR == hR))
15851583 then {
1586- let hY = di(toBase58String(cU.transactionId), toBase58String(bq), hW, cU.caller)
1587- let dE = hY._1
1588- let dF = hY._2
1589- let dG = hY._10
1590- let hZ = [if ((dE >= hX))
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))
15911589 then true
1592- else throw(makeString(["amount asset amount to receive is less than ", toString(hX)], "")), if ((dF >= hM))
1590+ else throw(makeString(["amount asset amount to receive is less than ", toString(hW)], "")), if ((dE >= hL))
15931591 then true
1594- else throw(makeString(["price asset amount to receive is less than ", toString(hM)], ""))]
1595- if ((hZ == hZ))
1592+ else throw(makeString(["price asset amount to receive is less than ", toString(hL)], ""))]
1593+ if ((hY == hY))
15961594 then {
1597- let hN = invoke(aV, "burn", [hW], [AttachedPayment(bq, hW)])
1598- if ((hN == hN))
1595+ let hM = invoke(aU, "burn", [hV], [AttachedPayment(bp, hV)])
1596+ if ((hM == hM))
15991597 then {
1600- let ia = eX(-(dE), -(dF), 0)
1601- let gn = ia._1
1602- let eO = ia._2
1603- let go = fb(eW, eO)
1604- if ((go == go))
1605- then (dG ++ gn)
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)
16061604 else throw("Strict value is not equal to itself.")
16071605 }
16081606 else throw("Strict value is not equal to itself.")
16181616
16191617
16201618
1621-@Callable(cU)
1622-func unstakeAndGetOneTknV2 (hW,fQ,fR) = {
1623- let hn = {
1624- let aX = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1625- if ($isInstanceOf(aX, "Boolean"))
1626- then aX
1627- 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"))
16281626 }
1629- let hz = if (if (ba())
1627+ let hy = if (if (aZ())
16301628 then true
1631- else (bp == t))
1629+ else (bo == s))
16321630 then true
1633- else hn
1634- let gN = [if (if (!(hz))
1631+ else hm
1632+ let gM = [if (if (!(hy))
16351633 then true
1636- else gt(cU))
1634+ else gs(cT))
16371635 then true
1638- else aS("get operation is blocked by admin"), if ((size(cU.payments) == 0))
1636+ else aR("get operation is blocked by admin"), if ((size(cT.payments) == 0))
16391637 then true
1640- else aS("no payments are expected")]
1641- if ((gN == gN))
1638+ else aR("no payments are expected")]
1639+ if ((gM == gM))
16421640 then {
1643- let hQ = bx()
1644- let hd = bq
1645- let hR = valueOrErrorMessage(addressFromString(hQ[D]), "Wr st addr")
1646- let dm = cU.caller
1647- let ib = this
1648- let hS = invoke(hR, "unstakeINTERNAL", [hd, hW, dm.bytes, ib.bytes], nil)
1649- if ((hS == hS))
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))
16501648 then {
1651- let ic = fP(fQ, fR, [AttachedPayment(hd, hW)], cU.caller, cU.originCaller, cU.transactionId)
1652- let dG = ic._1
1653- let ga = ic._2
1654- $Tuple2(dG, ga)
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)
16551653 }
16561654 else throw("Strict value is not equal to itself.")
16571655 }
16601658
16611659
16621660
1663-@Callable(cU)
1664-func putOneTknV2WithBonusREADONLY (id,ie) = {
1665- let if = fu(id, ie, "", "", true)
1666- let fJ = if._1
1667- let dG = if._2
1668- let cC = if._3
1669- let fO = if._4
1670- $Tuple2(nil, $Tuple3(fJ, cC, fO))
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))
16711669 }
16721670
16731671
16741672
1675-@Callable(cU)
1676-func putOneTknV2WithoutTakeFeeREADONLY (id,ie) = {
1677- let ig = fu(id, ie, "", "", false)
1678- let fJ = ig._1
1679- let dG = ig._2
1680- let cC = ig._3
1681- let fO = ig._4
1682- $Tuple2(nil, $Tuple3(fJ, cC, fO))
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))
16831681 }
16841682
16851683
16861684
1687-@Callable(cU)
1688-func activate (ih,ii) = if ((toString(cU.caller) != toString(aV)))
1685+@Callable(cT)
1686+func activate (ig,ih) = if ((toString(cT.caller) != toString(aU)))
16891687 then throw("denied")
1690- else $Tuple2([StringEntry(ak(), ih), StringEntry(al(), ii)], "success")
1688+ else $Tuple2([StringEntry(aj(), ig), StringEntry(ak(), ih)], "success")
16911689
16921690
16931691
1694-@Callable(cU)
1695-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bd())
1692+@Callable(cT)
1693+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bc())
16961694
16971695
16981696
1699-@Callable(cU)
1700-func getAccBalanceWrapperREADONLY (bT) = $Tuple2(nil, bS(bT))
1697+@Callable(cT)
1698+func getAccBalanceWrapperREADONLY (bS) = $Tuple2(nil, bR(bS))
17011699
17021700
17031701
1704-@Callable(cU)
1705-func calcPricesWrapperREADONLY (cm,cn,cr) = {
1706- let ij = cq(cm, cn, cr)
1707- $Tuple2(nil, [toString(ij[0]), toString(ij[1]), toString(ij[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])])
17081706 }
17091707
17101708
17111709
1712-@Callable(cU)
1713-func fromX18WrapperREADONLY (N,ik) = $Tuple2(nil, M(parseBigIntValue(N), ik))
1710+@Callable(cT)
1711+func fromX18WrapperREADONLY (M,ij) = $Tuple2(nil, L(parseBigIntValue(M), ij))
17141712
17151713
17161714
1717-@Callable(cU)
1718-func toX18WrapperREADONLY (J,K) = $Tuple2(nil, toString(I(J, K)))
1715+@Callable(cT)
1716+func toX18WrapperREADONLY (I,J) = $Tuple2(nil, toString(H(I, J)))
17191717
17201718
17211719
1722-@Callable(cU)
1723-func calcPriceBigIntWrapperREADONLY (bV,bW) = $Tuple2(nil, toString(bU(parseBigIntValue(bV), parseBigIntValue(bW))))
1720+@Callable(cT)
1721+func calcPriceBigIntWrapperREADONLY (bU,bV) = $Tuple2(nil, toString(bT(parseBigIntValue(bU), parseBigIntValue(bV))))
17241722
17251723
17261724
1727-@Callable(cU)
1728-func estimatePutOperationWrapperREADONLY (dj,cb,dI,dJ,dK,dL,il,dM,dN) = $Tuple2(nil, dH(dj, cb, dI, dJ, dK, dL, il, dM, dN, 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, ""))
17291727
17301728
17311729
1732-@Callable(cU)
1733-func estimateGetOperationWrapperREADONLY (dj,im,dl,il) = {
1734- let ec = di(dj, im, dl, addressFromStringValue(il))
1735- $Tuple2(nil, $Tuple10(ec._1, ec._2, ec._3, ec._4, ec._5, ec._6, ec._7, toString(ec._8), ec._9, ec._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))
17361734 }
17371735
17381736
17391737
1740-@Callable(cU)
1738+@Callable(cT)
17411739 func changeAmp () = {
1742- let in = invoke(aV, "getChangeAmpConfigREADONLY", [toString(this)], nil)
1743- let io = {
1744- let gq = in
1745- if ($isInstanceOf(gq, "List[Any]"))
1740+ let im = invoke(aU, "getChangeAmpConfigREADONLY", [toString(this)], nil)
1741+ let in = {
1742+ let gp = im
1743+ if ($isInstanceOf(gp, "List[Any]"))
17461744 then {
1747- let ip = gq
1745+ let io = gp
17481746 $Tuple3({
1749- let aX = ip[0]
1750- if ($isInstanceOf(aX, "Int"))
1751- then aX
1752- 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"))
17531751 }, {
1754- let aX = ip[1]
1755- if ($isInstanceOf(aX, "Int"))
1756- then aX
1757- 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"))
17581756 }, {
1759- let aX = ip[2]
1760- if ($isInstanceOf(aX, "Int"))
1761- then aX
1762- 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"))
17631761 })
17641762 }
1765- else aS("invalid entry type")
1763+ else aR("invalid entry type")
17661764 }
1767- let iq = io._1
1768- let ir = io._2
1769- let is = io._3
1770- let it = parseIntValue(getStringValue(am()))
1771- let iu = (it + ir)
1772- let iv = if ((0 > ir))
1773- then if ((is > iu))
1774- then is
1775- else iu
1776- else if ((iu > is))
1777- then is
1778- else iu
1779- let iw = valueOrElse(getInteger(ap()), 0)
1780- let ix = (iw + iq)
1781- let gN = [if ((height > ix))
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))
17821780 then true
1783- else aS("try again in few blocks"), if ((it != iv))
1781+ else aR("try again in few blocks"), if ((is != iu))
17841782 then true
1785- else aS("already reached target")]
1786- if ((gN == gN))
1787- then [IntegerEntry(ap(), height), StringEntry(am(), toString(iv)), StringEntry(an(height), toString(iv))]
1783+ else aR("already reached target")]
1784+ if ((gM == gM))
1785+ then [IntegerEntry(ao(), height), StringEntry(al(), toString(iu)), StringEntry(am(height), toString(iu))]
17881786 else throw("Strict value is not equal to itself.")
17891787 }
17901788
17911789
1792-@Verifier(iy)
1793-func iz () = {
1794- let iA = {
1795- let gq = gp()
1796- if ($isInstanceOf(gq, "ByteVector"))
1790+@Verifier(ix)
1791+func iy () = {
1792+ let iz = {
1793+ let gp = go()
1794+ if ($isInstanceOf(gp, "ByteVector"))
17971795 then {
1798- let gu = gq
1799- gu
1796+ let gt = gp
1797+ gt
18001798 }
1801- else if ($isInstanceOf(gq, "Unit"))
1802- then iy.senderPublicKey
1799+ else if ($isInstanceOf(gp, "Unit"))
1800+ then ix.senderPublicKey
18031801 else throw("Match error")
18041802 }
1805- let gq = iy
1806- if ($isInstanceOf(gq, "Order"))
1803+ let gp = ix
1804+ if ($isInstanceOf(gp, "Order"))
18071805 then {
1808- let fe = gq
1809- let iB = bb()
1810- let iC = if (gB())
1806+ let fd = gp
1807+ let iA = ba()
1808+ let iB = if (gA())
18111809 then $Tuple2(true, "")
1812- else fd(fe)
1813- let aK = iC._1
1814- let aL = iC._2
1815- let aM = sigVerify(fe.bodyBytes, fe.proofs[0], fe.senderPublicKey)
1816- let aN = sigVerify(fe.bodyBytes, fe.proofs[1], iB)
1817- 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)
18181818 then aM
18191819 else false)
1820- then aN
1821- else false)
18221820 then true
1823- else aJ(aK, aL, aM, aN)
1821+ else aI(aJ, aK, aL, aM)
18241822 }
1825- else if ($isInstanceOf(gq, "SetScriptTransaction"))
1823+ else if ($isInstanceOf(gp, "SetScriptTransaction"))
18261824 then {
1827- let cH = gq
1828- if (sigVerify(iy.bodyBytes, iy.proofs[0], iA))
1825+ let cG = gp
1826+ if (sigVerify(ix.bodyBytes, ix.proofs[0], iz))
18291827 then true
18301828 else {
1831- let iD = blake2b256(value(cH.script))
1832- let iE = fromBase64String(value(getString(aV, aF())))
1833- let iF = scriptHash(this)
1834- if ((iE == iD))
1835- then (iF != iD)
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)
18361834 else false
18371835 }
18381836 }
1839- else sigVerify(iy.bodyBytes, iy.proofs[0], iA)
1837+ else sigVerify(ix.bodyBytes, ix.proofs[0], iz)
18401838 }
18411839
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = true
4+let a = 100000000
55
6-let b = 100000000
6+let b = toBigInt(100000000)
77
8-let c = toBigInt(100000000)
8+let c = toBigInt(1000000000000000000)
99
10-let d = toBigInt(1000000000000000000)
10+let d = toBigInt(0)
1111
1212 let e = toBigInt(0)
1313
14-let f = toBigInt(0)
14+let f = toBigInt(1)
1515
16-let g = toBigInt(1)
16+let g = toBigInt(2)
1717
18-let h = toBigInt(2)
18+let h = toBigInt(3)
1919
20-let i = toBigInt(3)
20+let i = toBigInt(4)
2121
22-let j = toBigInt(4)
22+let j = toBigInt((a - ((a * 1) / a)))
2323
24-let k = toBigInt((b - ((b * 1) / b)))
24+let k = "WAVES"
2525
26-let l = "WAVES"
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, b, 10000)
71-
72-func I (J,K) = fraction(toBigInt(J), d, toBigInt(K))
70+func H (I,J) = fraction(toBigInt(I), c, toBigInt(J))
7371
7472
75-func L (J,K) = fraction(J, d, K)
73+func K (I,J) = fraction(I, c, J)
7674
7775
78-func M (N,O) = toInt(fraction(N, toBigInt(O), d))
76+func L (M,N) = toInt(fraction(M, toBigInt(N), c))
7977
8078
81-func P (N,O,Q) = toInt(fraction(N, toBigInt(O), d, Q))
79+func O (M,N,P) = toInt(fraction(M, toBigInt(N), c, P))
8280
8381
84-func R (J,K) = fraction(J, d, toBigInt(K))
82+func Q (I,J) = fraction(I, c, toBigInt(J))
8583
8684
87-func S (N,O) = fraction(N, toBigInt(O), d)
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 ((e > 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 ((e > 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 == l))
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))
233- then l
234- else toBase58String(value(bi))
230+func bi (bh) = if ((bh == unit))
231+ then k
232+ else toBase58String(value(bh))
235233
236234
237-func bk (bl) = $Tuple9(addressFromStringValue(bl[u]), parseIntValue(bl[v]), fromBase58String(bl[w]), bh(bl[x]), bh(bl[y]), parseIntValue(bl[z]), parseIntValue(bl[A]), fromBase58String(bl[B]), fromBase58String(bl[C]))
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-let bv = bn._8
256+let bu = bm._8
259257
260-let bw = bn._9
258+let bv = bm._9
261259
262-func bx () = split(aO(aV, ax()), o)
260+func bw () = split(aN(aU, aw()), n)
263261
264262
265-let by = bx()
263+let bx = bw()
266264
267-let bz = valueOrErrorMessage(addressFromString(by[D]), "Invalid staking contract address")
265+let by = valueOrErrorMessage(addressFromString(bx[C]), "Invalid staking contract address")
268266
269-let bA = valueOrErrorMessage(addressFromString(by[F]), "Invalid slipage contract address")
267+let bz = valueOrErrorMessage(addressFromString(bx[E]), "Invalid slipage contract address")
270268
271-let bB = valueOrErrorMessage(addressFromString(by[G]), "Invalid gwx contract address")
269+let bA = valueOrErrorMessage(addressFromString(bx[F]), "Invalid gwx contract address")
272270
273-let bC = valueOrErrorMessage(addressFromString(by[E]), "Invalid gwx contract address")
271+let bB = valueOrErrorMessage(addressFromString(bx[D]), "Invalid gwx contract address")
274272
275-func bD (bE,bF,bG,bH,bI,bJ,bK,bL,bM,bN) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bE), toString(bF), toString(bG), toString(bH), toString(bI), toString(bJ), toString(bK), toString(bL), toString(bM), toString(bN)], 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)
276274
277275
278-func bO (bP,bQ,bR,bH,bK,bL) = makeString(["%d%d%d%d%d%d", toString(bP), toString(bQ), toString(bR), toString(bH), toString(bK), toString(bL)], 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)
279277
280278
281-func bS (bT) = if ((bT == "WAVES"))
279+func bR (bS) = if ((bS == "WAVES"))
282280 then wavesBalance(this).available
283- else assetBalance(this, fromBase58String(bT))
281+ else assetBalance(this, fromBase58String(bS))
284282
285283
286-func bU (bV,bW) = fraction(bV, d, bW)
284+func bT (bU,bV) = fraction(bU, c, bV)
287285
288286
289-func bX (bV,bW,Q) = fraction(bV, d, bW, Q)
287+func bW (bU,bV,P) = fraction(bU, c, bV, P)
290288
291289
292-func bY (bZ,ca,cb) = {
293- let cc = fraction((bZ - ca), c, ca)
294- let cd = ((cb - X(cc)) > e)
295- if (!(cd))
296- then throw(("Big slpg: " + toString(cc)))
297- else $Tuple2(cd, min([bZ, ca]))
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]))
298296 }
299297
300298
301-func ce (cf,cg,ch) = {
302- let cc = fraction(cg, c, cf)
303- let ci = (ch > cc)
304- if (if (ci)
299+func cd (ce,cf,cg) = {
300+ let cb = fraction(cf, b, ce)
301+ let ch = (cg > cb)
302+ if (if (ch)
305303 then true
306- else (cg > cf))
307- then throw(((((((toString(cg) + " ") + toString(cf)) + " ") + toString(cc)) + " ") + toString(ch)))
308- else ci
304+ else (cf > ce))
305+ then throw(((((((toString(cf) + " ") + toString(ce)) + " ") + toString(cb)) + " ") + toString(cg)))
306+ else ch
309307 }
310308
311309
312-func cj (ck,cl,cm,cn) = {
313- let co = I(cm, ck)
314- let cp = I(cn, cl)
315- bU(cp, co)
310+func ci (cj,ck,cl,cm) = {
311+ let cn = H(cl, cj)
312+ let co = H(cm, ck)
313+ bT(co, cn)
316314 }
317315
318316
319-func cq (cm,cn,cr) = {
317+func cp (cl,cm,cq) = {
318+ let cr = bs
320319 let cs = bt
321- let ct = bu
322- let cu = cj(cs, ct, cm, cn)
323- let bW = I(cm, cs)
324- let bV = I(cn, ct)
325- let cv = I(cr, b)
326- let cw = bU(bW, cv)
327- let cx = bU(bV, cv)
328-[cu, cw, cx]
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]
329327 }
330328
331329
332-func cy (cm,cn,cr) = {
333- let cz = cq(cm, cn, cr)
334-[M(cz[0], b), M(cz[1], b), M(cz[2], b)]
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)]
335333 }
336334
337335
338-func cA (cB,ar) = {
339- let cC = if ((ar == 0))
336+func cz (cA,aq) = {
337+ let cB = if ((aq == 0))
340338 then 0
341- else fraction(cB, ar, b)
342- $Tuple2((cB - cC), cC)
339+ else fraction(cA, aq, a)
340+ $Tuple2((cA - cB), cB)
343341 }
344342
345343
346-func cD (cE) = {
347- let cF = cE[0]
348- let cG = cE[1]
349- let cH = (cF + cG)
350- if ((cH == f))
351- then f
344+func cC (cD) = {
345+ let cE = cD[0]
346+ let cF = cD[1]
347+ let cG = (cE + cF)
348+ if ((cG == e))
349+ then e
352350 else {
353- let cI = parseIntValue(aZ)
354- let cJ = (cI * 2)
355- let cz = fraction(cF, cG, g)
356- let cK = fraction(cz, j, g)
357- let cL = fraction(toBigInt(cJ), cH, g)
358- let cM = toBigInt((cJ - 1))
359- func cN (cO) = {
360- let cP = fraction(cO, cO, g)
361- let cQ = fraction(cP, cO, g)
362- let cR = fraction(cQ, g, cK)
363- fraction((cL + fraction(cR, h, g)), cO, (fraction(cM, cO, g) + fraction(i, cR, g)))
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)))
364362 }
365363
366- func cS (cT,cU) = if (cT._2)
367- then cT
364+ func cR (cS,cT) = if (cS._2)
365+ then cS
368366 else {
369- let cO = cT._1
370- let cV = cN(cO)
371- let cW = (cV - value(cO))
372- let cX = if ((f > cW))
373- then -(cW)
374- else cW
375- if ((g >= cX))
376- then $Tuple2(cV, true)
377- else $Tuple2(cV, 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)
378376 }
379377
380- let cY = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
381- let cZ = {
382- let da = cY
383- let db = size(da)
384- let dc = $Tuple2(cH, false)
385- func dd (de,df) = if ((df >= db))
386- then de
387- else cS(de, da[df])
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])
388386
389- func dg (de,df) = if ((df >= db))
390- then de
387+ func df (dd,de) = if ((de >= da))
388+ then dd
391389 else throw("List size exceeds 17")
392390
393- dg(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dc, 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)
394392 }
395- let cO = cZ._1
396- let dh = cZ._2
397- if (dh)
398- then cO
399- else throw(("D calculation error, D = " + toString(cO)))
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)))
400398 }
401399 }
402400
403401
404-func di (dj,dk,dl,dm) = {
405- let dn = bq
402+func dh (di,dj,dk,dl) = {
403+ let dm = bp
404+ let dn = toBase58String(value(bq))
406405 let do = toBase58String(value(br))
407- let dp = toBase58String(value(bs))
406+ let dp = bs
408407 let dq = bt
409- let dr = bu
410- let ds = toString(bp)
411- let dt = valueOrErrorMessage(assetInfo(dn), "Wrong LP id").quantity
412- if ((toBase58String(dn) != dk))
408+ let dr = toString(bo)
409+ let ds = valueOrErrorMessage(assetInfo(dm), "Wrong LP id").quantity
410+ if ((toBase58String(dm) != dj))
413411 then throw("Wrong pmt asset")
414412 else {
415- let du = bS(do)
416- let dv = I(du, dq)
417- let dw = bS(dp)
418- let dx = I(dw, dr)
419- let dy = bU(dx, dv)
420- let dz = M(dy, b)
421- let dA = I(dl, b)
422- let dB = I(dt, b)
423- let dC = fraction(dv, dA, dB)
424- let dD = fraction(dx, dA, dB)
425- let dE = P(dC, dq, FLOOR)
426- let dF = P(dD, dr, FLOOR)
427- let dG = if ((dj == ""))
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 == ""))
428426 then nil
429- else [ScriptTransfer(dm, dE, if ((do == "WAVES"))
427+ else [ScriptTransfer(dl, dD, if ((dn == "WAVES"))
430428 then unit
431- else fromBase58String(do)), ScriptTransfer(dm, dF, if ((dp == "WAVES"))
429+ else fromBase58String(dn)), ScriptTransfer(dl, dE, if ((do == "WAVES"))
432430 then unit
433- else fromBase58String(dp)), StringEntry(aj(toString(dm), dj), bO(dE, dF, dl, dz, height, lastBlock.timestamp)), IntegerEntry(ac(), dz), IntegerEntry(ad(height, lastBlock.timestamp), dz)]
434- $Tuple10(dE, dF, do, dp, du, dw, dt, dy, ds, dG)
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)
435433 }
436434 }
437435
438436
439-func dH (dj,cb,dI,dJ,dK,dL,dm,dM,dN,dO,dP,dQ,dR) = {
440- let dn = bq
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))
441440 let dS = toBase58String(value(br))
442- let dT = toBase58String(value(bs))
441+ let dT = bu
443442 let dU = bv
444- let dV = bw
443+ let dV = bs
445444 let dW = bt
446- let dX = bu
447- let ds = toString(bp)
448- let dY = valueOrErrorMessage(assetInfo(dn), "Wr lp as").quantity
449- let du = if (dM)
450- then bS(dS)
451- else if (if (dO)
452- then (dR == dS)
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)
453451 else false)
454- then (bS(dS) - dQ)
455- else if (dO)
456- then bS(dS)
457- else (bS(dS) - dI)
458- let dw = if (dM)
459- then bS(dT)
460- else if (if (dO)
461- then (dR == dT)
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)
462460 else false)
463- then (bS(dT) - dQ)
464- else if (dO)
465- then bS(dT)
466- else (bS(dT) - dK)
467- let dZ = I(dI, dW)
468- let ea = I(dK, dX)
469- let eb = bU(ea, dZ)
470- let dv = I(du, dW)
471- let dx = I(dw, dX)
472- let cg = cD([dv, dx])
473- let ec = if ((dY == 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))
474472 then {
475- let cf = cD([(dv + dZ), (dx + ea)])
476- let ed = if ((cf > cg))
473+ let ce = cC([(du + dY), (dw + dZ)])
474+ let ec = if ((ce > cf))
477475 then true
478476 else throw("D1 should be greater than D0")
479- if ((ed == ed))
477+ if ((ec == ec))
480478 then {
481- let dy = e
482- let ee = e
483- let cv = cf
484- $Tuple5(M(cv, b), M(dZ, dW), M(ea, dX), bU((dx + ea), (dv + dZ)), ee)
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)
485483 }
486484 else throw("Strict value is not equal to itself.")
487485 }
488486 else {
489- let dy = bU(dx, dv)
490- let ef = fraction(X((dy - eb)), d, dy)
491- let ee = I(cb, b)
492- if (if (if (dP)
493- then (dy != e)
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)
494492 else false)
495- then (ef > ee)
493+ then (ee > ed)
496494 else false)
497- then throw(((("Price slippage " + toString(ef)) + " > ") + toString(ee)))
495+ then throw(((("Price slippage " + toString(ee)) + " > ") + toString(ed)))
498496 else {
499- let eg = I(dY, b)
500- let eh = fraction(dZ, bX(dx, dv, CEILING), d, CEILING)
501- let ei = fraction(ea, d, bX(dx, dv, FLOOR), CEILING)
502- let ej = if ((eh > ea))
503- then $Tuple2(ei, ea)
504- else $Tuple2(dZ, eh)
505- let ek = ej._1
506- let el = ej._2
507- let cf = cD([(dv + ek), (dx + el)])
508- let ed = if ((cf > cg))
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))
509507 then true
510508 else throw("D1 should be greater than D0")
511- if ((ed == ed))
509+ if ((ec == ec))
512510 then {
513- let cv = fraction(eg, (cf - cg), cg)
514- $Tuple5(P(cv, b, FLOOR), P(ek, dW, CEILING), P(el, dX, CEILING), dy, ee)
511+ let cu = fraction(ef, (ce - cf), cf)
512+ $Tuple5(O(cu, a, FLOOR), O(ej, dV, CEILING), O(ek, dW, CEILING), dx, ed)
515513 }
516514 else throw("Strict value is not equal to itself.")
517515 }
518516 }
519- let em = ec._1
520- let en = ec._2
521- let eo = ec._3
522- let dz = M(ec._4, b)
523- let ep = M(ec._5, b)
524- if ((0 >= em))
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))
525523 then throw("LP <= 0")
526524 else {
527- let eq = if (!(dN))
525+ let ep = if (!(dM))
528526 then 0
529- else em
530- let er = (dI - en)
531- let es = (dK - eo)
532- let et = if (if (dO)
533- then (dR == dS)
527+ else el
528+ let eq = (dH - em)
529+ let er = (dJ - en)
530+ let es = if (if (dN)
531+ then (dQ == dR)
534532 else false)
535- then $Tuple2(dQ, 0)
536- else if (if (dO)
537- then (dR == dT)
533+ then $Tuple2(dP, 0)
534+ else if (if (dN)
535+ then (dQ == dS)
538536 else false)
539- then $Tuple2(0, dQ)
540- else $Tuple2(en, eo)
541- let eu = et._1
542- let ev = et._2
543- let ew = [IntegerEntry(ac(), dz), IntegerEntry(ad(height, lastBlock.timestamp), dz), StringEntry(ag(dm, dj), bD(eu, ev, eq, dz, cb, ep, height, lastBlock.timestamp, er, es))]
544- $Tuple13(em, eq, dz, du, dw, dY, dn, ds, ew, er, es, dJ, dL)
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)
545543 }
546544 }
547545
548546
549-func ex (cE,cU,ey) = {
550- let ez = h
551- let eA = cE[if ((cU == 0))
547+func ew (cD,cT,ex) = {
548+ let ey = g
549+ let ez = cD[if ((cT == 0))
552550 then 1
553551 else 0]
554- let eB = parseBigIntValue(m)
555- let cI = (parseBigIntValue(aZ) * eB)
556- let cH = eA
557- let cJ = (cI * ez)
558- let eC = (((((ey * ey) / (eA * ez)) * ey) * eB) / (cJ * ez))
559- let eD = ((cH + ((ey * eB) / cJ)) - ey)
560- func cS (cT,eE) = {
561- let eF = cT
562- let eG = eF._1
563- let dh = eF._2
564- if ((dh != unit))
565- then cT
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
566564 else {
567- let eH = (((eG * eG) + eC) / ((h * eG) + eD))
568- let eI = Y((eH - value(eG)))
569- if ((g >= eI))
570- then $Tuple2(eH, eE)
571- else $Tuple2(eH, 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)
572570 }
573571 }
574572
575- let cY = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
576- let eJ = {
577- let da = cY
578- let db = size(da)
579- let dc = $Tuple2(ey, unit)
580- func dd (de,df) = if ((df >= db))
581- then de
582- else cS(de, da[df])
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])
583581
584- func dg (de,df) = if ((df >= db))
585- then de
582+ func df (dd,de) = if ((de >= da))
583+ then dd
586584 else throw("List size exceeds 15")
587585
588- dg(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dc, 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)
589587 }
590- let eG = eJ._1
591- let dh = eJ._2
592- if ((dh != unit))
593- then eG
594- else throw(("Y calculation error, Y = " + toString(eG)))
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)))
595593 }
596594
597595
598-func eK (eL,eM,eN) = {
599- let eO = fraction(cD([L(eL, toBigInt(bt)), L(eM, toBigInt(bu))]), d, eN)
600- if ((eN == f))
601- then f
602- else eO
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))
599+ then e
600+ else eN
603601 }
604602
605603
606-func eP (eQ,eR,eS) = {
607- let eT = (toBigInt(bS(bj(br))) - eQ)
608- let eU = (toBigInt(bS(bj(bs))) - eR)
609- let eV = (toBigInt(value(assetInfo(bq)).quantity) - eS)
610- let eW = eK(eT, eU, eV)
611- eW
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
612610 }
613611
614612
615-func eX (eY,eZ,eS) = {
616- let eT = (bS(bj(br)) + eY)
617- let eU = (bS(bj(bs)) + eZ)
618- let eV = (value(assetInfo(bq)).quantity + eS)
619- let eO = eK(toBigInt(eT), toBigInt(eU), toBigInt(eV))
620- let fa = [IntegerEntry(at, height), StringEntry(as, toString(eO))]
621- $Tuple2(fa, eO)
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)
622620 }
623621
624622
625-func fb (fc,eO) = if ((eO >= fc))
623+func fa (fb,eN) = if ((eN >= fb))
626624 then true
627- else aS("updated DLp lower than current DLp")
625+ else aR("updated DLp lower than current DLp")
628626
629627
630-func fd (fe) = {
631- let eT = bS(bj(br))
632- let eU = bS(bj(bs))
633- let ff = fe.amount
634- let fg = fraction(fe.amount, fe.price, b, FLOOR)
635- let fh = if ((fe.orderType == Buy))
636- then $Tuple2(ff, -(fg))
637- else $Tuple2(-(ff), fg)
638- let eY = fh._1
639- let eZ = fh._2
640- 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())
641639 then true
642- else (bp == s))
640+ else (bo == r))
643641 then true
644- else (bp == t))
642+ else (bo == s))
645643 then throw("Admin blocked")
646- else if (if ((fe.assetPair.amountAsset != br))
644+ else if (if ((fd.assetPair.amountAsset != bq))
647645 then true
648- else (fe.assetPair.priceAsset != bs))
646+ else (fd.assetPair.priceAsset != br))
649647 then throw("Wr assets")
650648 else {
651- let fi = parseBigIntValue(valueOrElse(getString(this, as), "0"))
652- let fj = eX(eY, eZ, 0)
653- let fk = fj._1
654- let fl = fj._2
655- let fm = (fl >= fi)
656- let fn = makeString(["dLp=", toString(fi), " dLpNew=", toString(fl), " amountAssetBalance=", toString(eT), " priceAssetBalance=", toString(eU), " amountAssetBalanceDelta=", toString(eY), " priceAssetBalanceDelta=", toString(eZ), " height=", toString(height)], "")
657- $Tuple2(fm, fn)
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)
658656 }
659657 }
660658
661659
662-func fo (cU) = if ((size(cU.payments) != 1))
660+func fn (cT) = if ((size(cT.payments) != 1))
663661 then throw("1 pmnt exp")
664662 else {
665- let fp = value(cU.payments[0])
666- let dk = value(fp.assetId)
667- let dQ = fp.amount
668- let ec = di(toBase58String(cU.transactionId), toBase58String(dk), dQ, cU.caller)
669- let dE = ec._1
670- let dF = ec._2
671- let ds = parseIntValue(ec._9)
672- let dG = ec._10
673- 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())
674672 then true
675- else (ds == t))
676- then throw(("Admin blocked: " + toString(ds)))
677- else $Tuple5(dE, dF, dQ, dk, dG)
673+ else (dr == s))
674+ then throw(("Admin blocked: " + toString(dr)))
675+ else $Tuple5(dD, dE, dP, dj, dF)
678676 }
679677
680678
681-func fq (fr,ai,fs,ft,cb,dN,dO,dP,dQ,dR) = {
682- let ec = dH(ai, cb, value(fs).amount, value(fs).assetId, value(ft).amount, value(ft).assetId, fr, (ai == ""), dN, dO, dP, dQ, dR)
683- let ds = parseIntValue(ec._8)
684- 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())
685683 then true
686- else (ds == r))
684+ else (dr == q))
687685 then true
688- else (ds == t))
689- then throw(("Blocked:" + toString(ds)))
690- else ec
686+ else (dr == s))
687+ then throw(("Blocked:" + toString(dr)))
688+ else eb
691689 }
692690
693691
694-func fu (fv,dk,dm,ai,fw) = {
692+func ft (fu,dj,dl,ah,fv) = {
693+ let dn = toBase58String(value(bq))
695694 let do = toBase58String(value(br))
696- let dp = toBase58String(value(bs))
697- let dn = bq
695+ let dm = bp
696+ let dV = bs
698697 let dW = bt
699- let dX = bu
700- let eV = toBigInt(valueOrErrorMessage(assetInfo(dn), "invalid lp asset").quantity)
701- let fx = if ((eV > f))
698+ let eU = toBigInt(valueOrErrorMessage(assetInfo(dm), "invalid lp asset").quantity)
699+ let fw = if ((eU > e))
702700 then true
703701 else throw("initial deposit requires all coins")
704- if ((fx == fx))
702+ if ((fw == fw))
705703 then {
706- let du = bS(do)
707- let dw = bS(dp)
708- let fy = if ((ai == ""))
709- then $Tuple2(du, dw)
710- else if ((dk == do))
711- then if ((fv > du))
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))
712710 then throw("invalid payment amount")
713- else $Tuple2((du - fv), dw)
714- else if ((dk == dp))
715- then if ((fv > dw))
711+ else $Tuple2((dt - fu), dv)
712+ else if ((dj == do))
713+ then if ((fu > dv))
716714 then throw("invalid payment amount")
717- else $Tuple2(du, (dw - fv))
715+ else $Tuple2(dt, (dv - fu))
718716 else throw("wrong pmtAssetId")
719- let fz = fy._1
720- let fA = fy._2
721- let fB = if ((dk == do))
722- then $Tuple2(fv, 0)
723- else if ((dk == dp))
724- then $Tuple2(0, fv)
717+ let fy = fx._1
718+ let fz = fx._2
719+ let fA = if ((dj == dn))
720+ then $Tuple2(fu, 0)
721+ else if ((dj == do))
722+ then $Tuple2(0, fu)
725723 else throw("invalid payment")
726- let fC = fB._1
727- let fD = fB._2
728- let fE = if (fw)
729- then $Tuple3(cA(fC, aW)._1, cA(fD, aW)._1, cA(fv, aW)._2)
730- else $Tuple3(fC, fD, 0)
731- let fF = fE._1
732- let fG = fE._2
733- let cC = fE._3
724+ let fB = fA._1
725+ let fC = fA._2
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)
734733 let fH = (fz + fF)
735- let fI = (fA + fG)
736- let cg = cD([I(fz, bt), I(fA, bu)])
737- let cf = cD([I(fH, bt), I(fI, bu)])
738- let ed = if ((cf > cg))
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))
739737 then true
740738 else throw()
741- if ((ed == ed))
739+ if ((ec == ec))
742740 then {
743- let fJ = fraction(eV, (cf - cg), cg, FLOOR)
744- let dz = M(bU(I(fI, dX), I(fH, dW)), b)
745- let ew = [IntegerEntry(ac(), dz), IntegerEntry(ad(height, lastBlock.timestamp), dz), StringEntry(ag(dm, ai), bD(fC, fD, toInt(fJ), dz, 0, 0, height, lastBlock.timestamp, 0, 0))]
746- let fK = fraction(fA, b, fz)
747- let fL = fraction(fv, b, (fK + b))
748- let fM = (fv - fL)
749- let fN = fraction(eV, toBigInt(fM), toBigInt(fA))
750- let fO = toInt(fraction((fJ - fN), c, fN))
751- $Tuple4(toInt(fJ), ew, cC, fO)
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)
752750 }
753751 else throw("Strict value is not equal to itself.")
754752 }
755753 else throw("Strict value is not equal to itself.")
756754 }
757755
758756
759-func fP (fQ,fR,fS,fr,fT,fU) = {
757+func fO (fP,fQ,fR,fq,fS,fT) = {
758+ let dm = toBase58String(value(bp))
760759 let dn = toBase58String(value(bq))
761760 let do = toBase58String(value(br))
762- let dp = toBase58String(value(bs))
761+ let fU = bs
763762 let fV = bt
764- let fW = bu
765- let fX = bp
766- let dm = if ((fr == bC))
767- then fT
768- else fr
769- let fp = value(fS[0])
770- let dk = value(fp.assetId)
771- let dQ = fp.amount
772- let eW = eP(f, f, f)
773- if ((eW == eW))
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))
774772 then {
775- let dj = toBase58String(fU)
776- if ((dn != toBase58String(dk)))
773+ let di = toBase58String(fT)
774+ if ((dm != toBase58String(dj)))
777775 then throw("Wrong LP")
778776 else {
779- let du = bS(do)
780- let dw = bS(dp)
781- let fY = {
782- let aX = invoke(this, "getOneTknV2READONLY", [fQ, dQ], nil)
783- if ($isInstanceOf(aX, "(Int, Int)"))
784- then aX
785- 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)"))
786784 }
787- if ((fY == fY))
785+ if ((fX == fX))
788786 then {
789- let cC = fY._2
790- let fZ = fY._1
791- let ga = if (if ((fR > 0))
792- then (fR > fZ)
787+ let cB = fX._2
788+ let fY = fX._1
789+ let fZ = if (if ((fQ > 0))
790+ then (fQ > fY)
793791 else false)
794- then aS(makeString(["amount to receive is less than ", toString(fR)], ""))
795- else fZ
796- let gb = if ((fQ == do))
797- then $Tuple4(ga, 0, ((du - ga) - cC), dw)
798- else if ((fQ == dp))
799- then $Tuple4(0, ga, du, ((dw - ga) - cC))
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))
800798 else throw("invalid out asset id")
801- let gc = gb._1
802- let gd = gb._2
803- let fH = gb._3
804- let fI = gb._4
805- let ge = bU(I(fI, fW), I(fH, fV))
806- let gf = M(ge, b)
807- let gg = if ((fQ == "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"))
808806 then unit
809- else fromBase58String(fQ)
810- let gh = if ((cC > 0))
811- then [ScriptTransfer(bc, cC, gg)]
807+ else fromBase58String(fP)
808+ let gg = if ((cB > 0))
809+ then [ScriptTransfer(bb, cB, gf)]
812810 else nil
813- let dG = ([ScriptTransfer(dm, ga, gg), StringEntry(aj(toString(dm), dj), bO(gc, gd, dQ, gf, height, lastBlock.timestamp)), IntegerEntry(ac(), gf), IntegerEntry(ad(height, lastBlock.timestamp), gf)] ++ gh)
814- if ((dG == dG))
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))
815813 then {
816- let gi = invoke(aV, "burn", [dQ], [AttachedPayment(dk, dQ)])
817- if ((gi == gi))
814+ let gh = invoke(aU, "burn", [dP], [AttachedPayment(dj, dP)])
815+ if ((gh == gh))
818816 then {
819- let gj = {
820- let gk = if ((this == bc))
817+ let gi = {
818+ let gj = if ((this == bb))
821819 then 0
822- else cC
823- let gl = if ((bh(fQ) == br))
820+ else cB
821+ let gk = if ((bg(fP) == bq))
824822 then true
825823 else false
826- if (gl)
827- then $Tuple2(-((fZ + gk)), 0)
828- else $Tuple2(0, -((fZ + gk)))
824+ if (gk)
825+ then $Tuple2(-((fY + gj)), 0)
826+ else $Tuple2(0, -((fY + gj)))
829827 }
830- let eY = gj._1
831- let eZ = gj._2
832- let gm = eX(eY, eZ, 0)
833- let gn = gm._1
834- let eO = gm._2
835- let go = fb(eW, eO)
836- if ((go == go))
837- then $Tuple2((dG ++ gn), ga)
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)
838836 else throw("Strict value is not equal to itself.")
839837 }
840838 else throw("Strict value is not equal to itself.")
841839 }
842840 else throw("Strict value is not equal to itself.")
843841 }
844842 else throw("Strict value is not equal to itself.")
845843 }
846844 }
847845 else throw("Strict value is not equal to itself.")
848846 }
849847
850848
851-func gp () = {
852- let gq = getString(aa())
853- if ($isInstanceOf(gq, "String"))
849+func go () = {
850+ let gp = getString(Z())
851+ if ($isInstanceOf(gp, "String"))
854852 then {
855- let cH = gq
856- fromBase58String(cH)
853+ let cG = gp
854+ fromBase58String(cG)
857855 }
858- else if ($isInstanceOf(gq, "Unit"))
856+ else if ($isInstanceOf(gp, "Unit"))
859857 then unit
860858 else throw("Match error")
861859 }
862860
863861
864-func gr () = {
865- let gq = getString(ab())
866- if ($isInstanceOf(gq, "String"))
862+func gq () = {
863+ let gp = getString(aa())
864+ if ($isInstanceOf(gp, "String"))
867865 then {
868- let cH = gq
869- fromBase58String(cH)
866+ let cG = gp
867+ fromBase58String(cG)
870868 }
871- else if ($isInstanceOf(gq, "Unit"))
869+ else if ($isInstanceOf(gp, "Unit"))
872870 then unit
873871 else throw("Match error")
874872 }
875873
876874
877-let gs = throw("Permission denied")
875+let gr = throw("Permission denied")
878876
879-func gt (cU) = {
880- let gq = gp()
881- if ($isInstanceOf(gq, "ByteVector"))
877+func gs (cT) = {
878+ let gp = go()
879+ if ($isInstanceOf(gp, "ByteVector"))
882880 then {
883- let gu = gq
884- (cU.callerPublicKey == gu)
881+ let gt = gp
882+ (cT.callerPublicKey == gt)
885883 }
886- else if ($isInstanceOf(gq, "Unit"))
887- then (cU.caller == this)
884+ else if ($isInstanceOf(gp, "Unit"))
885+ then (cT.caller == this)
888886 else throw("Match error")
889887 }
890888
891889
892-func gv (cU) = {
893- let gq = gp()
894- if ($isInstanceOf(gq, "ByteVector"))
890+func gu (cT) = {
891+ let gp = go()
892+ if ($isInstanceOf(gp, "ByteVector"))
895893 then {
896- let gu = gq
897- if ((cU.callerPublicKey == gu))
894+ let gt = gp
895+ if ((cT.callerPublicKey == gt))
898896 then true
899- else gs
897+ else gr
900898 }
901- else if ($isInstanceOf(gq, "Unit"))
902- then if ((cU.caller == this))
899+ else if ($isInstanceOf(gp, "Unit"))
900+ then if ((cT.caller == this))
903901 then true
904- else gs
902+ else gr
905903 else throw("Match error")
906904 }
907905
908906
909-func gw (gx,ey,gy) = {
910- let bl = bd()
911- let do = bl[x]
912- let dp = bl[y]
913- let ez = h
914- let eB = parseBigIntValue(m)
915- let cI = (parseBigIntValue(aZ) * eB)
916- let cE = if ((gx == false))
917- then [(toBigInt(bS(do)) + gy), toBigInt(bS(dp))]
918- else [(toBigInt(bS(dp)) + gy), toBigInt(bS(do))]
919- let eA = cE[0]
920- let cH = eA
921- let cJ = (cI * ez)
922- let eC = (((((ey * ey) / (eA * ez)) * ey) * eB) / (cJ * ez))
923- let eD = ((cH + ((ey * eB) / cJ)) - ey)
924- func cS (cT,eE) = {
925- let gz = cT
926- let eG = gz._1
927- let dh = gz._2
928- if ((dh != unit))
929- then cT
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
930928 else {
931- let eH = (((eG * eG) + eC) / ((h * eG) + eD))
932- let eI = Y((eH - value(eG)))
933- if ((g >= eI))
934- then $Tuple2(eH, eE)
935- else $Tuple2(eH, 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)
936934 }
937935 }
938936
939- let cY = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
940- let gA = {
941- let da = cY
942- let db = size(da)
943- let dc = $Tuple2(ey, unit)
944- func dd (de,df) = if ((df >= db))
945- then de
946- else cS(de, da[df])
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])
947945
948- func dg (de,df) = if ((df >= db))
949- then de
946+ func df (dd,de) = if ((de >= da))
947+ then dd
950948 else throw("List size exceeds 15")
951949
952- dg(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dd(dc, 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)
953951 }
954- let eG = gA._1
955- let dh = gA._2
956- if ((dh != unit))
957- then eG
958- else throw(("Y calculation error, Y = " + toString(eG)))
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)))
959957 }
960958
961959
962-func gB () = valueOrElse(getBoolean(aV, aH(toString(this))), false)
960+func gA () = valueOrElse(getBoolean(aU, aG(toString(this))), false)
963961
964962
965-@Callable(cU)
966-func calculateAmountOutForSwapREADONLY (gC,gx,gD) = {
967- let gE = if ((gx == false))
963+@Callable(cT)
964+func calculateAmountOutForSwapREADONLY (gB,gw,gC) = {
965+ let gD = if ((gw == false))
968966 then {
969- let gF = aO(this, al())
970- let gy = (toBigInt(bS(aO(this, ak()))) + toBigInt(gC))
971- $Tuple2(gF, gy)
967+ let gE = aN(this, ak())
968+ let gx = (toBigInt(bR(aN(this, aj()))) + toBigInt(gB))
969+ $Tuple2(gE, gx)
972970 }
973971 else {
974- let gF = aO(this, ak())
975- let gy = (toBigInt(bS(aO(this, al()))) + toBigInt(gC))
976- $Tuple2(gF, gy)
972+ let gE = aN(this, aj())
973+ let gx = (toBigInt(bR(aN(this, ak()))) + toBigInt(gB))
974+ $Tuple2(gE, gx)
977975 }
978- let gF = gE._1
979- let gy = gE._2
980- let bl = bd()
981- let do = bl[x]
982- let dp = bl[y]
983- let cE = [toBigInt(bS(do)), toBigInt(bS(dp))]
984- let ey = cD(cE)
985- let eG = gw(gx, ey, toBigInt(gC))
986- let gG = ((toBigInt(bS(gF)) - eG) - toBigInt(1))
987- let gH = max([0, toInt(gG)])
988- let gI = if ((gx == false))
989- then [((toBigInt(bS(do)) + toBigInt(gC)) + toBigInt(gD)), (toBigInt(bS(dp)) - gG)]
990- else [(toBigInt(bS(do)) - gG), ((toBigInt(bS(dp)) + toBigInt(gC)) + toBigInt(gD))]
991- let gJ = cD(gI)
992- let ed = if ((gJ >= ey))
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))
993991 then true
994- else throw(makeString(["new D is fewer error", toString(ey), toString(gJ)], "__"))
995- if ((ed == ed))
996- then $Tuple2(nil, gH)
992+ else throw(makeString(["new D is fewer error", toString(ex), toString(gI)], "__"))
993+ if ((ec == ec))
994+ then $Tuple2(nil, gG)
997995 else throw("Strict value is not equal to itself.")
998996 }
999997
1000998
1001999
1002-@Callable(cU)
1003-func calculateAmountOutForSwapAndSendTokens (gC,gx,gK,gL,gD) = {
1004- let gM = {
1005- let aX = invoke(aV, "getSwapContractREADONLY", nil, nil)
1006- if ($isInstanceOf(aX, "String"))
1007- then aX
1008- 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"))
10091007 }
1010- let gN = [if ((value(cU.payments[0]).amount >= gC))
1008+ let gM = [if ((value(cT.payments[0]).amount >= gB))
10111009 then true
1012- else aS("Wrong amount"), if ((cU.caller == addressFromStringValue(gM)))
1010+ else aR("Wrong amount"), if ((cT.caller == addressFromStringValue(gL)))
10131011 then true
1014- else aS("Permission denied")]
1015- if ((gN == gN))
1012+ else aR("Permission denied")]
1013+ if ((gM == gM))
10161014 then {
1017- let fp = value(cU.payments[0])
1018- let gO = bj(fp.assetId)
1019- let gP = if ((gx == false))
1015+ let fo = value(cT.payments[0])
1016+ let gN = bi(fo.assetId)
1017+ let gO = if ((gw == false))
10201018 then {
1021- let gF = aO(this, al())
1022- let gy = (bS(gO) - value(cU.payments[0]).amount)
1023- $Tuple2(gF, gy)
1019+ let gE = aN(this, ak())
1020+ let gx = (bR(gN) - value(cT.payments[0]).amount)
1021+ $Tuple2(gE, gx)
10241022 }
10251023 else {
1026- let gF = aO(this, ak())
1027- let gy = (bS(gO) - value(cU.payments[0]).amount)
1028- $Tuple2(gF, gy)
1024+ let gE = aN(this, aj())
1025+ let gx = (bR(gN) - value(cT.payments[0]).amount)
1026+ $Tuple2(gE, gx)
10291027 }
1030- let gF = gP._1
1031- let gy = gP._2
1032- let bl = bd()
1033- let do = bl[x]
1034- let dp = bl[y]
1035- let cE = if ((gx == false))
1036- then [(toBigInt(bS(do)) - toBigInt(value(cU.payments[0]).amount)), toBigInt(bS(dp))]
1037- else [toBigInt(bS(do)), (toBigInt(bS(dp)) - toBigInt(value(cU.payments[0]).amount))]
1038- let ey = cD(cE)
1039- let eG = gw(gx, ey, toBigInt(0))
1040- let gG = ((toBigInt(bS(gF)) - eG) - toBigInt(1))
1041- let gH = max([0, toInt(gG)])
1042- let gQ = if ((gH >= gK))
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))
10431041 then true
10441042 else throw("Exchange result is fewer coins than expected")
1045- if ((gQ == gQ))
1043+ if ((gP == gP))
10461044 then {
1047- let gI = if ((gx == false))
1048- then [(toBigInt(bS(do)) + toBigInt(gD)), (toBigInt(bS(dp)) - gG)]
1049- else [(toBigInt(bS(do)) - gG), (toBigInt(bS(dp)) + toBigInt(gD))]
1050- let gJ = cD(gI)
1051- let ed = if ((gJ >= ey))
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))
10521050 then true
10531051 else throw("new D is fewer error")
1054- if ((ed == ed))
1055- then $Tuple2([ScriptTransfer(addressFromStringValue(gL), gH, bh(gF))], gH)
1052+ if ((ec == ec))
1053+ then $Tuple2([ScriptTransfer(addressFromStringValue(gK), gG, bg(gE))], gG)
10561054 else throw("Strict value is not equal to itself.")
10571055 }
10581056 else throw("Strict value is not equal to itself.")
10591057 }
10601058 else throw("Strict value is not equal to itself.")
10611059 }
10621060
10631061
10641062
1065-@Callable(cU)
1066-func constructor (Z) = {
1067- let eC = gv(cU)
1068- if ((eC == eC))
1069- 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)]
10701068 else throw("Strict value is not equal to itself.")
10711069 }
10721070
10731071
10741072
1075-@Callable(cU)
1076-func setManager (gR) = {
1077- let eC = gv(cU)
1078- if ((eC == eC))
1073+@Callable(cT)
1074+func setManager (gQ) = {
1075+ let eB = gu(cT)
1076+ if ((eB == eB))
10791077 then {
1080- let gS = fromBase58String(gR)
1081- if ((gS == gS))
1082- then [StringEntry(ab(), gR)]
1078+ let gR = fromBase58String(gQ)
1079+ if ((gR == gR))
1080+ then [StringEntry(aa(), gQ)]
10831081 else throw("Strict value is not equal to itself.")
10841082 }
10851083 else throw("Strict value is not equal to itself.")
10861084 }
10871085
10881086
10891087
1090-@Callable(cU)
1088+@Callable(cT)
10911089 func confirmManager () = {
1092- let cz = gr()
1093- let gT = if (isDefined(cz))
1090+ let cy = gq()
1091+ let gS = if (isDefined(cy))
10941092 then true
10951093 else throw("No pending manager")
1096- if ((gT == gT))
1094+ if ((gS == gS))
10971095 then {
1098- let gU = if ((cU.callerPublicKey == value(cz)))
1096+ let gT = if ((cT.callerPublicKey == value(cy)))
10991097 then true
11001098 else throw("You are not pending manager")
1101- if ((gU == gU))
1102- then [StringEntry(aa(), toBase58String(value(cz))), DeleteEntry(ab())]
1099+ if ((gT == gT))
1100+ then [StringEntry(Z(), toBase58String(value(cy))), DeleteEntry(aa())]
11031101 else throw("Strict value is not equal to itself.")
11041102 }
11051103 else throw("Strict value is not equal to itself.")
11061104 }
11071105
11081106
11091107
1110-@Callable(cU)
1111-func put (gV,gW) = {
1112- let gX = bx()
1113- let gY = valueOrErrorMessage(addressFromString(gX[D]), "Wr st addr")
1114- let gZ = valueOrErrorMessage(addressFromString(gX[F]), "Wr sl addr")
1115- if ((0 > gV))
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))
11161114 then throw("Wrong slippage")
1117- else if ((size(cU.payments) != 2))
1115+ else if ((size(cT.payments) != 2))
11181116 then throw("2 pmnts expd")
11191117 else {
1120- let ha = toBigInt(value(cU.payments[0]).amount)
1121- let hb = toBigInt(value(cU.payments[1]).amount)
1122- let eT = (toBigInt(bS(bj(br))) - ha)
1123- if ((eT == eT))
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))
11241122 then {
1125- let eU = (toBigInt(bS(bj(bs))) - hb)
1126- if ((eU == eU))
1123+ let eT = (toBigInt(bR(bi(br))) - ha)
1124+ if ((eT == eT))
11271125 then {
1128- let eV = toBigInt(value(assetInfo(bq)).quantity)
1129- if ((eV == eV))
1126+ let eU = toBigInt(value(assetInfo(bp)).quantity)
1127+ if ((eU == eU))
11301128 then {
1131- let eW = eP(ha, hb, toBigInt(0))
1132- if ((eW == eW))
1129+ let eV = eO(gZ, ha, toBigInt(0))
1130+ if ((eV == eV))
11331131 then {
1134- let hc = fq(toString(cU.caller), toBase58String(cU.transactionId), AttachedPayment(value(cU.payments[0]).assetId, value(cU.payments[0]).amount), cU.payments[1], gV, true, false, true, 0, "")
1135- let eq = hc._2
1136- let hd = hc._7
1137- let dG = hc._9
1138- let er = hc._10
1139- let es = hc._11
1140- let do = hc._12
1141- let dp = hc._13
1142- let ec = invoke(aV, "emit", [eq], nil)
1143- if ((ec == ec))
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))
11441142 then {
1145- let he = {
1146- let gq = ec
1147- if ($isInstanceOf(gq, "Address"))
1143+ let hd = {
1144+ let gp = eb
1145+ if ($isInstanceOf(gp, "Address"))
11481146 then {
1149- let hf = gq
1150- invoke(hf, "emit", [eq], nil)
1147+ let he = gp
1148+ invoke(he, "emit", [ep], nil)
11511149 }
11521150 else unit
11531151 }
1154- if ((he == he))
1152+ if ((hd == hd))
11551153 then {
1156- let hg = if ((er > 0))
1157- then invoke(gZ, "put", nil, [AttachedPayment(do, er)])
1154+ let hf = if ((eq > 0))
1155+ then invoke(gY, "put", nil, [AttachedPayment(dn, eq)])
11581156 else nil
1159- if ((hg == hg))
1157+ if ((hf == hf))
11601158 then {
1161- let hh = if ((es > 0))
1162- then invoke(gZ, "put", nil, [AttachedPayment(dp, es)])
1159+ let hg = if ((er > 0))
1160+ then invoke(gY, "put", nil, [AttachedPayment(do, er)])
11631161 else nil
1164- if ((hh == hh))
1162+ if ((hg == hg))
11651163 then {
1166- let hi = if (gW)
1164+ let hh = if (gV)
11671165 then {
1168- let hj = invoke(gY, "stake", nil, [AttachedPayment(hd, eq)])
1169- if ((hj == hj))
1166+ let hi = invoke(gX, "stake", nil, [AttachedPayment(hc, ep)])
1167+ if ((hi == hi))
11701168 then nil
11711169 else throw("Strict value is not equal to itself.")
11721170 }
1173- else [ScriptTransfer(cU.caller, eq, hd)]
1174- let hk = eX(0, 0, 0)
1175- let gn = hk._1
1176- let eO = hk._2
1177- let hl = if ((eO >= eW))
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))
11781176 then true
1179- else aS(makeString(["updated DLp lower than current DLp", toString(eT), toString(eU), toString(eV), toString(eW), toString(eO), toString(er), toString(es)], " "))
1180- if ((hl == hl))
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))
11811179 then {
1182- let hm = value(assetInfo(bq)).quantity
1183- if ((hm == hm))
1184- then ((dG ++ hi) ++ gn)
1180+ let hl = value(assetInfo(bp)).quantity
1181+ if ((hl == hl))
1182+ then ((dF ++ hh) ++ gm)
11851183 else throw("Strict value is not equal to itself.")
11861184 }
11871185 else throw("Strict value is not equal to itself.")
11881186 }
11891187 else throw("Strict value is not equal to itself.")
11901188 }
11911189 else throw("Strict value is not equal to itself.")
11921190 }
11931191 else throw("Strict value is not equal to itself.")
11941192 }
11951193 else throw("Strict value is not equal to itself.")
11961194 }
11971195 else throw("Strict value is not equal to itself.")
11981196 }
11991197 else throw("Strict value is not equal to itself.")
12001198 }
12011199 else throw("Strict value is not equal to itself.")
12021200 }
12031201 else throw("Strict value is not equal to itself.")
12041202 }
12051203 }
12061204
12071205
12081206
1209-@Callable(cU)
1210-func putOneTknV2 (fR,gW) = {
1211- let hn = {
1212- let aX = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1213- if ($isInstanceOf(aX, "Boolean"))
1214- then aX
1215- 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"))
12161214 }
1217- let ho = if (if (if (ba())
1215+ let hn = if (if (if (aZ())
12181216 then true
1219- else (bp == r))
1217+ else (bo == q))
12201218 then true
1221- else (bp == t))
1219+ else (bo == s))
12221220 then true
1223- else hn
1224- let gN = [if (if (!(ho))
1221+ else hm
1222+ let gM = [if (if (!(hn))
12251223 then true
1226- else gt(cU))
1224+ else gs(cT))
12271225 then true
1228- else aS("put operation is blocked by admin"), if ((size(cU.payments) == 1))
1226+ else aR("put operation is blocked by admin"), if ((size(cT.payments) == 1))
12291227 then true
1230- else aS("exactly 1 payment are expected")]
1231- if ((gN == gN))
1228+ else aR("exactly 1 payment are expected")]
1229+ if ((gM == gM))
12321230 then {
1231+ let dn = toBase58String(value(bq))
12331232 let do = toBase58String(value(br))
1234- let dp = toBase58String(value(bs))
1235- let dn = bq
1233+ let dm = bp
1234+ let fU = bs
12361235 let fV = bt
1237- let fW = bu
1238- let dm = if ((cU.caller == this))
1239- then cU.originCaller
1240- else cU.caller
1241- let fp = value(cU.payments[0])
1242- let dk = toBase58String(value(fp.assetId))
1243- let dQ = fp.amount
1244- let eW = if ((fp.assetId == br))
1245- then eP(toBigInt(dQ), toBigInt(0), toBigInt(0))
1246- else eP(toBigInt(0), toBigInt(dQ), toBigInt(0))
1247- if ((eW == eW))
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))
12481246 then {
1249- let hp = fu(dQ, dk, toString(dm), toBase58String(cU.transactionId), true)
1250- if ((hp == hp))
1247+ let ho = ft(dP, dj, toString(dl), toBase58String(cT.transactionId), true)
1248+ if ((ho == ho))
12511249 then {
1252- let cC = hp._3
1253- let dG = hp._2
1254- let hq = hp._1
1255- let eq = if (if ((fR > 0))
1256- then (fR > hq)
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)
12571255 else false)
1258- then aS(makeString(["amount to receive is less than ", toString(fR)], ""))
1259- else hq
1260- let hc = invoke(aV, "emit", [eq], nil)
1261- if ((hc == hc))
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))
12621260 then {
1263- let he = {
1264- let gq = hc
1265- if ($isInstanceOf(gq, "Address"))
1261+ let hd = {
1262+ let gp = hb
1263+ if ($isInstanceOf(gp, "Address"))
12661264 then {
1267- let hf = gq
1268- invoke(hf, "emit", [eq], nil)
1265+ let he = gp
1266+ invoke(he, "emit", [ep], nil)
12691267 }
12701268 else unit
12711269 }
1272- if ((he == he))
1270+ if ((hd == hd))
12731271 then {
1274- let hi = if (gW)
1272+ let hh = if (gV)
12751273 then {
1276- let hj = invoke(bz, "stakeFor", [toString(cU.caller)], [AttachedPayment(dn, eq)])
1277- if ((hj == hj))
1274+ let hi = invoke(by, "stakeFor", [toString(cT.caller)], [AttachedPayment(dm, ep)])
1275+ if ((hi == hi))
12781276 then nil
12791277 else throw("Strict value is not equal to itself.")
12801278 }
1281- else [ScriptTransfer(cU.caller, eq, dn)]
1282- let gh = if ((cC > 0))
1283- then [ScriptTransfer(bc, cC, fromBase58String(dk))]
1279+ else [ScriptTransfer(cT.caller, ep, dm)]
1280+ let gg = if ((cB > 0))
1281+ then [ScriptTransfer(bb, cB, fromBase58String(dj))]
12841282 else nil
1285- let hr = if ((this == bc))
1283+ let hq = if ((this == bb))
12861284 then $Tuple2(0, 0)
12871285 else {
1288- let hs = if ((fp.assetId == br))
1286+ let hr = if ((fo.assetId == bq))
12891287 then true
12901288 else false
1291- if (hs)
1292- then $Tuple2(-(cC), 0)
1293- else $Tuple2(0, -(cC))
1289+ if (hr)
1290+ then $Tuple2(-(cB), 0)
1291+ else $Tuple2(0, -(cB))
12941292 }
1295- let eY = hr._1
1296- let eZ = hr._2
1297- let ht = eX(eY, eZ, 0)
1298- let gn = ht._1
1299- let eO = ht._2
1300- let go = fb(eW, eO)
1301- if ((go == go))
1302- then $Tuple2((((dG ++ hi) ++ gh) ++ gn), eq)
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)
13031301 else throw("Strict value is not equal to itself.")
13041302 }
13051303 else throw("Strict value is not equal to itself.")
13061304 }
13071305 else throw("Strict value is not equal to itself.")
13081306 }
13091307 else throw("Strict value is not equal to itself.")
13101308 }
13111309 else throw("Strict value is not equal to itself.")
13121310 }
13131311 else throw("Strict value is not equal to itself.")
13141312 }
13151313
13161314
13171315
1318-@Callable(cU)
1319-func putForFree (hu) = if ((0 > hu))
1316+@Callable(cT)
1317+func putForFree (ht) = if ((0 > ht))
13201318 then throw("Wrong slpg")
1321- else if ((size(cU.payments) != 2))
1319+ else if ((size(cT.payments) != 2))
13221320 then throw("2 pmnts expd")
13231321 else {
1324- let hv = fq(toString(cU.caller), toBase58String(cU.transactionId), AttachedPayment(value(cU.payments[0]).assetId, value(cU.payments[0]).amount), cU.payments[1], hu, false, false, true, 0, "")
1325- let dG = hv._9
1326- let ha = toBigInt(value(cU.payments[0]).amount)
1327- let hb = toBigInt(value(cU.payments[1]).amount)
1328- let eW = eP(ha, hb, toBigInt(0))
1329- if ((eW == eW))
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))
13301328 then {
1331- let hw = eX(0, 0, 0)
1332- let gn = hw._1
1333- let eO = hw._2
1334- let go = fb(eW, eO)
1335- if ((go == go))
1336- then (dG ++ gn)
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)
13371335 else throw("Strict value is not equal to itself.")
13381336 }
13391337 else throw("Strict value is not equal to itself.")
13401338 }
13411339
13421340
13431341
1344-@Callable(cU)
1342+@Callable(cT)
13451343 func get () = {
1346- let eW = eP(toBigInt(0), toBigInt(0), toBigInt(0))
1347- if ((eW == eW))
1344+ let eV = eO(toBigInt(0), toBigInt(0), toBigInt(0))
1345+ if ((eV == eV))
13481346 then {
1349- let ec = fo(cU)
1350- let hx = ec._1
1351- let dF = ec._2
1352- let dQ = ec._3
1353- let dk = ec._4
1354- let dG = ec._5
1355- let eD = invoke(aV, "burn", [dQ], [AttachedPayment(dk, dQ)])
1356- if ((eD == eD))
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))
13571355 then {
1358- let hy = eX(-(hx), -(dF), 0)
1359- let gn = hy._1
1360- let eO = hy._2
1361- let go = fb(eW, eO)
1362- if ((go == go))
1363- then (dG ++ gn)
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)
13641362 else throw("Strict value is not equal to itself.")
13651363 }
13661364 else throw("Strict value is not equal to itself.")
13671365 }
13681366 else throw("Strict value is not equal to itself.")
13691367 }
13701368
13711369
13721370
1373-@Callable(cU)
1374-func getOneTknV2 (fQ,fR) = {
1375- let hn = {
1376- let aX = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1377- if ($isInstanceOf(aX, "Boolean"))
1378- then aX
1379- 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"))
13801378 }
1381- let hz = if (if (ba())
1379+ let hy = if (if (aZ())
13821380 then true
1383- else (bp == t))
1381+ else (bo == s))
13841382 then true
1385- else hn
1386- let gN = [if (if (!(hz))
1383+ else hm
1384+ let gM = [if (if (!(hy))
13871385 then true
1388- else gt(cU))
1386+ else gs(cT))
13891387 then true
1390- else aS("get operation is blocked by admin"), if ((size(cU.payments) == 1))
1388+ else aR("get operation is blocked by admin"), if ((size(cT.payments) == 1))
13911389 then true
1392- else aS("exactly 1 payment are expected")]
1393- if ((gN == gN))
1390+ else aR("exactly 1 payment are expected")]
1391+ if ((gM == gM))
13941392 then {
1395- let hA = fP(fQ, fR, cU.payments, cU.caller, cU.originCaller, cU.transactionId)
1396- let dG = hA._1
1397- let ga = hA._2
1398- $Tuple2(dG, ga)
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)
13991397 }
14001398 else throw("Strict value is not equal to itself.")
14011399 }
14021400
14031401
14041402
1405-@Callable(cU)
1403+@Callable(cT)
14061404 func refreshDLp () = {
1407- let hB = valueOrElse(getInteger(at), 0)
1408- let hC = if (((height - hB) >= aw))
1405+ let hA = valueOrElse(getInteger(as), 0)
1406+ let hB = if (((height - hA) >= av))
14091407 then unit
1410- else aS(makeString([toString(aw), " blocks have not passed since the previous call"], ""))
1411- if ((hC == hC))
1408+ else aR(makeString([toString(av), " blocks have not passed since the previous call"], ""))
1409+ if ((hB == hB))
14121410 then {
1413- let fi = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, as), "0")), aU("invalid dLp"))
1414- let hD = eX(0, 0, 0)
1415- let hE = hD._1
1416- let eO = hD._2
1417- let fa = if ((fi != eO))
1418- then hE
1419- else aS("nothing to refresh")
1420- $Tuple2(fa, toString(eO))
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))
14211419 }
14221420 else throw("Strict value is not equal to itself.")
14231421 }
14241422
14251423
14261424
1427-@Callable(cU)
1428-func getOneTknV2READONLY (fQ,hF) = {
1425+@Callable(cT)
1426+func getOneTknV2READONLY (fP,hE) = {
1427+ let dn = toBase58String(value(bq))
14291428 let do = toBase58String(value(br))
1430- let dp = toBase58String(value(bs))
1431- let dn = toBase58String(value(bq))
1432- let cE = [toBigInt(bS(do)), toBigInt(bS(dp))]
1433- let eN = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(dn)), "invalid lp asset").quantity)
1434- let cg = cD(cE)
1435- let cf = (cg - fraction(toBigInt(hF), cg, eN))
1436- let hG = if ((fQ == do))
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))
14371435 then 0
1438- else if ((fQ == dp))
1436+ else if ((fP == do))
14391437 then 1
14401438 else throw("invalid out asset id")
1441- let hH = ex(cE, hG, cf)
1442- let gG = (cE[hG] - hH)
1443- let gH = max([0, toInt((gG - g))])
1444- let hI = cA(gH, aY)
1445- let fZ = hI._1
1446- let cC = hI._2
1447- $Tuple2(nil, $Tuple2(fZ, cC))
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))
14481446 }
14491447
14501448
14511449
1452-@Callable(cU)
1453-func getOneTknV2WithBonusREADONLY (fQ,hF) = {
1450+@Callable(cT)
1451+func getOneTknV2WithBonusREADONLY (fP,hE) = {
1452+ let dn = toBase58String(value(bq))
14541453 let do = toBase58String(value(br))
1455- let dp = toBase58String(value(bs))
1456- let dn = toBase58String(value(bq))
1457- let du = bS(do)
1458- let dw = bS(dp)
1459- let hJ = {
1460- let aX = invoke(this, "getOneTknV2READONLY", [fQ, hF], nil)
1461- if ($isInstanceOf(aX, "(Int, Int)"))
1462- then aX
1463- else throw(($getType(aX) + " couldn't be cast to (Int, Int)"))
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)"))
14641462 }
1465- let fZ = hJ._1
1466- let cC = hJ._2
1467- let ec = di("", dn, hF, this)
1468- let dE = ec._1
1469- let dF = ec._2
1470- let hK = (dE + dF)
1471- let fO = if ((hK == 0))
1472- then if ((fZ == 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))
14731471 then 0
14741472 else throw("bonus calculation error")
1475- else fraction((fZ - hK), b, hK)
1476- $Tuple2(nil, $Tuple3(fZ, cC, fO))
1473+ else fraction((fY - hJ), a, hJ)
1474+ $Tuple2(nil, $Tuple3(fY, cB, fN))
14771475 }
14781476
14791477
14801478
1481-@Callable(cU)
1482-func getNoLess (hL,hM) = {
1483- let ec = fo(cU)
1484- let dE = ec._1
1485- let dF = ec._2
1486- let dQ = ec._3
1487- let dk = ec._4
1488- let dG = ec._5
1489- if ((hL > dE))
1490- then throw(((("Failed: " + toString(dE)) + " < ") + toString(hL)))
1491- else if ((hM > dF))
1492- then throw(((("Failed: " + toString(dF)) + " < ") + toString(hM)))
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)))
14931491 else {
1494- let eW = eP(toBigInt(0), toBigInt(0), toBigInt(0))
1495- if ((eW == eW))
1492+ let eV = eO(toBigInt(0), toBigInt(0), toBigInt(0))
1493+ if ((eV == eV))
14961494 then {
1497- let hN = invoke(aV, "burn", [dQ], [AttachedPayment(dk, dQ)])
1498- if ((hN == hN))
1495+ let hM = invoke(aU, "burn", [dP], [AttachedPayment(dj, dP)])
1496+ if ((hM == hM))
14991497 then {
1500- let hO = eX(-(dE), -(dF), 0)
1501- let gn = hO._1
1502- let eO = hO._2
1503- let go = fb(eW, eO)
1504- if ((go == go))
1505- then (dG ++ gn)
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)
15061504 else throw("Strict value is not equal to itself.")
15071505 }
15081506 else throw("Strict value is not equal to itself.")
15091507 }
15101508 else throw("Strict value is not equal to itself.")
15111509 }
15121510 }
15131511
15141512
15151513
1516-@Callable(cU)
1517-func unstakeAndGet (cB) = {
1518- let hP = if ((size(cU.payments) != 0))
1514+@Callable(cT)
1515+func unstakeAndGet (cA) = {
1516+ let hO = if ((size(cT.payments) != 0))
15191517 then throw("No pmnts expd")
15201518 else true
1521- if ((hP == hP))
1519+ if ((hO == hO))
15221520 then {
1523- let hQ = bx()
1524- let hd = bq
1525- let hR = valueOrErrorMessage(addressFromString(hQ[D]), "Wr st addr")
1526- let eW = eP(toBigInt(0), toBigInt(0), toBigInt(0))
1527- if ((eW == eW))
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))
15281526 then {
1529- let hS = invoke(hR, "unstake", [toBase58String(hd), cB], nil)
1530- if ((hS == hS))
1527+ let hR = invoke(hQ, "unstake", [toBase58String(hc), cA], nil)
1528+ if ((hR == hR))
15311529 then {
1532- let ec = di(toBase58String(cU.transactionId), toBase58String(hd), cB, cU.caller)
1533- let dE = ec._1
1534- let dF = ec._2
1535- let ds = parseIntValue(ec._9)
1536- let dG = ec._10
1537- let hT = 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())
15381536 then true
1539- else (ds == t))
1540- then throw(("Blocked: " + toString(ds)))
1537+ else (dr == s))
1538+ then throw(("Blocked: " + toString(dr)))
15411539 else true
1542- if ((hT == hT))
1540+ if ((hS == hS))
15431541 then {
1544- let hU = invoke(aV, "burn", [cB], [AttachedPayment(hd, cB)])
1545- if ((hU == hU))
1542+ let hT = invoke(aU, "burn", [cA], [AttachedPayment(hc, cA)])
1543+ if ((hT == hT))
15461544 then {
1547- let hV = eX(-(dE), -(dF), 0)
1548- let gn = hV._1
1549- let eO = hV._2
1550- let go = fb(eW, eO)
1551- if ((go == go))
1552- then (dG ++ gn)
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)
15531551 else throw("Strict value is not equal to itself.")
15541552 }
15551553 else throw("Strict value is not equal to itself.")
15561554 }
15571555 else throw("Strict value is not equal to itself.")
15581556 }
15591557 else throw("Strict value is not equal to itself.")
15601558 }
15611559 else throw("Strict value is not equal to itself.")
15621560 }
15631561 else throw("Strict value is not equal to itself.")
15641562 }
15651563
15661564
15671565
1568-@Callable(cU)
1569-func unstakeAndGetNoLess (hW,hX,hM) = {
1570- let hz = if (ba())
1566+@Callable(cT)
1567+func unstakeAndGetNoLess (hV,hW,hL) = {
1568+ let hy = if (aZ())
15711569 then true
1572- else (bp == t)
1573- let gN = [if (!(hz))
1570+ else (bo == s)
1571+ let gM = [if (!(hy))
15741572 then true
1575- else throw("get operation is blocked by admin"), if ((size(cU.payments) == 0))
1573+ else throw("get operation is blocked by admin"), if ((size(cT.payments) == 0))
15761574 then true
15771575 else throw("no payments are expected")]
1578- if ((gN == gN))
1576+ if ((gM == gM))
15791577 then {
1580- let eW = eP(toBigInt(0), toBigInt(0), toBigInt(0))
1581- if ((eW == eW))
1578+ let eV = eO(toBigInt(0), toBigInt(0), toBigInt(0))
1579+ if ((eV == eV))
15821580 then {
1583- let hS = invoke(bz, "unstake", [toBase58String(bq), hW], nil)
1584- if ((hS == hS))
1581+ let hR = invoke(by, "unstake", [toBase58String(bp), hV], nil)
1582+ if ((hR == hR))
15851583 then {
1586- let hY = di(toBase58String(cU.transactionId), toBase58String(bq), hW, cU.caller)
1587- let dE = hY._1
1588- let dF = hY._2
1589- let dG = hY._10
1590- let hZ = [if ((dE >= hX))
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))
15911589 then true
1592- else throw(makeString(["amount asset amount to receive is less than ", toString(hX)], "")), if ((dF >= hM))
1590+ else throw(makeString(["amount asset amount to receive is less than ", toString(hW)], "")), if ((dE >= hL))
15931591 then true
1594- else throw(makeString(["price asset amount to receive is less than ", toString(hM)], ""))]
1595- if ((hZ == hZ))
1592+ else throw(makeString(["price asset amount to receive is less than ", toString(hL)], ""))]
1593+ if ((hY == hY))
15961594 then {
1597- let hN = invoke(aV, "burn", [hW], [AttachedPayment(bq, hW)])
1598- if ((hN == hN))
1595+ let hM = invoke(aU, "burn", [hV], [AttachedPayment(bp, hV)])
1596+ if ((hM == hM))
15991597 then {
1600- let ia = eX(-(dE), -(dF), 0)
1601- let gn = ia._1
1602- let eO = ia._2
1603- let go = fb(eW, eO)
1604- if ((go == go))
1605- then (dG ++ gn)
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)
16061604 else throw("Strict value is not equal to itself.")
16071605 }
16081606 else throw("Strict value is not equal to itself.")
16091607 }
16101608 else throw("Strict value is not equal to itself.")
16111609 }
16121610 else throw("Strict value is not equal to itself.")
16131611 }
16141612 else throw("Strict value is not equal to itself.")
16151613 }
16161614 else throw("Strict value is not equal to itself.")
16171615 }
16181616
16191617
16201618
1621-@Callable(cU)
1622-func unstakeAndGetOneTknV2 (hW,fQ,fR) = {
1623- let hn = {
1624- let aX = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1625- if ($isInstanceOf(aX, "Boolean"))
1626- then aX
1627- 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"))
16281626 }
1629- let hz = if (if (ba())
1627+ let hy = if (if (aZ())
16301628 then true
1631- else (bp == t))
1629+ else (bo == s))
16321630 then true
1633- else hn
1634- let gN = [if (if (!(hz))
1631+ else hm
1632+ let gM = [if (if (!(hy))
16351633 then true
1636- else gt(cU))
1634+ else gs(cT))
16371635 then true
1638- else aS("get operation is blocked by admin"), if ((size(cU.payments) == 0))
1636+ else aR("get operation is blocked by admin"), if ((size(cT.payments) == 0))
16391637 then true
1640- else aS("no payments are expected")]
1641- if ((gN == gN))
1638+ else aR("no payments are expected")]
1639+ if ((gM == gM))
16421640 then {
1643- let hQ = bx()
1644- let hd = bq
1645- let hR = valueOrErrorMessage(addressFromString(hQ[D]), "Wr st addr")
1646- let dm = cU.caller
1647- let ib = this
1648- let hS = invoke(hR, "unstakeINTERNAL", [hd, hW, dm.bytes, ib.bytes], nil)
1649- if ((hS == hS))
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))
16501648 then {
1651- let ic = fP(fQ, fR, [AttachedPayment(hd, hW)], cU.caller, cU.originCaller, cU.transactionId)
1652- let dG = ic._1
1653- let ga = ic._2
1654- $Tuple2(dG, ga)
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)
16551653 }
16561654 else throw("Strict value is not equal to itself.")
16571655 }
16581656 else throw("Strict value is not equal to itself.")
16591657 }
16601658
16611659
16621660
1663-@Callable(cU)
1664-func putOneTknV2WithBonusREADONLY (id,ie) = {
1665- let if = fu(id, ie, "", "", true)
1666- let fJ = if._1
1667- let dG = if._2
1668- let cC = if._3
1669- let fO = if._4
1670- $Tuple2(nil, $Tuple3(fJ, cC, fO))
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))
16711669 }
16721670
16731671
16741672
1675-@Callable(cU)
1676-func putOneTknV2WithoutTakeFeeREADONLY (id,ie) = {
1677- let ig = fu(id, ie, "", "", false)
1678- let fJ = ig._1
1679- let dG = ig._2
1680- let cC = ig._3
1681- let fO = ig._4
1682- $Tuple2(nil, $Tuple3(fJ, cC, fO))
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))
16831681 }
16841682
16851683
16861684
1687-@Callable(cU)
1688-func activate (ih,ii) = if ((toString(cU.caller) != toString(aV)))
1685+@Callable(cT)
1686+func activate (ig,ih) = if ((toString(cT.caller) != toString(aU)))
16891687 then throw("denied")
1690- else $Tuple2([StringEntry(ak(), ih), StringEntry(al(), ii)], "success")
1688+ else $Tuple2([StringEntry(aj(), ig), StringEntry(ak(), ih)], "success")
16911689
16921690
16931691
1694-@Callable(cU)
1695-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bd())
1692+@Callable(cT)
1693+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bc())
16961694
16971695
16981696
1699-@Callable(cU)
1700-func getAccBalanceWrapperREADONLY (bT) = $Tuple2(nil, bS(bT))
1697+@Callable(cT)
1698+func getAccBalanceWrapperREADONLY (bS) = $Tuple2(nil, bR(bS))
17011699
17021700
17031701
1704-@Callable(cU)
1705-func calcPricesWrapperREADONLY (cm,cn,cr) = {
1706- let ij = cq(cm, cn, cr)
1707- $Tuple2(nil, [toString(ij[0]), toString(ij[1]), toString(ij[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])])
17081706 }
17091707
17101708
17111709
1712-@Callable(cU)
1713-func fromX18WrapperREADONLY (N,ik) = $Tuple2(nil, M(parseBigIntValue(N), ik))
1710+@Callable(cT)
1711+func fromX18WrapperREADONLY (M,ij) = $Tuple2(nil, L(parseBigIntValue(M), ij))
17141712
17151713
17161714
1717-@Callable(cU)
1718-func toX18WrapperREADONLY (J,K) = $Tuple2(nil, toString(I(J, K)))
1715+@Callable(cT)
1716+func toX18WrapperREADONLY (I,J) = $Tuple2(nil, toString(H(I, J)))
17191717
17201718
17211719
1722-@Callable(cU)
1723-func calcPriceBigIntWrapperREADONLY (bV,bW) = $Tuple2(nil, toString(bU(parseBigIntValue(bV), parseBigIntValue(bW))))
1720+@Callable(cT)
1721+func calcPriceBigIntWrapperREADONLY (bU,bV) = $Tuple2(nil, toString(bT(parseBigIntValue(bU), parseBigIntValue(bV))))
17241722
17251723
17261724
1727-@Callable(cU)
1728-func estimatePutOperationWrapperREADONLY (dj,cb,dI,dJ,dK,dL,il,dM,dN) = $Tuple2(nil, dH(dj, cb, dI, dJ, dK, dL, il, dM, dN, 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, ""))
17291727
17301728
17311729
1732-@Callable(cU)
1733-func estimateGetOperationWrapperREADONLY (dj,im,dl,il) = {
1734- let ec = di(dj, im, dl, addressFromStringValue(il))
1735- $Tuple2(nil, $Tuple10(ec._1, ec._2, ec._3, ec._4, ec._5, ec._6, ec._7, toString(ec._8), ec._9, ec._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))
17361734 }
17371735
17381736
17391737
1740-@Callable(cU)
1738+@Callable(cT)
17411739 func changeAmp () = {
1742- let in = invoke(aV, "getChangeAmpConfigREADONLY", [toString(this)], nil)
1743- let io = {
1744- let gq = in
1745- if ($isInstanceOf(gq, "List[Any]"))
1740+ let im = invoke(aU, "getChangeAmpConfigREADONLY", [toString(this)], nil)
1741+ let in = {
1742+ let gp = im
1743+ if ($isInstanceOf(gp, "List[Any]"))
17461744 then {
1747- let ip = gq
1745+ let io = gp
17481746 $Tuple3({
1749- let aX = ip[0]
1750- if ($isInstanceOf(aX, "Int"))
1751- then aX
1752- 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"))
17531751 }, {
1754- let aX = ip[1]
1755- if ($isInstanceOf(aX, "Int"))
1756- then aX
1757- 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"))
17581756 }, {
1759- let aX = ip[2]
1760- if ($isInstanceOf(aX, "Int"))
1761- then aX
1762- 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"))
17631761 })
17641762 }
1765- else aS("invalid entry type")
1763+ else aR("invalid entry type")
17661764 }
1767- let iq = io._1
1768- let ir = io._2
1769- let is = io._3
1770- let it = parseIntValue(getStringValue(am()))
1771- let iu = (it + ir)
1772- let iv = if ((0 > ir))
1773- then if ((is > iu))
1774- then is
1775- else iu
1776- else if ((iu > is))
1777- then is
1778- else iu
1779- let iw = valueOrElse(getInteger(ap()), 0)
1780- let ix = (iw + iq)
1781- let gN = [if ((height > ix))
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))
17821780 then true
1783- else aS("try again in few blocks"), if ((it != iv))
1781+ else aR("try again in few blocks"), if ((is != iu))
17841782 then true
1785- else aS("already reached target")]
1786- if ((gN == gN))
1787- then [IntegerEntry(ap(), height), StringEntry(am(), toString(iv)), StringEntry(an(height), toString(iv))]
1783+ else aR("already reached target")]
1784+ if ((gM == gM))
1785+ then [IntegerEntry(ao(), height), StringEntry(al(), toString(iu)), StringEntry(am(height), toString(iu))]
17881786 else throw("Strict value is not equal to itself.")
17891787 }
17901788
17911789
1792-@Verifier(iy)
1793-func iz () = {
1794- let iA = {
1795- let gq = gp()
1796- if ($isInstanceOf(gq, "ByteVector"))
1790+@Verifier(ix)
1791+func iy () = {
1792+ let iz = {
1793+ let gp = go()
1794+ if ($isInstanceOf(gp, "ByteVector"))
17971795 then {
1798- let gu = gq
1799- gu
1796+ let gt = gp
1797+ gt
18001798 }
1801- else if ($isInstanceOf(gq, "Unit"))
1802- then iy.senderPublicKey
1799+ else if ($isInstanceOf(gp, "Unit"))
1800+ then ix.senderPublicKey
18031801 else throw("Match error")
18041802 }
1805- let gq = iy
1806- if ($isInstanceOf(gq, "Order"))
1803+ let gp = ix
1804+ if ($isInstanceOf(gp, "Order"))
18071805 then {
1808- let fe = gq
1809- let iB = bb()
1810- let iC = if (gB())
1806+ let fd = gp
1807+ let iA = ba()
1808+ let iB = if (gA())
18111809 then $Tuple2(true, "")
1812- else fd(fe)
1813- let aK = iC._1
1814- let aL = iC._2
1815- let aM = sigVerify(fe.bodyBytes, fe.proofs[0], fe.senderPublicKey)
1816- let aN = sigVerify(fe.bodyBytes, fe.proofs[1], iB)
1817- 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)
18181818 then aM
18191819 else false)
1820- then aN
1821- else false)
18221820 then true
1823- else aJ(aK, aL, aM, aN)
1821+ else aI(aJ, aK, aL, aM)
18241822 }
1825- else if ($isInstanceOf(gq, "SetScriptTransaction"))
1823+ else if ($isInstanceOf(gp, "SetScriptTransaction"))
18261824 then {
1827- let cH = gq
1828- if (sigVerify(iy.bodyBytes, iy.proofs[0], iA))
1825+ let cG = gp
1826+ if (sigVerify(ix.bodyBytes, ix.proofs[0], iz))
18291827 then true
18301828 else {
1831- let iD = blake2b256(value(cH.script))
1832- let iE = fromBase64String(value(getString(aV, aF())))
1833- let iF = scriptHash(this)
1834- if ((iE == iD))
1835- then (iF != iD)
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)
18361834 else false
18371835 }
18381836 }
1839- else sigVerify(iy.bodyBytes, iy.proofs[0], iA)
1837+ else sigVerify(ix.bodyBytes, ix.proofs[0], iz)
18401838 }
18411839

github/deemru/w8io/026f985 
727.33 ms