tx · 7w7DCGoHSiAGtfZ642bWpA4qyHp38nVx7emus16mV5zg

3MuibHtY4WMNqE2AgpPjm9fuDar6TUNCThP:  -0.04000000 Waves

2023.05.04 14:24 [2562946] smart account 3MuibHtY4WMNqE2AgpPjm9fuDar6TUNCThP > SELF 0.00000000 Waves

{ "type": 13, "id": "7w7DCGoHSiAGtfZ642bWpA4qyHp38nVx7emus16mV5zg", "fee": 4000000, "feeAssetId": null, "timestamp": 1683199533361, "version": 2, "chainId": 84, "sender": "3MuibHtY4WMNqE2AgpPjm9fuDar6TUNCThP", "senderPublicKey": "5K6j2MTCQttt7Dt3hR4msP7sjtJ4LWVPHbUjbG485Lxw", "proofs": [ "3HsVAbGxqywNKxd2fC4qnS4zyG8jDTMm9g9hbtbjQw9WmzreTL8GLXx5GsPtsaWJRGWwqKJ1tGXZaR1UUBE3jY97" ], "script": "base64:BgKlKggCEgUKAwEEARIHCgUBBAEIARIDCgEIEgMKAQgSABIECgIBBBIECgIBBBIDCgEBEgASBAoCCAESABIECgIIARIECgIIARIECgIBARIDCgEBEgUKAwEBARIFCgMBCAESBAoCAQgSBAoCAQgSBAoCCAgSABIDCgEIEgUKAwEBARIECgIIARIECgIBARIECgIICBILCgkIAQECAQIIBAQSBgoECAgBCBIAIgZzY2FsZTgiDHNjYWxlOEJpZ0ludCIHc2NhbGUxOCIKemVyb0JpZ0ludCIEYmlnMCIEYmlnMSIEYmlnMiIEYmlnMyIEYmlnNCILd2F2ZXNTdHJpbmciCmFtcEluaXRpYWwiBUFtdWx0IgNTRVAiClBvb2xQdXREaXMiDlBvb2xNYXRjaGVyRGlzIgxQb29sU2h1dGRvd24iDmlkeFBvb2xBZGRyZXNzIglpZHhQb29sU3QiCWlkeExQQXNJZCIJaWR4QW1Bc0lkIglpZHhQckFzSWQiC2lkeEFtdEFzRGNtIg1pZHhQcmljZUFzRGNtIg9pZHhGYWN0U3Rha0NudHIiEmlkeEZhY3RvcnlSZXN0Q250ciIQaWR4RmFjdFNsaXBwQ250ciIKZmVlRGVmYXVsdCICdDEiB29yaWdWYWwiDW9yaWdTY2FsZU11bHQiCHQxQmlnSW50IgJmMSIDdmFsIg9yZXN1bHRTY2FsZU11bHQiDGZyb21YMThSb3VuZCIFcm91bmQiA2FicyIJYWJzQmlnSW50IgJmYyIDbXBrIgRwbXBrIgJwbCICcGgiAWgiAXQiA3BhdSICdWEiBHR4SWQiA2dhdSICYWEiAnBhIgNhbXAiDWtleUFtcEhpc3RvcnkiDGhlaWdodEJsb2NrcyIUa2V5Q2hhbmdlQW1wTGFzdENhbGwiBmtleUZlZSIDZmVlIgZrZXlETHAiFWtleURMcFJlZnJlc2hlZEhlaWdodCISa2V5RExwUmVmcmVzaERlbGF5IhZkTHBSZWZyZXNoRGVsYXlEZWZhdWx0Ig9kTHBSZWZyZXNoRGVsYXkiBGZjZmciBG10cGsiAnBjIgZpQW10QXMiBWlQckFzIgNtYmEiBWJBU3RyIgNhcHMiHGtleUFsbG93ZWRMcFN0YWJsZVNjcmlwdEhhc2giFmtleUZlZUNvbGxlY3RvckFkZHJlc3MiFmtleVNraXBPcmRlclZhbGlkYXRpb24iC3Bvb2xBZGRyZXNzIg90aHJvd09yZGVyRXJyb3IiCm9yZGVyVmFsaWQiDm9yZGVyVmFsaWRJbmZvIgtzZW5kZXJWYWxpZCIMbWF0Y2hlclZhbGlkIgRzdHJmIgRhZGRyIgNrZXkiBGludGYiCHRocm93RXJyIgNtc2ciBmZtdEVyciIDZmNhIgVpbkZlZSIBQCIGb3V0RmVlIgFBIgNpZ3MiAm1wIhNmZWVDb2xsZWN0b3JBZGRyZXNzIgNncGMiBWFtdEFzIgdwcmljZUFzIghpUHJpY2VBcyIMcGFyc2VBc3NldElkIgVpbnB1dCIPYXNzZXRJZFRvU3RyaW5nIg9wYXJzZVBvb2xDb25maWciCnBvb2xDb25maWciEHBvb2xDb25maWdQYXJzZWQiCyR0MDgwODc4MjczIg1jZmdQb29sU3RhdHVzIgxjZmdMcEFzc2V0SWQiEGNmZ0Ftb3VudEFzc2V0SWQiD2NmZ1ByaWNlQXNzZXRJZCIWY2ZnQW1vdW50QXNzZXREZWNpbWFscyIVY2ZnUHJpY2VBc3NldERlY2ltYWxzIgNnZmMiDWZhY3RvcnlDb25maWciD3N0YWtpbmdDb250cmFjdCIMcmVzdENvbnRyYWN0IhFkYXRhUHV0QWN0aW9uSW5mbyINaW5BbXRBc3NldEFtdCIPaW5QcmljZUFzc2V0QW10IghvdXRMcEFtdCIFcHJpY2UiCnNsaXBCeVVzZXIiDHNsaXBwYWdlUmVhbCIIdHhIZWlnaHQiC3R4VGltZXN0YW1wIgxzbGlwYWdlQW1BbXQiDHNsaXBhZ2VQckFtdCIRZGF0YUdldEFjdGlvbkluZm8iDm91dEFtdEFzc2V0QW10IhBvdXRQcmljZUFzc2V0QW10IgdpbkxwQW10Ig1nZXRBY2NCYWxhbmNlIgdhc3NldElkIgRjcGJpIghwckFtdFgxOCIIYW1BbXRYMTgiBWNwYmlyIgNwY3AiCmFtQXNzZXREY20iCnByQXNzZXREY20iBWFtQW10IgVwckFtdCILYW10QXNBbXRYMTgiCnByQXNBbXRYMTgiCmNhbGNQcmljZXMiBWxwQW10IghhbXRBc0RjbSIHcHJBc0RjbSIIcHJpY2VYMTgiCGxwQW10WDE4Ig1scFBySW5BbUFzWDE4Ig1scFBySW5QckFzWDE4Igd0YWtlRmVlIgZhbW91bnQiCWZlZUFtb3VudCIEZ2V0RCICeHAiA3hwMCIDeHAxIgFzIgFhIgNhbm4iAXAiC3hwMF94cDFfbl9uIgVhbm5fcyIFYW5uXzEiCWNhbGNETmV4dCIBZCICZGQiA2RkZCICZHAiBGNhbGMiA2FjYyIBaSIFZE5leHQiCGREaWZmUmF3IgVkRGlmZiIDYXJyIg0kdDAxMjc3ODEyODI2IgIkbCICJHMiBSRhY2MwIgUkZjBfMSICJGEiAiRpIgUkZjBfMiIFZm91bmQiA2VnbyIGdHhJZDU4IgpwbXRBc3NldElkIghwbXRMcEFtdCILdXNlckFkZHJlc3MiBGxwSWQiBGFtSWQiBHBySWQiBWFtRGNtIgVwckRjbSIDc3RzIgdscEVtaXNzIglhbUJhbGFuY2UiDGFtQmFsYW5jZVgxOCIJcHJCYWxhbmNlIgxwckJhbGFuY2VYMTgiC2N1clByaWNlWDE4IghjdXJQcmljZSILcG10THBBbXRYMTgiCmxwRW1pc3NYMTgiC291dEFtQW10WDE4IgtvdXRQckFtdFgxOCIIb3V0QW1BbXQiCG91dFByQW10IgVzdGF0ZSIDZXBvIghzbGlwcGFnZSIHaW5BbUFtdCIGaW5BbUlkIgdpblByQW10IgZpblBySWQiBmlzRXZhbCIGZW1pdExwIgppc09uZUFzc2V0IhB2YWxpZGF0ZVNsaXBwYWdlIgZwbXRBbXQiBXBtdElkIgdhbUlkU3RyIgdwcklkU3RyIgZhbXREY20iCHByaWNlRGNtIgRscEVtIg9pbkFtQXNzZXRBbXRYMTgiD2luUHJBc3NldEFtdFgxOCIMdXNlclByaWNlWDE4IgJEMCIBciICRDEiBmNoZWNrRCILc2xpcHBhZ2VYMTgiD3NsaXBwYWdlUmVhbFgxOCINbHBFbWlzc2lvblgxOCIKcHJWaWFBbVgxOCIKYW1WaWFQclgxOCIMZXhwZWN0ZWRBbXRzIhFleHBBbXRBc3NldEFtdFgxOCITZXhwUHJpY2VBc3NldEFtdFgxOCIJY2FsY0xwQW10Ig5jYWxjQW1Bc3NldFBtdCIOY2FsY1ByQXNzZXRQbXQiDHNsaXBwYWdlQ2FsYyIJZW1pdExwQW10IgZhbURpZmYiBnByRGlmZiINJHQwMjA1ODgyMDkzMyIKd3JpdGVBbUFtdCIKd3JpdGVQckFtdCILY29tbW9uU3RhdGUiBWdldFlEIgFEIgFuIgF4IgphUHJlY2lzaW9uIgFjIgFiIgNjdXIiDSR0MDIyMTI4MjIxNDgiAXkiBXlOZXh0IgV5RGlmZiINJHQwMjI0NTUyMjUwMiIHY2FsY0RMcCINYW1vdW50QmFsYW5jZSIMcHJpY2VCYWxhbmNlIgpscEVtaXNzaW9uIgp1cGRhdGVkRExwIg5jYWxjQ3VycmVudERMcCIQYW1vdW50QXNzZXREZWx0YSIPcHJpY2VBc3NldERlbHRhIhRscEFzc2V0RW1pc3Npb25EZWx0YSISYW1vdW50QXNzZXRCYWxhbmNlIhFwcmljZUFzc2V0QmFsYW5jZSIPbHBBc3NldEVtaXNzaW9uIgpjdXJyZW50RExwIhJyZWZyZXNoRExwSW50ZXJuYWwiF2Ftb3VudEFzc2V0QmFsYW5jZURlbHRhIhZwcmljZUFzc2V0QmFsYW5jZURlbHRhIgdhY3Rpb25zIhJ2YWxpZGF0ZVVwZGF0ZWRETHAiBm9sZERMcCIbdmFsaWRhdGVNYXRjaGVyT3JkZXJBbGxvd2VkIgVvcmRlciIRYW1vdW50QXNzZXRBbW91bnQiEHByaWNlQXNzZXRBbW91bnQiDSR0MDI0NzAwMjQ5MTIiA2RMcCINJHQwMjUyNTQyNTM1NCINdW51c2VkQWN0aW9ucyIGZExwTmV3Igxpc09yZGVyVmFsaWQiBGluZm8iAmNnIgNwbXQiAmNwIgZjYWxsZXIiB2FtQXNQbXQiB3ByQXNQbXQiDWNhbGNQdXRPbmVUa24iCXBtdEFtdFJhdyILd2l0aFRha2VGZWUiDWNoZWNoRW1pc3Npb24iDSR0MDI4MDEwMjg0NzIiDGFtQmFsYW5jZU9sZCIMcHJCYWxhbmNlT2xkIg0kdDAyODQ3ODI4NjU0IgthbUFtb3VudFJhdyILcHJBbW91bnRSYXciDSR0MDI4NjU4Mjg5MTIiCGFtQW1vdW50IghwckFtb3VudCIMYW1CYWxhbmNlTmV3IgxwckJhbGFuY2VOZXciCGxwQW1vdW50Ig5wb29sUHJvcG9ydGlvbiIPYW1vdW50QXNzZXRQYXJ0Ig5wcmljZUFzc2V0UGFydCIJbHBBbXRCb3RoIgVib251cyITZ2V0T25lVGtuVjJJbnRlcm5hbCIKb3V0QXNzZXRJZCIMbWluT3V0QW1vdW50IghwYXltZW50cyIMb3JpZ2luQ2FsbGVyIg10cmFuc2FjdGlvbklkIgphbURlY2ltYWxzIgpwckRlY2ltYWxzIgpwb29sU3RhdHVzIg0kdDAzMTAyNDMxMTM1Igh0b3RhbEdldCILdG90YWxBbW91bnQiDSR0MDMxMzI1MzE2MzIiBW91dEFtIgVvdXRQciIIY3VyUHJYMTgiBWN1clByIhFvdXRBc3NldElkT3JXYXZlcyIQc2VuZEZlZVRvTWF0Y2hlciIEYnVybiINJHQwMzI0MTczMjc2NyIQZmVlQW1vdW50Rm9yQ2FsYyIQb3V0SW5BbW91bnRBc3NldCINJHQwMzI3NzAzMjg3OCIRcmVmcmVzaERMcEFjdGlvbnMiEWlzVXBkYXRlZERMcFZhbGlkIgFtIgckbWF0Y2gwIgJwbSICcGQiCWlzTWFuYWdlciICcGsiAm1tIgRnZXRZIglpc1JldmVyc2UiE3Bvb2xBbW91bnRJbkJhbGFuY2UiDSR0MDM0MzI1MzQzNDUiDSR0MDM0Njc2MzQ3MjMiE3NraXBPcmRlclZhbGlkYXRpb24iDWNsZWFuQW1vdW50SW4iDWZlZVBvb2xBbW91bnQiDSR0MDM1MDc1MzU0OTkiCGFzc2V0T3V0IgJkeSILdG90YWxHZXRSYXciBW5ld1hwIgRuZXdEIgxhbW91bnRPdXRNaW4iCWFkZHJlc3NUbyILc3dhcENvbnRhY3QiBmNoZWNrcyIHYXNzZXRJbiINJHQwMzY5MzUzNzMyOSIIY2hlY2tNaW4iF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5IgJjbSIDaHBtIgNjcG0iBHNsaXAiCWF1dG9TdGFrZSIHZmFjdENmZyILc3Rha2luZ0NudHIiCHNsaXBDbnRyIgphbUFzc2V0UG10IgpwckFzc2V0UG10IgFlIglscEFzc2V0SWQiAmVsIgZsZWdhY3kiAnNhIgJzcCIIbHBUcm5zZnIiAnNzIg0kdDA0MTk0ODQyMDkwIgVjaGVjayIUbHBBc3NldEVtaXNzaW9uQWZ0ZXIiIGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIg1pc1B1dERpc2FibGVkIg0kdDA0MzczMTQzODg5Igdlc3RpbUxQIg0kdDA0NDc3NDQ1MTIzIhRwYXltZW50SW5BbW91bnRBc3NldCINJHQwNDUxMjY0NTIzNCIHbWF4U2xwZyIGZXN0UHV0Ig0kdDA0NjI2NDQ2MzI5IglvdXRBbXRBbXQiDSR0MDQ3NTAyNDc1ODQiDWlzR2V0RGlzYWJsZWQiDSR0MDQ4MjAyNDgzNTciGGxhc3RSZWZyZXNoZWRCbG9ja0hlaWdodCIdY2hlY2tMYXN0UmVmcmVzaGVkQmxvY2tIZWlnaHQiDSR0MDQ4ODgxNDg5NDUiEGRMcFVwZGF0ZUFjdGlvbnMiDWxwQXNzZXRBbW91bnQiBWluZGV4IgRuZXdZIg0kdDA0OTk1NTUwMDEwIg0kdDA1MDM4NTUwNTAwIg5zdW1PZkdldEFzc2V0cyISbm9MZXNzVGhlbkFtdEFzc2V0IhRub0xlc3NUaGVuUHJpY2VBc3NldCIUYnVybkxQQXNzZXRPbkZhY3RvcnkiDSR0MDUxNjY2NTE3NDciDWNoZWNrUGF5bWVudHMiCmZhY3RvcnlDZmciB3N0YWtpbmciCnVuc3Rha2VJbnYiAXYiBWJ1cm5BIg0kdDA1Mjc3NDUyODU1Ig11bnN0YWtlQW1vdW50IhVub0xlc3NUaGVuQW1vdW50QXNzZXQiA3JlcyIMY2hlY2tBbW91bnRzIg0kdDA1NDEwNjU0MTg3IhdscEFzc2V0UmVjaXBpZW50QWRkcmVzcyINJHQwNTUyMDk1NTM5NyIQcGF5bWVudEFtb3VudFJhdyIOcGF5bWVudEFzc2V0SWQiDSR0MDU1NTI1NTU2MjgiDSR0MDU1Nzc2NTU4ODAiCGFtdEFzU3RyIgdwckFzU3RyIgJwciIMcmVzU2NhbGVNdWx0Igd1c3JBZGRyIgdwbXRBc0lkIgNjZmciDSR0MDU4Mjg5NTg0ODgiBGxpc3QiBWRlbGF5IgVkZWx0YSIGdGFyZ2V0IgZjdXJBbXAiCW5ld0FtcFJhdyIGbmV3QW1wIghsYXN0Q2FsbCIEd2FpdCICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5IgptYXRjaGVyUHViIg0kdDA1OTQwMDU5NTE3IgduZXdIYXNoIgthbGxvd2VkSGFzaCILY3VycmVudEhhc2h0AAFhAIDC1y8AAWIJALYCAQCAwtcvAAFjCQC2AgEAgICQu7rWrfANAAFkCQC2AgEAAAABZQkAtgIBAAAAAWYJALYCAQABAAFnCQC2AgEAAgABaAkAtgIBAAMAAWkJALYCAQAEAAFqAgVXQVZFUwABawAyAAFsAgMxMDAAAW0CAl9fAAFuAAIAAW8AAwABcAAEAAFxAAEAAXIAAgABcwADAAF0AAQAAXUABQABdgAGAAF3AAcAAXgAAQABeQAGAAF6AAcAAUEJAGsDAAoFAWEAkE4BAUICAUMBRAkAvAIDCQC2AgEFAUMFAWMJALYCAQUBRAEBRQIBQwFECQC8AgMFAUMFAWMFAUQBAUYCAUcBSAkAoAMBCQC8AgMFAUcJALYCAQUBSAUBYwEBSQMBRwFIAUoJAKADAQkAvQIEBQFHCQC2AgEFAUgFAWMFAUoBAUsBAUcDCQC/AgIFAWQFAUcJAL4CAQUBRwUBRwEBTAEBRwMJAL8CAgUBZAUBRwkAvgIBBQFHBQFHAQFNAAITJXNfX2ZhY3RvcnlDb250cmFjdAEBTgACFCVzX19tYW5hZ2VyUHVibGljS2V5AQFPAAIbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AQFQAAIRJXMlc19fcHJpY2VfX2xhc3QBAVECAVIBUwkAuQkCCQDMCAICGCVzJXMlZCVkX19wcmljZV9faGlzdG9yeQkAzAgCCQCkAwEFAVIJAMwIAgkApAMBBQFTBQNuaWwFAW0BAVQCAVUBVgkArAICCQCsAgIJAKwCAgILJXMlcyVzX19QX18FAVUCAl9fBQFWAQFXAgFVAVYJAKwCAgkArAICCQCsAgICCyVzJXMlc19fR19fBQFVAgJfXwUBVgEBWAACDyVzX19hbW91bnRBc3NldAEBWQACDiVzX19wcmljZUFzc2V0AQFaAAIHJXNfX2FtcAECYWEBAmFiCQCsAgICCyVzJWRfX2FtcF9fCQCkAwEFAmFiAQJhYwACFSVzX19jaGFuZ2VBbXBMYXN0Q2FsbAACYWQCByVzX19mZWUAAmFlCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmFkBQFBAAJhZgkAuQkCCQDMCAICAiVzCQDMCAICA2RMcAUDbmlsBQFtAAJhZwkAuQkCCQDMCAICAiVzCQDMCAICEmRMcFJlZnJlc2hlZEhlaWdodAUDbmlsBQFtAAJhaAkAuQkCCQDMCAICAiVzCQDMCAICD3JlZnJlc2hETHBEZWxheQUDbmlsBQFtAAJhaQAeAAJhagkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJhaAUCYWkBAmFrAAIRJXNfX2ZhY3RvcnlDb25maWcBAmFsAAIYJXMlc19fbWF0Y2hlcl9fcHVibGljS2V5AQJhbQICYW4CYW8JAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FAmFuAgJfXwUCYW8CCF9fY29uZmlnAQJhcAECYXEJAKwCAgIoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUCYXEBAmFyAAIMJXNfX3NodXRkb3duAQJhcwACHSVzX19hbGxvd2VkTHBTdGFibGVTY3JpcHRIYXNoAQJhdAACFyVzX19mZWVDb2xsZWN0b3JBZGRyZXNzAQJhdQECYXYJAKwCAgIbJXMlc19fc2tpcE9yZGVyVmFsaWRhdGlvbl9fBQJhdgECYXcEAmF4AmF5AmF6AmFBCQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICJG9yZGVyIHZhbGlkYXRpb24gZmFpbGVkOiBvcmRlclZhbGlkPQkApQMBBQJheAICICgFAmF5AgEpAg0gc2VuZGVyVmFsaWQ9CQClAwEFAmF6Ag4gbWF0Y2hlclZhbGlkPQkApQMBBQJhQQECYUICAmFDAmFECQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYUMFAmFECQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmFDCQDMCAICAS4JAMwIAgUCYUQJAMwIAgIMIG5vdCBkZWZpbmVkBQNuaWwCAAECYUUCAmFDAmFECQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUCYUMFAmFECQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmFDCQDMCAICAS4JAMwIAgUCYUQJAMwIAgIMIG5vdCBkZWZpbmVkBQNuaWwCAAECYUYBAmFHCQACAQkAuQkCCQDMCAICD2xwX3N0YWJsZS5yaWRlOgkAzAgCBQJhRwUDbmlsAgEgAQJhSAECYUcJALkJAgkAzAgCAg9scF9zdGFibGUucmlkZToJAMwIAgUCYUcFA25pbAIBIAACYUkJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhQgIFBHRoaXMJAQFNAAACYUoKAAJhSwkA/AcEBQJhSQIQZ2V0SW5GZWVSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmFLAgNJbnQFAmFLCQACAQkArAICCQADAQUCYUsCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAACYUwKAAJhSwkA/AcEBQJhSQIRZ2V0T3V0RmVlUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJhSwIDSW50BQJhSwkAAgEJAKwCAgkAAwEFAmFLAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQAAmFNCQECYUICBQR0aGlzCQEBWgABAmFOAAkBC3ZhbHVlT3JFbHNlAgkAmwgCBQJhSQkBAmFyAAcBAmFPAAkA2QQBCQECYUICBQJhSQkBAmFsAAACYVAJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhQgIFAmFJCQECYXQAAQJhUQAEAmFSCQECYUICBQR0aGlzCQEBWAAEAmFTCQECYUICBQR0aGlzCQEBWQAEAmFUCQECYUUCBQJhSQkBAmFwAQUCYVMEAmFuCQECYUUCBQJhSQkBAmFwAQUCYVIJALUJAgkBAmFCAgUCYUkJAQJhbQIJAKQDAQUCYW4JAKQDAQUCYVQFAW0BAmFVAQJhVgMJAAACBQJhVgUBagUEdW5pdAkA2QQBBQJhVgECYVcBAmFWAwkAAAIFAmFWBQR1bml0BQFqCQDYBAEJAQV2YWx1ZQEFAmFWAQJhWAECYVkJAJkKBwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhWQUBcQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFZBQFyCQDZBAEJAJEDAgUCYVkFAXMJAQJhVQEJAJEDAgUCYVkFAXQJAQJhVQEJAJEDAgUCYVkFAXUJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhWQUBdgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFZBQF3AAJhWgkBAmFYAQkBAmFRAAACYmEFAmFaAAJiYggFAmJhAl8yAAJiYwgFAmJhAl8zAAJiZAgFAmJhAl80AAJiZQgFAmJhAl81AAJiZggFAmJhAl82AAJiZwgFAmJhAl83AQJiaAAJALUJAgkBAmFCAgUCYUkJAQJhawAFAW0AAmJpCQECYmgAAAJiagkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCYmkFAXgCIEludmFsaWQgc3Rha2luZyBjb250cmFjdCBhZGRyZXNzAAJiawkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCYmkFAXkCHEludmFsaWQgZ3d4IGNvbnRyYWN0IGFkZHJlc3MBAmJsCgJibQJibgJibwJicAJicQJicgJicwJidAJidQJidgkAuQkCCQDMCAICFCVkJWQlZCVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCYm0JAMwIAgkApAMBBQJibgkAzAgCCQCkAwEFAmJvCQDMCAIJAKQDAQUCYnAJAMwIAgkApAMBBQJicQkAzAgCCQCkAwEFAmJyCQDMCAIJAKQDAQUCYnMJAMwIAgkApAMBBQJidAkAzAgCCQCkAwEFAmJ1CQDMCAIJAKQDAQUCYnYFA25pbAUBbQECYncGAmJ4AmJ5AmJ6AmJwAmJzAmJ0CQC5CQIJAMwIAgIMJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCYngJAMwIAgkApAMBBQJieQkAzAgCCQCkAwEFAmJ6CQDMCAIJAKQDAQUCYnAJAMwIAgkApAMBBQJicwkAzAgCCQCkAwEFAmJ0BQNuaWwFAW0BAmJBAQJiQgMJAAACBQJiQgIFV0FWRVMICQDvBwEFBHRoaXMJYXZhaWxhYmxlCQDwBwIFBHRoaXMJANkEAQUCYkIBAmJDAgJiRAJiRQkAvAIDBQJiRAUBYwUCYkUBAmJGAwJiRAJiRQFKCQC9AgQFAmJEBQFjBQJiRQUBSgECYkcEAmJIAmJJAmJKAmJLBAJiTAkBAUICBQJiSgUCYkgEAmJNCQEBQgIFAmJLBQJiSQkBAmJDAgUCYk0FAmJMAQJiTgMCYkoCYksCYk8EAmJQBQJiZgQCYlEFAmJnBAJiUgkBAmJHBAUCYlAFAmJRBQJiSgUCYksEAmJFCQEBQgIFAmJKBQJiUAQCYkQJAQFCAgUCYksFAmJRBAJiUwkBAUICBQJiTwUBYQQCYlQJAQJiQwIFAmJFBQJiUwQCYlUJAQJiQwIFAmJEBQJiUwkAzAgCBQJiUgkAzAgCBQJiVAkAzAgCBQJiVQUDbmlsAQJiVgICYlcCYWUEAmJYAwkAAAIFAmFlAAAAAAkAawMFAmJXBQJhZQUBYQkAlAoCCQBlAgUCYlcFAmJYBQJiWAECYlkBAmJaBAJjYQkAkQMCBQJiWgAABAJjYgkAkQMCBQJiWgABBAJjYwkAtwICBQJjYQUCY2IDCQAAAgUCY2MFAWUFAWUEAmNkCQENcGFyc2VJbnRWYWx1ZQEFAmFNBAJjZQkAaAIFAmNkAAIEAmNmCQC8AgMFAmNhBQJjYgUBZgQCY2cJALwCAwUCY2YFAWkFAWYEAmNoCQC8AgMJALYCAQUCY2UFAmNjBQFmBAJjaQkAtgIBCQBlAgUCY2UAAQoBAmNqAQJjawQCY2wJALwCAwUCY2sFAmNrBQFmBAJjbQkAvAIDBQJjbAUCY2sFAWYEAmNuCQC8AgMFAmNtBQFmBQJjZwkAvAIDCQC3AgIFAmNoCQC8AgMFAmNuBQFnBQFmBQJjawkAtwICCQC8AgMFAmNpBQJjawUBZgkAvAIDBQFoBQJjbgUBZgoBAmNvAgJjcAJjcQMIBQJjcAJfMgUCY3AEAmNrCAUCY3ACXzEEAmNyCQECY2oBBQJjawQCY3MJALgCAgUCY3IJAQV2YWx1ZQEFAmNrBAJjdAMJAL8CAgUBZQUCY3MJAL4CAQUCY3MFAmNzAwkAwAICBQFmBQJjdAkAlAoCBQJjcgYJAJQKAgUCY3IHBAJjdQkAzAgCAAAJAMwIAgABCQDMCAIAAgkAzAgCAAMJAMwIAgAECQDMCAIABQkAzAgCAAYJAMwIAgAHCQDMCAIACAkAzAgCAAkJAMwIAgAKCQDMCAIACwkAzAgCAAwJAMwIAgANCQDMCAIADgkAzAgCAA8JAMwIAgAQBQNuaWwEAmN2CgACY3cFAmN1CgACY3gJAJADAQUCY3cKAAJjeQkAlAoCBQJjYwcKAQJjegICY0ECY0IDCQBnAgUCY0IFAmN4BQJjQQkBAmNvAgUCY0EJAJEDAgUCY3cFAmNCCgECY0MCAmNBAmNCAwkAZwIFAmNCBQJjeAUCY0EJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxNwkBAmNDAgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgUCY3kAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEEAmNrCAUCY3YCXzEEAmNECAUCY3YCXzIDBQJjRAUCY2sJAAIBCQCsAgICGUQgY2FsY3VsYXRpb24gZXJyb3IsIEQgPSAJAKYDAQUCY2sBAmNFBAJjRgJjRwJjSAJjSQQCY0oFAmJjBAJjSwkA2AQBCQEFdmFsdWUBBQJiZAQCY0wJANgEAQkBBXZhbHVlAQUCYmUEAmNNBQJiZgQCY04FAmJnBAJjTwkApAMBBQJiYgQCY1AICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCY0oCC1dyb25nIExQIGlkCHF1YW50aXR5AwkBAiE9AgkA2AQBBQJjSgUCY0cJAAIBAg9Xcm9uZyBwbXQgYXNzZXQEAmNRCQECYkEBBQJjSwQCY1IJAQFCAgUCY1EFAmNNBAJjUwkBAmJBAQUCY0wEAmNUCQEBQgIFAmNTBQJjTgQCY1UJAQJiQwIFAmNUBQJjUgQCY1YJAQFGAgUCY1UFAWEEAmNXCQEBQgIFAmNIBQFhBAJjWAkBAUICBQJjUAUBYQQCY1kJALwCAwUCY1IFAmNXBQJjWAQCY1oJALwCAwUCY1QFAmNXBQJjWAQCZGEJAQFJAwUCY1kFAmNNBQVGTE9PUgQCZGIJAQFJAwUCY1oFAmNOBQVGTE9PUgQCZGMDCQAAAgUCY0YCAAUDbmlsCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmNJBQJkYQMJAAACBQJjSwIFV0FWRVMFBHVuaXQJANkEAQUCY0sJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCY0kFAmRiAwkAAAIFAmNMAgVXQVZFUwUEdW5pdAkA2QQBBQJjTAkAzAgCCQELU3RyaW5nRW50cnkCCQEBVwIJAKUIAQUCY0kFAmNGCQECYncGBQJkYQUCZGIFAmNIBQJjVgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVAABQJjVgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVECBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjVgUDbmlsCQCcCgoFAmRhBQJkYgUCY0sFAmNMBQJjUQUCY1MFAmNQBQJjVQUCY08FAmRjAQJkZA0CY0YCZGUCZGYCZGcCZGgCZGkCY0kCZGoCZGsCZGwCZG0CZG4CZG8EAmNKBQJiYwQCZHAJANgEAQkBBXZhbHVlAQUCYmQEAmRxCQDYBAEJAQV2YWx1ZQEFAmJlBAJkcgUCYmYEAmRzBQJiZwQCY08JAKQDAQUCYmIEAmR0CAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmNKAghXciBscCBhcwhxdWFudGl0eQQCY1EDBQJkagkBAmJBAQUCZHADAwUCZGwJAAACBQJkbwUCZHAHCQBlAgkBAmJBAQUCZHAFAmRuAwUCZGwJAQJiQQEFAmRwCQBlAgkBAmJBAQUCZHAFAmRmBAJjUwMFAmRqCQECYkEBBQJkcQMDBQJkbAkAAAIFAmRvBQJkcQcJAGUCCQECYkEBBQJkcQUCZG4DBQJkbAkBAmJBAQUCZHEJAGUCCQECYkEBBQJkcQUCZGgEAmR1CQEBQgIFAmRmBQJkcgQCZHYJAQFCAgUCZGgFAmRzBAJkdwkBAmJDAgUCZHYFAmR1BAJjUgkBAUICBQJjUQUCZHIEAmNUCQEBQgIFAmNTBQJkcwQCZHgJAQJiWQEJAMwIAgUCY1IJAMwIAgUCY1QFA25pbAQCZHkDCQAAAgUCZHQAAAQCZHoJAQJiWQEJAMwIAgkAtwICBQJjUgUCZHUJAMwIAgkAtwICBQJjVAUCZHYFA25pbAQCZEEDCQC/AgIFAmR6BQJkeAYJAAIBAhxEMSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIEQwAwkAAAIFAmRBBQJkQQQCY1UFAWQEAmRCBQFkBAJiUwUCZHoJAJcKBQkBAUYCBQJiUwUBYQkBAUYCBQJkdQUCZHIJAQFGAgUCZHYFAmRzCQECYkMCCQC3AgIFAmNUBQJkdgkAtwICBQJjUgUCZHUFAmRCCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAJjVQkBAmJDAgUCY1QFAmNSBAJkQwkAvAIDCQEBSwEJALgCAgUCY1UFAmR3BQFjBQJjVQQCZEIJAQFCAgUCZGUFAWEDAwMFAmRtCQECIT0CBQJjVQUBZAcJAL8CAgUCZEMFAmRCBwkAAgEJAKwCAgkArAICCQCsAgICD1ByaWNlIHNsaXBwYWdlIAkApgMBBQJkQwIDID4gCQCmAwEFAmRCBAJkRAkBAUICBQJkdAUBYQQCZEUJAL0CBAUCZHUJAQJiRgMFAmNUBQJjUgUHQ0VJTElORwUBYwUHQ0VJTElORwQCZEYJAL0CBAUCZHYFAWMJAQJiRgMFAmNUBQJjUgUFRkxPT1IFB0NFSUxJTkcEAmRHAwkAvwICBQJkRQUCZHYJAJQKAgUCZEYFAmR2CQCUCgIFAmR1BQJkRQQCZEgIBQJkRwJfMQQCZEkIBQJkRwJfMgQCZHoJAQJiWQEJAMwIAgkAtwICBQJjUgUCZEgJAMwIAgkAtwICBQJjVAUCZEkFA25pbAQCZEEDCQC/AgIFAmR6BQJkeAYJAAIBAhxEMSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIEQwAwkAAAIFAmRBBQJkQQQCYlMJALwCAwUCZEQJALgCAgUCZHoFAmR4BQJkeAkAlwoFCQEBSQMFAmJTBQFhBQVGTE9PUgkBAUkDBQJkSAUCZHIFB0NFSUxJTkcJAQFJAwUCZEkFAmRzBQdDRUlMSU5HBQJjVQUCZEIJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EAmRKCAUCZHkCXzEEAmRLCAUCZHkCXzIEAmRMCAUCZHkCXzMEAmNWCQEBRgIIBQJkeQJfNAUBYQQCZE0JAQFGAggFAmR5Al81BQFhAwkAZwIAAAUCZEoJAAIBAgdMUCA8PSAwBAJkTgMJAQEhAQUCZGsAAAUCZEoEAmRPCQBlAgUCZGYFAmRLBAJkUAkAZQIFAmRoBQJkTAQCZFEDAwUCZGwJAAACBQJkbwUCZHAHCQCUCgIFAmRuAAADAwUCZGwJAAACBQJkbwUCZHEHCQCUCgIAAAUCZG4JAJQKAgUCZEsFAmRMBAJkUggFAmRRAl8xBAJkUwgFAmRRAl8yBAJkVAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVAABQJjVgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVECBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjVgkAzAgCCQELU3RyaW5nRW50cnkCCQEBVAIFAmNJBQJjRgkBAmJsCgUCZFIFAmRTBQJkTgUCY1YFAmRlBQJkTQUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZE8FAmRQBQNuaWwJAJ8KDQUCZEoFAmROBQJjVgUCY1EFAmNTBQJkdAUCY0oFAmNPBQJkVAUCZE8FAmRQBQJkZwUCZGkBAmRVAwJiWgJjcQJkVgQCZFcFAWcEAmRYCQCRAwIFAmJaAwkAAAIFAmNxAAAAAQAABAJkWQkApwMBBQFsBAJjZAkAuQICCQCnAwEFAmFNBQJkWQQCY2MFAmRYBAJjZQkAuQICBQJjZAUCZFcEAmRaCQC6AgIJALkCAgkAuQICCQC6AgIJALkCAgUCZFYFAmRWCQC5AgIFAmRYBQJkVwUCZFYFAmRZCQC5AgIFAmNlBQJkVwQCZWEJALgCAgkAtwICBQJjYwkAugICCQC5AgIFAmRWBQJkWQUCY2UFAmRWCgECY28CAmNwAmViBAJlYwUCY3AEAmVkCAUCZWMCXzEEAmNECAUCZWMCXzIDCQECIT0CBQJjRAUEdW5pdAUCY3AEAmVlCQC6AgIJALcCAgkAuQICBQJlZAUCZWQFAmRaCQC3AgIJALkCAgUBZwUCZWQFAmVhBAJlZgkBAUwBCQC4AgIFAmVlCQEFdmFsdWUBBQJlZAMJAMACAgUBZgUCZWYJAJQKAgUCZWUFAmViCQCUCgIFAmVlBQR1bml0BAJjdQkAzAgCAAAJAMwIAgABCQDMCAIAAgkAzAgCAAMJAMwIAgAECQDMCAIABQkAzAgCAAYJAMwIAgAHCQDMCAIACAkAzAgCAAkJAMwIAgAKCQDMCAIACwkAzAgCAAwJAMwIAgANCQDMCAIADgUDbmlsBAJlZwoAAmN3BQJjdQoAAmN4CQCQAwEFAmN3CgACY3kJAJQKAgUCZFYFBHVuaXQKAQJjegICY0ECY0IDCQBnAgUCY0IFAmN4BQJjQQkBAmNvAgUCY0EJAJEDAgUCY3cFAmNCCgECY0MCAmNBAmNCAwkAZwIFAmNCBQJjeAUCY0EJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxNQkBAmNDAgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgUCY3kAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwQCZWQIBQJlZwJfMQQCY0QIBQJlZwJfMgMJAQIhPQIFAmNEBQR1bml0BQJlZAkAAgEJAKwCAgIZWSBjYWxjdWxhdGlvbiBlcnJvciwgWSA9IAkApgMBBQJlZAECZWgDAmVpAmVqAmVrBAJlbAkAvAIDCQECYlkBCQDMCAIJAQFFAgUCZWkJALYCAQUCYmYJAMwIAgkBAUUCBQJlagkAtgIBBQJiZwUDbmlsBQFjBQJlawMJAAACBQJlawUBZQUBZQUCZWwBAmVtAwJlbgJlbwJlcAQCZXEJALgCAgkAtgIBCQECYkEBCQECYVcBBQJiZAUCZW4EAmVyCQC4AgIJALYCAQkBAmJBAQkBAmFXAQUCYmUFAmVvBAJlcwkAuAICCQC2AgEICQEFdmFsdWUBCQDsBwEFAmJjCHF1YW50aXR5BQJlcAQCZXQJAQJlaAMFAmVxBQJlcgUCZXMFAmV0AQJldQMCZXYCZXcCZXAEAmVxCQBkAgkBAmJBAQkBAmFXAQUCYmQFAmV2BAJlcgkAZAIJAQJiQQEJAQJhVwEFAmJlBQJldwQCZXMJAGQCCAkBBXZhbHVlAQkA7AcBBQJiYwhxdWFudGl0eQUCZXAEAmVsCQECZWgDCQC2AgEFAmVxCQC2AgEFAmVyCQC2AgEFAmVzBAJleAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCYWcFBmhlaWdodAkAzAgCCQELU3RyaW5nRW50cnkCBQJhZgkApgMBBQJlbAUDbmlsCQCUCgIFAmV4BQJlbAECZXkCAmV6AmVsAwkAwAICBQJlbAUCZXoGCQECYUYBAiJ1cGRhdGVkIERMcCBsb3dlciB0aGFuIGN1cnJlbnQgRExwAQJlQQECZUIEAmVxCQECYkEBCQECYVcBBQJiZAQCZXIJAQJiQQEJAQJhVwEFAmJlBAJlQwgFAmVCBmFtb3VudAQCZUQJAG4ECAUCZUIGYW1vdW50CAUCZUIFcHJpY2UFAWEFBUZMT09SBAJlRQMJAAACCAUCZUIJb3JkZXJUeXBlBQNCdXkJAJQKAgUCZUMJAQEtAQUCZUQJAJQKAgkBAS0BBQJlQwUCZUQEAmV2CAUCZUUCXzEEAmV3CAUCZUUCXzIDAwMJAQJhTgAGCQAAAgUCYmIFAW8GCQAAAgUCYmIFAXAJAAIBAg1BZG1pbiBibG9ja2VkAwMJAQIhPQIICAUCZUIJYXNzZXRQYWlyC2Ftb3VudEFzc2V0BQJiZAYJAQIhPQIICAUCZUIJYXNzZXRQYWlyCnByaWNlQXNzZXQFAmJlCQACAQIJV3IgYXNzZXRzBAJlRgkApwMBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFAmFmAgEwBAJlRwkBAmV1AwUCZXYFAmV3AAAEAmVICAUCZUcCXzEEAmVJCAUCZUcCXzIEAmVKCQDAAgIFAmVJBQJlRgQCZUsJALkJAgkAzAgCAgRkTHA9CQDMCAIJAKYDAQUCZUYJAMwIAgIIIGRMcE5ldz0JAMwIAgkApgMBBQJlSQkAzAgCAhQgYW1vdW50QXNzZXRCYWxhbmNlPQkAzAgCCQCkAwEFAmVxCQDMCAICEyBwcmljZUFzc2V0QmFsYW5jZT0JAMwIAgkApAMBBQJlcgkAzAgCAhkgYW1vdW50QXNzZXRCYWxhbmNlRGVsdGE9CQDMCAIJAKQDAQUCZXYJAMwIAgIYIHByaWNlQXNzZXRCYWxhbmNlRGVsdGE9CQDMCAIJAKQDAQUCZXcJAMwIAgIIIGhlaWdodD0JAMwIAgkApAMBBQZoZWlnaHQFA25pbAIACQCUCgIFAmVKBQJlSwECZUwBAmNxAwkBAiE9AgkAkAMBCAUCY3EIcGF5bWVudHMAAQkAAgECCjEgcG1udCBleHAEAmVNCQEFdmFsdWUBCQCRAwIIBQJjcQhwYXltZW50cwAABAJjRwkBBXZhbHVlAQgFAmVNB2Fzc2V0SWQEAmRuCAUCZU0GYW1vdW50BAJkeQkBAmNFBAkA2AQBCAUCY3ENdHJhbnNhY3Rpb25JZAkA2AQBBQJjRwUCZG4IBQJjcQZjYWxsZXIEAmRhCAUCZHkCXzEEAmRiCAUCZHkCXzIEAmNPCQENcGFyc2VJbnRWYWx1ZQEIBQJkeQJfOQQCZGMIBQJkeQNfMTADAwkBAmFOAAYJAAACBQJjTwUBcAkAAgEJAKwCAgIPQWRtaW4gYmxvY2tlZDogCQCkAwEFAmNPCQCXCgUFAmRhBQJkYgUCZG4FAmNHBQJkYwECZU4KAmVPAVYCZVACZVECZGUCZGsCZGwCZG0CZG4CZG8EAmR5CQECZGQNBQFWBQJkZQgJAQV2YWx1ZQEFAmVQBmFtb3VudAgJAQV2YWx1ZQEFAmVQB2Fzc2V0SWQICQEFdmFsdWUBBQJlUQZhbW91bnQICQEFdmFsdWUBBQJlUQdhc3NldElkBQJlTwkAAAIFAVYCAAUCZGsFAmRsBQJkbQUCZG4FAmRvBAJjTwkBDXBhcnNlSW50VmFsdWUBCAUCZHkCXzgDAwMJAQJhTgAGCQAAAgUCY08FAW4GCQAAAgUCY08FAXAJAAIBCQCsAgICCEJsb2NrZWQ6CQCkAwEFAmNPBQJkeQECZVIFAmVTAmNHAmNJAVYCZVQEAmNLCQDYBAEJAQV2YWx1ZQEFAmJkBAJjTAkA2AQBCQEFdmFsdWUBBQJiZQQCY0oFAmJjBAJkcgUCYmYEAmRzBQJiZwQCZXMJALYCAQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJjSgIQaW52YWxpZCBscCBhc3NldAhxdWFudGl0eQQCZVUDCQC/AgIFAmVzBQFlBgkAAgECImluaXRpYWwgZGVwb3NpdCByZXF1aXJlcyBhbGwgY29pbnMDCQAAAgUCZVUFAmVVBAJjUQkBAmJBAQUCY0sEAmNTCQECYkEBBQJjTAQCZVYDCQAAAgUBVgIACQCUCgIFAmNRBQJjUwMJAAACBQJjRwUCY0sDCQBmAgUCZVMFAmNRCQACAQIWaW52YWxpZCBwYXltZW50IGFtb3VudAkAlAoCCQBlAgUCY1EFAmVTBQJjUwMJAAACBQJjRwUCY0wDCQBmAgUCZVMFAmNTCQACAQIWaW52YWxpZCBwYXltZW50IGFtb3VudAkAlAoCBQJjUQkAZQIFAmNTBQJlUwkAAgECEHdyb25nIHBtdEFzc2V0SWQEAmVXCAUCZVYCXzEEAmVYCAUCZVYCXzIEAmVZAwkAAAIFAmNHBQJjSwkAlAoCBQJlUwAAAwkAAAIFAmNHBQJjTAkAlAoCAAAFAmVTCQACAQIPaW52YWxpZCBwYXltZW50BAJlWggFAmVZAl8xBAJmYQgFAmVZAl8yBAJmYgMFAmVUCQCVCgMICQECYlYCBQJlWgUCYUoCXzEICQECYlYCBQJmYQUCYUoCXzEICQECYlYCBQJlUwUCYUoCXzIJAJUKAwUCZVoFAmZhAAAEAmZjCAUCZmICXzEEAmZkCAUCZmICXzIEAmJYCAUCZmICXzMEAmZlCQBkAgUCZVcFAmZjBAJmZgkAZAIFAmVYBQJmZAQCZHgJAQJiWQEJAMwIAgkBAUICBQJlVwUCYmYJAMwIAgkBAUICBQJlWAUCYmcFA25pbAQCZHoJAQJiWQEJAMwIAgkBAUICBQJmZQUCYmYJAMwIAgkBAUICBQJmZgUCYmcFA25pbAQCZEEDCQC/AgIFAmR6BQJkeAYJAQV0aHJvdwADCQAAAgUCZEEFAmRBBAJmZwkAvQIEBQJlcwkAuAICBQJkegUCZHgFAmR4BQVGTE9PUgQCY1YJAQFGAgkBAmJDAgkBAUICBQJmZgUCZHMJAQFCAgUCZmUFAmRyBQFhBAJkVAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVAABQJjVgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVECBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjVgkAzAgCCQELU3RyaW5nRW50cnkCCQEBVAIFAmNJBQFWCQECYmwKBQJlWgUCZmEJAKADAQUCZmcFAmNWAAAAAAUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAAAAAAFA25pbAQCZmgJAGsDBQJlWAUBYQUCZVcEAmZpCQBrAwUCZVMFAWEJAGQCBQJmaAUBYQQCZmoJAGUCBQJlUwUCZmkEAmZrCQC8AgMFAmVzCQC2AgEFAmZqCQC2AgEFAmVYBAJmbAkAoAMBCQC8AgMJALgCAgUCZmcFAmZrBQFiBQJmawkAlgoECQCgAwEFAmZnBQJkVAUCYlgFAmZsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJmbQYCZm4CZm8CZnACZU8CZnECZnIEAmNKCQDYBAEJAQV2YWx1ZQEFAmJjBAJjSwkA2AQBCQEFdmFsdWUBBQJiZAQCY0wJANgEAQkBBXZhbHVlAQUCYmUEAmZzBQJiZgQCZnQFAmJnBAJmdQUCYmIEAmNJAwkAAAIFAmVPBQJiawUCZnEFAmVPBAJlTQkBBXZhbHVlAQkAkQMCBQJmcAAABAJjRwkBBXZhbHVlAQgFAmVNB2Fzc2V0SWQEAmRuCAUCZU0GYW1vdW50BAJldAkBAmVtAwUBZQUBZQUBZQMJAAACBQJldAUCZXQEAmNGCQDYBAEFAmZyAwkBAiE9AgUCY0oJANgEAQUCY0cJAAIBAghXcm9uZyBMUAQCY1EJAQJiQQEFAmNLBAJjUwkBAmJBAQUCY0wEAmZ2CgACYUsJAPwHBAUEdGhpcwITZ2V0T25lVGtuVjJSRUFET05MWQkAzAgCBQJmbgkAzAgCBQJkbgUDbmlsBQNuaWwDCQABAgUCYUsCCihJbnQsIEludCkFAmFLCQACAQkArAICCQADAQUCYUsCHyBjb3VsZG4ndCBiZSBjYXN0IHRvIChJbnQsIEludCkDCQAAAgUCZnYFAmZ2BAJiWAgFAmZ2Al8yBAJmdwgFAmZ2Al8xBAJmeAMDCQBmAgUCZm8AAAkAZgIFAmZvBQJmdwcJAQJhRgEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZm8FA25pbAIABQJmdwQCZnkDCQAAAgUCZm4FAmNLCQCWCgQFAmZ4AAAJAGUCCQBlAgUCY1EFAmZ4BQJiWAUCY1MDCQAAAgUCZm4FAmNMCQCWCgQAAAUCZngFAmNRCQBlAgkAZQIFAmNTBQJmeAUCYlgJAAIBAhRpbnZhbGlkIG91dCBhc3NldCBpZAQCZnoIBQJmeQJfMQQCZkEIBQJmeQJfMgQCZmUIBQJmeQJfMwQCZmYIBQJmeQJfNAQCZkIJAQJiQwIJAQFCAgUCZmYFAmZ0CQEBQgIFAmZlBQJmcwQCZkMJAQFGAgUCZkIFAWEEAmZEAwkAAAIFAmZuAgVXQVZFUwUEdW5pdAkA2QQBBQJmbgQCZkUDCQBmAgUCYlgAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhUAUCYlgFAmZEBQNuaWwFA25pbAQCZGMJAM4IAgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJjSQUCZngFAmZECQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFXAgkApQgBBQJjSQUCY0YJAQJidwYFAmZ6BQJmQQUCZG4FAmZDBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBUAAFAmZDCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBUQIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmZDBQNuaWwFAmZFAwkAAAIFAmRjBQJkYwQCZkYJAPwHBAUCYUkCBGJ1cm4JAMwIAgUCZG4FA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCY0cFAmRuBQNuaWwDCQAAAgUCZkYFAmZGBAJmRwQCZkgDCQAAAgUEdGhpcwUCYVAAAAUCYlgEAmZJAwkAAAIJAQJhVQEFAmZuBQJiZAYHAwUCZkkJAJQKAgkBAS0BCQBkAgUCZncFAmZIAAAJAJQKAgAACQEBLQEJAGQCBQJmdwUCZkgEAmV2CAUCZkcCXzEEAmV3CAUCZkcCXzIEAmZKCQECZXUDBQJldgUCZXcAAAQCZksIBQJmSgJfMQQCZWwIBQJmSgJfMgQCZkwJAQJleQIFAmV0BQJlbAMJAAACBQJmTAUCZkwJAJQKAgkAzggCBQJkYwUCZksFAmZ4CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJmTQAEAmZOCQCiCAEJAQFOAAMJAAECBQJmTgIGU3RyaW5nBAJjYwUCZk4JANkEAQUCY2MDCQABAgUCZk4CBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECZk8ABAJmTgkAoggBCQEBTwADCQABAgUCZk4CBlN0cmluZwQCY2MFAmZOCQDZBAEFAmNjAwkAAQIFAmZOAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAAmZQCQACAQIRUGVybWlzc2lvbiBkZW5pZWQBAmZRAQJjcQQCZk4JAQJmTQADCQABAgUCZk4CCkJ5dGVWZWN0b3IEAmZSBQJmTgkAAAIIBQJjcQ9jYWxsZXJQdWJsaWNLZXkFAmZSAwkAAQIFAmZOAgRVbml0CQAAAggFAmNxBmNhbGxlcgUEdGhpcwkAAgECC01hdGNoIGVycm9yAQJmUwECY3EEAmZOCQECZk0AAwkAAQIFAmZOAgpCeXRlVmVjdG9yBAJmUgUCZk4DCQAAAggFAmNxD2NhbGxlclB1YmxpY0tleQUCZlIGBQJmUAMJAAECBQJmTgIEVW5pdAMJAAACCAUCY3EGY2FsbGVyBQR0aGlzBgUCZlAJAAIBAgtNYXRjaCBlcnJvcgECZlQDAmZVAmRWAmZWBAJhWQkBAmFRAAQCY0sJAJEDAgUCYVkFAXQEAmNMCQCRAwIFAmFZBQF1BAJkVwUBZwQCZFkJAKcDAQUBbAQCY2QJALkCAgkApwMBBQJhTQUCZFkEAmJaAwkAAAIFAmZVBwkAzAgCCQC3AgIJALYCAQkBAmJBAQUCY0sFAmZWCQDMCAIJALYCAQkBAmJBAQUCY0wFA25pbAkAzAgCCQC3AgIJALYCAQkBAmJBAQUCY0wFAmZWCQDMCAIJALYCAQkBAmJBAQUCY0sFA25pbAQCZFgJAJEDAgUCYloAAAQCY2MFAmRYBAJjZQkAuQICBQJjZAUCZFcEAmRaCQC6AgIJALkCAgkAuQICCQC6AgIJALkCAgUCZFYFAmRWCQC5AgIFAmRYBQJkVwUCZFYFAmRZCQC5AgIFAmNlBQJkVwQCZWEJALgCAgkAtwICBQJjYwkAugICCQC5AgIFAmRWBQJkWQUCY2UFAmRWCgECY28CAmNwAmViBAJmVwUCY3AEAmVkCAUCZlcCXzEEAmNECAUCZlcCXzIDCQECIT0CBQJjRAUEdW5pdAUCY3AEAmVlCQC6AgIJALcCAgkAuQICBQJlZAUCZWQFAmRaCQC3AgIJALkCAgUBZwUCZWQFAmVhBAJlZgkBAUwBCQC4AgIFAmVlCQEFdmFsdWUBBQJlZAMJAMACAgUBZgUCZWYJAJQKAgUCZWUFAmViCQCUCgIFAmVlBQR1bml0BAJjdQkAzAgCAAAJAMwIAgABCQDMCAIAAgkAzAgCAAMJAMwIAgAECQDMCAIABQkAzAgCAAYJAMwIAgAHCQDMCAIACAkAzAgCAAkJAMwIAgAKCQDMCAIACwkAzAgCAAwJAMwIAgANCQDMCAIADgUDbmlsBAJmWAoAAmN3BQJjdQoAAmN4CQCQAwEFAmN3CgACY3kJAJQKAgUCZFYFBHVuaXQKAQJjegICY0ECY0IDCQBnAgUCY0IFAmN4BQJjQQkBAmNvAgUCY0EJAJEDAgUCY3cFAmNCCgECY0MCAmNBAmNCAwkAZwIFAmNCBQJjeAUCY0EJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxNQkBAmNDAgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgkBAmN6AgUCY3kAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwQCZWQIBQJmWAJfMQQCY0QIBQJmWAJfMgMJAQIhPQIFAmNEBQR1bml0BQJlZAkAAgEJAKwCAgIZWSBjYWxjdWxhdGlvbiBlcnJvciwgWSA9IAkApgMBBQJlZAECZlkACQELdmFsdWVPckVsc2UCCQCbCAIFAmFJCQECYXUBCQClCAEFBHRoaXMHHQJjcQEhY2FsY3VsYXRlQW1vdW50T3V0Rm9yU3dhcFJFQURPTkxZAwJmWgJmVQJnYQQCZ2IDCQAAAgUCZlUHBAJnYwkBAmFCAgUEdGhpcwkBAVkABAJmVgkAtwICCQC2AgEJAQJiQQEJAQJhQgIFBHRoaXMJAQFYAAkAtgIBBQJmWgkAlAoCBQJnYwUCZlYEAmdjCQECYUICBQR0aGlzCQEBWAAEAmZWCQC3AgIJALYCAQkBAmJBAQkBAmFCAgUEdGhpcwkBAVkACQC2AgEFAmZaCQCUCgIFAmdjBQJmVgQCZ2MIBQJnYgJfMQQCZlYIBQJnYgJfMgQCYVkJAQJhUQAEAmNLCQCRAwIFAmFZBQF0BAJjTAkAkQMCBQJhWQUBdQQCYloJAMwIAgkAtgIBCQECYkEBBQJjSwkAzAgCCQC2AgEJAQJiQQEFAmNMBQNuaWwEAmRWCQECYlkBBQJiWgQCZWQJAQJmVAMFAmZVBQJkVgkAtgIBBQJmWgQCZ2QJALgCAgkAuAICCQC2AgEJAQJiQQEFAmdjBQJlZAkAtgIBAAEEAmdlCQCWAwEJAMwIAgAACQDMCAIJAKADAQUCZ2QFA25pbAQCZ2YDCQAAAgUCZlUHCQDMCAIJALcCAgkAtwICCQC2AgEJAQJiQQEFAmNLCQC2AgEFAmZaCQC2AgEFAmdhCQDMCAIJALgCAgkAtgIBCQECYkEBBQJjTAUCZ2QFA25pbAkAzAgCCQC4AgIJALYCAQkBAmJBAQUCY0sFAmdkCQDMCAIJALcCAgkAtwICCQC2AgEJAQJiQQEFAmNMCQC2AgEFAmZaCQC2AgEFAmdhBQNuaWwEAmdnCQECYlkBBQJnZgQCZEEDCQDAAgIFAmdnBQJkVgYJAAIBCQC5CQIJAMwIAgIUbmV3IEQgaXMgZmV3ZXIgZXJyb3IJAMwIAgkApgMBBQJkVgkAzAgCCQCmAwEFAmdnBQNuaWwCAl9fAwkAAAIFAmRBBQJkQQkAlAoCBQNuaWwFAmdlCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNxASZjYWxjdWxhdGVBbW91bnRPdXRGb3JTd2FwQW5kU2VuZFRva2VucwUCZloCZlUCZ2gCZ2kCZ2EEAmdqCgACYUsJAPwHBAUCYUkCF2dldFN3YXBDb250cmFjdFJFQURPTkxZBQNuaWwFA25pbAMJAAECBQJhSwIGU3RyaW5nBQJhSwkAAgEJAKwCAgkAAwEFAmFLAhsgY291bGRuJ3QgYmUgY2FzdCB0byBTdHJpbmcEAmdrCQDMCAIDCQBnAggJAQV2YWx1ZQEJAJEDAggFAmNxCHBheW1lbnRzAAAGYW1vdW50BQJmWgYJAQJhRgECDFdyb25nIGFtb3VudAkAzAgCAwkAAAIIBQJjcQZjYWxsZXIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmdqBgkBAmFGAQIRUGVybWlzc2lvbiBkZW5pZWQFA25pbAMJAAACBQJnawUCZ2sEAmVNCQEFdmFsdWUBCQCRAwIIBQJjcQhwYXltZW50cwAABAJnbAkBAmFXAQgFAmVNB2Fzc2V0SWQEAmdtAwkAAAIFAmZVBwQCZ2MJAQJhQgIFBHRoaXMJAQFZAAQCZlYJAGUCCQECYkEBBQJnbAgJAQV2YWx1ZQEJAJEDAggFAmNxCHBheW1lbnRzAAAGYW1vdW50CQCUCgIFAmdjBQJmVgQCZ2MJAQJhQgIFBHRoaXMJAQFYAAQCZlYJAGUCCQECYkEBBQJnbAgJAQV2YWx1ZQEJAJEDAggFAmNxCHBheW1lbnRzAAAGYW1vdW50CQCUCgIFAmdjBQJmVgQCZ2MIBQJnbQJfMQQCZlYIBQJnbQJfMgQCYVkJAQJhUQAEAmNLCQCRAwIFAmFZBQF0BAJjTAkAkQMCBQJhWQUBdQQCYloDCQAAAgUCZlUHCQDMCAIJALgCAgkAtgIBCQECYkEBBQJjSwkAtgIBCAkBBXZhbHVlAQkAkQMCCAUCY3EIcGF5bWVudHMAAAZhbW91bnQJAMwIAgkAtgIBCQECYkEBBQJjTAUDbmlsCQDMCAIJALYCAQkBAmJBAQUCY0sJAMwIAgkAuAICCQC2AgEJAQJiQQEFAmNMCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJjcQhwYXltZW50cwAABmFtb3VudAUDbmlsBAJkVgkBAmJZAQUCYloEAmVkCQECZlQDBQJmVQUCZFYJALYCAQAABAJnZAkAuAICCQC4AgIJALYCAQkBAmJBAQUCZ2MFAmVkCQC2AgEAAQQCZ2UJAJYDAQkAzAgCAAAJAMwIAgkAoAMBBQJnZAUDbmlsBAJnbgMJAGcCBQJnZQUCZ2gGCQACAQIsRXhjaGFuZ2UgcmVzdWx0IGlzIGZld2VyIGNvaW5zIHRoYW4gZXhwZWN0ZWQDCQAAAgUCZ24FAmduBAJnZgMJAAACBQJmVQcJAMwIAgkAtwICCQC2AgEJAQJiQQEFAmNLCQC2AgEFAmdhCQDMCAIJALgCAgkAtgIBCQECYkEBBQJjTAUCZ2QFA25pbAkAzAgCCQC4AgIJALYCAQkBAmJBAQUCY0sFAmdkCQDMCAIJALcCAgkAtgIBCQECYkEBBQJjTAkAtgIBBQJnYQUDbmlsBAJnZwkBAmJZAQUCZ2YEAmRBAwkAwAICBQJnZwUCZFYGCQACAQIUbmV3IEQgaXMgZmV3ZXIgZXJyb3IDCQAAAgUCZEEFAmRBCQCUCgIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUCZ2kFAmdlCQECYVUBBQJnYwUDbmlsBQJnZQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjcQELY29uc3RydWN0b3IBAU0EAmRaCQECZlMBBQJjcQMJAAACBQJkWgUCZFoJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU0ABQFNBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY3EBCnNldE1hbmFnZXIBAmdvBAJkWgkBAmZTAQUCY3EDCQAAAgUCZFoFAmRaBAJncAkA2QQBBQJnbwMJAAACBQJncAUCZ3AJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU8ABQJnbwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNxAQ5jb25maXJtTWFuYWdlcgAEAmNmCQECZk8ABAJncQMJAQlpc0RlZmluZWQBBQJjZgYJAAIBAhJObyBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZ3EFAmdxBAJncgMJAAACCAUCY3EPY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJjZgYJAAIBAhtZb3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZ3IFAmdyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFOAAkA2AQBCQEFdmFsdWUBBQJjZgkAzAgCCQELRGVsZXRlRW50cnkBCQEBTwAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjcQEDcHV0AgJncwJndAQCZ3UJAQJiaAAEAmd2CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJndQUBeAIKV3Igc3QgYWRkcgQCZ3cJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmd1BQF6AgpXciBzbCBhZGRyAwkAZgIAAAUCZ3MJAAIBAg5Xcm9uZyBzbGlwcGFnZQMJAQIhPQIJAJADAQgFAmNxCHBheW1lbnRzAAIJAAIBAgwyIHBtbnRzIGV4cGQEAmd4CQC2AgEICQEFdmFsdWUBCQCRAwIIBQJjcQhwYXltZW50cwAABmFtb3VudAQCZ3kJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmNxCHBheW1lbnRzAAEGYW1vdW50BAJlcQkAuAICCQC2AgEJAQJiQQEJAQJhVwEFAmJkBQJneAMJAAACBQJlcQUCZXEEAmVyCQC4AgIJALYCAQkBAmJBAQkBAmFXAQUCYmUFAmd5AwkAAAIFAmVyBQJlcgQCZXMJALYCAQgJAQV2YWx1ZQEJAOwHAQUCYmMIcXVhbnRpdHkDCQAAAgUCZXMFAmVzBAJldAkBAmVtAwUCZ3gFAmd5CQC2AgEAAAMJAAACBQJldAUCZXQEAmd6CQECZU4KCQClCAEIBQJjcQZjYWxsZXIJANgEAQgFAmNxDXRyYW5zYWN0aW9uSWQJAQ9BdHRhY2hlZFBheW1lbnQCCAkBBXZhbHVlAQkAkQMCCAUCY3EIcGF5bWVudHMAAAdhc3NldElkCAkBBXZhbHVlAQkAkQMCCAUCY3EIcGF5bWVudHMAAAZhbW91bnQJAJEDAggFAmNxCHBheW1lbnRzAAEFAmdzBgcGAAACAAQCZE4IBQJnegJfMgQCZ0EIBQJnegJfNwQCZGMIBQJnegJfOQQCZE8IBQJnegNfMTAEAmRQCAUCZ3oDXzExBAJjSwgFAmd6A18xMgQCY0wIBQJnegNfMTMEAmR5CQD8BwQFAmFJAgRlbWl0CQDMCAIFAmROBQNuaWwFA25pbAMJAAACBQJkeQUCZHkEAmdCBAJmTgUCZHkDCQABAgUCZk4CB0FkZHJlc3MEAmdDBQJmTgkA/AcEBQJnQwIEZW1pdAkAzAgCBQJkTgUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCZ0IFAmdCBAJnRAMJAGYCBQJkTwAACQD8BwQFAmd3AgNwdXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCY0sFAmRPBQNuaWwFA25pbAMJAAACBQJnRAUCZ0QEAmdFAwkAZgIFAmRQAAAJAPwHBAUCZ3cCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJjTAUCZFAFA25pbAUDbmlsAwkAAAIFAmdFBQJnRQQCZ0YDBQJndAQCZ0cJAPwHBAUCZ3YCBXN0YWtlBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmdBBQJkTgUDbmlsAwkAAAIFAmdHBQJnRwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJjcQZjYWxsZXIFAmROBQJnQQUDbmlsBAJnSAkBAmV1AwAAAAAAAAQCZksIBQJnSAJfMQQCZWwIBQJnSAJfMgQCZ0kDCQDAAgIFAmVsBQJldAYJAQJhRgEJALkJAgkAzAgCAiJ1cGRhdGVkIERMcCBsb3dlciB0aGFuIGN1cnJlbnQgRExwCQDMCAIJAKYDAQUCZXEJAMwIAgkApgMBBQJlcgkAzAgCCQCmAwEFAmVzCQDMCAIJAKYDAQUCZXQJAMwIAgkApgMBBQJlbAkAzAgCCQCkAwEFAmRPCQDMCAIJAKQDAQUCZFAFA25pbAIBIAMJAAACBQJnSQUCZ0kEAmdKCAkBBXZhbHVlAQkA7AcBBQJiYwhxdWFudGl0eQMJAAACBQJnSgUCZ0oJAM4IAgkAzggCBQJkYwUCZ0YFAmZLCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNxAQtwdXRPbmVUa25WMgICZm8CZ3QEAmdLCgACYUsJAPwHBAUCYUkCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJhSwIHQm9vbGVhbgUCYUsJAAIBCQCsAgIJAAMBBQJhSwIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCZ0wDAwMJAQJhTgAGCQAAAgUCYmIFAW4GCQAAAgUCYmIFAXAGBQJnSwQCZ2sJAMwIAgMDCQEBIQEFAmdMBgkBAmZRAQUCY3EGCQECYUYBAiFwdXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJjcQhwYXltZW50cwABBgkBAmFGAQIeZXhhY3RseSAxIHBheW1lbnQgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZ2sFAmdrBAJjSwkA2AQBCQEFdmFsdWUBBQJiZAQCY0wJANgEAQkBBXZhbHVlAQUCYmUEAmNKBQJiYwQCZnMFAmJmBAJmdAUCYmcEAmNJAwkAAAIIBQJjcQZjYWxsZXIFBHRoaXMIBQJjcQxvcmlnaW5DYWxsZXIIBQJjcQZjYWxsZXIEAmVNCQEFdmFsdWUBCQCRAwIIBQJjcQhwYXltZW50cwAABAJjRwkA2AQBCQEFdmFsdWUBCAUCZU0HYXNzZXRJZAQCZG4IBQJlTQZhbW91bnQEAmV0AwkAAAIIBQJlTQdhc3NldElkBQJiZAkBAmVtAwkAtgIBBQJkbgkAtgIBAAAJALYCAQAACQECZW0DCQC2AgEAAAkAtgIBBQJkbgkAtgIBAAADCQAAAgUCZXQFAmV0BAJnTQkBAmVSBQUCZG4FAmNHCQClCAEFAmNJCQDYBAEIBQJjcQ10cmFuc2FjdGlvbklkBgMJAAACBQJnTQUCZ00EAmJYCAUCZ00CXzMEAmRjCAUCZ00CXzIEAmdOCAUCZ00CXzEEAmROAwMJAGYCBQJmbwAACQBmAgUCZm8FAmdOBwkBAmFGAQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJmbwUDbmlsAgAFAmdOBAJnegkA/AcEBQJhSQIEZW1pdAkAzAgCBQJkTgUDbmlsBQNuaWwDCQAAAgUCZ3oFAmd6BAJnQgQCZk4FAmd6AwkAAQIFAmZOAgdBZGRyZXNzBAJnQwUCZk4JAPwHBAUCZ0MCBGVtaXQJAMwIAgUCZE4FA25pbAUDbmlsBQR1bml0AwkAAAIFAmdCBQJnQgQCZ0YDBQJndAQCZ0cJAPwHBAUCYmoCCHN0YWtlRm9yCQDMCAIJAKUIAQgFAmNxBmNhbGxlcgUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJjSgUCZE4FA25pbAMJAAACBQJnRwUCZ0cFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCY3EGY2FsbGVyBQJkTgUCY0oFA25pbAQCZkUDCQBmAgUCYlgAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhUAUCYlgJANkEAQUCY0cFA25pbAUDbmlsBAJnTwMJAAACBQR0aGlzBQJhUAkAlAoCAAAAAAQCZ1ADCQAAAggFAmVNB2Fzc2V0SWQFAmJkBgcDBQJnUAkAlAoCCQEBLQEFAmJYAAAJAJQKAgAACQEBLQEFAmJYBAJldggFAmdPAl8xBAJldwgFAmdPAl8yBAJnUQkBAmV1AwUCZXYFAmV3AAAEAmZLCAUCZ1ECXzEEAmVsCAUCZ1ECXzIEAmZMCQECZXkCBQJldAUCZWwDCQAAAgUCZkwFAmZMCQCUCgIJAM4IAgkAzggCCQDOCAIFAmRjBQJnRgUCZkUFAmZLBQJkTgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjcQEKcHV0Rm9yRnJlZQECZ1IDCQBmAgAABQJnUgkAAgECCldyb25nIHNscGcDCQECIT0CCQCQAwEIBQJjcQhwYXltZW50cwACCQACAQIMMiBwbW50cyBleHBkBAJnUwkBAmVOCgkApQgBCAUCY3EGY2FsbGVyCQDYBAEIBQJjcQ10cmFuc2FjdGlvbklkCQEPQXR0YWNoZWRQYXltZW50AggJAQV2YWx1ZQEJAJEDAggFAmNxCHBheW1lbnRzAAAHYXNzZXRJZAgJAQV2YWx1ZQEJAJEDAggFAmNxCHBheW1lbnRzAAAGYW1vdW50CQCRAwIIBQJjcQhwYXltZW50cwABBQJnUgcHBgAAAgAEAmRjCAUCZ1MCXzkEAmd4CQC2AgEICQEFdmFsdWUBCQCRAwIIBQJjcQhwYXltZW50cwAABmFtb3VudAQCZ3kJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmNxCHBheW1lbnRzAAEGYW1vdW50BAJldAkBAmVtAwUCZ3gFAmd5CQC2AgEAAAMJAAACBQJldAUCZXQEAmdUCQECZXUDAAAAAAAABAJmSwgFAmdUAl8xBAJlbAgFAmdUAl8yBAJmTAkBAmV5AgUCZXQFAmVsAwkAAAIFAmZMBQJmTAkAzggCBQJkYwUCZksJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY3EBA2dldAAEAmV0CQECZW0DCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmV0BQJldAQCZHkJAQJlTAEFAmNxBAJnVQgFAmR5Al8xBAJkYggFAmR5Al8yBAJkbggFAmR5Al8zBAJjRwgFAmR5Al80BAJkYwgFAmR5Al81BAJlYQkA/AcEBQJhSQIEYnVybgkAzAgCBQJkbgUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJjRwUCZG4FA25pbAMJAAACBQJlYQUCZWEEAmdWCQECZXUDCQEBLQEFAmdVCQEBLQEFAmRiAAAEAmZLCAUCZ1YCXzEEAmVsCAUCZ1YCXzIEAmZMCQECZXkCBQJldAUCZWwDCQAAAgUCZkwFAmZMCQDOCAIFAmRjBQJmSwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjcQELZ2V0T25lVGtuVjICAmZuAmZvBAJnSwoAAmFLCQD8BwQFAmFJAihpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYUsCB0Jvb2xlYW4FAmFLCQACAQkArAICCQADAQUCYUsCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmdXAwMJAQJhTgAGCQAAAgUCYmIFAXAGBQJnSwQCZ2sJAMwIAgMDCQEBIQEFAmdXBgkBAmZRAQUCY3EGCQECYUYBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJjcQhwYXltZW50cwABBgkBAmFGAQIeZXhhY3RseSAxIHBheW1lbnQgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZ2sFAmdrBAJnWAkBAmZtBgUCZm4FAmZvCAUCY3EIcGF5bWVudHMIBQJjcQZjYWxsZXIIBQJjcQxvcmlnaW5DYWxsZXIIBQJjcQ10cmFuc2FjdGlvbklkBAJkYwgFAmdYAl8xBAJmeAgFAmdYAl8yCQCUCgIFAmRjBQJmeAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjcQEKcmVmcmVzaERMcAAEAmdZCQELdmFsdWVPckVsc2UCCQCfCAEFAmFnAAAEAmdaAwkAZwIJAGUCBQZoZWlnaHQFAmdZBQJhagUEdW5pdAkBAmFGAQkAuQkCCQDMCAIJAKQDAQUCYWoJAMwIAgIvIGJsb2NrcyBoYXZlIG5vdCBwYXNzZWQgc2luY2UgdGhlIHByZXZpb3VzIGNhbGwFA25pbAIAAwkAAAIFAmdaBQJnWgQCZUYJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAqAMBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFAmFmAgEwCQECYUgBAgtpbnZhbGlkIGRMcAQCaGEJAQJldQMAAAAAAAAEAmhiCAUCaGECXzEEAmVsCAUCaGECXzIEAmV4AwkBAiE9AgUCZUYFAmVsBQJoYgkBAmFGAQISbm90aGluZyB0byByZWZyZXNoCQCUCgIFAmV4CQCmAwEFAmVsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNxARNnZXRPbmVUa25WMlJFQURPTkxZAgJmbgJoYwQCY0sJANgEAQkBBXZhbHVlAQUCYmQEAmNMCQDYBAEJAQV2YWx1ZQEFAmJlBAJjSgkA2AQBCQEFdmFsdWUBBQJiYwQCYloJAMwIAgkAtgIBCQECYkEBBQJjSwkAzAgCCQC2AgEJAQJiQQEFAmNMBQNuaWwEAmVrCQC2AgEICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQkA2QQBBQJjSgIQaW52YWxpZCBscCBhc3NldAhxdWFudGl0eQQCZHgJAQJiWQEFAmJaBAJkegkAuAICBQJkeAkAvAIDCQC2AgEFAmhjBQJkeAUCZWsEAmhkAwkAAAIFAmZuBQJjSwAAAwkAAAIFAmZuBQJjTAABCQACAQIUaW52YWxpZCBvdXQgYXNzZXQgaWQEAmhlCQECZFUDBQJiWgUCaGQFAmR6BAJnZAkAuAICCQCRAwIFAmJaBQJoZAUCaGUEAmdlCQCWAwEJAMwIAgAACQDMCAIJAKADAQkAuAICBQJnZAUBZgUDbmlsBAJoZgkBAmJWAgUCZ2UFAmFMBAJmdwgFAmhmAl8xBAJiWAgFAmhmAl8yCQCUCgIFA25pbAkAlAoCBQJmdwUCYlgCY3EBHGdldE9uZVRrblYyV2l0aEJvbnVzUkVBRE9OTFkCAmZuAmhjBAJjSwkA2AQBCQEFdmFsdWUBBQJiZAQCY0wJANgEAQkBBXZhbHVlAQUCYmUEAmNKCQDYBAEJAQV2YWx1ZQEFAmJjBAJjUQkBAmJBAQUCY0sEAmNTCQECYkEBBQJjTAQCaGcKAAJhSwkA/AcEBQR0aGlzAhNnZXRPbmVUa25WMlJFQURPTkxZCQDMCAIFAmZuCQDMCAIFAmhjBQNuaWwFA25pbAMJAAECBQJhSwIKKEludCwgSW50KQUCYUsJAAIBCQCsAgIJAAMBBQJhSwIfIGNvdWxkbid0IGJlIGNhc3QgdG8gKEludCwgSW50KQQCZncIBQJoZwJfMQQCYlgIBQJoZwJfMgQCZHkJAQJjRQQCAAUCY0oFAmhjBQR0aGlzBAJkYQgFAmR5Al8xBAJkYggFAmR5Al8yBAJoaAkAZAIFAmRhBQJkYgQCZmwDCQAAAgUCaGgAAAMJAAACBQJmdwAAAAAJAAIBAhdib251cyBjYWxjdWxhdGlvbiBlcnJvcgkAawMJAGUCBQJmdwUCaGgFAWEFAmhoCQCUCgIFA25pbAkAlQoDBQJmdwUCYlgFAmZsAmNxAQlnZXROb0xlc3MCAmhpAmhqBAJkeQkBAmVMAQUCY3EEAmRhCAUCZHkCXzEEAmRiCAUCZHkCXzIEAmRuCAUCZHkCXzMEAmNHCAUCZHkCXzQEAmRjCAUCZHkCXzUDCQBmAgUCaGkFAmRhCQACAQkArAICCQCsAgIJAKwCAgIJRmFpbGVkOiAgCQCkAwEFAmRhAgMgPCAJAKQDAQUCaGkDCQBmAgUCaGoFAmRiCQACAQkArAICCQCsAgIJAKwCAgIIRmFpbGVkOiAJAKQDAQUCZGICAyA8IAkApAMBBQJoagQCZXQJAQJlbQMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZXQFAmV0BAJoawkA/AcEBQJhSQIEYnVybgkAzAgCBQJkbgUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJjRwUCZG4FA25pbAMJAAACBQJoawUCaGsEAmhsCQECZXUDCQEBLQEFAmRhCQEBLQEFAmRiAAAEAmZLCAUCaGwCXzEEAmVsCAUCaGwCXzIEAmZMCQECZXkCBQJldAUCZWwDCQAAAgUCZkwFAmZMCQDOCAIFAmRjBQJmSwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjcQENdW5zdGFrZUFuZEdldAECYlcEAmhtAwkBAiE9AgkAkAMBCAUCY3EIcGF5bWVudHMAAAkAAgECDU5vIHBtbnRzIGV4cGQGAwkAAAIFAmhtBQJobQQCaG4JAQJiaAAEAmdBBQJiYwQCaG8JARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmhuBQF4AgpXciBzdCBhZGRyBAJldAkBAmVtAwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJldAUCZXQEAmhwCQD8BwQFAmhvAgd1bnN0YWtlCQDMCAIJANgEAQUCZ0EJAMwIAgUCYlcFA25pbAUDbmlsAwkAAAIFAmhwBQJocAQCZHkJAQJjRQQJANgEAQgFAmNxDXRyYW5zYWN0aW9uSWQJANgEAQUCZ0EFAmJXCAUCY3EGY2FsbGVyBAJkYQgFAmR5Al8xBAJkYggFAmR5Al8yBAJjTwkBDXBhcnNlSW50VmFsdWUBCAUCZHkCXzkEAmRjCAUCZHkDXzEwBAJocQMDCQECYU4ABgkAAAIFAmNPBQFwCQACAQkArAICAglCbG9ja2VkOiAJAKQDAQUCY08GAwkAAAIFAmhxBQJocQQCaHIJAPwHBAUCYUkCBGJ1cm4JAMwIAgUCYlcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZ0EFAmJXBQNuaWwDCQAAAgUCaHIFAmhyBAJocwkBAmV1AwkBAS0BBQJkYQkBAS0BBQJkYgAABAJmSwgFAmhzAl8xBAJlbAgFAmhzAl8yBAJmTAkBAmV5AgUCZXQFAmVsAwkAAAIFAmZMBQJmTAkAzggCBQJkYwUCZksJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY3EBE3Vuc3Rha2VBbmRHZXROb0xlc3MDAmh0Amh1AmhqBAJnVwMJAQJhTgAGCQAAAgUCYmIFAXAEAmdrCQDMCAIDCQEBIQEFAmdXBgkAAgECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmNxCHBheW1lbnRzAAAGCQACAQIYbm8gcGF5bWVudHMgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZ2sFAmdrBAJldAkBAmVtAwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJldAUCZXQEAmhwCQD8BwQFAmJqAgd1bnN0YWtlCQDMCAIJANgEAQUCYmMJAMwIAgUCaHQFA25pbAUDbmlsAwkAAAIFAmhwBQJocAQCaHYJAQJjRQQJANgEAQgFAmNxDXRyYW5zYWN0aW9uSWQJANgEAQUCYmMFAmh0CAUCY3EGY2FsbGVyBAJkYQgFAmh2Al8xBAJkYggFAmh2Al8yBAJkYwgFAmh2A18xMAQCaHcJAMwIAgMJAGcCBQJkYQUCaHUGCQACAQkAuQkCCQDMCAICLGFtb3VudCBhc3NldCBhbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCaHUFA25pbAIACQDMCAIDCQBnAgUCZGIFAmhqBgkAAgEJALkJAgkAzAgCAitwcmljZSBhc3NldCBhbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCaGoFA25pbAIABQNuaWwDCQAAAgUCaHcFAmh3BAJoawkA/AcEBQJhSQIEYnVybgkAzAgCBQJodAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJiYwUCaHQFA25pbAMJAAACBQJoawUCaGsEAmh4CQECZXUDCQEBLQEFAmRhCQEBLQEFAmRiAAAEAmZLCAUCaHgCXzEEAmVsCAUCaHgCXzIEAmZMCQECZXkCBQJldAUCZWwDCQAAAgUCZkwFAmZMCQDOCAIFAmRjBQJmSwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjcQEVdW5zdGFrZUFuZEdldE9uZVRrblYyAwJodAJmbgJmbwQCZ0sKAAJhSwkA/AcEBQJhSQIoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmFLAgdCb29sZWFuBQJhSwkAAgEJAKwCAgkAAwEFAmFLAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJnVwMDCQECYU4ABgkAAAIFAmJiBQFwBgUCZ0sEAmdrCQDMCAIDAwkBASEBBQJnVwYJAQJmUQEFAmNxBgkBAmFGAQIhZ2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCY3EIcGF5bWVudHMAAAYJAQJhRgECGG5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmdrBQJnawQCaG4JAQJiaAAEAmdBBQJiYwQCaG8JARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmhuBQF4AgpXciBzdCBhZGRyBAJjSQgFAmNxBmNhbGxlcgQCaHkFBHRoaXMEAmhwCQD8BwQFAmhvAg91bnN0YWtlSU5URVJOQUwJAMwIAgUCZ0EJAMwIAgUCaHQJAMwIAggFAmNJBWJ5dGVzCQDMCAIIBQJoeQVieXRlcwUDbmlsBQNuaWwDCQAAAgUCaHAFAmhwBAJoegkBAmZtBgUCZm4FAmZvCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJnQQUCaHQFA25pbAgFAmNxBmNhbGxlcggFAmNxDG9yaWdpbkNhbGxlcggFAmNxDXRyYW5zYWN0aW9uSWQEAmRjCAUCaHoCXzEEAmZ4CAUCaHoCXzIJAJQKAgUCZGMFAmZ4CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNxARxwdXRPbmVUa25WMldpdGhCb251c1JFQURPTkxZAgJoQQJoQgQCaEMJAQJlUgUFAmhBBQJoQgIAAgAGBAJmZwgFAmhDAl8xBAJkYwgFAmhDAl8yBAJiWAgFAmhDAl8zBAJmbAgFAmhDAl80CQCUCgIFA25pbAkAlQoDBQJmZwUCYlgFAmZsAmNxASFwdXRPbmVUa25WMldpdGhvdXRUYWtlRmVlUkVBRE9OTFkCAmhBAmhCBAJoRAkBAmVSBQUCaEEFAmhCAgACAAcEAmZnCAUCaEQCXzEEAmRjCAUCaEQCXzIEAmJYCAUCaEQCXzMEAmZsCAUCaEQCXzQJAJQKAgUDbmlsCQCVCgMFAmZnBQJiWAUCZmwCY3EBCGFjdGl2YXRlAgJoRQJoRgMJAQIhPQIJAKUIAQgFAmNxBmNhbGxlcgkApQgBBQJhSQkAAgECBmRlbmllZAkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFYAAUCaEUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVkABQJoRgkAzAgCCQELU3RyaW5nRW50cnkCCQEBWgAJAKQDAQUBawUDbmlsAgdzdWNjZXNzAmNxARxnZXRQb29sQ29uZmlnV3JhcHBlclJFQURPTkxZAAkAlAoCBQNuaWwJAQJhUQACY3EBHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkBAmJCCQCUCgIFA25pbAkBAmJBAQUCYkICY3EBGWNhbGNQcmljZXNXcmFwcGVyUkVBRE9OTFkDAmJKAmJLAmJPBAJoRwkBAmJOAwUCYkoFAmJLBQJiTwkAlAoCBQNuaWwJAMwIAgkApgMBCQCRAwIFAmhHAAAJAMwIAgkApgMBCQCRAwIFAmhHAAEJAMwIAgkApgMBCQCRAwIFAmhHAAIFA25pbAJjcQEWZnJvbVgxOFdyYXBwZXJSRUFET05MWQIBRwJoSAkAlAoCBQNuaWwJAQFGAgkApwMBBQFHBQJoSAJjcQEUdG9YMThXcmFwcGVyUkVBRE9OTFkCAUMBRAkAlAoCBQNuaWwJAKYDAQkBAUICBQFDBQFEAmNxAR5jYWxjUHJpY2VCaWdJbnRXcmFwcGVyUkVBRE9OTFkCAmJEAmJFCQCUCgIFA25pbAkApgMBCQECYkMCCQCnAwEFAmJECQCnAwEFAmJFAmNxASNlc3RpbWF0ZVB1dE9wZXJhdGlvbldyYXBwZXJSRUFET05MWQkCY0YCZGUCZGYCZGcCZGgCZGkCaEkCZGoCZGsJAJQKAgUDbmlsCQECZGQNBQJjRgUCZGUFAmRmBQJkZwUCZGgFAmRpBQJoSQUCZGoFAmRrBgcAAAIAAmNxASNlc3RpbWF0ZUdldE9wZXJhdGlvbldyYXBwZXJSRUFET05MWQQCY0YCaEoCY0gCaEkEAmR5CQECY0UEBQJjRgUCaEoFAmNICQERQGV4dHJOYXRpdmUoMTA2MikBBQJoSQkAlAoCBQNuaWwJAJwKCggFAmR5Al8xCAUCZHkCXzIIBQJkeQJfMwgFAmR5Al80CAUCZHkCXzUIBQJkeQJfNggFAmR5Al83CQCmAwEIBQJkeQJfOAgFAmR5Al85CAUCZHkDXzEwAmNxAQljaGFuZ2VBbXAABAJoSwkA/AcEBQJhSQIaZ2V0Q2hhbmdlQW1wQ29uZmlnUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAQCaEwEAmZOBQJoSwMJAAECBQJmTgIJTGlzdFtBbnldBAJoTQUCZk4JAJUKAwoAAmFLCQCRAwIFAmhNAAADCQABAgUCYUsCA0ludAUCYUsJAAIBCQCsAgIJAAMBBQJhSwIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50CgACYUsJAJEDAgUCaE0AAQMJAAECBQJhSwIDSW50BQJhSwkAAgEJAKwCAgkAAwEFAmFLAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQKAAJhSwkAkQMCBQJoTQACAwkAAQIFAmFLAgNJbnQFAmFLCQACAQkArAICCQADAQUCYUsCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAkBAmFGAQISaW52YWxpZCBlbnRyeSB0eXBlBAJoTggFAmhMAl8xBAJoTwgFAmhMAl8yBAJoUAgFAmhMAl8zBAJoUQkBDXBhcnNlSW50VmFsdWUBCQERQGV4dHJOYXRpdmUoMTA1OCkBCQEBWgAEAmhSCQBkAgUCaFEFAmhPBAJoUwMJAGYCAAAFAmhPAwkAZgIFAmhQBQJoUgUCaFAFAmhSAwkAZgIFAmhSBQJoUAUCaFAFAmhSBAJoVAkBC3ZhbHVlT3JFbHNlAgkAnwgBCQECYWMAAAAEAmhVCQBkAgUCaFQFAmhOBAJnawkAzAgCAwkAZgIFBmhlaWdodAUCaFUGCQECYUYBAhd0cnkgYWdhaW4gaW4gZmV3IGJsb2NrcwkAzAgCAwkBAiE9AgUCaFEFAmhTBgkBAmFGAQIWYWxyZWFkeSByZWFjaGVkIHRhcmdldAUDbmlsAwkAAAIFAmdrBQJnawkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFjAAUGaGVpZ2h0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFaAAkApAMBBQJoUwkAzAgCCQELU3RyaW5nRW50cnkCCQECYWEBBQZoZWlnaHQJAKQDAQUCaFMFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECaFYBAmhXAAQCaFgEAmZOCQECZk0AAwkAAQIFAmZOAgpCeXRlVmVjdG9yBAJmUgUCZk4FAmZSAwkAAQIFAmZOAgRVbml0CAUCaFYPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IEAmZOBQJoVgMJAAECBQJmTgIFT3JkZXIEAmVCBQJmTgQCaFkJAQJhTwAEAmhaAwkBAmZZAAkAlAoCBgIACQECZUEBBQJlQgQCYXgIBQJoWgJfMQQCYXkIBQJoWgJfMgQCYXoJAPQDAwgFAmVCCWJvZHlCeXRlcwkAkQMCCAUCZUIGcHJvb2ZzAAAIBQJlQg9zZW5kZXJQdWJsaWNLZXkEAmFBCQD0AwMIBQJlQglib2R5Qnl0ZXMJAJEDAggFAmVCBnByb29mcwABBQJoWQMDAwUCYXgFAmF6BwUCYUEHBgkBAmF3BAUCYXgFAmF5BQJhegUCYUEDCQABAgUCZk4CFFNldFNjcmlwdFRyYW5zYWN0aW9uBAJjYwUCZk4DCQD0AwMIBQJoVglib2R5Qnl0ZXMJAJEDAggFAmhWBnByb29mcwAABQJoWAYEAmlhCQD2AwEJAQV2YWx1ZQEIBQJjYwZzY3JpcHQEAmliCQDbBAEJAQV2YWx1ZQEJAJ0IAgUCYUkJAQJhcwAEAmljCQDxBwEFBHRoaXMDCQAAAgUCaWIFAmlhCQECIT0CBQJpYwUCaWEHCQD0AwMIBQJoVglib2R5Qnl0ZXMJAJEDAggFAmhWBnByb29mcwAABQJoWKTIBrQ=", "height": 2562946, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8grKf57nX8XULXZeLhTpppPpJGYeJTisJsr9BN27jfqb Next: 5uQwzpnfzzVeAj3sR4JWNdDQw4zCjXk4o36DX4pPzYFk Diff:
OldNewDifferences
1919
2020 let i = toBigInt(4)
2121
22-let j = toBigInt((a - ((a * 1) / a)))
22+let j = "WAVES"
2323
24-let k = "WAVES"
24+let k = 50
2525
26-let l = 50
26+let l = "100"
2727
28-let m = "100"
28+let m = "__"
2929
30-let n = "1"
30+let n = 2
3131
32-let o = "__"
32+let o = 3
3333
34-let p = ""
34+let p = 4
3535
3636 let q = 1
3737
4141
4242 let t = 4
4343
44-let u = 1
44+let u = 5
4545
46-let v = 2
46+let v = 6
4747
48-let w = 3
48+let w = 7
4949
50-let x = 4
50+let x = 1
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 = fraction(10, a, 10000)
5757
58-let B = 8
59-
60-let C = 9
61-
62-let D = 1
63-
64-let E = 6
65-
66-let F = 7
67-
68-let G = 10
69-
70-let H = fraction(10, a, 10000)
71-
72-func I (J,K) = fraction(toBigInt(J), c, toBigInt(K))
58+func B (C,D) = fraction(toBigInt(C), c, toBigInt(D))
7359
7460
75-func L (J,K) = fraction(J, c, K)
61+func E (C,D) = fraction(C, c, D)
7662
7763
78-func M (N,O) = toInt(fraction(N, toBigInt(O), c))
64+func F (G,H) = toInt(fraction(G, toBigInt(H), c))
7965
8066
81-func P (N,O,Q) = toInt(fraction(N, toBigInt(O), c, Q))
67+func I (G,H,J) = toInt(fraction(G, toBigInt(H), c, J))
8268
8369
84-func R (J,K) = fraction(J, c, toBigInt(K))
70+func K (G) = if ((d > G))
71+ then -(G)
72+ else G
8573
8674
87-func S (N,O) = fraction(N, toBigInt(O), c)
75+func L (G) = if ((d > G))
76+ then -(G)
77+ else G
8878
8979
90-func T (U,V,W) = fraction(U, V, W)
80+func M () = "%s__factoryContract"
9181
9282
93-func X (N) = if ((d > N))
94- then -(N)
95- else N
83+func N () = "%s__managerPublicKey"
9684
9785
98-func Y (N) = if ((d > N))
99- then -(N)
100- else N
86+func O () = "%s__pendingManagerPublicKey"
10187
10288
103-func Z () = "%s__factoryContract"
89+func P () = "%s%s__price__last"
10490
10591
106-func aa () = "%s__managerPublicKey"
92+func Q (R,S) = makeString(["%s%s%d%d__price__history", toString(R), toString(S)], m)
10793
10894
109-func ab () = "%s__pendingManagerPublicKey"
95+func T (U,V) = ((("%s%s%s__P__" + U) + "__") + V)
11096
11197
112-func ac () = "%s%s__price__last"
98+func W (U,V) = ((("%s%s%s__G__" + U) + "__") + V)
11399
114100
115-func ad (ae,af) = makeString(["%s%s%d%d__price__history", toString(ae), toString(af)], o)
101+func X () = "%s__amountAsset"
116102
117103
118-func ag (ah,ai) = ((("%s%s%s__P__" + ah) + "__") + ai)
104+func Y () = "%s__priceAsset"
119105
120106
121-func aj (ah,ai) = ((("%s%s%s__G__" + ah) + "__") + ai)
107+func Z () = "%s__amp"
122108
123109
124-func ak () = "%s__amountAsset"
110+func aa (ab) = ("%s%d__amp__" + toString(ab))
125111
126112
127-func al () = "%s__priceAsset"
113+func ac () = "%s__changeAmpLastCall"
128114
129115
130-func am () = "%s__amp"
116+let ad = "%s__fee"
117+
118+let ae = valueOrElse(getInteger(this, ad), A)
119+
120+let af = makeString(["%s", "dLp"], m)
121+
122+let ag = makeString(["%s", "dLpRefreshedHeight"], m)
123+
124+let ah = makeString(["%s", "refreshDLpDelay"], m)
125+
126+let ai = 30
127+
128+let aj = valueOrElse(getInteger(this, ah), ai)
129+
130+func ak () = "%s__factoryConfig"
131131
132132
133-func an (ao) = ("%s%d__amp__" + toString(ao))
133+func al () = "%s%s__matcher__publicKey"
134134
135135
136-func ap () = "%s__changeAmpLastCall"
136+func am (an,ao) = (((("%d%d%s__" + an) + "__") + ao) + "__config")
137137
138138
139-let aq = "%s__fee"
140-
141-let ar = valueOrElse(getInteger(this, aq), H)
142-
143-let as = makeString(["%s", "dLp"], o)
144-
145-let at = makeString(["%s", "dLpRefreshedHeight"], o)
146-
147-let au = makeString(["%s", "refreshDLpDelay"], o)
148-
149-let av = 30
150-
151-let aw = valueOrElse(getInteger(this, au), av)
152-
153-func ax () = "%s__factoryConfig"
139+func ap (aq) = ("%s%s%s__mappings__baseAsset2internalId__" + aq)
154140
155141
156-func ay () = "%s%s__matcher__publicKey"
142+func ar () = "%s__shutdown"
157143
158144
159-func az (aA,aB) = (((("%d%d%s__" + aA) + "__") + aB) + "__config")
145+func as () = "%s__allowedLpStableScriptHash"
160146
161147
162-func aC (aD) = ("%s%s%s__mappings__baseAsset2internalId__" + aD)
148+func at () = "%s__feeCollectorAddress"
163149
164150
165-func aE () = "%s__shutdown"
151+func au (av) = ("%s%s__skipOrderValidation__" + av)
166152
167153
168-func aF () = "%s__allowedLpStableScriptHash"
154+func aw (ax,ay,az,aA) = throw((((((((("order validation failed: orderValid=" + toString(ax)) + " (") + ay) + ")") + " senderValid=") + toString(az)) + " matcherValid=") + toString(aA)))
169155
170156
171-func aG () = "%s__feeCollectorAddress"
157+func aB (aC,aD) = valueOrErrorMessage(getString(aC, aD), makeString(["mandatory ", toString(aC), ".", aD, " not defined"], ""))
172158
173159
174-func aH (aI) = ("%s%s__skipOrderValidation__" + aI)
160+func aE (aC,aD) = valueOrErrorMessage(getInteger(aC, aD), makeString(["mandatory ", toString(aC), ".", aD, " not defined"], ""))
175161
176162
177-func aJ (aK,aL,aM,aN) = throw((((((((("order validation failed: orderValid=" + toString(aK)) + " (") + aL) + ")") + " senderValid=") + toString(aM)) + " matcherValid=") + toString(aN)))
163+func aF (aG) = throw(makeString(["lp_stable.ride:", aG], " "))
178164
179165
180-func aO (aP,aQ) = valueOrErrorMessage(getString(aP, aQ), makeString(["mandatory ", toString(aP), ".", aQ, " not defined"], ""))
166+func aH (aG) = makeString(["lp_stable.ride:", aG], " ")
181167
182168
183-func aR (aP,aQ) = valueOrErrorMessage(getInteger(aP, aQ), makeString(["mandatory ", toString(aP), ".", aQ, " not defined"], ""))
169+let aI = addressFromStringValue(aB(this, M()))
170+
171+let aJ = {
172+ let aK = invoke(aI, "getInFeeREADONLY", [toString(this)], nil)
173+ if ($isInstanceOf(aK, "Int"))
174+ then aK
175+ else throw(($getType(aK) + " couldn't be cast to Int"))
176+ }
177+
178+let aL = {
179+ let aK = invoke(aI, "getOutFeeREADONLY", [toString(this)], nil)
180+ if ($isInstanceOf(aK, "Int"))
181+ then aK
182+ else throw(($getType(aK) + " couldn't be cast to Int"))
183+ }
184+
185+let aM = aB(this, Z())
186+
187+func aN () = valueOrElse(getBoolean(aI, ar()), false)
184188
185189
186-func aS (aT) = throw(makeString(["lp_stable.ride:", aT], " "))
190+func aO () = fromBase58String(aB(aI, al()))
187191
188192
189-func aU (aT) = makeString(["lp_stable.ride:", aT], " ")
193+let aP = addressFromStringValue(aB(aI, at()))
190194
191-
192-let aV = addressFromStringValue(aO(this, Z()))
193-
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"))
199- }
200-
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"))
206- }
207-
208-let aZ = aO(this, am())
209-
210-func ba () = valueOrElse(getBoolean(aV, aE()), false)
211-
212-
213-func bb () = fromBase58String(aO(aV, ay()))
214-
215-
216-let bc = addressFromStringValue(aO(aV, aG()))
217-
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)
195+func aQ () = {
196+ let aR = aB(this, X())
197+ let aS = aB(this, Y())
198+ let aT = aE(aI, ap(aS))
199+ let an = aE(aI, ap(aR))
200+ split(aB(aI, am(toString(an), toString(aT))), m)
224201 }
225202
226203
227-func bh (bi) = if ((bi == k))
204+func aU (aV) = if ((aV == j))
228205 then unit
229- else fromBase58String(bi)
206+ else fromBase58String(aV)
230207
231208
232-func bj (bi) = if ((bi == unit))
233- then k
234- else toBase58String(value(bi))
209+func aW (aV) = if ((aV == unit))
210+ then j
211+ else toBase58String(value(aV))
235212
236213
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]))
214+func aX (aY) = $Tuple7(addressFromStringValue(aY[q]), parseIntValue(aY[r]), fromBase58String(aY[s]), aU(aY[t]), aU(aY[u]), parseIntValue(aY[v]), parseIntValue(aY[w]))
238215
239216
240-let bm = bk(bd())
217+let aZ = aX(aQ())
241218
242-let bn = bm
219+let ba = aZ
243220
244-let bo = bn._1
221+let bb = ba._2
245222
246-let bp = bn._2
223+let bc = ba._3
247224
248-let bq = bn._3
225+let bd = ba._4
249226
250-let br = bn._4
227+let be = ba._5
251228
252-let bs = bn._5
229+let bf = ba._6
253230
254-let bt = bn._6
231+let bg = ba._7
255232
256-let bu = bn._7
257-
258-let bv = bn._8
259-
260-let bw = bn._9
261-
262-func bx () = split(aO(aV, ax()), o)
233+func bh () = split(aB(aI, ak()), m)
263234
264235
265-let by = bx()
236+let bi = bh()
266237
267-let bz = valueOrErrorMessage(addressFromString(by[D]), "Invalid staking contract address")
238+let bj = valueOrErrorMessage(addressFromString(bi[x]), "Invalid staking contract address")
268239
269-let bA = valueOrErrorMessage(addressFromString(by[F]), "Invalid slipage contract address")
240+let bk = valueOrErrorMessage(addressFromString(bi[y]), "Invalid gwx contract address")
270241
271-let bB = valueOrErrorMessage(addressFromString(by[G]), "Invalid gwx contract address")
272-
273-let bC = valueOrErrorMessage(addressFromString(by[E]), "Invalid gwx contract address")
274-
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)
242+func bl (bm,bn,bo,bp,bq,br,bs,bt,bu,bv) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bm), toString(bn), toString(bo), toString(bp), toString(bq), toString(br), toString(bs), toString(bt), toString(bu), toString(bv)], m)
276243
277244
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)
245+func bw (bx,by,bz,bp,bs,bt) = makeString(["%d%d%d%d%d%d", toString(bx), toString(by), toString(bz), toString(bp), toString(bs), toString(bt)], m)
279246
280247
281-func bS (bT) = if ((bT == "WAVES"))
248+func bA (bB) = if ((bB == "WAVES"))
282249 then wavesBalance(this).available
283- else assetBalance(this, fromBase58String(bT))
250+ else assetBalance(this, fromBase58String(bB))
284251
285252
286-func bU (bV,bW) = fraction(bV, c, bW)
253+func bC (bD,bE) = fraction(bD, c, bE)
287254
288255
289-func bX (bV,bW,Q) = fraction(bV, c, bW, Q)
256+func bF (bD,bE,J) = fraction(bD, c, bE, J)
290257
291258
292-func bY (bZ,ca,cb) = {
293- let cc = fraction((bZ - ca), b, ca)
294- let cd = ((cb - X(cc)) > d)
295- if (!(cd))
296- then throw(("Big slpg: " + toString(cc)))
297- else $Tuple2(cd, min([bZ, ca]))
259+func bG (bH,bI,bJ,bK) = {
260+ let bL = B(bJ, bH)
261+ let bM = B(bK, bI)
262+ bC(bM, bL)
298263 }
299264
300265
301-func ce (cf,cg,ch) = {
302- let cc = fraction(cg, b, cf)
303- let ci = (ch > cc)
304- if (if (ci)
305- then true
306- else (cg > cf))
307- then throw(((((((toString(cg) + " ") + toString(cf)) + " ") + toString(cc)) + " ") + toString(ch)))
308- else ci
266+func bN (bJ,bK,bO) = {
267+ let bP = bf
268+ let bQ = bg
269+ let bR = bG(bP, bQ, bJ, bK)
270+ let bE = B(bJ, bP)
271+ let bD = B(bK, bQ)
272+ let bS = B(bO, a)
273+ let bT = bC(bE, bS)
274+ let bU = bC(bD, bS)
275+[bR, bT, bU]
309276 }
310277
311278
312-func cj (ck,cl,cm,cn) = {
313- let co = I(cm, ck)
314- let cp = I(cn, cl)
315- bU(cp, co)
279+func bV (bW,ae) = {
280+ let bX = if ((ae == 0))
281+ then 0
282+ else fraction(bW, ae, a)
283+ $Tuple2((bW - bX), bX)
316284 }
317285
318286
319-func cq (cm,cn,cr) = {
320- 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, a)
326- let cw = bU(bW, cv)
327- let cx = bU(bV, cv)
328-[cu, cw, cx]
329- }
330-
331-
332-func cy (cm,cn,cr) = {
333- let cz = cq(cm, cn, cr)
334-[M(cz[0], a), M(cz[1], a), M(cz[2], a)]
335- }
336-
337-
338-func cA (cB,ar) = {
339- let cC = if ((ar == 0))
340- then 0
341- else fraction(cB, ar, a)
342- $Tuple2((cB - cC), cC)
343- }
344-
345-
346-func cD (cE) = {
347- let cF = cE[0]
348- let cG = cE[1]
349- let cH = (cF + cG)
350- if ((cH == e))
287+func bY (bZ) = {
288+ let ca = bZ[0]
289+ let cb = bZ[1]
290+ let cc = (ca + cb)
291+ if ((cc == e))
351292 then e
352293 else {
353- let cI = parseIntValue(aZ)
354- let cJ = (cI * 2)
355- let cz = fraction(cF, cG, f)
356- let cK = fraction(cz, i, f)
357- let cL = fraction(toBigInt(cJ), cH, f)
358- let cM = toBigInt((cJ - 1))
359- func cN (cO) = {
360- let cP = fraction(cO, cO, f)
361- let cQ = fraction(cP, cO, f)
362- let cR = fraction(cQ, f, cK)
363- fraction((cL + fraction(cR, g, f)), cO, (fraction(cM, cO, f) + fraction(h, cR, f)))
294+ let cd = parseIntValue(aM)
295+ let ce = (cd * 2)
296+ let cf = fraction(ca, cb, f)
297+ let cg = fraction(cf, i, f)
298+ let ch = fraction(toBigInt(ce), cc, f)
299+ let ci = toBigInt((ce - 1))
300+ func cj (ck) = {
301+ let cl = fraction(ck, ck, f)
302+ let cm = fraction(cl, ck, f)
303+ let cn = fraction(cm, f, cg)
304+ fraction((ch + fraction(cn, g, f)), ck, (fraction(ci, ck, f) + fraction(h, cn, f)))
364305 }
365306
366- func cS (cT,cU) = if (cT._2)
367- then cT
307+ func co (cp,cq) = if (cp._2)
308+ then cp
368309 else {
369- let cO = cT._1
370- let cV = cN(cO)
371- let cW = (cV - value(cO))
372- let cX = if ((e > cW))
373- then -(cW)
374- else cW
375- if ((f >= cX))
376- then $Tuple2(cV, true)
377- else $Tuple2(cV, false)
310+ let ck = cp._1
311+ let cr = cj(ck)
312+ let cs = (cr - value(ck))
313+ let ct = if ((e > cs))
314+ then -(cs)
315+ else cs
316+ if ((f >= ct))
317+ then $Tuple2(cr, true)
318+ else $Tuple2(cr, false)
378319 }
379320
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])
321+ let cu = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
322+ let cv = {
323+ let cw = cu
324+ let cx = size(cw)
325+ let cy = $Tuple2(cc, false)
326+ func cz (cA,cB) = if ((cB >= cx))
327+ then cA
328+ else co(cA, cw[cB])
388329
389- func dg (de,df) = if ((df >= db))
390- then de
330+ func cC (cA,cB) = if ((cB >= cx))
331+ then cA
391332 else throw("List size exceeds 17")
392333
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)
334+ cC(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cy, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17)
394335 }
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)))
336+ let ck = cv._1
337+ let cD = cv._2
338+ if (cD)
339+ then ck
340+ else throw(("D calculation error, D = " + toString(ck)))
400341 }
401342 }
402343
403344
404-func di (dj,dk,dl,dm) = {
405- let dn = bq
406- let do = toBase58String(value(br))
407- let dp = toBase58String(value(bs))
408- 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))
345+func cE (cF,cG,cH,cI) = {
346+ let cJ = bc
347+ let cK = toBase58String(value(bd))
348+ let cL = toBase58String(value(be))
349+ let cM = bf
350+ let cN = bg
351+ let cO = toString(bb)
352+ let cP = valueOrErrorMessage(assetInfo(cJ), "Wrong LP id").quantity
353+ if ((toBase58String(cJ) != cG))
413354 then throw("Wrong pmt asset")
414355 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, a)
421- let dA = I(dl, a)
422- let dB = I(dt, a)
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 == ""))
356+ let cQ = bA(cK)
357+ let cR = B(cQ, cM)
358+ let cS = bA(cL)
359+ let cT = B(cS, cN)
360+ let cU = bC(cT, cR)
361+ let cV = F(cU, a)
362+ let cW = B(cH, a)
363+ let cX = B(cP, a)
364+ let cY = fraction(cR, cW, cX)
365+ let cZ = fraction(cT, cW, cX)
366+ let da = I(cY, cM, FLOOR)
367+ let db = I(cZ, cN, FLOOR)
368+ let dc = if ((cF == ""))
428369 then nil
429- else [ScriptTransfer(dm, dE, if ((do == "WAVES"))
370+ else [ScriptTransfer(cI, da, if ((cK == "WAVES"))
430371 then unit
431- else fromBase58String(do)), ScriptTransfer(dm, dF, if ((dp == "WAVES"))
372+ else fromBase58String(cK)), ScriptTransfer(cI, db, if ((cL == "WAVES"))
432373 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)
374+ else fromBase58String(cL)), StringEntry(W(toString(cI), cF), bw(da, db, cH, cV, height, lastBlock.timestamp)), IntegerEntry(P(), cV), IntegerEntry(Q(height, lastBlock.timestamp), cV)]
375+ $Tuple10(da, db, cK, cL, cQ, cS, cP, cU, cO, dc)
435376 }
436377 }
437378
438379
439-func dH (dj,cb,dI,dJ,dK,dL,dm,dM,dN,dO,dP,dQ,dR) = {
440- let dn = bq
441- let dS = toBase58String(value(br))
442- let dT = toBase58String(value(bs))
443- let dU = bv
444- let dV = bw
445- 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)
380+func dd (cF,de,df,dg,dh,di,cI,dj,dk,dl,dm,dn,do) = {
381+ let cJ = bc
382+ let dp = toBase58String(value(bd))
383+ let dq = toBase58String(value(be))
384+ let dr = bf
385+ let ds = bg
386+ let cO = toString(bb)
387+ let dt = valueOrErrorMessage(assetInfo(cJ), "Wr lp as").quantity
388+ let cQ = if (dj)
389+ then bA(dp)
390+ else if (if (dl)
391+ then (do == dp)
453392 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)
393+ then (bA(dp) - dn)
394+ else if (dl)
395+ then bA(dp)
396+ else (bA(dp) - df)
397+ let cS = if (dj)
398+ then bA(dq)
399+ else if (if (dl)
400+ then (do == dq)
462401 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))
402+ then (bA(dq) - dn)
403+ else if (dl)
404+ then bA(dq)
405+ else (bA(dq) - dh)
406+ let du = B(df, dr)
407+ let dv = B(dh, ds)
408+ let dw = bC(dv, du)
409+ let cR = B(cQ, dr)
410+ let cT = B(cS, ds)
411+ let dx = bY([cR, cT])
412+ let dy = if ((dt == 0))
474413 then {
475- let cf = cD([(dv + dZ), (dx + ea)])
476- let ed = if ((cf > cg))
414+ let dz = bY([(cR + du), (cT + dv)])
415+ let dA = if ((dz > dx))
477416 then true
478417 else throw("D1 should be greater than D0")
479- if ((ed == ed))
418+ if ((dA == dA))
480419 then {
481- let dy = d
482- let ee = d
483- let cv = cf
484- $Tuple5(M(cv, a), M(dZ, dW), M(ea, dX), bU((dx + ea), (dv + dZ)), ee)
420+ let cU = d
421+ let dB = d
422+ let bS = dz
423+ $Tuple5(F(bS, a), F(du, dr), F(dv, ds), bC((cT + dv), (cR + du)), dB)
485424 }
486425 else throw("Strict value is not equal to itself.")
487426 }
488427 else {
489- let dy = bU(dx, dv)
490- let ef = fraction(X((dy - eb)), c, dy)
491- let ee = I(cb, a)
492- if (if (if (dP)
493- then (dy != d)
428+ let cU = bC(cT, cR)
429+ let dC = fraction(K((cU - dw)), c, cU)
430+ let dB = B(de, a)
431+ if (if (if (dm)
432+ then (cU != d)
494433 else false)
495- then (ef > ee)
434+ then (dC > dB)
496435 else false)
497- then throw(((("Price slippage " + toString(ef)) + " > ") + toString(ee)))
436+ then throw(((("Price slippage " + toString(dC)) + " > ") + toString(dB)))
498437 else {
499- let eg = I(dY, a)
500- let eh = fraction(dZ, bX(dx, dv, CEILING), c, CEILING)
501- let ei = fraction(ea, c, 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))
438+ let dD = B(dt, a)
439+ let dE = fraction(du, bF(cT, cR, CEILING), c, CEILING)
440+ let dF = fraction(dv, c, bF(cT, cR, FLOOR), CEILING)
441+ let dG = if ((dE > dv))
442+ then $Tuple2(dF, dv)
443+ else $Tuple2(du, dE)
444+ let dH = dG._1
445+ let dI = dG._2
446+ let dz = bY([(cR + dH), (cT + dI)])
447+ let dA = if ((dz > dx))
509448 then true
510449 else throw("D1 should be greater than D0")
511- if ((ed == ed))
450+ if ((dA == dA))
512451 then {
513- let cv = fraction(eg, (cf - cg), cg)
514- $Tuple5(P(cv, a, FLOOR), P(ek, dW, CEILING), P(el, dX, CEILING), dy, ee)
452+ let bS = fraction(dD, (dz - dx), dx)
453+ $Tuple5(I(bS, a, FLOOR), I(dH, dr, CEILING), I(dI, ds, CEILING), cU, dB)
515454 }
516455 else throw("Strict value is not equal to itself.")
517456 }
518457 }
519- let em = ec._1
520- let en = ec._2
521- let eo = ec._3
522- let dz = M(ec._4, a)
523- let ep = M(ec._5, a)
524- if ((0 >= em))
458+ let dJ = dy._1
459+ let dK = dy._2
460+ let dL = dy._3
461+ let cV = F(dy._4, a)
462+ let dM = F(dy._5, a)
463+ if ((0 >= dJ))
525464 then throw("LP <= 0")
526465 else {
527- let eq = if (!(dN))
466+ let dN = if (!(dk))
528467 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)
468+ else dJ
469+ let dO = (df - dK)
470+ let dP = (dh - dL)
471+ let dQ = if (if (dl)
472+ then (do == dp)
534473 else false)
535- then $Tuple2(dQ, 0)
536- else if (if (dO)
537- then (dR == dT)
474+ then $Tuple2(dn, 0)
475+ else if (if (dl)
476+ then (do == dq)
538477 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)
478+ then $Tuple2(0, dn)
479+ else $Tuple2(dK, dL)
480+ let dR = dQ._1
481+ let dS = dQ._2
482+ let dT = [IntegerEntry(P(), cV), IntegerEntry(Q(height, lastBlock.timestamp), cV), StringEntry(T(cI, cF), bl(dR, dS, dN, cV, de, dM, height, lastBlock.timestamp, dO, dP))]
483+ $Tuple13(dJ, dN, cV, cQ, cS, dt, cJ, cO, dT, dO, dP, dg, di)
545484 }
546485 }
547486
548487
549-func ex (cE,cU,ey) = {
550- let ez = g
551- let eA = cE[if ((cU == 0))
488+func dU (bZ,cq,dV) = {
489+ let dW = g
490+ let dX = bZ[if ((cq == 0))
552491 then 1
553492 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
493+ let dY = parseBigIntValue(l)
494+ let cd = (parseBigIntValue(aM) * dY)
495+ let cc = dX
496+ let ce = (cd * dW)
497+ let dZ = (((((dV * dV) / (dX * dW)) * dV) * dY) / (ce * dW))
498+ let ea = ((cc + ((dV * dY) / ce)) - dV)
499+ func co (cp,eb) = {
500+ let ec = cp
501+ let ed = ec._1
502+ let cD = ec._2
503+ if ((cD != unit))
504+ then cp
566505 else {
567- let eH = (((eG * eG) + eC) / ((g * eG) + eD))
568- let eI = Y((eH - value(eG)))
569- if ((f >= eI))
570- then $Tuple2(eH, eE)
571- else $Tuple2(eH, unit)
506+ let ee = (((ed * ed) + dZ) / ((g * ed) + ea))
507+ let ef = L((ee - value(ed)))
508+ if ((f >= ef))
509+ then $Tuple2(ee, eb)
510+ else $Tuple2(ee, unit)
572511 }
573512 }
574513
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])
514+ let cu = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
515+ let eg = {
516+ let cw = cu
517+ let cx = size(cw)
518+ let cy = $Tuple2(dV, unit)
519+ func cz (cA,cB) = if ((cB >= cx))
520+ then cA
521+ else co(cA, cw[cB])
583522
584- func dg (de,df) = if ((df >= db))
585- then de
523+ func cC (cA,cB) = if ((cB >= cx))
524+ then cA
586525 else throw("List size exceeds 15")
587526
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)
527+ cC(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cy, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
589528 }
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)))
529+ let ed = eg._1
530+ let cD = eg._2
531+ if ((cD != unit))
532+ then ed
533+ else throw(("Y calculation error, Y = " + toString(ed)))
595534 }
596535
597536
598-func eK (eL,eM,eN) = {
599- let eO = fraction(cD([L(eL, toBigInt(bt)), L(eM, toBigInt(bu))]), c, eN)
600- if ((eN == e))
537+func eh (ei,ej,ek) = {
538+ let el = fraction(bY([E(ei, toBigInt(bf)), E(ej, toBigInt(bg))]), c, ek)
539+ if ((ek == e))
601540 then e
602- else eO
541+ else el
603542 }
604543
605544
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
545+func em (en,eo,ep) = {
546+ let eq = (toBigInt(bA(aW(bd))) - en)
547+ let er = (toBigInt(bA(aW(be))) - eo)
548+ let es = (toBigInt(value(assetInfo(bc)).quantity) - ep)
549+ let et = eh(eq, er, es)
550+ et
612551 }
613552
614553
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)
554+func eu (ev,ew,ep) = {
555+ let eq = (bA(aW(bd)) + ev)
556+ let er = (bA(aW(be)) + ew)
557+ let es = (value(assetInfo(bc)).quantity + ep)
558+ let el = eh(toBigInt(eq), toBigInt(er), toBigInt(es))
559+ let ex = [IntegerEntry(ag, height), StringEntry(af, toString(el))]
560+ $Tuple2(ex, el)
622561 }
623562
624563
625-func fb (fc,eO) = if ((eO >= fc))
564+func ey (ez,el) = if ((el >= ez))
626565 then true
627- else aS("updated DLp lower than current DLp")
566+ else aF("updated DLp lower than current DLp")
628567
629568
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, a, 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())
569+func eA (eB) = {
570+ let eq = bA(aW(bd))
571+ let er = bA(aW(be))
572+ let eC = eB.amount
573+ let eD = fraction(eB.amount, eB.price, a, FLOOR)
574+ let eE = if ((eB.orderType == Buy))
575+ then $Tuple2(eC, -(eD))
576+ else $Tuple2(-(eC), eD)
577+ let ev = eE._1
578+ let ew = eE._2
579+ if (if (if (aN())
641580 then true
642- else (bp == s))
581+ else (bb == o))
643582 then true
644- else (bp == t))
583+ else (bb == p))
645584 then throw("Admin blocked")
646- else if (if ((fe.assetPair.amountAsset != br))
585+ else if (if ((eB.assetPair.amountAsset != bd))
647586 then true
648- else (fe.assetPair.priceAsset != bs))
587+ else (eB.assetPair.priceAsset != be))
649588 then throw("Wr assets")
650589 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)
590+ let eF = parseBigIntValue(valueOrElse(getString(this, af), "0"))
591+ let eG = eu(ev, ew, 0)
592+ let eH = eG._1
593+ let eI = eG._2
594+ let eJ = (eI >= eF)
595+ let eK = makeString(["dLp=", toString(eF), " dLpNew=", toString(eI), " amountAssetBalance=", toString(eq), " priceAssetBalance=", toString(er), " amountAssetBalanceDelta=", toString(ev), " priceAssetBalanceDelta=", toString(ew), " height=", toString(height)], "")
596+ $Tuple2(eJ, eK)
658597 }
659598 }
660599
661600
662-func fo (cU) = if ((size(cU.payments) != 1))
601+func eL (cq) = if ((size(cq.payments) != 1))
663602 then throw("1 pmnt exp")
664603 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())
604+ let eM = value(cq.payments[0])
605+ let cG = value(eM.assetId)
606+ let dn = eM.amount
607+ let dy = cE(toBase58String(cq.transactionId), toBase58String(cG), dn, cq.caller)
608+ let da = dy._1
609+ let db = dy._2
610+ let cO = parseIntValue(dy._9)
611+ let dc = dy._10
612+ if (if (aN())
674613 then true
675- else (ds == t))
676- then throw(("Admin blocked: " + toString(ds)))
677- else $Tuple5(dE, dF, dQ, dk, dG)
614+ else (cO == p))
615+ then throw(("Admin blocked: " + toString(cO)))
616+ else $Tuple5(da, db, dn, cG, dc)
678617 }
679618
680619
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())
620+func eN (eO,V,eP,eQ,de,dk,dl,dm,dn,do) = {
621+ let dy = dd(V, de, value(eP).amount, value(eP).assetId, value(eQ).amount, value(eQ).assetId, eO, (V == ""), dk, dl, dm, dn, do)
622+ let cO = parseIntValue(dy._8)
623+ if (if (if (aN())
685624 then true
686- else (ds == r))
625+ else (cO == n))
687626 then true
688- else (ds == t))
689- then throw(("Blocked:" + toString(ds)))
690- else ec
627+ else (cO == p))
628+ then throw(("Blocked:" + toString(cO)))
629+ else dy
691630 }
692631
693632
694-func fu (fv,dk,dm,ai,fw) = {
695- let do = toBase58String(value(br))
696- let dp = toBase58String(value(bs))
697- let dn = bq
698- let dW = bt
699- let dX = bu
700- let eV = toBigInt(valueOrErrorMessage(assetInfo(dn), "invalid lp asset").quantity)
701- let fx = if ((eV > e))
633+func eR (eS,cG,cI,V,eT) = {
634+ let cK = toBase58String(value(bd))
635+ let cL = toBase58String(value(be))
636+ let cJ = bc
637+ let dr = bf
638+ let ds = bg
639+ let es = toBigInt(valueOrErrorMessage(assetInfo(cJ), "invalid lp asset").quantity)
640+ let eU = if ((es > e))
702641 then true
703642 else throw("initial deposit requires all coins")
704- if ((fx == fx))
643+ if ((eU == eU))
705644 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))
645+ let cQ = bA(cK)
646+ let cS = bA(cL)
647+ let eV = if ((V == ""))
648+ then $Tuple2(cQ, cS)
649+ else if ((cG == cK))
650+ then if ((eS > cQ))
712651 then throw("invalid payment amount")
713- else $Tuple2((du - fv), dw)
714- else if ((dk == dp))
715- then if ((fv > dw))
652+ else $Tuple2((cQ - eS), cS)
653+ else if ((cG == cL))
654+ then if ((eS > cS))
716655 then throw("invalid payment amount")
717- else $Tuple2(du, (dw - fv))
656+ else $Tuple2(cQ, (cS - eS))
718657 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)
658+ let eW = eV._1
659+ let eX = eV._2
660+ let eY = if ((cG == cK))
661+ then $Tuple2(eS, 0)
662+ else if ((cG == cL))
663+ then $Tuple2(0, eS)
725664 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
734- 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))
665+ let eZ = eY._1
666+ let fa = eY._2
667+ let fb = if (eT)
668+ then $Tuple3(bV(eZ, aJ)._1, bV(fa, aJ)._1, bV(eS, aJ)._2)
669+ else $Tuple3(eZ, fa, 0)
670+ let fc = fb._1
671+ let fd = fb._2
672+ let bX = fb._3
673+ let fe = (eW + fc)
674+ let ff = (eX + fd)
675+ let dx = bY([B(eW, bf), B(eX, bg)])
676+ let dz = bY([B(fe, bf), B(ff, bg)])
677+ let dA = if ((dz > dx))
739678 then true
740679 else throw()
741- if ((ed == ed))
680+ if ((dA == dA))
742681 then {
743- let fJ = fraction(eV, (cf - cg), cg, FLOOR)
744- let dz = M(bU(I(fI, dX), I(fH, dW)), a)
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, a, fz)
747- let fL = fraction(fv, a, (fK + a))
748- let fM = (fv - fL)
749- let fN = fraction(eV, toBigInt(fM), toBigInt(fA))
750- let fO = toInt(fraction((fJ - fN), b, fN))
751- $Tuple4(toInt(fJ), ew, cC, fO)
682+ let fg = fraction(es, (dz - dx), dx, FLOOR)
683+ let cV = F(bC(B(ff, ds), B(fe, dr)), a)
684+ let dT = [IntegerEntry(P(), cV), IntegerEntry(Q(height, lastBlock.timestamp), cV), StringEntry(T(cI, V), bl(eZ, fa, toInt(fg), cV, 0, 0, height, lastBlock.timestamp, 0, 0))]
685+ let fh = fraction(eX, a, eW)
686+ let fi = fraction(eS, a, (fh + a))
687+ let fj = (eS - fi)
688+ let fk = fraction(es, toBigInt(fj), toBigInt(eX))
689+ let fl = toInt(fraction((fg - fk), b, fk))
690+ $Tuple4(toInt(fg), dT, bX, fl)
752691 }
753692 else throw("Strict value is not equal to itself.")
754693 }
756695 }
757696
758697
759-func fP (fQ,fR,fS,fr,fT,fU) = {
760- let dn = toBase58String(value(bq))
761- let do = toBase58String(value(br))
762- let dp = toBase58String(value(bs))
763- 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(e, e, e)
773- if ((eW == eW))
698+func fm (fn,fo,fp,eO,fq,fr) = {
699+ let cJ = toBase58String(value(bc))
700+ let cK = toBase58String(value(bd))
701+ let cL = toBase58String(value(be))
702+ let fs = bf
703+ let ft = bg
704+ let fu = bb
705+ let cI = if ((eO == bk))
706+ then fq
707+ else eO
708+ let eM = value(fp[0])
709+ let cG = value(eM.assetId)
710+ let dn = eM.amount
711+ let et = em(e, e, e)
712+ if ((et == et))
774713 then {
775- let dj = toBase58String(fU)
776- if ((dn != toBase58String(dk)))
714+ let cF = toBase58String(fr)
715+ if ((cJ != toBase58String(cG)))
777716 then throw("Wrong LP")
778717 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)"))
718+ let cQ = bA(cK)
719+ let cS = bA(cL)
720+ let fv = {
721+ let aK = invoke(this, "getOneTknV2READONLY", [fn, dn], nil)
722+ if ($isInstanceOf(aK, "(Int, Int)"))
723+ then aK
724+ else throw(($getType(aK) + " couldn't be cast to (Int, Int)"))
786725 }
787- if ((fY == fY))
726+ if ((fv == fv))
788727 then {
789- let cC = fY._2
790- let fZ = fY._1
791- let ga = if (if ((fR > 0))
792- then (fR > fZ)
728+ let bX = fv._2
729+ let fw = fv._1
730+ let fx = if (if ((fo > 0))
731+ then (fo > fw)
793732 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))
733+ then aF(makeString(["amount to receive is less than ", toString(fo)], ""))
734+ else fw
735+ let fy = if ((fn == cK))
736+ then $Tuple4(fx, 0, ((cQ - fx) - bX), cS)
737+ else if ((fn == cL))
738+ then $Tuple4(0, fx, cQ, ((cS - fx) - bX))
800739 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, a)
807- let gg = if ((fQ == "WAVES"))
740+ let fz = fy._1
741+ let fA = fy._2
742+ let fe = fy._3
743+ let ff = fy._4
744+ let fB = bC(B(ff, ft), B(fe, fs))
745+ let fC = F(fB, a)
746+ let fD = if ((fn == "WAVES"))
808747 then unit
809- else fromBase58String(fQ)
810- let gh = if ((cC > 0))
811- then [ScriptTransfer(bc, cC, gg)]
748+ else fromBase58String(fn)
749+ let fE = if ((bX > 0))
750+ then [ScriptTransfer(aP, bX, fD)]
812751 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))
752+ let dc = ([ScriptTransfer(cI, fx, fD), StringEntry(W(toString(cI), cF), bw(fz, fA, dn, fC, height, lastBlock.timestamp)), IntegerEntry(P(), fC), IntegerEntry(Q(height, lastBlock.timestamp), fC)] ++ fE)
753+ if ((dc == dc))
815754 then {
816- let gi = invoke(aV, "burn", [dQ], [AttachedPayment(dk, dQ)])
817- if ((gi == gi))
755+ let fF = invoke(aI, "burn", [dn], [AttachedPayment(cG, dn)])
756+ if ((fF == fF))
818757 then {
819- let gj = {
820- let gk = if ((this == bc))
758+ let fG = {
759+ let fH = if ((this == aP))
821760 then 0
822- else cC
823- let gl = if ((bh(fQ) == br))
761+ else bX
762+ let fI = if ((aU(fn) == bd))
824763 then true
825764 else false
826- if (gl)
827- then $Tuple2(-((fZ + gk)), 0)
828- else $Tuple2(0, -((fZ + gk)))
765+ if (fI)
766+ then $Tuple2(-((fw + fH)), 0)
767+ else $Tuple2(0, -((fw + fH)))
829768 }
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)
769+ let ev = fG._1
770+ let ew = fG._2
771+ let fJ = eu(ev, ew, 0)
772+ let fK = fJ._1
773+ let el = fJ._2
774+ let fL = ey(et, el)
775+ if ((fL == fL))
776+ then $Tuple2((dc ++ fK), fx)
838777 else throw("Strict value is not equal to itself.")
839778 }
840779 else throw("Strict value is not equal to itself.")
848787 }
849788
850789
851-func gp () = {
852- let gq = getString(aa())
853- if ($isInstanceOf(gq, "String"))
790+func fM () = {
791+ let fN = getString(N())
792+ if ($isInstanceOf(fN, "String"))
854793 then {
855- let cH = gq
856- fromBase58String(cH)
794+ let cc = fN
795+ fromBase58String(cc)
857796 }
858- else if ($isInstanceOf(gq, "Unit"))
797+ else if ($isInstanceOf(fN, "Unit"))
859798 then unit
860799 else throw("Match error")
861800 }
862801
863802
864-func gr () = {
865- let gq = getString(ab())
866- if ($isInstanceOf(gq, "String"))
803+func fO () = {
804+ let fN = getString(O())
805+ if ($isInstanceOf(fN, "String"))
867806 then {
868- let cH = gq
869- fromBase58String(cH)
807+ let cc = fN
808+ fromBase58String(cc)
870809 }
871- else if ($isInstanceOf(gq, "Unit"))
810+ else if ($isInstanceOf(fN, "Unit"))
872811 then unit
873812 else throw("Match error")
874813 }
875814
876815
877-let gs = throw("Permission denied")
816+let fP = throw("Permission denied")
878817
879-func gt (cU) = {
880- let gq = gp()
881- if ($isInstanceOf(gq, "ByteVector"))
818+func fQ (cq) = {
819+ let fN = fM()
820+ if ($isInstanceOf(fN, "ByteVector"))
882821 then {
883- let gu = gq
884- (cU.callerPublicKey == gu)
822+ let fR = fN
823+ (cq.callerPublicKey == fR)
885824 }
886- else if ($isInstanceOf(gq, "Unit"))
887- then (cU.caller == this)
825+ else if ($isInstanceOf(fN, "Unit"))
826+ then (cq.caller == this)
888827 else throw("Match error")
889828 }
890829
891830
892-func gv (cU) = {
893- let gq = gp()
894- if ($isInstanceOf(gq, "ByteVector"))
831+func fS (cq) = {
832+ let fN = fM()
833+ if ($isInstanceOf(fN, "ByteVector"))
895834 then {
896- let gu = gq
897- if ((cU.callerPublicKey == gu))
835+ let fR = fN
836+ if ((cq.callerPublicKey == fR))
898837 then true
899- else gs
838+ else fP
900839 }
901- else if ($isInstanceOf(gq, "Unit"))
902- then if ((cU.caller == this))
840+ else if ($isInstanceOf(fN, "Unit"))
841+ then if ((cq.caller == this))
903842 then true
904- else gs
843+ else fP
905844 else throw("Match error")
906845 }
907846
908847
909-func gw (gx,ey,gy) = {
910- let bl = bd()
911- let do = bl[x]
912- let dp = bl[y]
913- let ez = g
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
848+func fT (fU,dV,fV) = {
849+ let aY = aQ()
850+ let cK = aY[t]
851+ let cL = aY[u]
852+ let dW = g
853+ let dY = parseBigIntValue(l)
854+ let cd = (parseBigIntValue(aM) * dY)
855+ let bZ = if ((fU == false))
856+ then [(toBigInt(bA(cK)) + fV), toBigInt(bA(cL))]
857+ else [(toBigInt(bA(cL)) + fV), toBigInt(bA(cK))]
858+ let dX = bZ[0]
859+ let cc = dX
860+ let ce = (cd * dW)
861+ let dZ = (((((dV * dV) / (dX * dW)) * dV) * dY) / (ce * dW))
862+ let ea = ((cc + ((dV * dY) / ce)) - dV)
863+ func co (cp,eb) = {
864+ let fW = cp
865+ let ed = fW._1
866+ let cD = fW._2
867+ if ((cD != unit))
868+ then cp
930869 else {
931- let eH = (((eG * eG) + eC) / ((g * eG) + eD))
932- let eI = Y((eH - value(eG)))
933- if ((f >= eI))
934- then $Tuple2(eH, eE)
935- else $Tuple2(eH, unit)
870+ let ee = (((ed * ed) + dZ) / ((g * ed) + ea))
871+ let ef = L((ee - value(ed)))
872+ if ((f >= ef))
873+ then $Tuple2(ee, eb)
874+ else $Tuple2(ee, unit)
936875 }
937876 }
938877
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])
878+ let cu = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
879+ let fX = {
880+ let cw = cu
881+ let cx = size(cw)
882+ let cy = $Tuple2(dV, unit)
883+ func cz (cA,cB) = if ((cB >= cx))
884+ then cA
885+ else co(cA, cw[cB])
947886
948- func dg (de,df) = if ((df >= db))
949- then de
887+ func cC (cA,cB) = if ((cB >= cx))
888+ then cA
950889 else throw("List size exceeds 15")
951890
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)
891+ cC(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cy, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
953892 }
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)))
893+ let ed = fX._1
894+ let cD = fX._2
895+ if ((cD != unit))
896+ then ed
897+ else throw(("Y calculation error, Y = " + toString(ed)))
959898 }
960899
961900
962-func gB () = valueOrElse(getBoolean(aV, aH(toString(this))), false)
901+func fY () = valueOrElse(getBoolean(aI, au(toString(this))), false)
963902
964903
965-@Callable(cU)
966-func calculateAmountOutForSwapREADONLY (gC,gx,gD) = {
967- let gE = if ((gx == false))
904+@Callable(cq)
905+func calculateAmountOutForSwapREADONLY (fZ,fU,ga) = {
906+ let gb = if ((fU == false))
968907 then {
969- let gF = aO(this, al())
970- let gy = (toBigInt(bS(aO(this, ak()))) + toBigInt(gC))
971- $Tuple2(gF, gy)
908+ let gc = aB(this, Y())
909+ let fV = (toBigInt(bA(aB(this, X()))) + toBigInt(fZ))
910+ $Tuple2(gc, fV)
972911 }
973912 else {
974- let gF = aO(this, ak())
975- let gy = (toBigInt(bS(aO(this, al()))) + toBigInt(gC))
976- $Tuple2(gF, gy)
913+ let gc = aB(this, X())
914+ let fV = (toBigInt(bA(aB(this, Y()))) + toBigInt(fZ))
915+ $Tuple2(gc, fV)
977916 }
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))
917+ let gc = gb._1
918+ let fV = gb._2
919+ let aY = aQ()
920+ let cK = aY[t]
921+ let cL = aY[u]
922+ let bZ = [toBigInt(bA(cK)), toBigInt(bA(cL))]
923+ let dV = bY(bZ)
924+ let ed = fT(fU, dV, toBigInt(fZ))
925+ let gd = ((toBigInt(bA(gc)) - ed) - toBigInt(1))
926+ let ge = max([0, toInt(gd)])
927+ let gf = if ((fU == false))
928+ then [((toBigInt(bA(cK)) + toBigInt(fZ)) + toBigInt(ga)), (toBigInt(bA(cL)) - gd)]
929+ else [(toBigInt(bA(cK)) - gd), ((toBigInt(bA(cL)) + toBigInt(fZ)) + toBigInt(ga))]
930+ let gg = bY(gf)
931+ let dA = if ((gg >= dV))
993932 then true
994- else throw(makeString(["new D is fewer error", toString(ey), toString(gJ)], "__"))
995- if ((ed == ed))
996- then $Tuple2(nil, gH)
933+ else throw(makeString(["new D is fewer error", toString(dV), toString(gg)], "__"))
934+ if ((dA == dA))
935+ then $Tuple2(nil, ge)
997936 else throw("Strict value is not equal to itself.")
998937 }
999938
1000939
1001940
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"))
941+@Callable(cq)
942+func calculateAmountOutForSwapAndSendTokens (fZ,fU,gh,gi,ga) = {
943+ let gj = {
944+ let aK = invoke(aI, "getSwapContractREADONLY", nil, nil)
945+ if ($isInstanceOf(aK, "String"))
946+ then aK
947+ else throw(($getType(aK) + " couldn't be cast to String"))
1009948 }
1010- let gN = [if ((value(cU.payments[0]).amount >= gC))
949+ let gk = [if ((value(cq.payments[0]).amount >= fZ))
1011950 then true
1012- else aS("Wrong amount"), if ((cU.caller == addressFromStringValue(gM)))
951+ else aF("Wrong amount"), if ((cq.caller == addressFromStringValue(gj)))
1013952 then true
1014- else aS("Permission denied")]
1015- if ((gN == gN))
953+ else aF("Permission denied")]
954+ if ((gk == gk))
1016955 then {
1017- let fp = value(cU.payments[0])
1018- let gO = bj(fp.assetId)
1019- let gP = if ((gx == false))
956+ let eM = value(cq.payments[0])
957+ let gl = aW(eM.assetId)
958+ let gm = if ((fU == false))
1020959 then {
1021- let gF = aO(this, al())
1022- let gy = (bS(gO) - value(cU.payments[0]).amount)
1023- $Tuple2(gF, gy)
960+ let gc = aB(this, Y())
961+ let fV = (bA(gl) - value(cq.payments[0]).amount)
962+ $Tuple2(gc, fV)
1024963 }
1025964 else {
1026- let gF = aO(this, ak())
1027- let gy = (bS(gO) - value(cU.payments[0]).amount)
1028- $Tuple2(gF, gy)
965+ let gc = aB(this, X())
966+ let fV = (bA(gl) - value(cq.payments[0]).amount)
967+ $Tuple2(gc, fV)
1029968 }
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))
969+ let gc = gm._1
970+ let fV = gm._2
971+ let aY = aQ()
972+ let cK = aY[t]
973+ let cL = aY[u]
974+ let bZ = if ((fU == false))
975+ then [(toBigInt(bA(cK)) - toBigInt(value(cq.payments[0]).amount)), toBigInt(bA(cL))]
976+ else [toBigInt(bA(cK)), (toBigInt(bA(cL)) - toBigInt(value(cq.payments[0]).amount))]
977+ let dV = bY(bZ)
978+ let ed = fT(fU, dV, toBigInt(0))
979+ let gd = ((toBigInt(bA(gc)) - ed) - toBigInt(1))
980+ let ge = max([0, toInt(gd)])
981+ let gn = if ((ge >= gh))
1043982 then true
1044983 else throw("Exchange result is fewer coins than expected")
1045- if ((gQ == gQ))
984+ if ((gn == gn))
1046985 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))
986+ let gf = if ((fU == false))
987+ then [(toBigInt(bA(cK)) + toBigInt(ga)), (toBigInt(bA(cL)) - gd)]
988+ else [(toBigInt(bA(cK)) - gd), (toBigInt(bA(cL)) + toBigInt(ga))]
989+ let gg = bY(gf)
990+ let dA = if ((gg >= dV))
1052991 then true
1053992 else throw("new D is fewer error")
1054- if ((ed == ed))
1055- then $Tuple2([ScriptTransfer(addressFromStringValue(gL), gH, bh(gF))], gH)
993+ if ((dA == dA))
994+ then $Tuple2([ScriptTransfer(addressFromStringValue(gi), ge, aU(gc))], ge)
1056995 else throw("Strict value is not equal to itself.")
1057996 }
1058997 else throw("Strict value is not equal to itself.")
10621001
10631002
10641003
1065-@Callable(cU)
1066-func constructor (Z) = {
1067- let eC = gv(cU)
1068- if ((eC == eC))
1069- then [StringEntry(Z(), Z)]
1004+@Callable(cq)
1005+func constructor (M) = {
1006+ let dZ = fS(cq)
1007+ if ((dZ == dZ))
1008+ then [StringEntry(M(), M)]
10701009 else throw("Strict value is not equal to itself.")
10711010 }
10721011
10731012
10741013
1075-@Callable(cU)
1076-func setManager (gR) = {
1077- let eC = gv(cU)
1078- if ((eC == eC))
1014+@Callable(cq)
1015+func setManager (go) = {
1016+ let dZ = fS(cq)
1017+ if ((dZ == dZ))
10791018 then {
1080- let gS = fromBase58String(gR)
1081- if ((gS == gS))
1082- then [StringEntry(ab(), gR)]
1019+ let gp = fromBase58String(go)
1020+ if ((gp == gp))
1021+ then [StringEntry(O(), go)]
10831022 else throw("Strict value is not equal to itself.")
10841023 }
10851024 else throw("Strict value is not equal to itself.")
10871026
10881027
10891028
1090-@Callable(cU)
1029+@Callable(cq)
10911030 func confirmManager () = {
1092- let cz = gr()
1093- let gT = if (isDefined(cz))
1031+ let cf = fO()
1032+ let gq = if (isDefined(cf))
10941033 then true
10951034 else throw("No pending manager")
1096- if ((gT == gT))
1035+ if ((gq == gq))
10971036 then {
1098- let gU = if ((cU.callerPublicKey == value(cz)))
1037+ let gr = if ((cq.callerPublicKey == value(cf)))
10991038 then true
11001039 else throw("You are not pending manager")
1101- if ((gU == gU))
1102- then [StringEntry(aa(), toBase58String(value(cz))), DeleteEntry(ab())]
1040+ if ((gr == gr))
1041+ then [StringEntry(N(), toBase58String(value(cf))), DeleteEntry(O())]
11031042 else throw("Strict value is not equal to itself.")
11041043 }
11051044 else throw("Strict value is not equal to itself.")
11071046
11081047
11091048
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))
1049+@Callable(cq)
1050+func put (gs,gt) = {
1051+ let gu = bh()
1052+ let gv = valueOrErrorMessage(addressFromString(gu[x]), "Wr st addr")
1053+ let gw = valueOrErrorMessage(addressFromString(gu[z]), "Wr sl addr")
1054+ if ((0 > gs))
11161055 then throw("Wrong slippage")
1117- else if ((size(cU.payments) != 2))
1056+ else if ((size(cq.payments) != 2))
11181057 then throw("2 pmnts expd")
11191058 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))
1059+ let gx = toBigInt(value(cq.payments[0]).amount)
1060+ let gy = toBigInt(value(cq.payments[1]).amount)
1061+ let eq = (toBigInt(bA(aW(bd))) - gx)
1062+ if ((eq == eq))
11241063 then {
1125- let eU = (toBigInt(bS(bj(bs))) - hb)
1126- if ((eU == eU))
1064+ let er = (toBigInt(bA(aW(be))) - gy)
1065+ if ((er == er))
11271066 then {
1128- let eV = toBigInt(value(assetInfo(bq)).quantity)
1129- if ((eV == eV))
1067+ let es = toBigInt(value(assetInfo(bc)).quantity)
1068+ if ((es == es))
11301069 then {
1131- let eW = eP(ha, hb, toBigInt(0))
1132- if ((eW == eW))
1070+ let et = em(gx, gy, toBigInt(0))
1071+ if ((et == et))
11331072 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))
1073+ let gz = eN(toString(cq.caller), toBase58String(cq.transactionId), AttachedPayment(value(cq.payments[0]).assetId, value(cq.payments[0]).amount), cq.payments[1], gs, true, false, true, 0, "")
1074+ let dN = gz._2
1075+ let gA = gz._7
1076+ let dc = gz._9
1077+ let dO = gz._10
1078+ let dP = gz._11
1079+ let cK = gz._12
1080+ let cL = gz._13
1081+ let dy = invoke(aI, "emit", [dN], nil)
1082+ if ((dy == dy))
11441083 then {
1145- let he = {
1146- let gq = ec
1147- if ($isInstanceOf(gq, "Address"))
1084+ let gB = {
1085+ let fN = dy
1086+ if ($isInstanceOf(fN, "Address"))
11481087 then {
1149- let hf = gq
1150- invoke(hf, "emit", [eq], nil)
1088+ let gC = fN
1089+ invoke(gC, "emit", [dN], nil)
11511090 }
11521091 else unit
11531092 }
1154- if ((he == he))
1093+ if ((gB == gB))
11551094 then {
1156- let hg = if ((er > 0))
1157- then invoke(gZ, "put", nil, [AttachedPayment(do, er)])
1095+ let gD = if ((dO > 0))
1096+ then invoke(gw, "put", nil, [AttachedPayment(cK, dO)])
11581097 else nil
1159- if ((hg == hg))
1098+ if ((gD == gD))
11601099 then {
1161- let hh = if ((es > 0))
1162- then invoke(gZ, "put", nil, [AttachedPayment(dp, es)])
1100+ let gE = if ((dP > 0))
1101+ then invoke(gw, "put", nil, [AttachedPayment(cL, dP)])
11631102 else nil
1164- if ((hh == hh))
1103+ if ((gE == gE))
11651104 then {
1166- let hi = if (gW)
1105+ let gF = if (gt)
11671106 then {
1168- let hj = invoke(gY, "stake", nil, [AttachedPayment(hd, eq)])
1169- if ((hj == hj))
1107+ let gG = invoke(gv, "stake", nil, [AttachedPayment(gA, dN)])
1108+ if ((gG == gG))
11701109 then nil
11711110 else throw("Strict value is not equal to itself.")
11721111 }
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))
1112+ else [ScriptTransfer(cq.caller, dN, gA)]
1113+ let gH = eu(0, 0, 0)
1114+ let fK = gH._1
1115+ let el = gH._2
1116+ let gI = if ((el >= et))
11781117 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))
1118+ else aF(makeString(["updated DLp lower than current DLp", toString(eq), toString(er), toString(es), toString(et), toString(el), toString(dO), toString(dP)], " "))
1119+ if ((gI == gI))
11811120 then {
1182- let hm = value(assetInfo(bq)).quantity
1183- if ((hm == hm))
1184- then ((dG ++ hi) ++ gn)
1121+ let gJ = value(assetInfo(bc)).quantity
1122+ if ((gJ == gJ))
1123+ then ((dc ++ gF) ++ fK)
11851124 else throw("Strict value is not equal to itself.")
11861125 }
11871126 else throw("Strict value is not equal to itself.")
12061145
12071146
12081147
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"))
1148+@Callable(cq)
1149+func putOneTknV2 (fo,gt) = {
1150+ let gK = {
1151+ let aK = invoke(aI, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1152+ if ($isInstanceOf(aK, "Boolean"))
1153+ then aK
1154+ else throw(($getType(aK) + " couldn't be cast to Boolean"))
12161155 }
1217- let ho = if (if (if (ba())
1156+ let gL = if (if (if (aN())
12181157 then true
1219- else (bp == r))
1158+ else (bb == n))
12201159 then true
1221- else (bp == t))
1160+ else (bb == p))
12221161 then true
1223- else hn
1224- let gN = [if (if (!(ho))
1162+ else gK
1163+ let gk = [if (if (!(gL))
12251164 then true
1226- else gt(cU))
1165+ else fQ(cq))
12271166 then true
1228- else aS("put operation is blocked by admin"), if ((size(cU.payments) == 1))
1167+ else aF("put operation is blocked by admin"), if ((size(cq.payments) == 1))
12291168 then true
1230- else aS("exactly 1 payment are expected")]
1231- if ((gN == gN))
1169+ else aF("exactly 1 payment are expected")]
1170+ if ((gk == gk))
12321171 then {
1233- let do = toBase58String(value(br))
1234- let dp = toBase58String(value(bs))
1235- let dn = bq
1236- 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))
1172+ let cK = toBase58String(value(bd))
1173+ let cL = toBase58String(value(be))
1174+ let cJ = bc
1175+ let fs = bf
1176+ let ft = bg
1177+ let cI = if ((cq.caller == this))
1178+ then cq.originCaller
1179+ else cq.caller
1180+ let eM = value(cq.payments[0])
1181+ let cG = toBase58String(value(eM.assetId))
1182+ let dn = eM.amount
1183+ let et = if ((eM.assetId == bd))
1184+ then em(toBigInt(dn), toBigInt(0), toBigInt(0))
1185+ else em(toBigInt(0), toBigInt(dn), toBigInt(0))
1186+ if ((et == et))
12481187 then {
1249- let hp = fu(dQ, dk, toString(dm), toBase58String(cU.transactionId), true)
1250- if ((hp == hp))
1188+ let gM = eR(dn, cG, toString(cI), toBase58String(cq.transactionId), true)
1189+ if ((gM == gM))
12511190 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)
1191+ let bX = gM._3
1192+ let dc = gM._2
1193+ let gN = gM._1
1194+ let dN = if (if ((fo > 0))
1195+ then (fo > gN)
12571196 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))
1197+ then aF(makeString(["amount to receive is less than ", toString(fo)], ""))
1198+ else gN
1199+ let gz = invoke(aI, "emit", [dN], nil)
1200+ if ((gz == gz))
12621201 then {
1263- let he = {
1264- let gq = hc
1265- if ($isInstanceOf(gq, "Address"))
1202+ let gB = {
1203+ let fN = gz
1204+ if ($isInstanceOf(fN, "Address"))
12661205 then {
1267- let hf = gq
1268- invoke(hf, "emit", [eq], nil)
1206+ let gC = fN
1207+ invoke(gC, "emit", [dN], nil)
12691208 }
12701209 else unit
12711210 }
1272- if ((he == he))
1211+ if ((gB == gB))
12731212 then {
1274- let hi = if (gW)
1213+ let gF = if (gt)
12751214 then {
1276- let hj = invoke(bz, "stakeFor", [toString(cU.caller)], [AttachedPayment(dn, eq)])
1277- if ((hj == hj))
1215+ let gG = invoke(bj, "stakeFor", [toString(cq.caller)], [AttachedPayment(cJ, dN)])
1216+ if ((gG == gG))
12781217 then nil
12791218 else throw("Strict value is not equal to itself.")
12801219 }
1281- else [ScriptTransfer(cU.caller, eq, dn)]
1282- let gh = if ((cC > 0))
1283- then [ScriptTransfer(bc, cC, fromBase58String(dk))]
1220+ else [ScriptTransfer(cq.caller, dN, cJ)]
1221+ let fE = if ((bX > 0))
1222+ then [ScriptTransfer(aP, bX, fromBase58String(cG))]
12841223 else nil
1285- let hr = if ((this == bc))
1224+ let gO = if ((this == aP))
12861225 then $Tuple2(0, 0)
12871226 else {
1288- let hs = if ((fp.assetId == br))
1227+ let gP = if ((eM.assetId == bd))
12891228 then true
12901229 else false
1291- if (hs)
1292- then $Tuple2(-(cC), 0)
1293- else $Tuple2(0, -(cC))
1230+ if (gP)
1231+ then $Tuple2(-(bX), 0)
1232+ else $Tuple2(0, -(bX))
12941233 }
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)
1234+ let ev = gO._1
1235+ let ew = gO._2
1236+ let gQ = eu(ev, ew, 0)
1237+ let fK = gQ._1
1238+ let el = gQ._2
1239+ let fL = ey(et, el)
1240+ if ((fL == fL))
1241+ then $Tuple2((((dc ++ gF) ++ fE) ++ fK), dN)
13031242 else throw("Strict value is not equal to itself.")
13041243 }
13051244 else throw("Strict value is not equal to itself.")
13151254
13161255
13171256
1318-@Callable(cU)
1319-func putForFree (hu) = if ((0 > hu))
1257+@Callable(cq)
1258+func putForFree (gR) = if ((0 > gR))
13201259 then throw("Wrong slpg")
1321- else if ((size(cU.payments) != 2))
1260+ else if ((size(cq.payments) != 2))
13221261 then throw("2 pmnts expd")
13231262 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))
1263+ let gS = eN(toString(cq.caller), toBase58String(cq.transactionId), AttachedPayment(value(cq.payments[0]).assetId, value(cq.payments[0]).amount), cq.payments[1], gR, false, false, true, 0, "")
1264+ let dc = gS._9
1265+ let gx = toBigInt(value(cq.payments[0]).amount)
1266+ let gy = toBigInt(value(cq.payments[1]).amount)
1267+ let et = em(gx, gy, toBigInt(0))
1268+ if ((et == et))
13301269 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)
1270+ let gT = eu(0, 0, 0)
1271+ let fK = gT._1
1272+ let el = gT._2
1273+ let fL = ey(et, el)
1274+ if ((fL == fL))
1275+ then (dc ++ fK)
13371276 else throw("Strict value is not equal to itself.")
13381277 }
13391278 else throw("Strict value is not equal to itself.")
13411280
13421281
13431282
1344-@Callable(cU)
1283+@Callable(cq)
13451284 func get () = {
1346- let eW = eP(toBigInt(0), toBigInt(0), toBigInt(0))
1347- if ((eW == eW))
1285+ let et = em(toBigInt(0), toBigInt(0), toBigInt(0))
1286+ if ((et == et))
13481287 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))
1288+ let dy = eL(cq)
1289+ let gU = dy._1
1290+ let db = dy._2
1291+ let dn = dy._3
1292+ let cG = dy._4
1293+ let dc = dy._5
1294+ let ea = invoke(aI, "burn", [dn], [AttachedPayment(cG, dn)])
1295+ if ((ea == ea))
13571296 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)
1297+ let gV = eu(-(gU), -(db), 0)
1298+ let fK = gV._1
1299+ let el = gV._2
1300+ let fL = ey(et, el)
1301+ if ((fL == fL))
1302+ then (dc ++ fK)
13641303 else throw("Strict value is not equal to itself.")
13651304 }
13661305 else throw("Strict value is not equal to itself.")
13701309
13711310
13721311
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"))
1312+@Callable(cq)
1313+func getOneTknV2 (fn,fo) = {
1314+ let gK = {
1315+ let aK = invoke(aI, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1316+ if ($isInstanceOf(aK, "Boolean"))
1317+ then aK
1318+ else throw(($getType(aK) + " couldn't be cast to Boolean"))
13801319 }
1381- let hz = if (if (ba())
1320+ let gW = if (if (aN())
13821321 then true
1383- else (bp == t))
1322+ else (bb == p))
13841323 then true
1385- else hn
1386- let gN = [if (if (!(hz))
1324+ else gK
1325+ let gk = [if (if (!(gW))
13871326 then true
1388- else gt(cU))
1327+ else fQ(cq))
13891328 then true
1390- else aS("get operation is blocked by admin"), if ((size(cU.payments) == 1))
1329+ else aF("get operation is blocked by admin"), if ((size(cq.payments) == 1))
13911330 then true
1392- else aS("exactly 1 payment are expected")]
1393- if ((gN == gN))
1331+ else aF("exactly 1 payment are expected")]
1332+ if ((gk == gk))
13941333 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)
1334+ let gX = fm(fn, fo, cq.payments, cq.caller, cq.originCaller, cq.transactionId)
1335+ let dc = gX._1
1336+ let fx = gX._2
1337+ $Tuple2(dc, fx)
13991338 }
14001339 else throw("Strict value is not equal to itself.")
14011340 }
14021341
14031342
14041343
1405-@Callable(cU)
1344+@Callable(cq)
14061345 func refreshDLp () = {
1407- let hB = valueOrElse(getInteger(at), 0)
1408- let hC = if (((height - hB) >= aw))
1346+ let gY = valueOrElse(getInteger(ag), 0)
1347+ let gZ = if (((height - gY) >= aj))
14091348 then unit
1410- else aS(makeString([toString(aw), " blocks have not passed since the previous call"], ""))
1411- if ((hC == hC))
1349+ else aF(makeString([toString(aj), " blocks have not passed since the previous call"], ""))
1350+ if ((gZ == gZ))
14121351 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))
1352+ let eF = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, af), "0")), aH("invalid dLp"))
1353+ let ha = eu(0, 0, 0)
1354+ let hb = ha._1
1355+ let el = ha._2
1356+ let ex = if ((eF != el))
1357+ then hb
1358+ else aF("nothing to refresh")
1359+ $Tuple2(ex, toString(el))
14211360 }
14221361 else throw("Strict value is not equal to itself.")
14231362 }
14241363
14251364
14261365
1427-@Callable(cU)
1428-func getOneTknV2READONLY (fQ,hF) = {
1429- 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))
1366+@Callable(cq)
1367+func getOneTknV2READONLY (fn,hc) = {
1368+ let cK = toBase58String(value(bd))
1369+ let cL = toBase58String(value(be))
1370+ let cJ = toBase58String(value(bc))
1371+ let bZ = [toBigInt(bA(cK)), toBigInt(bA(cL))]
1372+ let ek = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(cJ)), "invalid lp asset").quantity)
1373+ let dx = bY(bZ)
1374+ let dz = (dx - fraction(toBigInt(hc), dx, ek))
1375+ let hd = if ((fn == cK))
14371376 then 0
1438- else if ((fQ == dp))
1377+ else if ((fn == cL))
14391378 then 1
14401379 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 - f))])
1444- let hI = cA(gH, aY)
1445- let fZ = hI._1
1446- let cC = hI._2
1447- $Tuple2(nil, $Tuple2(fZ, cC))
1380+ let he = dU(bZ, hd, dz)
1381+ let gd = (bZ[hd] - he)
1382+ let ge = max([0, toInt((gd - f))])
1383+ let hf = bV(ge, aL)
1384+ let fw = hf._1
1385+ let bX = hf._2
1386+ $Tuple2(nil, $Tuple2(fw, bX))
14481387 }
14491388
14501389
14511390
1452-@Callable(cU)
1453-func getOneTknV2WithBonusREADONLY (fQ,hF) = {
1454- 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)"))
1391+@Callable(cq)
1392+func getOneTknV2WithBonusREADONLY (fn,hc) = {
1393+ let cK = toBase58String(value(bd))
1394+ let cL = toBase58String(value(be))
1395+ let cJ = toBase58String(value(bc))
1396+ let cQ = bA(cK)
1397+ let cS = bA(cL)
1398+ let hg = {
1399+ let aK = invoke(this, "getOneTknV2READONLY", [fn, hc], nil)
1400+ if ($isInstanceOf(aK, "(Int, Int)"))
1401+ then aK
1402+ else throw(($getType(aK) + " couldn't be cast to (Int, Int)"))
14641403 }
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))
1404+ let fw = hg._1
1405+ let bX = hg._2
1406+ let dy = cE("", cJ, hc, this)
1407+ let da = dy._1
1408+ let db = dy._2
1409+ let hh = (da + db)
1410+ let fl = if ((hh == 0))
1411+ then if ((fw == 0))
14731412 then 0
14741413 else throw("bonus calculation error")
1475- else fraction((fZ - hK), a, hK)
1476- $Tuple2(nil, $Tuple3(fZ, cC, fO))
1414+ else fraction((fw - hh), a, hh)
1415+ $Tuple2(nil, $Tuple3(fw, bX, fl))
14771416 }
14781417
14791418
14801419
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)))
1420+@Callable(cq)
1421+func getNoLess (hi,hj) = {
1422+ let dy = eL(cq)
1423+ let da = dy._1
1424+ let db = dy._2
1425+ let dn = dy._3
1426+ let cG = dy._4
1427+ let dc = dy._5
1428+ if ((hi > da))
1429+ then throw(((("Failed: " + toString(da)) + " < ") + toString(hi)))
1430+ else if ((hj > db))
1431+ then throw(((("Failed: " + toString(db)) + " < ") + toString(hj)))
14931432 else {
1494- let eW = eP(toBigInt(0), toBigInt(0), toBigInt(0))
1495- if ((eW == eW))
1433+ let et = em(toBigInt(0), toBigInt(0), toBigInt(0))
1434+ if ((et == et))
14961435 then {
1497- let hN = invoke(aV, "burn", [dQ], [AttachedPayment(dk, dQ)])
1498- if ((hN == hN))
1436+ let hk = invoke(aI, "burn", [dn], [AttachedPayment(cG, dn)])
1437+ if ((hk == hk))
14991438 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)
1439+ let hl = eu(-(da), -(db), 0)
1440+ let fK = hl._1
1441+ let el = hl._2
1442+ let fL = ey(et, el)
1443+ if ((fL == fL))
1444+ then (dc ++ fK)
15061445 else throw("Strict value is not equal to itself.")
15071446 }
15081447 else throw("Strict value is not equal to itself.")
15131452
15141453
15151454
1516-@Callable(cU)
1517-func unstakeAndGet (cB) = {
1518- let hP = if ((size(cU.payments) != 0))
1455+@Callable(cq)
1456+func unstakeAndGet (bW) = {
1457+ let hm = if ((size(cq.payments) != 0))
15191458 then throw("No pmnts expd")
15201459 else true
1521- if ((hP == hP))
1460+ if ((hm == hm))
15221461 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))
1462+ let hn = bh()
1463+ let gA = bc
1464+ let ho = valueOrErrorMessage(addressFromString(hn[x]), "Wr st addr")
1465+ let et = em(toBigInt(0), toBigInt(0), toBigInt(0))
1466+ if ((et == et))
15281467 then {
1529- let hS = invoke(hR, "unstake", [toBase58String(hd), cB], nil)
1530- if ((hS == hS))
1468+ let hp = invoke(ho, "unstake", [toBase58String(gA), bW], nil)
1469+ if ((hp == hp))
15311470 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())
1471+ let dy = cE(toBase58String(cq.transactionId), toBase58String(gA), bW, cq.caller)
1472+ let da = dy._1
1473+ let db = dy._2
1474+ let cO = parseIntValue(dy._9)
1475+ let dc = dy._10
1476+ let hq = if (if (aN())
15381477 then true
1539- else (ds == t))
1540- then throw(("Blocked: " + toString(ds)))
1478+ else (cO == p))
1479+ then throw(("Blocked: " + toString(cO)))
15411480 else true
1542- if ((hT == hT))
1481+ if ((hq == hq))
15431482 then {
1544- let hU = invoke(aV, "burn", [cB], [AttachedPayment(hd, cB)])
1545- if ((hU == hU))
1483+ let hr = invoke(aI, "burn", [bW], [AttachedPayment(gA, bW)])
1484+ if ((hr == hr))
15461485 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)
1486+ let hs = eu(-(da), -(db), 0)
1487+ let fK = hs._1
1488+ let el = hs._2
1489+ let fL = ey(et, el)
1490+ if ((fL == fL))
1491+ then (dc ++ fK)
15531492 else throw("Strict value is not equal to itself.")
15541493 }
15551494 else throw("Strict value is not equal to itself.")
15651504
15661505
15671506
1568-@Callable(cU)
1569-func unstakeAndGetNoLess (hW,hX,hM) = {
1570- let hz = if (ba())
1507+@Callable(cq)
1508+func unstakeAndGetNoLess (ht,hu,hj) = {
1509+ let gW = if (aN())
15711510 then true
1572- else (bp == t)
1573- let gN = [if (!(hz))
1511+ else (bb == p)
1512+ let gk = [if (!(gW))
15741513 then true
1575- else throw("get operation is blocked by admin"), if ((size(cU.payments) == 0))
1514+ else throw("get operation is blocked by admin"), if ((size(cq.payments) == 0))
15761515 then true
15771516 else throw("no payments are expected")]
1578- if ((gN == gN))
1517+ if ((gk == gk))
15791518 then {
1580- let eW = eP(toBigInt(0), toBigInt(0), toBigInt(0))
1581- if ((eW == eW))
1519+ let et = em(toBigInt(0), toBigInt(0), toBigInt(0))
1520+ if ((et == et))
15821521 then {
1583- let hS = invoke(bz, "unstake", [toBase58String(bq), hW], nil)
1584- if ((hS == hS))
1522+ let hp = invoke(bj, "unstake", [toBase58String(bc), ht], nil)
1523+ if ((hp == hp))
15851524 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))
1525+ let hv = cE(toBase58String(cq.transactionId), toBase58String(bc), ht, cq.caller)
1526+ let da = hv._1
1527+ let db = hv._2
1528+ let dc = hv._10
1529+ let hw = [if ((da >= hu))
15911530 then true
1592- else throw(makeString(["amount asset amount to receive is less than ", toString(hX)], "")), if ((dF >= hM))
1531+ else throw(makeString(["amount asset amount to receive is less than ", toString(hu)], "")), if ((db >= hj))
15931532 then true
1594- else throw(makeString(["price asset amount to receive is less than ", toString(hM)], ""))]
1595- if ((hZ == hZ))
1533+ else throw(makeString(["price asset amount to receive is less than ", toString(hj)], ""))]
1534+ if ((hw == hw))
15961535 then {
1597- let hN = invoke(aV, "burn", [hW], [AttachedPayment(bq, hW)])
1598- if ((hN == hN))
1536+ let hk = invoke(aI, "burn", [ht], [AttachedPayment(bc, ht)])
1537+ if ((hk == hk))
15991538 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)
1539+ let hx = eu(-(da), -(db), 0)
1540+ let fK = hx._1
1541+ let el = hx._2
1542+ let fL = ey(et, el)
1543+ if ((fL == fL))
1544+ then (dc ++ fK)
16061545 else throw("Strict value is not equal to itself.")
16071546 }
16081547 else throw("Strict value is not equal to itself.")
16181557
16191558
16201559
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"))
1560+@Callable(cq)
1561+func unstakeAndGetOneTknV2 (ht,fn,fo) = {
1562+ let gK = {
1563+ let aK = invoke(aI, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1564+ if ($isInstanceOf(aK, "Boolean"))
1565+ then aK
1566+ else throw(($getType(aK) + " couldn't be cast to Boolean"))
16281567 }
1629- let hz = if (if (ba())
1568+ let gW = if (if (aN())
16301569 then true
1631- else (bp == t))
1570+ else (bb == p))
16321571 then true
1633- else hn
1634- let gN = [if (if (!(hz))
1572+ else gK
1573+ let gk = [if (if (!(gW))
16351574 then true
1636- else gt(cU))
1575+ else fQ(cq))
16371576 then true
1638- else aS("get operation is blocked by admin"), if ((size(cU.payments) == 0))
1577+ else aF("get operation is blocked by admin"), if ((size(cq.payments) == 0))
16391578 then true
1640- else aS("no payments are expected")]
1641- if ((gN == gN))
1579+ else aF("no payments are expected")]
1580+ if ((gk == gk))
16421581 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))
1582+ let hn = bh()
1583+ let gA = bc
1584+ let ho = valueOrErrorMessage(addressFromString(hn[x]), "Wr st addr")
1585+ let cI = cq.caller
1586+ let hy = this
1587+ let hp = invoke(ho, "unstakeINTERNAL", [gA, ht, cI.bytes, hy.bytes], nil)
1588+ if ((hp == hp))
16501589 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)
1590+ let hz = fm(fn, fo, [AttachedPayment(gA, ht)], cq.caller, cq.originCaller, cq.transactionId)
1591+ let dc = hz._1
1592+ let fx = hz._2
1593+ $Tuple2(dc, fx)
16551594 }
16561595 else throw("Strict value is not equal to itself.")
16571596 }
16601599
16611600
16621601
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))
1602+@Callable(cq)
1603+func putOneTknV2WithBonusREADONLY (hA,hB) = {
1604+ let hC = eR(hA, hB, "", "", true)
1605+ let fg = hC._1
1606+ let dc = hC._2
1607+ let bX = hC._3
1608+ let fl = hC._4
1609+ $Tuple2(nil, $Tuple3(fg, bX, fl))
16711610 }
16721611
16731612
16741613
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))
1614+@Callable(cq)
1615+func putOneTknV2WithoutTakeFeeREADONLY (hA,hB) = {
1616+ let hD = eR(hA, hB, "", "", false)
1617+ let fg = hD._1
1618+ let dc = hD._2
1619+ let bX = hD._3
1620+ let fl = hD._4
1621+ $Tuple2(nil, $Tuple3(fg, bX, fl))
16831622 }
16841623
16851624
16861625
1687-@Callable(cU)
1688-func activate (ih,ii) = if ((toString(cU.caller) != toString(aV)))
1626+@Callable(cq)
1627+func activate (hE,hF) = if ((toString(cq.caller) != toString(aI)))
16891628 then throw("denied")
1690- else $Tuple2([StringEntry(ak(), ih), StringEntry(al(), ii), StringEntry(am(), toString(l))], "success")
1629+ else $Tuple2([StringEntry(X(), hE), StringEntry(Y(), hF), StringEntry(Z(), toString(k))], "success")
16911630
16921631
16931632
1694-@Callable(cU)
1695-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bd())
1633+@Callable(cq)
1634+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aQ())
16961635
16971636
16981637
1699-@Callable(cU)
1700-func getAccBalanceWrapperREADONLY (bT) = $Tuple2(nil, bS(bT))
1638+@Callable(cq)
1639+func getAccBalanceWrapperREADONLY (bB) = $Tuple2(nil, bA(bB))
17011640
17021641
17031642
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])])
1643+@Callable(cq)
1644+func calcPricesWrapperREADONLY (bJ,bK,bO) = {
1645+ let hG = bN(bJ, bK, bO)
1646+ $Tuple2(nil, [toString(hG[0]), toString(hG[1]), toString(hG[2])])
17081647 }
17091648
17101649
17111650
1712-@Callable(cU)
1713-func fromX18WrapperREADONLY (N,ik) = $Tuple2(nil, M(parseBigIntValue(N), ik))
1651+@Callable(cq)
1652+func fromX18WrapperREADONLY (G,hH) = $Tuple2(nil, F(parseBigIntValue(G), hH))
17141653
17151654
17161655
1717-@Callable(cU)
1718-func toX18WrapperREADONLY (J,K) = $Tuple2(nil, toString(I(J, K)))
1656+@Callable(cq)
1657+func toX18WrapperREADONLY (C,D) = $Tuple2(nil, toString(B(C, D)))
17191658
17201659
17211660
1722-@Callable(cU)
1723-func calcPriceBigIntWrapperREADONLY (bV,bW) = $Tuple2(nil, toString(bU(parseBigIntValue(bV), parseBigIntValue(bW))))
1661+@Callable(cq)
1662+func calcPriceBigIntWrapperREADONLY (bD,bE) = $Tuple2(nil, toString(bC(parseBigIntValue(bD), parseBigIntValue(bE))))
17241663
17251664
17261665
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, ""))
1666+@Callable(cq)
1667+func estimatePutOperationWrapperREADONLY (cF,de,df,dg,dh,di,hI,dj,dk) = $Tuple2(nil, dd(cF, de, df, dg, dh, di, hI, dj, dk, true, false, 0, ""))
17291668
17301669
17311670
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))
1671+@Callable(cq)
1672+func estimateGetOperationWrapperREADONLY (cF,hJ,cH,hI) = {
1673+ let dy = cE(cF, hJ, cH, addressFromStringValue(hI))
1674+ $Tuple2(nil, $Tuple10(dy._1, dy._2, dy._3, dy._4, dy._5, dy._6, dy._7, toString(dy._8), dy._9, dy._10))
17361675 }
17371676
17381677
17391678
1740-@Callable(cU)
1679+@Callable(cq)
17411680 func changeAmp () = {
1742- let in = invoke(aV, "getChangeAmpConfigREADONLY", [toString(this)], nil)
1743- let io = {
1744- let gq = in
1745- if ($isInstanceOf(gq, "List[Any]"))
1681+ let hK = invoke(aI, "getChangeAmpConfigREADONLY", [toString(this)], nil)
1682+ let hL = {
1683+ let fN = hK
1684+ if ($isInstanceOf(fN, "List[Any]"))
17461685 then {
1747- let ip = gq
1686+ let hM = fN
17481687 $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"))
1688+ let aK = hM[0]
1689+ if ($isInstanceOf(aK, "Int"))
1690+ then aK
1691+ else throw(($getType(aK) + " couldn't be cast to Int"))
17531692 }, {
1754- let aX = ip[1]
1755- if ($isInstanceOf(aX, "Int"))
1756- then aX
1757- else throw(($getType(aX) + " couldn't be cast to Int"))
1693+ let aK = hM[1]
1694+ if ($isInstanceOf(aK, "Int"))
1695+ then aK
1696+ else throw(($getType(aK) + " couldn't be cast to Int"))
17581697 }, {
1759- let aX = ip[2]
1760- if ($isInstanceOf(aX, "Int"))
1761- then aX
1762- else throw(($getType(aX) + " couldn't be cast to Int"))
1698+ let aK = hM[2]
1699+ if ($isInstanceOf(aK, "Int"))
1700+ then aK
1701+ else throw(($getType(aK) + " couldn't be cast to Int"))
17631702 })
17641703 }
1765- else aS("invalid entry type")
1704+ else aF("invalid entry type")
17661705 }
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))
1706+ let hN = hL._1
1707+ let hO = hL._2
1708+ let hP = hL._3
1709+ let hQ = parseIntValue(getStringValue(Z()))
1710+ let hR = (hQ + hO)
1711+ let hS = if ((0 > hO))
1712+ then if ((hP > hR))
1713+ then hP
1714+ else hR
1715+ else if ((hR > hP))
1716+ then hP
1717+ else hR
1718+ let hT = valueOrElse(getInteger(ac()), 0)
1719+ let hU = (hT + hN)
1720+ let gk = [if ((height > hU))
17821721 then true
1783- else aS("try again in few blocks"), if ((it != iv))
1722+ else aF("try again in few blocks"), if ((hQ != hS))
17841723 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))]
1724+ else aF("already reached target")]
1725+ if ((gk == gk))
1726+ then [IntegerEntry(ac(), height), StringEntry(Z(), toString(hS)), StringEntry(aa(height), toString(hS))]
17881727 else throw("Strict value is not equal to itself.")
17891728 }
17901729
17911730
1792-@Verifier(iy)
1793-func iz () = {
1794- let iA = {
1795- let gq = gp()
1796- if ($isInstanceOf(gq, "ByteVector"))
1731+@Verifier(hV)
1732+func hW () = {
1733+ let hX = {
1734+ let fN = fM()
1735+ if ($isInstanceOf(fN, "ByteVector"))
17971736 then {
1798- let gu = gq
1799- gu
1737+ let fR = fN
1738+ fR
18001739 }
1801- else if ($isInstanceOf(gq, "Unit"))
1802- then iy.senderPublicKey
1740+ else if ($isInstanceOf(fN, "Unit"))
1741+ then hV.senderPublicKey
18031742 else throw("Match error")
18041743 }
1805- let gq = iy
1806- if ($isInstanceOf(gq, "Order"))
1744+ let fN = hV
1745+ if ($isInstanceOf(fN, "Order"))
18071746 then {
1808- let fe = gq
1809- let iB = bb()
1810- let iC = if (gB())
1747+ let eB = fN
1748+ let hY = aO()
1749+ let hZ = if (fY())
18111750 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)
1818- then aM
1751+ else eA(eB)
1752+ let ax = hZ._1
1753+ let ay = hZ._2
1754+ let az = sigVerify(eB.bodyBytes, eB.proofs[0], eB.senderPublicKey)
1755+ let aA = sigVerify(eB.bodyBytes, eB.proofs[1], hY)
1756+ if (if (if (ax)
1757+ then az
18191758 else false)
1820- then aN
1759+ then aA
18211760 else false)
18221761 then true
1823- else aJ(aK, aL, aM, aN)
1762+ else aw(ax, ay, az, aA)
18241763 }
1825- else if ($isInstanceOf(gq, "SetScriptTransaction"))
1764+ else if ($isInstanceOf(fN, "SetScriptTransaction"))
18261765 then {
1827- let cH = gq
1828- if (sigVerify(iy.bodyBytes, iy.proofs[0], iA))
1766+ let cc = fN
1767+ if (sigVerify(hV.bodyBytes, hV.proofs[0], hX))
18291768 then true
18301769 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)
1770+ let ia = blake2b256(value(cc.script))
1771+ let ib = fromBase64String(value(getString(aI, as())))
1772+ let ic = scriptHash(this)
1773+ if ((ib == ia))
1774+ then (ic != ia)
18361775 else false
18371776 }
18381777 }
1839- else sigVerify(iy.bodyBytes, iy.proofs[0], iA)
1778+ else sigVerify(hV.bodyBytes, hV.proofs[0], hX)
18401779 }
18411780
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 100000000
55
66 let b = toBigInt(100000000)
77
88 let c = toBigInt(1000000000000000000)
99
1010 let d = toBigInt(0)
1111
1212 let e = toBigInt(0)
1313
1414 let f = toBigInt(1)
1515
1616 let g = toBigInt(2)
1717
1818 let h = toBigInt(3)
1919
2020 let i = toBigInt(4)
2121
22-let j = toBigInt((a - ((a * 1) / a)))
22+let j = "WAVES"
2323
24-let k = "WAVES"
24+let k = 50
2525
26-let l = 50
26+let l = "100"
2727
28-let m = "100"
28+let m = "__"
2929
30-let n = "1"
30+let n = 2
3131
32-let o = "__"
32+let o = 3
3333
34-let p = ""
34+let p = 4
3535
3636 let q = 1
3737
3838 let r = 2
3939
4040 let s = 3
4141
4242 let t = 4
4343
44-let u = 1
44+let u = 5
4545
46-let v = 2
46+let v = 6
4747
48-let w = 3
48+let w = 7
4949
50-let x = 4
50+let x = 1
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 = fraction(10, a, 10000)
5757
58-let B = 8
59-
60-let C = 9
61-
62-let D = 1
63-
64-let E = 6
65-
66-let F = 7
67-
68-let G = 10
69-
70-let H = fraction(10, a, 10000)
71-
72-func I (J,K) = fraction(toBigInt(J), c, toBigInt(K))
58+func B (C,D) = fraction(toBigInt(C), c, toBigInt(D))
7359
7460
75-func L (J,K) = fraction(J, c, K)
61+func E (C,D) = fraction(C, c, D)
7662
7763
78-func M (N,O) = toInt(fraction(N, toBigInt(O), c))
64+func F (G,H) = toInt(fraction(G, toBigInt(H), c))
7965
8066
81-func P (N,O,Q) = toInt(fraction(N, toBigInt(O), c, Q))
67+func I (G,H,J) = toInt(fraction(G, toBigInt(H), c, J))
8268
8369
84-func R (J,K) = fraction(J, c, toBigInt(K))
70+func K (G) = if ((d > G))
71+ then -(G)
72+ else G
8573
8674
87-func S (N,O) = fraction(N, toBigInt(O), c)
75+func L (G) = if ((d > G))
76+ then -(G)
77+ else G
8878
8979
90-func T (U,V,W) = fraction(U, V, W)
80+func M () = "%s__factoryContract"
9181
9282
93-func X (N) = if ((d > N))
94- then -(N)
95- else N
83+func N () = "%s__managerPublicKey"
9684
9785
98-func Y (N) = if ((d > N))
99- then -(N)
100- else N
86+func O () = "%s__pendingManagerPublicKey"
10187
10288
103-func Z () = "%s__factoryContract"
89+func P () = "%s%s__price__last"
10490
10591
106-func aa () = "%s__managerPublicKey"
92+func Q (R,S) = makeString(["%s%s%d%d__price__history", toString(R), toString(S)], m)
10793
10894
109-func ab () = "%s__pendingManagerPublicKey"
95+func T (U,V) = ((("%s%s%s__P__" + U) + "__") + V)
11096
11197
112-func ac () = "%s%s__price__last"
98+func W (U,V) = ((("%s%s%s__G__" + U) + "__") + V)
11399
114100
115-func ad (ae,af) = makeString(["%s%s%d%d__price__history", toString(ae), toString(af)], o)
101+func X () = "%s__amountAsset"
116102
117103
118-func ag (ah,ai) = ((("%s%s%s__P__" + ah) + "__") + ai)
104+func Y () = "%s__priceAsset"
119105
120106
121-func aj (ah,ai) = ((("%s%s%s__G__" + ah) + "__") + ai)
107+func Z () = "%s__amp"
122108
123109
124-func ak () = "%s__amountAsset"
110+func aa (ab) = ("%s%d__amp__" + toString(ab))
125111
126112
127-func al () = "%s__priceAsset"
113+func ac () = "%s__changeAmpLastCall"
128114
129115
130-func am () = "%s__amp"
116+let ad = "%s__fee"
117+
118+let ae = valueOrElse(getInteger(this, ad), A)
119+
120+let af = makeString(["%s", "dLp"], m)
121+
122+let ag = makeString(["%s", "dLpRefreshedHeight"], m)
123+
124+let ah = makeString(["%s", "refreshDLpDelay"], m)
125+
126+let ai = 30
127+
128+let aj = valueOrElse(getInteger(this, ah), ai)
129+
130+func ak () = "%s__factoryConfig"
131131
132132
133-func an (ao) = ("%s%d__amp__" + toString(ao))
133+func al () = "%s%s__matcher__publicKey"
134134
135135
136-func ap () = "%s__changeAmpLastCall"
136+func am (an,ao) = (((("%d%d%s__" + an) + "__") + ao) + "__config")
137137
138138
139-let aq = "%s__fee"
140-
141-let ar = valueOrElse(getInteger(this, aq), H)
142-
143-let as = makeString(["%s", "dLp"], o)
144-
145-let at = makeString(["%s", "dLpRefreshedHeight"], o)
146-
147-let au = makeString(["%s", "refreshDLpDelay"], o)
148-
149-let av = 30
150-
151-let aw = valueOrElse(getInteger(this, au), av)
152-
153-func ax () = "%s__factoryConfig"
139+func ap (aq) = ("%s%s%s__mappings__baseAsset2internalId__" + aq)
154140
155141
156-func ay () = "%s%s__matcher__publicKey"
142+func ar () = "%s__shutdown"
157143
158144
159-func az (aA,aB) = (((("%d%d%s__" + aA) + "__") + aB) + "__config")
145+func as () = "%s__allowedLpStableScriptHash"
160146
161147
162-func aC (aD) = ("%s%s%s__mappings__baseAsset2internalId__" + aD)
148+func at () = "%s__feeCollectorAddress"
163149
164150
165-func aE () = "%s__shutdown"
151+func au (av) = ("%s%s__skipOrderValidation__" + av)
166152
167153
168-func aF () = "%s__allowedLpStableScriptHash"
154+func aw (ax,ay,az,aA) = throw((((((((("order validation failed: orderValid=" + toString(ax)) + " (") + ay) + ")") + " senderValid=") + toString(az)) + " matcherValid=") + toString(aA)))
169155
170156
171-func aG () = "%s__feeCollectorAddress"
157+func aB (aC,aD) = valueOrErrorMessage(getString(aC, aD), makeString(["mandatory ", toString(aC), ".", aD, " not defined"], ""))
172158
173159
174-func aH (aI) = ("%s%s__skipOrderValidation__" + aI)
160+func aE (aC,aD) = valueOrErrorMessage(getInteger(aC, aD), makeString(["mandatory ", toString(aC), ".", aD, " not defined"], ""))
175161
176162
177-func aJ (aK,aL,aM,aN) = throw((((((((("order validation failed: orderValid=" + toString(aK)) + " (") + aL) + ")") + " senderValid=") + toString(aM)) + " matcherValid=") + toString(aN)))
163+func aF (aG) = throw(makeString(["lp_stable.ride:", aG], " "))
178164
179165
180-func aO (aP,aQ) = valueOrErrorMessage(getString(aP, aQ), makeString(["mandatory ", toString(aP), ".", aQ, " not defined"], ""))
166+func aH (aG) = makeString(["lp_stable.ride:", aG], " ")
181167
182168
183-func aR (aP,aQ) = valueOrErrorMessage(getInteger(aP, aQ), makeString(["mandatory ", toString(aP), ".", aQ, " not defined"], ""))
169+let aI = addressFromStringValue(aB(this, M()))
170+
171+let aJ = {
172+ let aK = invoke(aI, "getInFeeREADONLY", [toString(this)], nil)
173+ if ($isInstanceOf(aK, "Int"))
174+ then aK
175+ else throw(($getType(aK) + " couldn't be cast to Int"))
176+ }
177+
178+let aL = {
179+ let aK = invoke(aI, "getOutFeeREADONLY", [toString(this)], nil)
180+ if ($isInstanceOf(aK, "Int"))
181+ then aK
182+ else throw(($getType(aK) + " couldn't be cast to Int"))
183+ }
184+
185+let aM = aB(this, Z())
186+
187+func aN () = valueOrElse(getBoolean(aI, ar()), false)
184188
185189
186-func aS (aT) = throw(makeString(["lp_stable.ride:", aT], " "))
190+func aO () = fromBase58String(aB(aI, al()))
187191
188192
189-func aU (aT) = makeString(["lp_stable.ride:", aT], " ")
193+let aP = addressFromStringValue(aB(aI, at()))
190194
191-
192-let aV = addressFromStringValue(aO(this, Z()))
193-
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"))
199- }
200-
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"))
206- }
207-
208-let aZ = aO(this, am())
209-
210-func ba () = valueOrElse(getBoolean(aV, aE()), false)
211-
212-
213-func bb () = fromBase58String(aO(aV, ay()))
214-
215-
216-let bc = addressFromStringValue(aO(aV, aG()))
217-
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)
195+func aQ () = {
196+ let aR = aB(this, X())
197+ let aS = aB(this, Y())
198+ let aT = aE(aI, ap(aS))
199+ let an = aE(aI, ap(aR))
200+ split(aB(aI, am(toString(an), toString(aT))), m)
224201 }
225202
226203
227-func bh (bi) = if ((bi == k))
204+func aU (aV) = if ((aV == j))
228205 then unit
229- else fromBase58String(bi)
206+ else fromBase58String(aV)
230207
231208
232-func bj (bi) = if ((bi == unit))
233- then k
234- else toBase58String(value(bi))
209+func aW (aV) = if ((aV == unit))
210+ then j
211+ else toBase58String(value(aV))
235212
236213
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]))
214+func aX (aY) = $Tuple7(addressFromStringValue(aY[q]), parseIntValue(aY[r]), fromBase58String(aY[s]), aU(aY[t]), aU(aY[u]), parseIntValue(aY[v]), parseIntValue(aY[w]))
238215
239216
240-let bm = bk(bd())
217+let aZ = aX(aQ())
241218
242-let bn = bm
219+let ba = aZ
243220
244-let bo = bn._1
221+let bb = ba._2
245222
246-let bp = bn._2
223+let bc = ba._3
247224
248-let bq = bn._3
225+let bd = ba._4
249226
250-let br = bn._4
227+let be = ba._5
251228
252-let bs = bn._5
229+let bf = ba._6
253230
254-let bt = bn._6
231+let bg = ba._7
255232
256-let bu = bn._7
257-
258-let bv = bn._8
259-
260-let bw = bn._9
261-
262-func bx () = split(aO(aV, ax()), o)
233+func bh () = split(aB(aI, ak()), m)
263234
264235
265-let by = bx()
236+let bi = bh()
266237
267-let bz = valueOrErrorMessage(addressFromString(by[D]), "Invalid staking contract address")
238+let bj = valueOrErrorMessage(addressFromString(bi[x]), "Invalid staking contract address")
268239
269-let bA = valueOrErrorMessage(addressFromString(by[F]), "Invalid slipage contract address")
240+let bk = valueOrErrorMessage(addressFromString(bi[y]), "Invalid gwx contract address")
270241
271-let bB = valueOrErrorMessage(addressFromString(by[G]), "Invalid gwx contract address")
272-
273-let bC = valueOrErrorMessage(addressFromString(by[E]), "Invalid gwx contract address")
274-
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)
242+func bl (bm,bn,bo,bp,bq,br,bs,bt,bu,bv) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bm), toString(bn), toString(bo), toString(bp), toString(bq), toString(br), toString(bs), toString(bt), toString(bu), toString(bv)], m)
276243
277244
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)
245+func bw (bx,by,bz,bp,bs,bt) = makeString(["%d%d%d%d%d%d", toString(bx), toString(by), toString(bz), toString(bp), toString(bs), toString(bt)], m)
279246
280247
281-func bS (bT) = if ((bT == "WAVES"))
248+func bA (bB) = if ((bB == "WAVES"))
282249 then wavesBalance(this).available
283- else assetBalance(this, fromBase58String(bT))
250+ else assetBalance(this, fromBase58String(bB))
284251
285252
286-func bU (bV,bW) = fraction(bV, c, bW)
253+func bC (bD,bE) = fraction(bD, c, bE)
287254
288255
289-func bX (bV,bW,Q) = fraction(bV, c, bW, Q)
256+func bF (bD,bE,J) = fraction(bD, c, bE, J)
290257
291258
292-func bY (bZ,ca,cb) = {
293- let cc = fraction((bZ - ca), b, ca)
294- let cd = ((cb - X(cc)) > d)
295- if (!(cd))
296- then throw(("Big slpg: " + toString(cc)))
297- else $Tuple2(cd, min([bZ, ca]))
259+func bG (bH,bI,bJ,bK) = {
260+ let bL = B(bJ, bH)
261+ let bM = B(bK, bI)
262+ bC(bM, bL)
298263 }
299264
300265
301-func ce (cf,cg,ch) = {
302- let cc = fraction(cg, b, cf)
303- let ci = (ch > cc)
304- if (if (ci)
305- then true
306- else (cg > cf))
307- then throw(((((((toString(cg) + " ") + toString(cf)) + " ") + toString(cc)) + " ") + toString(ch)))
308- else ci
266+func bN (bJ,bK,bO) = {
267+ let bP = bf
268+ let bQ = bg
269+ let bR = bG(bP, bQ, bJ, bK)
270+ let bE = B(bJ, bP)
271+ let bD = B(bK, bQ)
272+ let bS = B(bO, a)
273+ let bT = bC(bE, bS)
274+ let bU = bC(bD, bS)
275+[bR, bT, bU]
309276 }
310277
311278
312-func cj (ck,cl,cm,cn) = {
313- let co = I(cm, ck)
314- let cp = I(cn, cl)
315- bU(cp, co)
279+func bV (bW,ae) = {
280+ let bX = if ((ae == 0))
281+ then 0
282+ else fraction(bW, ae, a)
283+ $Tuple2((bW - bX), bX)
316284 }
317285
318286
319-func cq (cm,cn,cr) = {
320- 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, a)
326- let cw = bU(bW, cv)
327- let cx = bU(bV, cv)
328-[cu, cw, cx]
329- }
330-
331-
332-func cy (cm,cn,cr) = {
333- let cz = cq(cm, cn, cr)
334-[M(cz[0], a), M(cz[1], a), M(cz[2], a)]
335- }
336-
337-
338-func cA (cB,ar) = {
339- let cC = if ((ar == 0))
340- then 0
341- else fraction(cB, ar, a)
342- $Tuple2((cB - cC), cC)
343- }
344-
345-
346-func cD (cE) = {
347- let cF = cE[0]
348- let cG = cE[1]
349- let cH = (cF + cG)
350- if ((cH == e))
287+func bY (bZ) = {
288+ let ca = bZ[0]
289+ let cb = bZ[1]
290+ let cc = (ca + cb)
291+ if ((cc == e))
351292 then e
352293 else {
353- let cI = parseIntValue(aZ)
354- let cJ = (cI * 2)
355- let cz = fraction(cF, cG, f)
356- let cK = fraction(cz, i, f)
357- let cL = fraction(toBigInt(cJ), cH, f)
358- let cM = toBigInt((cJ - 1))
359- func cN (cO) = {
360- let cP = fraction(cO, cO, f)
361- let cQ = fraction(cP, cO, f)
362- let cR = fraction(cQ, f, cK)
363- fraction((cL + fraction(cR, g, f)), cO, (fraction(cM, cO, f) + fraction(h, cR, f)))
294+ let cd = parseIntValue(aM)
295+ let ce = (cd * 2)
296+ let cf = fraction(ca, cb, f)
297+ let cg = fraction(cf, i, f)
298+ let ch = fraction(toBigInt(ce), cc, f)
299+ let ci = toBigInt((ce - 1))
300+ func cj (ck) = {
301+ let cl = fraction(ck, ck, f)
302+ let cm = fraction(cl, ck, f)
303+ let cn = fraction(cm, f, cg)
304+ fraction((ch + fraction(cn, g, f)), ck, (fraction(ci, ck, f) + fraction(h, cn, f)))
364305 }
365306
366- func cS (cT,cU) = if (cT._2)
367- then cT
307+ func co (cp,cq) = if (cp._2)
308+ then cp
368309 else {
369- let cO = cT._1
370- let cV = cN(cO)
371- let cW = (cV - value(cO))
372- let cX = if ((e > cW))
373- then -(cW)
374- else cW
375- if ((f >= cX))
376- then $Tuple2(cV, true)
377- else $Tuple2(cV, false)
310+ let ck = cp._1
311+ let cr = cj(ck)
312+ let cs = (cr - value(ck))
313+ let ct = if ((e > cs))
314+ then -(cs)
315+ else cs
316+ if ((f >= ct))
317+ then $Tuple2(cr, true)
318+ else $Tuple2(cr, false)
378319 }
379320
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])
321+ let cu = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
322+ let cv = {
323+ let cw = cu
324+ let cx = size(cw)
325+ let cy = $Tuple2(cc, false)
326+ func cz (cA,cB) = if ((cB >= cx))
327+ then cA
328+ else co(cA, cw[cB])
388329
389- func dg (de,df) = if ((df >= db))
390- then de
330+ func cC (cA,cB) = if ((cB >= cx))
331+ then cA
391332 else throw("List size exceeds 17")
392333
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)
334+ cC(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cy, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17)
394335 }
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)))
336+ let ck = cv._1
337+ let cD = cv._2
338+ if (cD)
339+ then ck
340+ else throw(("D calculation error, D = " + toString(ck)))
400341 }
401342 }
402343
403344
404-func di (dj,dk,dl,dm) = {
405- let dn = bq
406- let do = toBase58String(value(br))
407- let dp = toBase58String(value(bs))
408- 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))
345+func cE (cF,cG,cH,cI) = {
346+ let cJ = bc
347+ let cK = toBase58String(value(bd))
348+ let cL = toBase58String(value(be))
349+ let cM = bf
350+ let cN = bg
351+ let cO = toString(bb)
352+ let cP = valueOrErrorMessage(assetInfo(cJ), "Wrong LP id").quantity
353+ if ((toBase58String(cJ) != cG))
413354 then throw("Wrong pmt asset")
414355 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, a)
421- let dA = I(dl, a)
422- let dB = I(dt, a)
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 == ""))
356+ let cQ = bA(cK)
357+ let cR = B(cQ, cM)
358+ let cS = bA(cL)
359+ let cT = B(cS, cN)
360+ let cU = bC(cT, cR)
361+ let cV = F(cU, a)
362+ let cW = B(cH, a)
363+ let cX = B(cP, a)
364+ let cY = fraction(cR, cW, cX)
365+ let cZ = fraction(cT, cW, cX)
366+ let da = I(cY, cM, FLOOR)
367+ let db = I(cZ, cN, FLOOR)
368+ let dc = if ((cF == ""))
428369 then nil
429- else [ScriptTransfer(dm, dE, if ((do == "WAVES"))
370+ else [ScriptTransfer(cI, da, if ((cK == "WAVES"))
430371 then unit
431- else fromBase58String(do)), ScriptTransfer(dm, dF, if ((dp == "WAVES"))
372+ else fromBase58String(cK)), ScriptTransfer(cI, db, if ((cL == "WAVES"))
432373 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)
374+ else fromBase58String(cL)), StringEntry(W(toString(cI), cF), bw(da, db, cH, cV, height, lastBlock.timestamp)), IntegerEntry(P(), cV), IntegerEntry(Q(height, lastBlock.timestamp), cV)]
375+ $Tuple10(da, db, cK, cL, cQ, cS, cP, cU, cO, dc)
435376 }
436377 }
437378
438379
439-func dH (dj,cb,dI,dJ,dK,dL,dm,dM,dN,dO,dP,dQ,dR) = {
440- let dn = bq
441- let dS = toBase58String(value(br))
442- let dT = toBase58String(value(bs))
443- let dU = bv
444- let dV = bw
445- 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)
380+func dd (cF,de,df,dg,dh,di,cI,dj,dk,dl,dm,dn,do) = {
381+ let cJ = bc
382+ let dp = toBase58String(value(bd))
383+ let dq = toBase58String(value(be))
384+ let dr = bf
385+ let ds = bg
386+ let cO = toString(bb)
387+ let dt = valueOrErrorMessage(assetInfo(cJ), "Wr lp as").quantity
388+ let cQ = if (dj)
389+ then bA(dp)
390+ else if (if (dl)
391+ then (do == dp)
453392 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)
393+ then (bA(dp) - dn)
394+ else if (dl)
395+ then bA(dp)
396+ else (bA(dp) - df)
397+ let cS = if (dj)
398+ then bA(dq)
399+ else if (if (dl)
400+ then (do == dq)
462401 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))
402+ then (bA(dq) - dn)
403+ else if (dl)
404+ then bA(dq)
405+ else (bA(dq) - dh)
406+ let du = B(df, dr)
407+ let dv = B(dh, ds)
408+ let dw = bC(dv, du)
409+ let cR = B(cQ, dr)
410+ let cT = B(cS, ds)
411+ let dx = bY([cR, cT])
412+ let dy = if ((dt == 0))
474413 then {
475- let cf = cD([(dv + dZ), (dx + ea)])
476- let ed = if ((cf > cg))
414+ let dz = bY([(cR + du), (cT + dv)])
415+ let dA = if ((dz > dx))
477416 then true
478417 else throw("D1 should be greater than D0")
479- if ((ed == ed))
418+ if ((dA == dA))
480419 then {
481- let dy = d
482- let ee = d
483- let cv = cf
484- $Tuple5(M(cv, a), M(dZ, dW), M(ea, dX), bU((dx + ea), (dv + dZ)), ee)
420+ let cU = d
421+ let dB = d
422+ let bS = dz
423+ $Tuple5(F(bS, a), F(du, dr), F(dv, ds), bC((cT + dv), (cR + du)), dB)
485424 }
486425 else throw("Strict value is not equal to itself.")
487426 }
488427 else {
489- let dy = bU(dx, dv)
490- let ef = fraction(X((dy - eb)), c, dy)
491- let ee = I(cb, a)
492- if (if (if (dP)
493- then (dy != d)
428+ let cU = bC(cT, cR)
429+ let dC = fraction(K((cU - dw)), c, cU)
430+ let dB = B(de, a)
431+ if (if (if (dm)
432+ then (cU != d)
494433 else false)
495- then (ef > ee)
434+ then (dC > dB)
496435 else false)
497- then throw(((("Price slippage " + toString(ef)) + " > ") + toString(ee)))
436+ then throw(((("Price slippage " + toString(dC)) + " > ") + toString(dB)))
498437 else {
499- let eg = I(dY, a)
500- let eh = fraction(dZ, bX(dx, dv, CEILING), c, CEILING)
501- let ei = fraction(ea, c, 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))
438+ let dD = B(dt, a)
439+ let dE = fraction(du, bF(cT, cR, CEILING), c, CEILING)
440+ let dF = fraction(dv, c, bF(cT, cR, FLOOR), CEILING)
441+ let dG = if ((dE > dv))
442+ then $Tuple2(dF, dv)
443+ else $Tuple2(du, dE)
444+ let dH = dG._1
445+ let dI = dG._2
446+ let dz = bY([(cR + dH), (cT + dI)])
447+ let dA = if ((dz > dx))
509448 then true
510449 else throw("D1 should be greater than D0")
511- if ((ed == ed))
450+ if ((dA == dA))
512451 then {
513- let cv = fraction(eg, (cf - cg), cg)
514- $Tuple5(P(cv, a, FLOOR), P(ek, dW, CEILING), P(el, dX, CEILING), dy, ee)
452+ let bS = fraction(dD, (dz - dx), dx)
453+ $Tuple5(I(bS, a, FLOOR), I(dH, dr, CEILING), I(dI, ds, CEILING), cU, dB)
515454 }
516455 else throw("Strict value is not equal to itself.")
517456 }
518457 }
519- let em = ec._1
520- let en = ec._2
521- let eo = ec._3
522- let dz = M(ec._4, a)
523- let ep = M(ec._5, a)
524- if ((0 >= em))
458+ let dJ = dy._1
459+ let dK = dy._2
460+ let dL = dy._3
461+ let cV = F(dy._4, a)
462+ let dM = F(dy._5, a)
463+ if ((0 >= dJ))
525464 then throw("LP <= 0")
526465 else {
527- let eq = if (!(dN))
466+ let dN = if (!(dk))
528467 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)
468+ else dJ
469+ let dO = (df - dK)
470+ let dP = (dh - dL)
471+ let dQ = if (if (dl)
472+ then (do == dp)
534473 else false)
535- then $Tuple2(dQ, 0)
536- else if (if (dO)
537- then (dR == dT)
474+ then $Tuple2(dn, 0)
475+ else if (if (dl)
476+ then (do == dq)
538477 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)
478+ then $Tuple2(0, dn)
479+ else $Tuple2(dK, dL)
480+ let dR = dQ._1
481+ let dS = dQ._2
482+ let dT = [IntegerEntry(P(), cV), IntegerEntry(Q(height, lastBlock.timestamp), cV), StringEntry(T(cI, cF), bl(dR, dS, dN, cV, de, dM, height, lastBlock.timestamp, dO, dP))]
483+ $Tuple13(dJ, dN, cV, cQ, cS, dt, cJ, cO, dT, dO, dP, dg, di)
545484 }
546485 }
547486
548487
549-func ex (cE,cU,ey) = {
550- let ez = g
551- let eA = cE[if ((cU == 0))
488+func dU (bZ,cq,dV) = {
489+ let dW = g
490+ let dX = bZ[if ((cq == 0))
552491 then 1
553492 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
493+ let dY = parseBigIntValue(l)
494+ let cd = (parseBigIntValue(aM) * dY)
495+ let cc = dX
496+ let ce = (cd * dW)
497+ let dZ = (((((dV * dV) / (dX * dW)) * dV) * dY) / (ce * dW))
498+ let ea = ((cc + ((dV * dY) / ce)) - dV)
499+ func co (cp,eb) = {
500+ let ec = cp
501+ let ed = ec._1
502+ let cD = ec._2
503+ if ((cD != unit))
504+ then cp
566505 else {
567- let eH = (((eG * eG) + eC) / ((g * eG) + eD))
568- let eI = Y((eH - value(eG)))
569- if ((f >= eI))
570- then $Tuple2(eH, eE)
571- else $Tuple2(eH, unit)
506+ let ee = (((ed * ed) + dZ) / ((g * ed) + ea))
507+ let ef = L((ee - value(ed)))
508+ if ((f >= ef))
509+ then $Tuple2(ee, eb)
510+ else $Tuple2(ee, unit)
572511 }
573512 }
574513
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])
514+ let cu = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
515+ let eg = {
516+ let cw = cu
517+ let cx = size(cw)
518+ let cy = $Tuple2(dV, unit)
519+ func cz (cA,cB) = if ((cB >= cx))
520+ then cA
521+ else co(cA, cw[cB])
583522
584- func dg (de,df) = if ((df >= db))
585- then de
523+ func cC (cA,cB) = if ((cB >= cx))
524+ then cA
586525 else throw("List size exceeds 15")
587526
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)
527+ cC(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cy, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
589528 }
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)))
529+ let ed = eg._1
530+ let cD = eg._2
531+ if ((cD != unit))
532+ then ed
533+ else throw(("Y calculation error, Y = " + toString(ed)))
595534 }
596535
597536
598-func eK (eL,eM,eN) = {
599- let eO = fraction(cD([L(eL, toBigInt(bt)), L(eM, toBigInt(bu))]), c, eN)
600- if ((eN == e))
537+func eh (ei,ej,ek) = {
538+ let el = fraction(bY([E(ei, toBigInt(bf)), E(ej, toBigInt(bg))]), c, ek)
539+ if ((ek == e))
601540 then e
602- else eO
541+ else el
603542 }
604543
605544
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
545+func em (en,eo,ep) = {
546+ let eq = (toBigInt(bA(aW(bd))) - en)
547+ let er = (toBigInt(bA(aW(be))) - eo)
548+ let es = (toBigInt(value(assetInfo(bc)).quantity) - ep)
549+ let et = eh(eq, er, es)
550+ et
612551 }
613552
614553
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)
554+func eu (ev,ew,ep) = {
555+ let eq = (bA(aW(bd)) + ev)
556+ let er = (bA(aW(be)) + ew)
557+ let es = (value(assetInfo(bc)).quantity + ep)
558+ let el = eh(toBigInt(eq), toBigInt(er), toBigInt(es))
559+ let ex = [IntegerEntry(ag, height), StringEntry(af, toString(el))]
560+ $Tuple2(ex, el)
622561 }
623562
624563
625-func fb (fc,eO) = if ((eO >= fc))
564+func ey (ez,el) = if ((el >= ez))
626565 then true
627- else aS("updated DLp lower than current DLp")
566+ else aF("updated DLp lower than current DLp")
628567
629568
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, a, 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())
569+func eA (eB) = {
570+ let eq = bA(aW(bd))
571+ let er = bA(aW(be))
572+ let eC = eB.amount
573+ let eD = fraction(eB.amount, eB.price, a, FLOOR)
574+ let eE = if ((eB.orderType == Buy))
575+ then $Tuple2(eC, -(eD))
576+ else $Tuple2(-(eC), eD)
577+ let ev = eE._1
578+ let ew = eE._2
579+ if (if (if (aN())
641580 then true
642- else (bp == s))
581+ else (bb == o))
643582 then true
644- else (bp == t))
583+ else (bb == p))
645584 then throw("Admin blocked")
646- else if (if ((fe.assetPair.amountAsset != br))
585+ else if (if ((eB.assetPair.amountAsset != bd))
647586 then true
648- else (fe.assetPair.priceAsset != bs))
587+ else (eB.assetPair.priceAsset != be))
649588 then throw("Wr assets")
650589 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)
590+ let eF = parseBigIntValue(valueOrElse(getString(this, af), "0"))
591+ let eG = eu(ev, ew, 0)
592+ let eH = eG._1
593+ let eI = eG._2
594+ let eJ = (eI >= eF)
595+ let eK = makeString(["dLp=", toString(eF), " dLpNew=", toString(eI), " amountAssetBalance=", toString(eq), " priceAssetBalance=", toString(er), " amountAssetBalanceDelta=", toString(ev), " priceAssetBalanceDelta=", toString(ew), " height=", toString(height)], "")
596+ $Tuple2(eJ, eK)
658597 }
659598 }
660599
661600
662-func fo (cU) = if ((size(cU.payments) != 1))
601+func eL (cq) = if ((size(cq.payments) != 1))
663602 then throw("1 pmnt exp")
664603 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())
604+ let eM = value(cq.payments[0])
605+ let cG = value(eM.assetId)
606+ let dn = eM.amount
607+ let dy = cE(toBase58String(cq.transactionId), toBase58String(cG), dn, cq.caller)
608+ let da = dy._1
609+ let db = dy._2
610+ let cO = parseIntValue(dy._9)
611+ let dc = dy._10
612+ if (if (aN())
674613 then true
675- else (ds == t))
676- then throw(("Admin blocked: " + toString(ds)))
677- else $Tuple5(dE, dF, dQ, dk, dG)
614+ else (cO == p))
615+ then throw(("Admin blocked: " + toString(cO)))
616+ else $Tuple5(da, db, dn, cG, dc)
678617 }
679618
680619
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())
620+func eN (eO,V,eP,eQ,de,dk,dl,dm,dn,do) = {
621+ let dy = dd(V, de, value(eP).amount, value(eP).assetId, value(eQ).amount, value(eQ).assetId, eO, (V == ""), dk, dl, dm, dn, do)
622+ let cO = parseIntValue(dy._8)
623+ if (if (if (aN())
685624 then true
686- else (ds == r))
625+ else (cO == n))
687626 then true
688- else (ds == t))
689- then throw(("Blocked:" + toString(ds)))
690- else ec
627+ else (cO == p))
628+ then throw(("Blocked:" + toString(cO)))
629+ else dy
691630 }
692631
693632
694-func fu (fv,dk,dm,ai,fw) = {
695- let do = toBase58String(value(br))
696- let dp = toBase58String(value(bs))
697- let dn = bq
698- let dW = bt
699- let dX = bu
700- let eV = toBigInt(valueOrErrorMessage(assetInfo(dn), "invalid lp asset").quantity)
701- let fx = if ((eV > e))
633+func eR (eS,cG,cI,V,eT) = {
634+ let cK = toBase58String(value(bd))
635+ let cL = toBase58String(value(be))
636+ let cJ = bc
637+ let dr = bf
638+ let ds = bg
639+ let es = toBigInt(valueOrErrorMessage(assetInfo(cJ), "invalid lp asset").quantity)
640+ let eU = if ((es > e))
702641 then true
703642 else throw("initial deposit requires all coins")
704- if ((fx == fx))
643+ if ((eU == eU))
705644 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))
645+ let cQ = bA(cK)
646+ let cS = bA(cL)
647+ let eV = if ((V == ""))
648+ then $Tuple2(cQ, cS)
649+ else if ((cG == cK))
650+ then if ((eS > cQ))
712651 then throw("invalid payment amount")
713- else $Tuple2((du - fv), dw)
714- else if ((dk == dp))
715- then if ((fv > dw))
652+ else $Tuple2((cQ - eS), cS)
653+ else if ((cG == cL))
654+ then if ((eS > cS))
716655 then throw("invalid payment amount")
717- else $Tuple2(du, (dw - fv))
656+ else $Tuple2(cQ, (cS - eS))
718657 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)
658+ let eW = eV._1
659+ let eX = eV._2
660+ let eY = if ((cG == cK))
661+ then $Tuple2(eS, 0)
662+ else if ((cG == cL))
663+ then $Tuple2(0, eS)
725664 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
734- 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))
665+ let eZ = eY._1
666+ let fa = eY._2
667+ let fb = if (eT)
668+ then $Tuple3(bV(eZ, aJ)._1, bV(fa, aJ)._1, bV(eS, aJ)._2)
669+ else $Tuple3(eZ, fa, 0)
670+ let fc = fb._1
671+ let fd = fb._2
672+ let bX = fb._3
673+ let fe = (eW + fc)
674+ let ff = (eX + fd)
675+ let dx = bY([B(eW, bf), B(eX, bg)])
676+ let dz = bY([B(fe, bf), B(ff, bg)])
677+ let dA = if ((dz > dx))
739678 then true
740679 else throw()
741- if ((ed == ed))
680+ if ((dA == dA))
742681 then {
743- let fJ = fraction(eV, (cf - cg), cg, FLOOR)
744- let dz = M(bU(I(fI, dX), I(fH, dW)), a)
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, a, fz)
747- let fL = fraction(fv, a, (fK + a))
748- let fM = (fv - fL)
749- let fN = fraction(eV, toBigInt(fM), toBigInt(fA))
750- let fO = toInt(fraction((fJ - fN), b, fN))
751- $Tuple4(toInt(fJ), ew, cC, fO)
682+ let fg = fraction(es, (dz - dx), dx, FLOOR)
683+ let cV = F(bC(B(ff, ds), B(fe, dr)), a)
684+ let dT = [IntegerEntry(P(), cV), IntegerEntry(Q(height, lastBlock.timestamp), cV), StringEntry(T(cI, V), bl(eZ, fa, toInt(fg), cV, 0, 0, height, lastBlock.timestamp, 0, 0))]
685+ let fh = fraction(eX, a, eW)
686+ let fi = fraction(eS, a, (fh + a))
687+ let fj = (eS - fi)
688+ let fk = fraction(es, toBigInt(fj), toBigInt(eX))
689+ let fl = toInt(fraction((fg - fk), b, fk))
690+ $Tuple4(toInt(fg), dT, bX, fl)
752691 }
753692 else throw("Strict value is not equal to itself.")
754693 }
755694 else throw("Strict value is not equal to itself.")
756695 }
757696
758697
759-func fP (fQ,fR,fS,fr,fT,fU) = {
760- let dn = toBase58String(value(bq))
761- let do = toBase58String(value(br))
762- let dp = toBase58String(value(bs))
763- 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(e, e, e)
773- if ((eW == eW))
698+func fm (fn,fo,fp,eO,fq,fr) = {
699+ let cJ = toBase58String(value(bc))
700+ let cK = toBase58String(value(bd))
701+ let cL = toBase58String(value(be))
702+ let fs = bf
703+ let ft = bg
704+ let fu = bb
705+ let cI = if ((eO == bk))
706+ then fq
707+ else eO
708+ let eM = value(fp[0])
709+ let cG = value(eM.assetId)
710+ let dn = eM.amount
711+ let et = em(e, e, e)
712+ if ((et == et))
774713 then {
775- let dj = toBase58String(fU)
776- if ((dn != toBase58String(dk)))
714+ let cF = toBase58String(fr)
715+ if ((cJ != toBase58String(cG)))
777716 then throw("Wrong LP")
778717 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)"))
718+ let cQ = bA(cK)
719+ let cS = bA(cL)
720+ let fv = {
721+ let aK = invoke(this, "getOneTknV2READONLY", [fn, dn], nil)
722+ if ($isInstanceOf(aK, "(Int, Int)"))
723+ then aK
724+ else throw(($getType(aK) + " couldn't be cast to (Int, Int)"))
786725 }
787- if ((fY == fY))
726+ if ((fv == fv))
788727 then {
789- let cC = fY._2
790- let fZ = fY._1
791- let ga = if (if ((fR > 0))
792- then (fR > fZ)
728+ let bX = fv._2
729+ let fw = fv._1
730+ let fx = if (if ((fo > 0))
731+ then (fo > fw)
793732 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))
733+ then aF(makeString(["amount to receive is less than ", toString(fo)], ""))
734+ else fw
735+ let fy = if ((fn == cK))
736+ then $Tuple4(fx, 0, ((cQ - fx) - bX), cS)
737+ else if ((fn == cL))
738+ then $Tuple4(0, fx, cQ, ((cS - fx) - bX))
800739 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, a)
807- let gg = if ((fQ == "WAVES"))
740+ let fz = fy._1
741+ let fA = fy._2
742+ let fe = fy._3
743+ let ff = fy._4
744+ let fB = bC(B(ff, ft), B(fe, fs))
745+ let fC = F(fB, a)
746+ let fD = if ((fn == "WAVES"))
808747 then unit
809- else fromBase58String(fQ)
810- let gh = if ((cC > 0))
811- then [ScriptTransfer(bc, cC, gg)]
748+ else fromBase58String(fn)
749+ let fE = if ((bX > 0))
750+ then [ScriptTransfer(aP, bX, fD)]
812751 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))
752+ let dc = ([ScriptTransfer(cI, fx, fD), StringEntry(W(toString(cI), cF), bw(fz, fA, dn, fC, height, lastBlock.timestamp)), IntegerEntry(P(), fC), IntegerEntry(Q(height, lastBlock.timestamp), fC)] ++ fE)
753+ if ((dc == dc))
815754 then {
816- let gi = invoke(aV, "burn", [dQ], [AttachedPayment(dk, dQ)])
817- if ((gi == gi))
755+ let fF = invoke(aI, "burn", [dn], [AttachedPayment(cG, dn)])
756+ if ((fF == fF))
818757 then {
819- let gj = {
820- let gk = if ((this == bc))
758+ let fG = {
759+ let fH = if ((this == aP))
821760 then 0
822- else cC
823- let gl = if ((bh(fQ) == br))
761+ else bX
762+ let fI = if ((aU(fn) == bd))
824763 then true
825764 else false
826- if (gl)
827- then $Tuple2(-((fZ + gk)), 0)
828- else $Tuple2(0, -((fZ + gk)))
765+ if (fI)
766+ then $Tuple2(-((fw + fH)), 0)
767+ else $Tuple2(0, -((fw + fH)))
829768 }
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)
769+ let ev = fG._1
770+ let ew = fG._2
771+ let fJ = eu(ev, ew, 0)
772+ let fK = fJ._1
773+ let el = fJ._2
774+ let fL = ey(et, el)
775+ if ((fL == fL))
776+ then $Tuple2((dc ++ fK), fx)
838777 else throw("Strict value is not equal to itself.")
839778 }
840779 else throw("Strict value is not equal to itself.")
841780 }
842781 else throw("Strict value is not equal to itself.")
843782 }
844783 else throw("Strict value is not equal to itself.")
845784 }
846785 }
847786 else throw("Strict value is not equal to itself.")
848787 }
849788
850789
851-func gp () = {
852- let gq = getString(aa())
853- if ($isInstanceOf(gq, "String"))
790+func fM () = {
791+ let fN = getString(N())
792+ if ($isInstanceOf(fN, "String"))
854793 then {
855- let cH = gq
856- fromBase58String(cH)
794+ let cc = fN
795+ fromBase58String(cc)
857796 }
858- else if ($isInstanceOf(gq, "Unit"))
797+ else if ($isInstanceOf(fN, "Unit"))
859798 then unit
860799 else throw("Match error")
861800 }
862801
863802
864-func gr () = {
865- let gq = getString(ab())
866- if ($isInstanceOf(gq, "String"))
803+func fO () = {
804+ let fN = getString(O())
805+ if ($isInstanceOf(fN, "String"))
867806 then {
868- let cH = gq
869- fromBase58String(cH)
807+ let cc = fN
808+ fromBase58String(cc)
870809 }
871- else if ($isInstanceOf(gq, "Unit"))
810+ else if ($isInstanceOf(fN, "Unit"))
872811 then unit
873812 else throw("Match error")
874813 }
875814
876815
877-let gs = throw("Permission denied")
816+let fP = throw("Permission denied")
878817
879-func gt (cU) = {
880- let gq = gp()
881- if ($isInstanceOf(gq, "ByteVector"))
818+func fQ (cq) = {
819+ let fN = fM()
820+ if ($isInstanceOf(fN, "ByteVector"))
882821 then {
883- let gu = gq
884- (cU.callerPublicKey == gu)
822+ let fR = fN
823+ (cq.callerPublicKey == fR)
885824 }
886- else if ($isInstanceOf(gq, "Unit"))
887- then (cU.caller == this)
825+ else if ($isInstanceOf(fN, "Unit"))
826+ then (cq.caller == this)
888827 else throw("Match error")
889828 }
890829
891830
892-func gv (cU) = {
893- let gq = gp()
894- if ($isInstanceOf(gq, "ByteVector"))
831+func fS (cq) = {
832+ let fN = fM()
833+ if ($isInstanceOf(fN, "ByteVector"))
895834 then {
896- let gu = gq
897- if ((cU.callerPublicKey == gu))
835+ let fR = fN
836+ if ((cq.callerPublicKey == fR))
898837 then true
899- else gs
838+ else fP
900839 }
901- else if ($isInstanceOf(gq, "Unit"))
902- then if ((cU.caller == this))
840+ else if ($isInstanceOf(fN, "Unit"))
841+ then if ((cq.caller == this))
903842 then true
904- else gs
843+ else fP
905844 else throw("Match error")
906845 }
907846
908847
909-func gw (gx,ey,gy) = {
910- let bl = bd()
911- let do = bl[x]
912- let dp = bl[y]
913- let ez = g
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
848+func fT (fU,dV,fV) = {
849+ let aY = aQ()
850+ let cK = aY[t]
851+ let cL = aY[u]
852+ let dW = g
853+ let dY = parseBigIntValue(l)
854+ let cd = (parseBigIntValue(aM) * dY)
855+ let bZ = if ((fU == false))
856+ then [(toBigInt(bA(cK)) + fV), toBigInt(bA(cL))]
857+ else [(toBigInt(bA(cL)) + fV), toBigInt(bA(cK))]
858+ let dX = bZ[0]
859+ let cc = dX
860+ let ce = (cd * dW)
861+ let dZ = (((((dV * dV) / (dX * dW)) * dV) * dY) / (ce * dW))
862+ let ea = ((cc + ((dV * dY) / ce)) - dV)
863+ func co (cp,eb) = {
864+ let fW = cp
865+ let ed = fW._1
866+ let cD = fW._2
867+ if ((cD != unit))
868+ then cp
930869 else {
931- let eH = (((eG * eG) + eC) / ((g * eG) + eD))
932- let eI = Y((eH - value(eG)))
933- if ((f >= eI))
934- then $Tuple2(eH, eE)
935- else $Tuple2(eH, unit)
870+ let ee = (((ed * ed) + dZ) / ((g * ed) + ea))
871+ let ef = L((ee - value(ed)))
872+ if ((f >= ef))
873+ then $Tuple2(ee, eb)
874+ else $Tuple2(ee, unit)
936875 }
937876 }
938877
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])
878+ let cu = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
879+ let fX = {
880+ let cw = cu
881+ let cx = size(cw)
882+ let cy = $Tuple2(dV, unit)
883+ func cz (cA,cB) = if ((cB >= cx))
884+ then cA
885+ else co(cA, cw[cB])
947886
948- func dg (de,df) = if ((df >= db))
949- then de
887+ func cC (cA,cB) = if ((cB >= cx))
888+ then cA
950889 else throw("List size exceeds 15")
951890
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)
891+ cC(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cz(cy, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
953892 }
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)))
893+ let ed = fX._1
894+ let cD = fX._2
895+ if ((cD != unit))
896+ then ed
897+ else throw(("Y calculation error, Y = " + toString(ed)))
959898 }
960899
961900
962-func gB () = valueOrElse(getBoolean(aV, aH(toString(this))), false)
901+func fY () = valueOrElse(getBoolean(aI, au(toString(this))), false)
963902
964903
965-@Callable(cU)
966-func calculateAmountOutForSwapREADONLY (gC,gx,gD) = {
967- let gE = if ((gx == false))
904+@Callable(cq)
905+func calculateAmountOutForSwapREADONLY (fZ,fU,ga) = {
906+ let gb = if ((fU == false))
968907 then {
969- let gF = aO(this, al())
970- let gy = (toBigInt(bS(aO(this, ak()))) + toBigInt(gC))
971- $Tuple2(gF, gy)
908+ let gc = aB(this, Y())
909+ let fV = (toBigInt(bA(aB(this, X()))) + toBigInt(fZ))
910+ $Tuple2(gc, fV)
972911 }
973912 else {
974- let gF = aO(this, ak())
975- let gy = (toBigInt(bS(aO(this, al()))) + toBigInt(gC))
976- $Tuple2(gF, gy)
913+ let gc = aB(this, X())
914+ let fV = (toBigInt(bA(aB(this, Y()))) + toBigInt(fZ))
915+ $Tuple2(gc, fV)
977916 }
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))
917+ let gc = gb._1
918+ let fV = gb._2
919+ let aY = aQ()
920+ let cK = aY[t]
921+ let cL = aY[u]
922+ let bZ = [toBigInt(bA(cK)), toBigInt(bA(cL))]
923+ let dV = bY(bZ)
924+ let ed = fT(fU, dV, toBigInt(fZ))
925+ let gd = ((toBigInt(bA(gc)) - ed) - toBigInt(1))
926+ let ge = max([0, toInt(gd)])
927+ let gf = if ((fU == false))
928+ then [((toBigInt(bA(cK)) + toBigInt(fZ)) + toBigInt(ga)), (toBigInt(bA(cL)) - gd)]
929+ else [(toBigInt(bA(cK)) - gd), ((toBigInt(bA(cL)) + toBigInt(fZ)) + toBigInt(ga))]
930+ let gg = bY(gf)
931+ let dA = if ((gg >= dV))
993932 then true
994- else throw(makeString(["new D is fewer error", toString(ey), toString(gJ)], "__"))
995- if ((ed == ed))
996- then $Tuple2(nil, gH)
933+ else throw(makeString(["new D is fewer error", toString(dV), toString(gg)], "__"))
934+ if ((dA == dA))
935+ then $Tuple2(nil, ge)
997936 else throw("Strict value is not equal to itself.")
998937 }
999938
1000939
1001940
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"))
941+@Callable(cq)
942+func calculateAmountOutForSwapAndSendTokens (fZ,fU,gh,gi,ga) = {
943+ let gj = {
944+ let aK = invoke(aI, "getSwapContractREADONLY", nil, nil)
945+ if ($isInstanceOf(aK, "String"))
946+ then aK
947+ else throw(($getType(aK) + " couldn't be cast to String"))
1009948 }
1010- let gN = [if ((value(cU.payments[0]).amount >= gC))
949+ let gk = [if ((value(cq.payments[0]).amount >= fZ))
1011950 then true
1012- else aS("Wrong amount"), if ((cU.caller == addressFromStringValue(gM)))
951+ else aF("Wrong amount"), if ((cq.caller == addressFromStringValue(gj)))
1013952 then true
1014- else aS("Permission denied")]
1015- if ((gN == gN))
953+ else aF("Permission denied")]
954+ if ((gk == gk))
1016955 then {
1017- let fp = value(cU.payments[0])
1018- let gO = bj(fp.assetId)
1019- let gP = if ((gx == false))
956+ let eM = value(cq.payments[0])
957+ let gl = aW(eM.assetId)
958+ let gm = if ((fU == false))
1020959 then {
1021- let gF = aO(this, al())
1022- let gy = (bS(gO) - value(cU.payments[0]).amount)
1023- $Tuple2(gF, gy)
960+ let gc = aB(this, Y())
961+ let fV = (bA(gl) - value(cq.payments[0]).amount)
962+ $Tuple2(gc, fV)
1024963 }
1025964 else {
1026- let gF = aO(this, ak())
1027- let gy = (bS(gO) - value(cU.payments[0]).amount)
1028- $Tuple2(gF, gy)
965+ let gc = aB(this, X())
966+ let fV = (bA(gl) - value(cq.payments[0]).amount)
967+ $Tuple2(gc, fV)
1029968 }
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))
969+ let gc = gm._1
970+ let fV = gm._2
971+ let aY = aQ()
972+ let cK = aY[t]
973+ let cL = aY[u]
974+ let bZ = if ((fU == false))
975+ then [(toBigInt(bA(cK)) - toBigInt(value(cq.payments[0]).amount)), toBigInt(bA(cL))]
976+ else [toBigInt(bA(cK)), (toBigInt(bA(cL)) - toBigInt(value(cq.payments[0]).amount))]
977+ let dV = bY(bZ)
978+ let ed = fT(fU, dV, toBigInt(0))
979+ let gd = ((toBigInt(bA(gc)) - ed) - toBigInt(1))
980+ let ge = max([0, toInt(gd)])
981+ let gn = if ((ge >= gh))
1043982 then true
1044983 else throw("Exchange result is fewer coins than expected")
1045- if ((gQ == gQ))
984+ if ((gn == gn))
1046985 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))
986+ let gf = if ((fU == false))
987+ then [(toBigInt(bA(cK)) + toBigInt(ga)), (toBigInt(bA(cL)) - gd)]
988+ else [(toBigInt(bA(cK)) - gd), (toBigInt(bA(cL)) + toBigInt(ga))]
989+ let gg = bY(gf)
990+ let dA = if ((gg >= dV))
1052991 then true
1053992 else throw("new D is fewer error")
1054- if ((ed == ed))
1055- then $Tuple2([ScriptTransfer(addressFromStringValue(gL), gH, bh(gF))], gH)
993+ if ((dA == dA))
994+ then $Tuple2([ScriptTransfer(addressFromStringValue(gi), ge, aU(gc))], ge)
1056995 else throw("Strict value is not equal to itself.")
1057996 }
1058997 else throw("Strict value is not equal to itself.")
1059998 }
1060999 else throw("Strict value is not equal to itself.")
10611000 }
10621001
10631002
10641003
1065-@Callable(cU)
1066-func constructor (Z) = {
1067- let eC = gv(cU)
1068- if ((eC == eC))
1069- then [StringEntry(Z(), Z)]
1004+@Callable(cq)
1005+func constructor (M) = {
1006+ let dZ = fS(cq)
1007+ if ((dZ == dZ))
1008+ then [StringEntry(M(), M)]
10701009 else throw("Strict value is not equal to itself.")
10711010 }
10721011
10731012
10741013
1075-@Callable(cU)
1076-func setManager (gR) = {
1077- let eC = gv(cU)
1078- if ((eC == eC))
1014+@Callable(cq)
1015+func setManager (go) = {
1016+ let dZ = fS(cq)
1017+ if ((dZ == dZ))
10791018 then {
1080- let gS = fromBase58String(gR)
1081- if ((gS == gS))
1082- then [StringEntry(ab(), gR)]
1019+ let gp = fromBase58String(go)
1020+ if ((gp == gp))
1021+ then [StringEntry(O(), go)]
10831022 else throw("Strict value is not equal to itself.")
10841023 }
10851024 else throw("Strict value is not equal to itself.")
10861025 }
10871026
10881027
10891028
1090-@Callable(cU)
1029+@Callable(cq)
10911030 func confirmManager () = {
1092- let cz = gr()
1093- let gT = if (isDefined(cz))
1031+ let cf = fO()
1032+ let gq = if (isDefined(cf))
10941033 then true
10951034 else throw("No pending manager")
1096- if ((gT == gT))
1035+ if ((gq == gq))
10971036 then {
1098- let gU = if ((cU.callerPublicKey == value(cz)))
1037+ let gr = if ((cq.callerPublicKey == value(cf)))
10991038 then true
11001039 else throw("You are not pending manager")
1101- if ((gU == gU))
1102- then [StringEntry(aa(), toBase58String(value(cz))), DeleteEntry(ab())]
1040+ if ((gr == gr))
1041+ then [StringEntry(N(), toBase58String(value(cf))), DeleteEntry(O())]
11031042 else throw("Strict value is not equal to itself.")
11041043 }
11051044 else throw("Strict value is not equal to itself.")
11061045 }
11071046
11081047
11091048
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))
1049+@Callable(cq)
1050+func put (gs,gt) = {
1051+ let gu = bh()
1052+ let gv = valueOrErrorMessage(addressFromString(gu[x]), "Wr st addr")
1053+ let gw = valueOrErrorMessage(addressFromString(gu[z]), "Wr sl addr")
1054+ if ((0 > gs))
11161055 then throw("Wrong slippage")
1117- else if ((size(cU.payments) != 2))
1056+ else if ((size(cq.payments) != 2))
11181057 then throw("2 pmnts expd")
11191058 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))
1059+ let gx = toBigInt(value(cq.payments[0]).amount)
1060+ let gy = toBigInt(value(cq.payments[1]).amount)
1061+ let eq = (toBigInt(bA(aW(bd))) - gx)
1062+ if ((eq == eq))
11241063 then {
1125- let eU = (toBigInt(bS(bj(bs))) - hb)
1126- if ((eU == eU))
1064+ let er = (toBigInt(bA(aW(be))) - gy)
1065+ if ((er == er))
11271066 then {
1128- let eV = toBigInt(value(assetInfo(bq)).quantity)
1129- if ((eV == eV))
1067+ let es = toBigInt(value(assetInfo(bc)).quantity)
1068+ if ((es == es))
11301069 then {
1131- let eW = eP(ha, hb, toBigInt(0))
1132- if ((eW == eW))
1070+ let et = em(gx, gy, toBigInt(0))
1071+ if ((et == et))
11331072 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))
1073+ let gz = eN(toString(cq.caller), toBase58String(cq.transactionId), AttachedPayment(value(cq.payments[0]).assetId, value(cq.payments[0]).amount), cq.payments[1], gs, true, false, true, 0, "")
1074+ let dN = gz._2
1075+ let gA = gz._7
1076+ let dc = gz._9
1077+ let dO = gz._10
1078+ let dP = gz._11
1079+ let cK = gz._12
1080+ let cL = gz._13
1081+ let dy = invoke(aI, "emit", [dN], nil)
1082+ if ((dy == dy))
11441083 then {
1145- let he = {
1146- let gq = ec
1147- if ($isInstanceOf(gq, "Address"))
1084+ let gB = {
1085+ let fN = dy
1086+ if ($isInstanceOf(fN, "Address"))
11481087 then {
1149- let hf = gq
1150- invoke(hf, "emit", [eq], nil)
1088+ let gC = fN
1089+ invoke(gC, "emit", [dN], nil)
11511090 }
11521091 else unit
11531092 }
1154- if ((he == he))
1093+ if ((gB == gB))
11551094 then {
1156- let hg = if ((er > 0))
1157- then invoke(gZ, "put", nil, [AttachedPayment(do, er)])
1095+ let gD = if ((dO > 0))
1096+ then invoke(gw, "put", nil, [AttachedPayment(cK, dO)])
11581097 else nil
1159- if ((hg == hg))
1098+ if ((gD == gD))
11601099 then {
1161- let hh = if ((es > 0))
1162- then invoke(gZ, "put", nil, [AttachedPayment(dp, es)])
1100+ let gE = if ((dP > 0))
1101+ then invoke(gw, "put", nil, [AttachedPayment(cL, dP)])
11631102 else nil
1164- if ((hh == hh))
1103+ if ((gE == gE))
11651104 then {
1166- let hi = if (gW)
1105+ let gF = if (gt)
11671106 then {
1168- let hj = invoke(gY, "stake", nil, [AttachedPayment(hd, eq)])
1169- if ((hj == hj))
1107+ let gG = invoke(gv, "stake", nil, [AttachedPayment(gA, dN)])
1108+ if ((gG == gG))
11701109 then nil
11711110 else throw("Strict value is not equal to itself.")
11721111 }
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))
1112+ else [ScriptTransfer(cq.caller, dN, gA)]
1113+ let gH = eu(0, 0, 0)
1114+ let fK = gH._1
1115+ let el = gH._2
1116+ let gI = if ((el >= et))
11781117 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))
1118+ else aF(makeString(["updated DLp lower than current DLp", toString(eq), toString(er), toString(es), toString(et), toString(el), toString(dO), toString(dP)], " "))
1119+ if ((gI == gI))
11811120 then {
1182- let hm = value(assetInfo(bq)).quantity
1183- if ((hm == hm))
1184- then ((dG ++ hi) ++ gn)
1121+ let gJ = value(assetInfo(bc)).quantity
1122+ if ((gJ == gJ))
1123+ then ((dc ++ gF) ++ fK)
11851124 else throw("Strict value is not equal to itself.")
11861125 }
11871126 else throw("Strict value is not equal to itself.")
11881127 }
11891128 else throw("Strict value is not equal to itself.")
11901129 }
11911130 else throw("Strict value is not equal to itself.")
11921131 }
11931132 else throw("Strict value is not equal to itself.")
11941133 }
11951134 else throw("Strict value is not equal to itself.")
11961135 }
11971136 else throw("Strict value is not equal to itself.")
11981137 }
11991138 else throw("Strict value is not equal to itself.")
12001139 }
12011140 else throw("Strict value is not equal to itself.")
12021141 }
12031142 else throw("Strict value is not equal to itself.")
12041143 }
12051144 }
12061145
12071146
12081147
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"))
1148+@Callable(cq)
1149+func putOneTknV2 (fo,gt) = {
1150+ let gK = {
1151+ let aK = invoke(aI, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1152+ if ($isInstanceOf(aK, "Boolean"))
1153+ then aK
1154+ else throw(($getType(aK) + " couldn't be cast to Boolean"))
12161155 }
1217- let ho = if (if (if (ba())
1156+ let gL = if (if (if (aN())
12181157 then true
1219- else (bp == r))
1158+ else (bb == n))
12201159 then true
1221- else (bp == t))
1160+ else (bb == p))
12221161 then true
1223- else hn
1224- let gN = [if (if (!(ho))
1162+ else gK
1163+ let gk = [if (if (!(gL))
12251164 then true
1226- else gt(cU))
1165+ else fQ(cq))
12271166 then true
1228- else aS("put operation is blocked by admin"), if ((size(cU.payments) == 1))
1167+ else aF("put operation is blocked by admin"), if ((size(cq.payments) == 1))
12291168 then true
1230- else aS("exactly 1 payment are expected")]
1231- if ((gN == gN))
1169+ else aF("exactly 1 payment are expected")]
1170+ if ((gk == gk))
12321171 then {
1233- let do = toBase58String(value(br))
1234- let dp = toBase58String(value(bs))
1235- let dn = bq
1236- 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))
1172+ let cK = toBase58String(value(bd))
1173+ let cL = toBase58String(value(be))
1174+ let cJ = bc
1175+ let fs = bf
1176+ let ft = bg
1177+ let cI = if ((cq.caller == this))
1178+ then cq.originCaller
1179+ else cq.caller
1180+ let eM = value(cq.payments[0])
1181+ let cG = toBase58String(value(eM.assetId))
1182+ let dn = eM.amount
1183+ let et = if ((eM.assetId == bd))
1184+ then em(toBigInt(dn), toBigInt(0), toBigInt(0))
1185+ else em(toBigInt(0), toBigInt(dn), toBigInt(0))
1186+ if ((et == et))
12481187 then {
1249- let hp = fu(dQ, dk, toString(dm), toBase58String(cU.transactionId), true)
1250- if ((hp == hp))
1188+ let gM = eR(dn, cG, toString(cI), toBase58String(cq.transactionId), true)
1189+ if ((gM == gM))
12511190 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)
1191+ let bX = gM._3
1192+ let dc = gM._2
1193+ let gN = gM._1
1194+ let dN = if (if ((fo > 0))
1195+ then (fo > gN)
12571196 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))
1197+ then aF(makeString(["amount to receive is less than ", toString(fo)], ""))
1198+ else gN
1199+ let gz = invoke(aI, "emit", [dN], nil)
1200+ if ((gz == gz))
12621201 then {
1263- let he = {
1264- let gq = hc
1265- if ($isInstanceOf(gq, "Address"))
1202+ let gB = {
1203+ let fN = gz
1204+ if ($isInstanceOf(fN, "Address"))
12661205 then {
1267- let hf = gq
1268- invoke(hf, "emit", [eq], nil)
1206+ let gC = fN
1207+ invoke(gC, "emit", [dN], nil)
12691208 }
12701209 else unit
12711210 }
1272- if ((he == he))
1211+ if ((gB == gB))
12731212 then {
1274- let hi = if (gW)
1213+ let gF = if (gt)
12751214 then {
1276- let hj = invoke(bz, "stakeFor", [toString(cU.caller)], [AttachedPayment(dn, eq)])
1277- if ((hj == hj))
1215+ let gG = invoke(bj, "stakeFor", [toString(cq.caller)], [AttachedPayment(cJ, dN)])
1216+ if ((gG == gG))
12781217 then nil
12791218 else throw("Strict value is not equal to itself.")
12801219 }
1281- else [ScriptTransfer(cU.caller, eq, dn)]
1282- let gh = if ((cC > 0))
1283- then [ScriptTransfer(bc, cC, fromBase58String(dk))]
1220+ else [ScriptTransfer(cq.caller, dN, cJ)]
1221+ let fE = if ((bX > 0))
1222+ then [ScriptTransfer(aP, bX, fromBase58String(cG))]
12841223 else nil
1285- let hr = if ((this == bc))
1224+ let gO = if ((this == aP))
12861225 then $Tuple2(0, 0)
12871226 else {
1288- let hs = if ((fp.assetId == br))
1227+ let gP = if ((eM.assetId == bd))
12891228 then true
12901229 else false
1291- if (hs)
1292- then $Tuple2(-(cC), 0)
1293- else $Tuple2(0, -(cC))
1230+ if (gP)
1231+ then $Tuple2(-(bX), 0)
1232+ else $Tuple2(0, -(bX))
12941233 }
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)
1234+ let ev = gO._1
1235+ let ew = gO._2
1236+ let gQ = eu(ev, ew, 0)
1237+ let fK = gQ._1
1238+ let el = gQ._2
1239+ let fL = ey(et, el)
1240+ if ((fL == fL))
1241+ then $Tuple2((((dc ++ gF) ++ fE) ++ fK), dN)
13031242 else throw("Strict value is not equal to itself.")
13041243 }
13051244 else throw("Strict value is not equal to itself.")
13061245 }
13071246 else throw("Strict value is not equal to itself.")
13081247 }
13091248 else throw("Strict value is not equal to itself.")
13101249 }
13111250 else throw("Strict value is not equal to itself.")
13121251 }
13131252 else throw("Strict value is not equal to itself.")
13141253 }
13151254
13161255
13171256
1318-@Callable(cU)
1319-func putForFree (hu) = if ((0 > hu))
1257+@Callable(cq)
1258+func putForFree (gR) = if ((0 > gR))
13201259 then throw("Wrong slpg")
1321- else if ((size(cU.payments) != 2))
1260+ else if ((size(cq.payments) != 2))
13221261 then throw("2 pmnts expd")
13231262 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))
1263+ let gS = eN(toString(cq.caller), toBase58String(cq.transactionId), AttachedPayment(value(cq.payments[0]).assetId, value(cq.payments[0]).amount), cq.payments[1], gR, false, false, true, 0, "")
1264+ let dc = gS._9
1265+ let gx = toBigInt(value(cq.payments[0]).amount)
1266+ let gy = toBigInt(value(cq.payments[1]).amount)
1267+ let et = em(gx, gy, toBigInt(0))
1268+ if ((et == et))
13301269 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)
1270+ let gT = eu(0, 0, 0)
1271+ let fK = gT._1
1272+ let el = gT._2
1273+ let fL = ey(et, el)
1274+ if ((fL == fL))
1275+ then (dc ++ fK)
13371276 else throw("Strict value is not equal to itself.")
13381277 }
13391278 else throw("Strict value is not equal to itself.")
13401279 }
13411280
13421281
13431282
1344-@Callable(cU)
1283+@Callable(cq)
13451284 func get () = {
1346- let eW = eP(toBigInt(0), toBigInt(0), toBigInt(0))
1347- if ((eW == eW))
1285+ let et = em(toBigInt(0), toBigInt(0), toBigInt(0))
1286+ if ((et == et))
13481287 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))
1288+ let dy = eL(cq)
1289+ let gU = dy._1
1290+ let db = dy._2
1291+ let dn = dy._3
1292+ let cG = dy._4
1293+ let dc = dy._5
1294+ let ea = invoke(aI, "burn", [dn], [AttachedPayment(cG, dn)])
1295+ if ((ea == ea))
13571296 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)
1297+ let gV = eu(-(gU), -(db), 0)
1298+ let fK = gV._1
1299+ let el = gV._2
1300+ let fL = ey(et, el)
1301+ if ((fL == fL))
1302+ then (dc ++ fK)
13641303 else throw("Strict value is not equal to itself.")
13651304 }
13661305 else throw("Strict value is not equal to itself.")
13671306 }
13681307 else throw("Strict value is not equal to itself.")
13691308 }
13701309
13711310
13721311
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"))
1312+@Callable(cq)
1313+func getOneTknV2 (fn,fo) = {
1314+ let gK = {
1315+ let aK = invoke(aI, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1316+ if ($isInstanceOf(aK, "Boolean"))
1317+ then aK
1318+ else throw(($getType(aK) + " couldn't be cast to Boolean"))
13801319 }
1381- let hz = if (if (ba())
1320+ let gW = if (if (aN())
13821321 then true
1383- else (bp == t))
1322+ else (bb == p))
13841323 then true
1385- else hn
1386- let gN = [if (if (!(hz))
1324+ else gK
1325+ let gk = [if (if (!(gW))
13871326 then true
1388- else gt(cU))
1327+ else fQ(cq))
13891328 then true
1390- else aS("get operation is blocked by admin"), if ((size(cU.payments) == 1))
1329+ else aF("get operation is blocked by admin"), if ((size(cq.payments) == 1))
13911330 then true
1392- else aS("exactly 1 payment are expected")]
1393- if ((gN == gN))
1331+ else aF("exactly 1 payment are expected")]
1332+ if ((gk == gk))
13941333 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)
1334+ let gX = fm(fn, fo, cq.payments, cq.caller, cq.originCaller, cq.transactionId)
1335+ let dc = gX._1
1336+ let fx = gX._2
1337+ $Tuple2(dc, fx)
13991338 }
14001339 else throw("Strict value is not equal to itself.")
14011340 }
14021341
14031342
14041343
1405-@Callable(cU)
1344+@Callable(cq)
14061345 func refreshDLp () = {
1407- let hB = valueOrElse(getInteger(at), 0)
1408- let hC = if (((height - hB) >= aw))
1346+ let gY = valueOrElse(getInteger(ag), 0)
1347+ let gZ = if (((height - gY) >= aj))
14091348 then unit
1410- else aS(makeString([toString(aw), " blocks have not passed since the previous call"], ""))
1411- if ((hC == hC))
1349+ else aF(makeString([toString(aj), " blocks have not passed since the previous call"], ""))
1350+ if ((gZ == gZ))
14121351 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))
1352+ let eF = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, af), "0")), aH("invalid dLp"))
1353+ let ha = eu(0, 0, 0)
1354+ let hb = ha._1
1355+ let el = ha._2
1356+ let ex = if ((eF != el))
1357+ then hb
1358+ else aF("nothing to refresh")
1359+ $Tuple2(ex, toString(el))
14211360 }
14221361 else throw("Strict value is not equal to itself.")
14231362 }
14241363
14251364
14261365
1427-@Callable(cU)
1428-func getOneTknV2READONLY (fQ,hF) = {
1429- 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))
1366+@Callable(cq)
1367+func getOneTknV2READONLY (fn,hc) = {
1368+ let cK = toBase58String(value(bd))
1369+ let cL = toBase58String(value(be))
1370+ let cJ = toBase58String(value(bc))
1371+ let bZ = [toBigInt(bA(cK)), toBigInt(bA(cL))]
1372+ let ek = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(cJ)), "invalid lp asset").quantity)
1373+ let dx = bY(bZ)
1374+ let dz = (dx - fraction(toBigInt(hc), dx, ek))
1375+ let hd = if ((fn == cK))
14371376 then 0
1438- else if ((fQ == dp))
1377+ else if ((fn == cL))
14391378 then 1
14401379 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 - f))])
1444- let hI = cA(gH, aY)
1445- let fZ = hI._1
1446- let cC = hI._2
1447- $Tuple2(nil, $Tuple2(fZ, cC))
1380+ let he = dU(bZ, hd, dz)
1381+ let gd = (bZ[hd] - he)
1382+ let ge = max([0, toInt((gd - f))])
1383+ let hf = bV(ge, aL)
1384+ let fw = hf._1
1385+ let bX = hf._2
1386+ $Tuple2(nil, $Tuple2(fw, bX))
14481387 }
14491388
14501389
14511390
1452-@Callable(cU)
1453-func getOneTknV2WithBonusREADONLY (fQ,hF) = {
1454- 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)"))
1391+@Callable(cq)
1392+func getOneTknV2WithBonusREADONLY (fn,hc) = {
1393+ let cK = toBase58String(value(bd))
1394+ let cL = toBase58String(value(be))
1395+ let cJ = toBase58String(value(bc))
1396+ let cQ = bA(cK)
1397+ let cS = bA(cL)
1398+ let hg = {
1399+ let aK = invoke(this, "getOneTknV2READONLY", [fn, hc], nil)
1400+ if ($isInstanceOf(aK, "(Int, Int)"))
1401+ then aK
1402+ else throw(($getType(aK) + " couldn't be cast to (Int, Int)"))
14641403 }
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))
1404+ let fw = hg._1
1405+ let bX = hg._2
1406+ let dy = cE("", cJ, hc, this)
1407+ let da = dy._1
1408+ let db = dy._2
1409+ let hh = (da + db)
1410+ let fl = if ((hh == 0))
1411+ then if ((fw == 0))
14731412 then 0
14741413 else throw("bonus calculation error")
1475- else fraction((fZ - hK), a, hK)
1476- $Tuple2(nil, $Tuple3(fZ, cC, fO))
1414+ else fraction((fw - hh), a, hh)
1415+ $Tuple2(nil, $Tuple3(fw, bX, fl))
14771416 }
14781417
14791418
14801419
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)))
1420+@Callable(cq)
1421+func getNoLess (hi,hj) = {
1422+ let dy = eL(cq)
1423+ let da = dy._1
1424+ let db = dy._2
1425+ let dn = dy._3
1426+ let cG = dy._4
1427+ let dc = dy._5
1428+ if ((hi > da))
1429+ then throw(((("Failed: " + toString(da)) + " < ") + toString(hi)))
1430+ else if ((hj > db))
1431+ then throw(((("Failed: " + toString(db)) + " < ") + toString(hj)))
14931432 else {
1494- let eW = eP(toBigInt(0), toBigInt(0), toBigInt(0))
1495- if ((eW == eW))
1433+ let et = em(toBigInt(0), toBigInt(0), toBigInt(0))
1434+ if ((et == et))
14961435 then {
1497- let hN = invoke(aV, "burn", [dQ], [AttachedPayment(dk, dQ)])
1498- if ((hN == hN))
1436+ let hk = invoke(aI, "burn", [dn], [AttachedPayment(cG, dn)])
1437+ if ((hk == hk))
14991438 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)
1439+ let hl = eu(-(da), -(db), 0)
1440+ let fK = hl._1
1441+ let el = hl._2
1442+ let fL = ey(et, el)
1443+ if ((fL == fL))
1444+ then (dc ++ fK)
15061445 else throw("Strict value is not equal to itself.")
15071446 }
15081447 else throw("Strict value is not equal to itself.")
15091448 }
15101449 else throw("Strict value is not equal to itself.")
15111450 }
15121451 }
15131452
15141453
15151454
1516-@Callable(cU)
1517-func unstakeAndGet (cB) = {
1518- let hP = if ((size(cU.payments) != 0))
1455+@Callable(cq)
1456+func unstakeAndGet (bW) = {
1457+ let hm = if ((size(cq.payments) != 0))
15191458 then throw("No pmnts expd")
15201459 else true
1521- if ((hP == hP))
1460+ if ((hm == hm))
15221461 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))
1462+ let hn = bh()
1463+ let gA = bc
1464+ let ho = valueOrErrorMessage(addressFromString(hn[x]), "Wr st addr")
1465+ let et = em(toBigInt(0), toBigInt(0), toBigInt(0))
1466+ if ((et == et))
15281467 then {
1529- let hS = invoke(hR, "unstake", [toBase58String(hd), cB], nil)
1530- if ((hS == hS))
1468+ let hp = invoke(ho, "unstake", [toBase58String(gA), bW], nil)
1469+ if ((hp == hp))
15311470 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())
1471+ let dy = cE(toBase58String(cq.transactionId), toBase58String(gA), bW, cq.caller)
1472+ let da = dy._1
1473+ let db = dy._2
1474+ let cO = parseIntValue(dy._9)
1475+ let dc = dy._10
1476+ let hq = if (if (aN())
15381477 then true
1539- else (ds == t))
1540- then throw(("Blocked: " + toString(ds)))
1478+ else (cO == p))
1479+ then throw(("Blocked: " + toString(cO)))
15411480 else true
1542- if ((hT == hT))
1481+ if ((hq == hq))
15431482 then {
1544- let hU = invoke(aV, "burn", [cB], [AttachedPayment(hd, cB)])
1545- if ((hU == hU))
1483+ let hr = invoke(aI, "burn", [bW], [AttachedPayment(gA, bW)])
1484+ if ((hr == hr))
15461485 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)
1486+ let hs = eu(-(da), -(db), 0)
1487+ let fK = hs._1
1488+ let el = hs._2
1489+ let fL = ey(et, el)
1490+ if ((fL == fL))
1491+ then (dc ++ fK)
15531492 else throw("Strict value is not equal to itself.")
15541493 }
15551494 else throw("Strict value is not equal to itself.")
15561495 }
15571496 else throw("Strict value is not equal to itself.")
15581497 }
15591498 else throw("Strict value is not equal to itself.")
15601499 }
15611500 else throw("Strict value is not equal to itself.")
15621501 }
15631502 else throw("Strict value is not equal to itself.")
15641503 }
15651504
15661505
15671506
1568-@Callable(cU)
1569-func unstakeAndGetNoLess (hW,hX,hM) = {
1570- let hz = if (ba())
1507+@Callable(cq)
1508+func unstakeAndGetNoLess (ht,hu,hj) = {
1509+ let gW = if (aN())
15711510 then true
1572- else (bp == t)
1573- let gN = [if (!(hz))
1511+ else (bb == p)
1512+ let gk = [if (!(gW))
15741513 then true
1575- else throw("get operation is blocked by admin"), if ((size(cU.payments) == 0))
1514+ else throw("get operation is blocked by admin"), if ((size(cq.payments) == 0))
15761515 then true
15771516 else throw("no payments are expected")]
1578- if ((gN == gN))
1517+ if ((gk == gk))
15791518 then {
1580- let eW = eP(toBigInt(0), toBigInt(0), toBigInt(0))
1581- if ((eW == eW))
1519+ let et = em(toBigInt(0), toBigInt(0), toBigInt(0))
1520+ if ((et == et))
15821521 then {
1583- let hS = invoke(bz, "unstake", [toBase58String(bq), hW], nil)
1584- if ((hS == hS))
1522+ let hp = invoke(bj, "unstake", [toBase58String(bc), ht], nil)
1523+ if ((hp == hp))
15851524 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))
1525+ let hv = cE(toBase58String(cq.transactionId), toBase58String(bc), ht, cq.caller)
1526+ let da = hv._1
1527+ let db = hv._2
1528+ let dc = hv._10
1529+ let hw = [if ((da >= hu))
15911530 then true
1592- else throw(makeString(["amount asset amount to receive is less than ", toString(hX)], "")), if ((dF >= hM))
1531+ else throw(makeString(["amount asset amount to receive is less than ", toString(hu)], "")), if ((db >= hj))
15931532 then true
1594- else throw(makeString(["price asset amount to receive is less than ", toString(hM)], ""))]
1595- if ((hZ == hZ))
1533+ else throw(makeString(["price asset amount to receive is less than ", toString(hj)], ""))]
1534+ if ((hw == hw))
15961535 then {
1597- let hN = invoke(aV, "burn", [hW], [AttachedPayment(bq, hW)])
1598- if ((hN == hN))
1536+ let hk = invoke(aI, "burn", [ht], [AttachedPayment(bc, ht)])
1537+ if ((hk == hk))
15991538 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)
1539+ let hx = eu(-(da), -(db), 0)
1540+ let fK = hx._1
1541+ let el = hx._2
1542+ let fL = ey(et, el)
1543+ if ((fL == fL))
1544+ then (dc ++ fK)
16061545 else throw("Strict value is not equal to itself.")
16071546 }
16081547 else throw("Strict value is not equal to itself.")
16091548 }
16101549 else throw("Strict value is not equal to itself.")
16111550 }
16121551 else throw("Strict value is not equal to itself.")
16131552 }
16141553 else throw("Strict value is not equal to itself.")
16151554 }
16161555 else throw("Strict value is not equal to itself.")
16171556 }
16181557
16191558
16201559
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"))
1560+@Callable(cq)
1561+func unstakeAndGetOneTknV2 (ht,fn,fo) = {
1562+ let gK = {
1563+ let aK = invoke(aI, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1564+ if ($isInstanceOf(aK, "Boolean"))
1565+ then aK
1566+ else throw(($getType(aK) + " couldn't be cast to Boolean"))
16281567 }
1629- let hz = if (if (ba())
1568+ let gW = if (if (aN())
16301569 then true
1631- else (bp == t))
1570+ else (bb == p))
16321571 then true
1633- else hn
1634- let gN = [if (if (!(hz))
1572+ else gK
1573+ let gk = [if (if (!(gW))
16351574 then true
1636- else gt(cU))
1575+ else fQ(cq))
16371576 then true
1638- else aS("get operation is blocked by admin"), if ((size(cU.payments) == 0))
1577+ else aF("get operation is blocked by admin"), if ((size(cq.payments) == 0))
16391578 then true
1640- else aS("no payments are expected")]
1641- if ((gN == gN))
1579+ else aF("no payments are expected")]
1580+ if ((gk == gk))
16421581 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))
1582+ let hn = bh()
1583+ let gA = bc
1584+ let ho = valueOrErrorMessage(addressFromString(hn[x]), "Wr st addr")
1585+ let cI = cq.caller
1586+ let hy = this
1587+ let hp = invoke(ho, "unstakeINTERNAL", [gA, ht, cI.bytes, hy.bytes], nil)
1588+ if ((hp == hp))
16501589 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)
1590+ let hz = fm(fn, fo, [AttachedPayment(gA, ht)], cq.caller, cq.originCaller, cq.transactionId)
1591+ let dc = hz._1
1592+ let fx = hz._2
1593+ $Tuple2(dc, fx)
16551594 }
16561595 else throw("Strict value is not equal to itself.")
16571596 }
16581597 else throw("Strict value is not equal to itself.")
16591598 }
16601599
16611600
16621601
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))
1602+@Callable(cq)
1603+func putOneTknV2WithBonusREADONLY (hA,hB) = {
1604+ let hC = eR(hA, hB, "", "", true)
1605+ let fg = hC._1
1606+ let dc = hC._2
1607+ let bX = hC._3
1608+ let fl = hC._4
1609+ $Tuple2(nil, $Tuple3(fg, bX, fl))
16711610 }
16721611
16731612
16741613
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))
1614+@Callable(cq)
1615+func putOneTknV2WithoutTakeFeeREADONLY (hA,hB) = {
1616+ let hD = eR(hA, hB, "", "", false)
1617+ let fg = hD._1
1618+ let dc = hD._2
1619+ let bX = hD._3
1620+ let fl = hD._4
1621+ $Tuple2(nil, $Tuple3(fg, bX, fl))
16831622 }
16841623
16851624
16861625
1687-@Callable(cU)
1688-func activate (ih,ii) = if ((toString(cU.caller) != toString(aV)))
1626+@Callable(cq)
1627+func activate (hE,hF) = if ((toString(cq.caller) != toString(aI)))
16891628 then throw("denied")
1690- else $Tuple2([StringEntry(ak(), ih), StringEntry(al(), ii), StringEntry(am(), toString(l))], "success")
1629+ else $Tuple2([StringEntry(X(), hE), StringEntry(Y(), hF), StringEntry(Z(), toString(k))], "success")
16911630
16921631
16931632
1694-@Callable(cU)
1695-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bd())
1633+@Callable(cq)
1634+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aQ())
16961635
16971636
16981637
1699-@Callable(cU)
1700-func getAccBalanceWrapperREADONLY (bT) = $Tuple2(nil, bS(bT))
1638+@Callable(cq)
1639+func getAccBalanceWrapperREADONLY (bB) = $Tuple2(nil, bA(bB))
17011640
17021641
17031642
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])])
1643+@Callable(cq)
1644+func calcPricesWrapperREADONLY (bJ,bK,bO) = {
1645+ let hG = bN(bJ, bK, bO)
1646+ $Tuple2(nil, [toString(hG[0]), toString(hG[1]), toString(hG[2])])
17081647 }
17091648
17101649
17111650
1712-@Callable(cU)
1713-func fromX18WrapperREADONLY (N,ik) = $Tuple2(nil, M(parseBigIntValue(N), ik))
1651+@Callable(cq)
1652+func fromX18WrapperREADONLY (G,hH) = $Tuple2(nil, F(parseBigIntValue(G), hH))
17141653
17151654
17161655
1717-@Callable(cU)
1718-func toX18WrapperREADONLY (J,K) = $Tuple2(nil, toString(I(J, K)))
1656+@Callable(cq)
1657+func toX18WrapperREADONLY (C,D) = $Tuple2(nil, toString(B(C, D)))
17191658
17201659
17211660
1722-@Callable(cU)
1723-func calcPriceBigIntWrapperREADONLY (bV,bW) = $Tuple2(nil, toString(bU(parseBigIntValue(bV), parseBigIntValue(bW))))
1661+@Callable(cq)
1662+func calcPriceBigIntWrapperREADONLY (bD,bE) = $Tuple2(nil, toString(bC(parseBigIntValue(bD), parseBigIntValue(bE))))
17241663
17251664
17261665
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, ""))
1666+@Callable(cq)
1667+func estimatePutOperationWrapperREADONLY (cF,de,df,dg,dh,di,hI,dj,dk) = $Tuple2(nil, dd(cF, de, df, dg, dh, di, hI, dj, dk, true, false, 0, ""))
17291668
17301669
17311670
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))
1671+@Callable(cq)
1672+func estimateGetOperationWrapperREADONLY (cF,hJ,cH,hI) = {
1673+ let dy = cE(cF, hJ, cH, addressFromStringValue(hI))
1674+ $Tuple2(nil, $Tuple10(dy._1, dy._2, dy._3, dy._4, dy._5, dy._6, dy._7, toString(dy._8), dy._9, dy._10))
17361675 }
17371676
17381677
17391678
1740-@Callable(cU)
1679+@Callable(cq)
17411680 func changeAmp () = {
1742- let in = invoke(aV, "getChangeAmpConfigREADONLY", [toString(this)], nil)
1743- let io = {
1744- let gq = in
1745- if ($isInstanceOf(gq, "List[Any]"))
1681+ let hK = invoke(aI, "getChangeAmpConfigREADONLY", [toString(this)], nil)
1682+ let hL = {
1683+ let fN = hK
1684+ if ($isInstanceOf(fN, "List[Any]"))
17461685 then {
1747- let ip = gq
1686+ let hM = fN
17481687 $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"))
1688+ let aK = hM[0]
1689+ if ($isInstanceOf(aK, "Int"))
1690+ then aK
1691+ else throw(($getType(aK) + " couldn't be cast to Int"))
17531692 }, {
1754- let aX = ip[1]
1755- if ($isInstanceOf(aX, "Int"))
1756- then aX
1757- else throw(($getType(aX) + " couldn't be cast to Int"))
1693+ let aK = hM[1]
1694+ if ($isInstanceOf(aK, "Int"))
1695+ then aK
1696+ else throw(($getType(aK) + " couldn't be cast to Int"))
17581697 }, {
1759- let aX = ip[2]
1760- if ($isInstanceOf(aX, "Int"))
1761- then aX
1762- else throw(($getType(aX) + " couldn't be cast to Int"))
1698+ let aK = hM[2]
1699+ if ($isInstanceOf(aK, "Int"))
1700+ then aK
1701+ else throw(($getType(aK) + " couldn't be cast to Int"))
17631702 })
17641703 }
1765- else aS("invalid entry type")
1704+ else aF("invalid entry type")
17661705 }
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))
1706+ let hN = hL._1
1707+ let hO = hL._2
1708+ let hP = hL._3
1709+ let hQ = parseIntValue(getStringValue(Z()))
1710+ let hR = (hQ + hO)
1711+ let hS = if ((0 > hO))
1712+ then if ((hP > hR))
1713+ then hP
1714+ else hR
1715+ else if ((hR > hP))
1716+ then hP
1717+ else hR
1718+ let hT = valueOrElse(getInteger(ac()), 0)
1719+ let hU = (hT + hN)
1720+ let gk = [if ((height > hU))
17821721 then true
1783- else aS("try again in few blocks"), if ((it != iv))
1722+ else aF("try again in few blocks"), if ((hQ != hS))
17841723 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))]
1724+ else aF("already reached target")]
1725+ if ((gk == gk))
1726+ then [IntegerEntry(ac(), height), StringEntry(Z(), toString(hS)), StringEntry(aa(height), toString(hS))]
17881727 else throw("Strict value is not equal to itself.")
17891728 }
17901729
17911730
1792-@Verifier(iy)
1793-func iz () = {
1794- let iA = {
1795- let gq = gp()
1796- if ($isInstanceOf(gq, "ByteVector"))
1731+@Verifier(hV)
1732+func hW () = {
1733+ let hX = {
1734+ let fN = fM()
1735+ if ($isInstanceOf(fN, "ByteVector"))
17971736 then {
1798- let gu = gq
1799- gu
1737+ let fR = fN
1738+ fR
18001739 }
1801- else if ($isInstanceOf(gq, "Unit"))
1802- then iy.senderPublicKey
1740+ else if ($isInstanceOf(fN, "Unit"))
1741+ then hV.senderPublicKey
18031742 else throw("Match error")
18041743 }
1805- let gq = iy
1806- if ($isInstanceOf(gq, "Order"))
1744+ let fN = hV
1745+ if ($isInstanceOf(fN, "Order"))
18071746 then {
1808- let fe = gq
1809- let iB = bb()
1810- let iC = if (gB())
1747+ let eB = fN
1748+ let hY = aO()
1749+ let hZ = if (fY())
18111750 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)
1818- then aM
1751+ else eA(eB)
1752+ let ax = hZ._1
1753+ let ay = hZ._2
1754+ let az = sigVerify(eB.bodyBytes, eB.proofs[0], eB.senderPublicKey)
1755+ let aA = sigVerify(eB.bodyBytes, eB.proofs[1], hY)
1756+ if (if (if (ax)
1757+ then az
18191758 else false)
1820- then aN
1759+ then aA
18211760 else false)
18221761 then true
1823- else aJ(aK, aL, aM, aN)
1762+ else aw(ax, ay, az, aA)
18241763 }
1825- else if ($isInstanceOf(gq, "SetScriptTransaction"))
1764+ else if ($isInstanceOf(fN, "SetScriptTransaction"))
18261765 then {
1827- let cH = gq
1828- if (sigVerify(iy.bodyBytes, iy.proofs[0], iA))
1766+ let cc = fN
1767+ if (sigVerify(hV.bodyBytes, hV.proofs[0], hX))
18291768 then true
18301769 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)
1770+ let ia = blake2b256(value(cc.script))
1771+ let ib = fromBase64String(value(getString(aI, as())))
1772+ let ic = scriptHash(this)
1773+ if ((ib == ia))
1774+ then (ic != ia)
18361775 else false
18371776 }
18381777 }
1839- else sigVerify(iy.bodyBytes, iy.proofs[0], iA)
1778+ else sigVerify(hV.bodyBytes, hV.proofs[0], hX)
18401779 }
18411780

github/deemru/w8io/3ef1775 
2947.46 ms