tx · Fi8un1UKHBk695ebUZscYp4DXUtftbc3iAgXbooTkEqS

3MzKSdTH2jFbypLsoNfrH7QgkzSbx3EYwCA:  -0.03300000 Waves

2022.11.30 10:24 [2339550] smart account 3MzKSdTH2jFbypLsoNfrH7QgkzSbx3EYwCA > SELF 0.00000000 Waves

{ "type": 13, "id": "Fi8un1UKHBk695ebUZscYp4DXUtftbc3iAgXbooTkEqS", "fee": 3300000, "feeAssetId": null, "timestamp": 1669793063416, "version": 1, "sender": "3MzKSdTH2jFbypLsoNfrH7QgkzSbx3EYwCA", "senderPublicKey": "35yd3qw1gxKDxKwGAykHN9fANbXNWwseaUwbWDj24o3x", "proofs": [ "4fF5PCSfiema2t4FYBcgovAp8gEccABogtDL2uHb1rY7poRGHAHfHB3KW3z3be8PxCqnHwaMJBZx1NdHrRWZxDck" ], "script": "base64:BgLZJggCEgMKAQgSAwoBCBIAEgQKAgEEEgQKAgEEEgMKAQESABIECgIIARIAEgQKAggBEgQKAggBEgQKAgEBEgMKAQESBQoDAQEBEgUKAwEIARIECgIBCBIECgIBCBIECgIICBIECgIICBIECgIIARIAEgMKAQgSBQoDAQEBEgQKAggBEgQKAgEBEgQKAggIEgsKCQgBAQIBAggEBBIGCgQICAEIEgAiBnNjYWxlOCIMc2NhbGU4QmlnSW50IgdzY2FsZTE4Igp6ZXJvQmlnSW50IgRiaWcwIgRiaWcxIgRiaWcyIgpzbGlwcGFnZTREIgt3YXZlc1N0cmluZyIFQW11bHQiBURjb252IgNTRVAiBUVNUFRZIgpQb29sQWN0aXZlIgpQb29sUHV0RGlzIg5Qb29sTWF0Y2hlckRpcyIMUG9vbFNodXRkb3duIg5pZHhQb29sQWRkcmVzcyIJaWR4UG9vbFN0IglpZHhMUEFzSWQiCWlkeEFtQXNJZCIJaWR4UHJBc0lkIgtpZHhBbXRBc0RjbSINaWR4UHJpY2VBc0RjbSILaWR4SUFtdEFzSWQiDWlkeElQcmljZUFzSWQiD2lkeEZhY3RTdGFrQ250ciISaWR4RmFjdG9yeVJlc3RDbnRyIhBpZHhGYWN0U2xpcHBDbnRyIhFpZHhGYWN0R3d4UmV3Q250ciIKZmVlRGVmYXVsdCICdDEiB29yaWdWYWwiDW9yaWdTY2FsZU11bHQiAmYxIgN2YWwiD3Jlc3VsdFNjYWxlTXVsdCICdHMiA2FtdCIIcmVzU2NhbGUiCGN1clNjYWxlIgNhYnMiCWFic0JpZ0ludCICZmMiA21wayIEcG1wayICcGwiAnBoIgFoIgF0IgNwYXUiAnVhIgR0eElkIgNnYXUiAmFhIgJwYSIDYW1wIgNhZGEiBmtleUZlZSIDZmVlIgZrZXlETHAiFWtleURMcFJlZnJlc2hlZEhlaWdodCISa2V5RExwUmVmcmVzaERlbGF5IhZkTHBSZWZyZXNoRGVsYXlEZWZhdWx0Ig9kTHBSZWZyZXNoRGVsYXkiBGZjZmciBG10cGsiAnBjIgZpQW10QXMiBWlQckFzIgNtYmEiBWJBU3RyIgNhcHMiHGtleUFsbG93ZWRMcFN0YWJsZVNjcmlwdEhhc2giFmtleUZlZUNvbGxlY3RvckFkZHJlc3MiA3RvZSIDb3JWIgZzZW5kclYiBm1hdGNoViIDc3RyIgckbWF0Y2gwIgZ2YWxTdHIiBHN0cmYiBGFkZHIiA2tleSIEaW50ZiIIdGhyb3dFcnIiA21zZyIGZm10RXJyIgNmY2EiAUEiA2lncyICbXAiE2ZlZUNvbGxlY3RvckFkZHJlc3MiA2dwYyIFYW10QXMiB3ByaWNlQXMiCGlQcmljZUFzIgxwYXJzZUFzc2V0SWQiBWlucHV0Ig9hc3NldElkVG9TdHJpbmciD3BhcnNlUG9vbENvbmZpZyIKcG9vbENvbmZpZyIQcG9vbENvbmZpZ1BhcnNlZCILJHQwNzIwODczOTQiDmNmZ1Bvb2xBZGRyZXNzIg1jZmdQb29sU3RhdHVzIgxjZmdMcEFzc2V0SWQiEGNmZ0Ftb3VudEFzc2V0SWQiD2NmZ1ByaWNlQXNzZXRJZCIWY2ZnQW1vdW50QXNzZXREZWNpbWFscyIVY2ZnUHJpY2VBc3NldERlY2ltYWxzIgNnZmMiDWZhY3RvcnlDb25maWciD3N0YWtpbmdDb250cmFjdCIPc2xpcGFnZUNvbnRyYWN0Igtnd3hDb250cmFjdCIMcmVzdENvbnRyYWN0IhFkYXRhUHV0QWN0aW9uSW5mbyINaW5BbXRBc3NldEFtdCIPaW5QcmljZUFzc2V0QW10IghvdXRMcEFtdCIFcHJpY2UiCnNsaXBCeVVzZXIiDHNsaXBwYWdlUmVhbCIIdHhIZWlnaHQiC3R4VGltZXN0YW1wIgxzbGlwYWdlQW1BbXQiDHNsaXBhZ2VQckFtdCIRZGF0YUdldEFjdGlvbkluZm8iDm91dEFtdEFzc2V0QW10IhBvdXRQcmljZUFzc2V0QW10IgdpbkxwQW10Ig1nZXRBY2NCYWxhbmNlIgdhc3NldElkIgRjcGJpIghwckFtdFgxOCIIYW1BbXRYMTgiA3ZhZCICQTEiAkEyIghzbGlwcGFnZSIEZGlmZiIEcGFzcyICdmQiAkQxIgJEMCIEc2xwZyIEZmFpbCIDcGNwIgphbUFzc2V0RGNtIgpwckFzc2V0RGNtIgVhbUFtdCIFcHJBbXQiC2FtdEFzQW10WDE4IgpwckFzQW10WDE4IgpjYWxjUHJpY2VzIgVscEFtdCIDY2ZnIghhbXRBc0RjbSIHcHJBc0RjbSIIcHJpY2VYMTgiCGxwQW10WDE4Ig1scFBySW5BbUFzWDE4Ig1scFBySW5QckFzWDE4Ig9jYWxjdWxhdGVQcmljZXMiAXAiB3Rha2VGZWUiBmFtb3VudCIJZmVlQW1vdW50IgNlZ28iBnR4SWQ1OCIKcG10QXNzZXRJZCIIcG10THBBbXQiC3VzZXJBZGRyZXNzIgRscElkIgRhbUlkIgRwcklkIgVhbURjbSIFcHJEY20iA3N0cyIHbHBFbWlzcyIJYW1CYWxhbmNlIgxhbUJhbGFuY2VYMTgiCXByQmFsYW5jZSIMcHJCYWxhbmNlWDE4IgtjdXJQcmljZVgxOCIIY3VyUHJpY2UiC3BtdExwQW10WDE4IgpscEVtaXNzWDE4IgtvdXRBbUFtdFgxOCILb3V0UHJBbXRYMTgiCG91dEFtQW10IghvdXRQckFtdCIFc3RhdGUiA2VwbyIHaW5BbUFtdCIGaW5BbUlkIgdpblByQW10IgZpblBySWQiBmlzRXZhbCIGZW1pdExwIgppc09uZUFzc2V0IhB2YWxpZGF0ZVNsaXBwYWdlIgZwbXRBbXQiBXBtdElkIgdhbUlkU3RyIgdwcklkU3RyIglpbkFtSWRTdHIiCWluUHJJZFN0ciIGYW10RGNtIghwcmljZURjbSIEbHBFbSIPaW5BbUFzc2V0QW10WDE4Ig9pblByQXNzZXRBbXRYMTgiDHVzZXJQcmljZVgxOCIBciILc2xpcHBhZ2VYMTgiD3NsaXBwYWdlUmVhbFgxOCINbHBFbWlzc2lvblgxOCIKcHJWaWFBbVgxOCIKYW1WaWFQclgxOCIMZXhwZWN0ZWRBbXRzIhFleHBBbXRBc3NldEFtdFgxOCITZXhwUHJpY2VBc3NldEFtdFgxOCIJY2FsY0xwQW10Ig5jYWxjQW1Bc3NldFBtdCIOY2FsY1ByQXNzZXRQbXQiDHNsaXBwYWdlQ2FsYyIJZW1pdExwQW10IgZhbURpZmYiBnByRGlmZiINJHQwMTc4MjUxODE3MCIKd3JpdGVBbUFtdCIKd3JpdGVQckFtdCILY29tbW9uU3RhdGUiB2NhbGNETHAiDWFtb3VudEJhbGFuY2UiDHByaWNlQmFsYW5jZSIKbHBFbWlzc2lvbiIKdXBkYXRlZERMcCIScmVmcmVzaERMcEludGVybmFsIhdhbW91bnRBc3NldEJhbGFuY2VEZWx0YSIWcHJpY2VBc3NldEJhbGFuY2VEZWx0YSIUbHBBc3NldEVtaXNzaW9uRGVsdGEiEmFtb3VudEFzc2V0QmFsYW5jZSIRcHJpY2VBc3NldEJhbGFuY2UiD2xwQXNzZXRFbWlzc2lvbiIHYWN0aW9ucyIDbW9hIgVvcmRlciIRYW1vdW50QXNzZXRBbW91bnQiEHByaWNlQXNzZXRBbW91bnQiDSR0MDIwMTE5MjAzMzEiA2RMcCINJHQwMjA3NTgyMDg1OCINdW51c2VkQWN0aW9ucyIGZExwTmV3Igxpc09yZGVyVmFsaWQiAmNnIgFpIgNwbXQiAmNwIgZjYWxsZXIiB2FtQXNQbXQiB3ByQXNQbXQiBGdldEQiAnhwIgFuIgN4cDAiA3hwMSIKYVByZWNpc2lvbiIBYSIBcyIDYW5uIgt4cDBfeHAxX25fbiIQYW5uX3NfYVByZWNpc2lvbiIOYW5uX2FQcmVjaXNpb24iAm4xIgRjYWxjIgNhY2MiA2N1ciINJHQwMjMwMTEyMzAzMSIBZCIFZm91bmQiAmRwIgVkTmV4dCIFZERpZmYiA2FyciINJHQwMjM0NTIyMzQ5OSICJGwiAiRzIgUkYWNjMCIFJGYwXzEiAiRhIgIkaSIFJGYwXzIiBWdldFlEIgFEIgF4IgFjIgFiIg0kdDAyMzk5OTI0MDE5IgF5IgV5TmV4dCIFeURpZmYiDSR0MDI0MzI2MjQzNzMiDWNhbGNQdXRPbmVUa24iCXBtdEFtdFJhdyILd2l0aFRha2VGZWUiDWNoZWNoRW1pc3Npb24iDSR0MDI1MTU2MjU2MTgiDGFtQmFsYW5jZU9sZCIMcHJCYWxhbmNlT2xkIg0kdDAyNTYyNDI1ODAwIgthbUFtb3VudFJhdyILcHJBbW91bnRSYXciDSR0MDI1ODA0MjYwNDMiCGFtQW1vdW50IghwckFtb3VudCIMYW1CYWxhbmNlTmV3IgxwckJhbGFuY2VOZXciBmNoZWNrRCIIbHBBbW91bnQiDnBvb2xQcm9wb3J0aW9uIg9hbW91bnRBc3NldFBhcnQiDnByaWNlQXNzZXRQYXJ0IglscEFtdEJvdGgiBWJvbnVzIhNnZXRPbmVUa25WMkludGVybmFsIgpvdXRBc3NldElkIgxtaW5PdXRBbW91bnQiCHBheW1lbnRzIgxvcmlnaW5DYWxsZXIiDXRyYW5zYWN0aW9uSWQiCmFtRGVjaW1hbHMiCnByRGVjaW1hbHMiCnBvb2xTdGF0dXMiDSR0MDI4MDQ1MjgxNTYiAUAiCHRvdGFsR2V0Igt0b3RhbEFtb3VudCINJHQwMjgzNDYyODY1MyIFb3V0QW0iBW91dFByIghjdXJQclgxOCIFY3VyUHIiEW91dEFzc2V0SWRPcldhdmVzIhBzZW5kRmVlVG9NYXRjaGVyIgRidXJuIg0kdDAyOTQzODI5Nzg4IhBmZWVBbW91bnRGb3JDYWxjIhBvdXRJbkFtb3VudEFzc2V0Ig0kdDAyOTc5MTI5ODk5IhFyZWZyZXNoRExwQWN0aW9ucyIBbSICcG0iAnBkIglpc01hbmFnZXIiAnBrIgJtbSIXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiAmNtIgNocG0iA2NwbSIEc2xpcCIJYXV0b1N0YWtlIgdmYWN0Q2ZnIgtzdGFraW5nQ250ciIIc2xpcENudHIiAWUiCWxwQXNzZXRJZCICZWwiBmxlZ2FjeSICc2EiAnNwIghscFRybnNmciICc3MiDSR0MDMzNDgxMzM1NDYiIGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIg1pc1B1dERpc2FibGVkIgZjaGVja3MiDSR0MDM0NjA4MzQ3NjYiB2VzdGltTFAiDSR0MDM1NTgxMzU5MzAiFHBheW1lbnRJbkFtb3VudEFzc2V0Ig0kdDAzNTkzMzM2MDQxIgdtYXhTbHBnIgZlc3RQdXQiDSR0MDM2Nzk3MzY4NjIiCnVwZGF0ZWRLTHAiCW91dEFtdEFtdCINJHQwMzc0OTQzNzU3NiINaXNHZXREaXNhYmxlZCINJHQwMzgxMjEzODI3NiIYbGFzdFJlZnJlc2hlZEJsb2NrSGVpZ2h0Ih1jaGVja0xhc3RSZWZyZXNoZWRCbG9ja0hlaWdodCINJHQwMzg2NzQzODcyOSINbHBBc3NldEFtb3VudCIFaW5kZXgiBG5ld1kiAmR5Igt0b3RhbEdldFJhdyINJHQwMzk1MzEzOTU4MCINJHQwMzk5MjU0MDA0MCIOc3VtT2ZHZXRBc3NldHMiEm5vTGVzc1RoZW5BbXRBc3NldCIUbm9MZXNzVGhlblByaWNlQXNzZXQiFGJ1cm5MUEFzc2V0T25GYWN0b3J5Ig0kdDA0MTEyNjQxMjA3Ig1jaGVja1BheW1lbnRzIgpmYWN0b3J5Q2ZnIgdzdGFraW5nIgp1bnN0YWtlSW52IgF2IgVidXJuQSINJHQwNDIxMjA0MjIwMSINdW5zdGFrZUFtb3VudCIVbm9MZXNzVGhlbkFtb3VudEFzc2V0IgNyZXMiDGNoZWNrQW1vdW50cyINJHQwNDMyOTk0MzM4MCINJHQwNDQyNDE0NDQyOSIQcGF5bWVudEFtb3VudFJhdyIOcGF5bWVudEFzc2V0SWQiDSR0MDQ0Njg4NDQ3OTEiDSR0MDQ1MDcwNDUxNzQiCGFtdEFzU3RyIgdwckFzU3RyIgFrIgJwciIMcmVzU2NhbGVNdWx0Igd1c3JBZGRyIgdwbXRBc0lkIgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXkiCm1hdGNoZXJQdWIiCm9yZGVyVmFsaWQiC3NlbmRlclZhbGlkIgxtYXRjaGVyVmFsaWQiB25ld0hhc2giC2FsbG93ZWRIYXNoIgtjdXJyZW50SGFzaHUAAWEAgMLXLwABYgkAtgIBAIDC1y8AAWMJALYCAQCAgJC7utat8A0AAWQJALYCAQAAAAFlCQC2AgEAAAABZgkAtgIBAAEAAWcJALYCAQACAAFoCQC2AgEJAGUCBQFhCQBpAgkAaAIFAWEAAQUBYQABaQIFV0FWRVMAAWoCAzEwMAABawIBMQABbAICX18AAW0CAAABbgABAAFvAAIAAXAAAwABcQAEAAFyAAEAAXMAAgABdAADAAF1AAQAAXYABQABdwAGAAF4AAcAAXkACAABegAJAAFBAAEAAUIABgABQwAHAAFEAAoAAUUJAGsDAAoFAWEAkE4BAUYCAUcBSAkAvAIDCQC2AgEFAUcFAWMJALYCAQUBSAEBSQIBSgFLCQCgAwEJALwCAwUBSgkAtgIBBQFLBQFjAQFMAwFNAU4BTwkAawMFAU0FAU4FAU8BAVABAUoDCQC/AgIFAWQFAUoJAL4CAQUBSgUBSgEBUQEBSgMJAL8CAgUBZAUBSgkAvgIBBQFKBQFKAQFSAAITJXNfX2ZhY3RvcnlDb250cmFjdAEBUwACFCVzX19tYW5hZ2VyUHVibGljS2V5AQFUAAIbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AQFVAAIRJXMlc19fcHJpY2VfX2xhc3QBAVYCAVcBWAkAuQkCCQDMCAICGCVzJXMlZCVkX19wcmljZV9faGlzdG9yeQkAzAgCCQCkAwEFAVcJAMwIAgkApAMBBQFYBQNuaWwFAWwBAVkCAVoCYWEJAKwCAgkArAICCQCsAgICCyVzJXMlc19fUF9fBQFaAgJfXwUCYWEBAmFiAgFaAmFhCQCsAgIJAKwCAgkArAICAgslcyVzJXNfX0dfXwUBWgICX18FAmFhAQJhYwACDyVzX19hbW91bnRBc3NldAECYWQAAg4lc19fcHJpY2VBc3NldAECYWUAAgclc19fYW1wAQJhZgACDSVzX19hZGRvbkFkZHIAAmFnAgclc19fZmVlAAJhaAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJhZwUBRQACYWkJALkJAgkAzAgCAgIlcwkAzAgCAgNkTHAFA25pbAUBbAACYWoJALkJAgkAzAgCAgIlcwkAzAgCAhJkTHBSZWZyZXNoZWRIZWlnaHQFA25pbAUBbAACYWsJALkJAgkAzAgCAgIlcwkAzAgCAg9yZWZyZXNoRExwRGVsYXkFA25pbAUBbAACYWwAHgACYW0JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCYWsFAmFsAQJhbgACESVzX19mYWN0b3J5Q29uZmlnAQJhbwACGCVzJXNfX21hdGNoZXJfX3B1YmxpY0tleQECYXACAmFxAmFyCQCsAgIJAKwCAgkArAICCQCsAgICCCVkJWQlc19fBQJhcQICX18FAmFyAghfX2NvbmZpZwECYXMBAmF0CQCsAgICKCVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJpbnRlcm5hbElkX18FAmF0AQJhdQACDCVzX19zaHV0ZG93bgECYXYAAh0lc19fYWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaAECYXcAAhclc19fZmVlQ29sbGVjdG9yQWRkcmVzcwECYXgDAmF5AmF6AmFBCQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgICEUZhaWxlZDogb3JkVmFsaWQ9CQClAwEFAmF5Agsgc25kclZhbGlkPQkApQMBBQJhegIMIG10Y2hy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CAIJAKQDAQUCYncFA25pbAUBbAECYkQBAmJFAwkAAAIFAmJFAgVXQVZFUwgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAPAHAgUEdGhpcwkA2QQBBQJiRQECYkYCAmJHAmJICQC8AgMFAmJHBQFjBQJiSAECYkkDAmJKAmJLAmJMBAJiTQkAvAIDCQC4AgIFAmJKBQJiSwUBYgUCYksEAmJOCQC/AgIJALgCAgUCYkwJAQFQAQUCYk0FAWQDCQEBIQEFAmJOCQACAQkArAICAgpCaWcgc2xwZzogCQCmAwEFAmJNCQCUCgIFAmJOCQCZAwEJAMwIAgUCYkoJAMwIAgUCYksFA25pbAECYk8DAmJQAmJRAmJSBAJiTQkAvAIDBQJiUQUBYgUCYlAEAmJTCQC/AgIFAmJSBQJiTQMDBQJiUwYJAL8CAgUCYlEFAmJQCQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkApgMBBQJiUQIBIAkApgMBBQJiUAIBIAkApgMBBQJiTQIBIAkApgMBBQJiUgUCYlMBAmJUBAJiVQJiVgJiVwJiWAQCYlkJAQFGAgUCYlcFAmJVBAJiWgkBAUYCBQJiWAUCYlYJAQJiRgIFAmJaBQJiWQECY2EDAmJXAmJYAmNiBAJjYwkBAmFRAAQCY2QJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJjYwUBdwQCY2UJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJjYwUBeAQCY2YJAQJiVAQFAmNkBQJjZQUCYlcFAmJYBAJiSAkBAUYCBQJiVwUCY2QEAmJHCQEBRgIFAmJYBQJjZQQCY2cJAQFGAgUCY2IFAWEEAmNoCQECYkYCBQJiSAUCY2cEAmNpCQECYkYCBQJiRwUCY2cJAMwIAgUCY2YJAMwIAgUCY2gJAMwIAgUCY2kFA25pbAECY2oDAmJXAmJYAmNiBAJjawkBAmNhAwUCYlcFAmJYBQJjYgkAzAgCCQEBSQIJAJEDAgUCY2sAAAUBYQkAzAgCCQEBSQIJAJEDAgUCY2sAAQUBYQkAzAgCCQEBSQIJAJEDAgUCY2sAAgUBYQUDbmlsAQJjbAECY20EAmNuCQBrAwUCY20FAmFoBQFhCQCUCgIJAGUCBQJjbQUCY24FAmNuAQJjbwQCY3ACY3ECY3ICY3MEAmNjCQECYVEABAJjdAkAkQMCBQJjYwUBdAQCY3UJAJEDAgUCY2MFAXUEAmN2CQCRAwIFAmNjBQF2BAJjdwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmNjBQF3BAJjeAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmNjBQF4BAJjeQkAkQMCBQJjYwUBcwQCY3oICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQkA2QQBBQJjdAILV3JvbmcgTFAgaWQIcXVhbnRpdHkDCQECIT0CBQJjdAUCY3EJAAIBAg9Xcm9uZyBwbXQgYXNzZXQEAmNBCQECYkQBBQJjdQQCY0IJAQFGAgUCY0EFAmN3BAJjQwkBAmJEAQUCY3YEAmNECQEBRgIFAmNDBQJjeAQCY0UJAQJiRgIFAmNEBQJjQgQCY0YJAQFJAgUCY0UFAWEEAmNHCQEBRgIFAmNyBQFhBAJjSAkBAUYCBQJjegUBYQQCY0kJALwCAwUCY0IFAmNHBQJjSAQCY0oJALwCAwUCY0QFAmNHBQJjSAQCY0sJAQFJAgUCY0kFAmN3BAJjTAkBAUkCBQJjSgUCY3gEAmNNAwkAAAIFAmNwAgAFA25pbAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJjcwUCY0sDCQAAAgUCY3UCBVdBVkVTBQR1bml0CQDZBAEFAmN1CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmNzBQJjTAMJAAACBQJjdgIFV0FWRVMFBHVuaXQJANkEAQUCY3YJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFiAgkApQgBBQJjcwUCY3AJAQJiegYFAmNLBQJjTAUCY3IFAmNGBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVQAFAmNGCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVgIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmNGBQNuaWwJAJwKCgUCY0sFAmNMBQJjdQUCY3YFAmNBBQJjQwUCY3oFAmNFBQJjeQUCY00BAmNODQJjcAJiTAJjTwJjUAJjUQJjUgJjcwJjUwJjVAJjVQJjVgJjVwJjWAQCY2MJAQJhUQAEAmN0CQDZBAEJAJEDAgUCY2MFAXQEAmNZCQCRAwIFAmNjBQF1BAJjWgkAkQMCBQJjYwUBdgQCZGEJAJEDAgUCY2MFAXkEAmRiCQCRAwIFAmNjBQF6BAJkYwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmNjBQF3BAJkZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmNjBQF4BAJjeQkAkQMCBQJjYwUBcwQCZGUICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCY3QCCFdyIGxwIGFzCHF1YW50aXR5BAJjQQMFAmNTCQECYkQBBQJjWQMDBQJjVQkAAAIFAmNYBQJjWQcJAGUCCQECYkQBBQJjWQUCY1cDBQJjVQkBAmJEAQUCY1kJAGUCCQECYkQBBQJjWQUCY08EAmNDAwUCY1MJAQJiRAEFAmNaAwMFAmNVCQAAAgUCY1gFAmNaBwkAZQIJAQJiRAEFAmNaBQJjVwMFAmNVCQECYkQBBQJjWgkAZQIJAQJiRAEFAmNaBQJjUQQCZGYJAQFGAgUCY08FAmRjBAJkZwkBAUYCBQJjUQUCZGQEAmRoCQECYkYCBQJkZwUCZGYEAmNCCQEBRgIFAmNBBQJkYwQCY0QJAQFGAgUCY0MFAmRkBAJkaQMJAAACBQJkZQAABAJjRQUBZAQCZGoFAWQEAmNnCQB2BgkAuQICBQJkZgUCZGcAAAkAtgIBAAUAAQAABQRET1dOCQCXCgUJAQFJAgUCY2cFAWEJAQFJAgUCZGYFAmRjCQEBSQIFAmRnBQJkZAkBAmJGAgkAtwICBQJjRAUCZGcJALcCAgUCY0IFAmRmBQJkagQCY0UJAQJiRgIFAmNEBQJjQgQCZGsJALwCAwkBAVABCQC4AgIFAmNFBQJkaAUBYwUCY0UEAmRqCQEBRgIFAmJMBQFhAwMDBQJjVgkBAiE9AgUCY0UFAWQHCQC/AgIFAmRrBQJkagcJAAIBCQCsAgIJAKwCAgkArAICAg9QcmljZSBzbGlwcGFnZSAJAKYDAQUCZGsCAyA+IAkApgMBBQJkagQCZGwJAQFGAgUCZGUFAWEEAmRtCQC8AgMFAmRmBQJjRQUBYwQCZG4JALwCAwUCZGcFAWMFAmNFBAJkbwMJAL8CAgUCZG0FAmRnCQCUCgIFAmRuBQJkZwkAlAoCBQJkZgUCZG0EAmRwCAUCZG8CXzEEAmRxCAUCZG8CXzIEAmNnCQC8AgMFAmRsBQJkcQUCY0QJAJcKBQkBAUkCBQJjZwUBYQkBAUkCBQJkcAUCZGMJAQFJAgUCZHEFAmRkBQJjRQUCZGoEAmRyCAUCZGkCXzEEAmRzCAUCZGkCXzIEAmR0CAUCZGkCXzMEAmNGCQEBSQIIBQJkaQJfNAUBYQQCZHUJAQFJAggFAmRpAl81BQFhAwkAZwIAAAUCZHIJAAIBAgdMUCA8PSAwBAJkdgMJAQEhAQUCY1QAAAUCZHIEAmR3CQBlAgUCY08FAmRzBAJkeAkAZQIFAmNRBQJkdAQCZHkDAwUCY1UJAAACBQJjWAUCY1kHCQCUCgIFAmNXAAADAwUCY1UJAAACBQJjWAUCY1oHCQCUCgIAAAUCY1cJAJQKAgUCZHMFAmR0BAJkeggFAmR5Al8xBAJkQQgFAmR5Al8yBAJkQgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVUABQJjRgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVYCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjRgkAzAgCCQELU3RyaW5nRW50cnkCCQEBWQIFAmNzBQJjcAkBAmJvCgUCZHoFAmRBBQJkdgUCY0YFAmJMBQJkdQUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZHcFAmR4BQNuaWwJAJ8KDQUCZHIFAmR2BQJjRgUCY0EFAmNDBQJkZQUCY3QFAmN5BQJkQgUCZHcFAmR4BQJjUAUCY1IBAmRDAwJkRAJkRQJkRgQCZEcJALwCAwkAuQICBQJkRAUCZEUFAWMFAmRGBQJkRwECZEgDAmRJAmRKAmRLBAJkTAkAZAIJAQJiRAEJAQJhVwEFAmJlBQJkSQQCZE0JAGQCCQECYkQBCQECYVcBBQJiZgUCZEoEAmROCQBkAggJAQV2YWx1ZQEJAOwHAQUCYmQIcXVhbnRpdHkFAmRLBAJkRwkBAmRDAwkAtgIBBQJkTAkAtgIBBQJkTQkAtgIBBQJkTgQCZE8JAMwIAgkBDEludGVnZXJFbnRyeQIFAmFqBQZoZWlnaHQJAMwIAgkBC1N0cmluZ0VudHJ5AgUCYWkJAKYDAQUCZEcFA25pbAkAlAoCBQJkTwUCZEcBAmRQAQJkUQQCZFIIBQJkUQZhbW91bnQEAmRTCQBrAwgFAmRRBmFtb3VudAgFAmRRBXByaWNlBQFhBAJkVAMJAAACCAUCZFEJb3JkZXJUeXBlBQNCdXkJAJQKAgUCZFIJAQEtAQUCZFMJAJQKAgkBAS0BBQJkUgUCZFMEAmRJCAUCZFQCXzEEAmRKCAUCZFQCXzIDAwMJAQJhTgAGCQAAAgUCYmMFAXAGCQAAAgUCYmMFAXEJAAIBAg1BZG1pbiBibG9ja2VkAwMJAQIhPQIICAUCZFEJYXNzZXRQYWlyC2Ftb3VudEFzc2V0BQJiZQYJAQIhPQIICAUCZFEJYXNzZXRQYWlyCnByaWNlQXNzZXQFAmJmCQACAQIJV3IgYXNzZXRzBAJkVQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCoAwEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQJhaQkBAmFLAQIPZExwIGlzIHJlcXVpcmVkCQECYUsBAgtpbnZhbGlkIGRMcAQCZFYJAQJkSAMFAmRJBQJkSgAABAJkVwgFAmRWAl8xBAJkWAgFAmRWAl8yBAJkWQkAvwICBQJkWAUCZFUFAmRZAQJkWgECZWEDCQECIT0CCQCQAwEIBQJlYQhwYXltZW50cwABCQACAQIKMSBwbW50IGV4cAQCZWIJAQV2YWx1ZQEJAJEDAggFAmVhCHBheW1lbnRzAAAEAmNxCQEFdmFsdWUBCAUCZWIHYXNzZXRJZAQCY1cIBQJlYgZhbW91bnQEAmRpCQECY28ECQDYBAEIBQJlYQ10cmFuc2FjdGlvbklkCQDYBAEFAmNxBQJjVwgFAmVhBmNhbGxlcgQCY0sIBQJkaQJfMQQCY0wIBQJkaQJfMgQCY3kJAQ1wYXJzZUludFZhbHVlAQgFAmRpAl85BAJjTQgFAmRpA18xMAMDCQECYU4ABgkAAAIFAmN5BQFxCQACAQkArAICAg9BZG1pbiBibG9ja2VkOiAJAKQDAQUCY3kJAJcKBQUCY0sFAmNMBQJjVwUCY3EFAmNNAQJlYwoCZWQCYWECZWUCZWYCYkwCY1QCY1UCY1YCY1cCY1gEAmRpCQECY04NBQJhYQUCYkwICQEFdmFsdWUBBQJlZQZhbW91bnQICQEFdmFsdWUBBQJlZQdhc3NldElkCAkBBXZhbHVlAQUCZWYGYW1vdW50CAkBBXZhbHVlAQUCZWYHYXNzZXRJZAUCZWQJAAACBQJhYQIABQJjVAUCY1UFAmNWBQJjVwUCY1gEAmN5CQENcGFyc2VJbnRWYWx1ZQEIBQJkaQJfOAMDAwkBAmFOAAYJAAACBQJjeQUBbwYJAAACBQJjeQUBcQkAAgEJAKwCAgIIQmxvY2tlZDoJAKQDAQUCY3kFAmRpAQJlZwECZWgEAmVpBQFnBAJlagkAkQMCBQJlaAAABAJlawkAkQMCBQJlaAABBAJlbAkApwMBBQFqBAJlbQkAuQICCQCnAwEFAmFNBQJlbAQCZW4JALcCAgUCZWoFAmVrAwkAAAIFAmVuBQFlBQFlBAJlbwkAuQICBQJlbQUCZWkEAmVwCQC5AgIJALkCAgkAuQICBQJlagUCZWsFAmVpBQJlaQQCZXEJALoCAgkAuQICBQJlbwUCZW4FAmVsBAJlcgkAuAICBQJlbwUCZWwEAmVzCQC3AgIFAmVpBQFmCgECZXQCAmV1AmV2BAJldwUCZXUEAmV4CAUCZXcCXzEEAmV5CAUCZXcCXzIDCQECIT0CBQJleQUEdW5pdAUCZXUEAmV6CQC6AgIJALkCAgkAuQICBQJleAUCZXgFAmV4BQJlcAQCZUEJALoCAgkAuQICCQC3AgIFAmVxCQC5AgIFAmV6BQJlaQUCZXgJALcCAgkAugICCQC5AgIFAmVyBQJleAUCZWwJALkCAgUCZXMFAmV6BAJlQgkBAVEBCQC4AgIFAmVBCQEFdmFsdWUBBQJleAMJAMACAgUBZgUCZUIJAJQKAgUCZUEFAmV2CQCUCgIFAmVBBQR1bml0BAJlQwkAzAgCAAAJAMwIAgABCQDMCAIAAgkAzAgCAAMJAMwIAgAECQDMCAIABQkAzAgCAAYJAMwIAgAHCQDMCAIACAkAzAgCAAkJAMwIAgAKCQDMCAIACwkAzAgCAAwJAMwIAgANCQDMCAIADgUDbmlsBAJlRAoAAmVFBQJlQwoAAmVGCQCQAwEFAmVFCgACZUcJAJQKAgUCZW4FBHVuaXQKAQJlSAICZUkCZUoDCQBnAgUCZUoFAmVGBQJlSQkBAmV0AgUCZUkJAJEDAgUCZUUFAmVKCgECZUsCAmVJAmVKAwkAZwIFAmVKBQJlRgUCZUkJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxNQkBAmVLAgkBAmVIAgkBAmVIAgkBAmVIAgkBAmVIAgkBAmVIAgkBAmVIAgkBAmVIAgkBAmVIAgkBAmVIAgkBAmVIAgkBAmVIAgkBAmVIAgkBAmVIAgkBAmVIAgkBAmVIAgUCZUcAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwQCZXgIBQJlRAJfMQQCZXkIBQJlRAJfMgMJAQIhPQIFAmV5BQR1bml0BQJleAkAAgEJAKwCAgIZRCBjYWxjdWxhdGlvbiBlcnJvciwgRCA9IAkApgMBBQJleAECZUwDAmVoAmVhAmVNBAJlaQUBZwQCZU4JAJEDAgUCZWgDCQAAAgUCZWEAAAABAAAEAmVsCQCnAwEFAWoEAmVtCQC5AgIJAKcDAQUCYU0FAmVsBAJlbgUCZU4EAmVvCQC5AgIFAmVtBQJlaQQCZU8JALoCAgkAuQICCQC5AgIJALoCAgkAuQICBQJlTQUCZU0JALkCAgUCZU4FAmVpBQJlTQUCZWwJALkCAgUCZW8FAmVpBAJlUAkAuAICCQC3AgIFAmVuCQC6AgIJALkCAgUCZU0FAmVsBQJlbwUCZU0KAQJldAICZXUCZXYEAmVRBQJldQQCZVIIBQJlUQJfMQQCZXkIBQJlUQJfMgMJAQIhPQIFAmV5BQR1bml0BQJldQQCZVMJALoCAgkAtwICCQC5AgIFAmVSBQJlUgUCZU8JALcCAgkAuQICBQFnBQJlUgUCZVAEAmVUCQEBUQEJALgCAgUCZVMJAQV2YWx1ZQEFAmVSAwkAwAICBQFmBQJlVAkAlAoCBQJlUwUCZXYJAJQKAgUCZVMFBHVuaXQEAmVDCQDMCAIAAAkAzAgCAAEJAMwIAgACCQDMCAIAAwkAzAgCAAQJAMwIAgAFCQDMCAIABgkAzAgCAAcJAMwIAgAICQDMCAIACQkAzAgCAAoJAMwIAgALCQDMCAIADAkAzAgCAA0JAMwIAgAOBQNuaWwEAmVVCgACZUUFAmVDCgACZUYJAJADAQUCZUUKAAJlRwkAlAoCBQJlTQUEdW5pdAoBAmVIAgJlSQJlSgMJAGcCBQJlSgUCZUYFAmVJCQECZXQCBQJlSQkAkQMCBQJlRQUCZUoKAQJlSwICZUkCZUoDCQBnAgUCZUoFAmVGBQJlSQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDE1CQECZUsCCQECZUgCCQECZUgCCQECZUgCCQECZUgCCQECZUgCCQECZUgCCQECZUgCCQECZUgCCQECZUgCCQECZUgCCQECZUgCCQECZUgCCQECZUgCCQECZUgCCQECZUgCBQJlRwAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPBAJlUggFAmVVAl8xBAJleQgFAmVVAl8yAwkBAiE9AgUCZXkFBHVuaXQFAmVSCQACAQkArAICAhlZIGNhbGN1bGF0aW9uIGVycm9yLCBZID0gCQCmAwEFAmVSAQJlVgUCZVcCY3ECY3MCYWECZVgEAmFZCQECYVEABAJjdQkAkQMCBQJhWQUBdQQCY3YJAJEDAgUCYVkFAXYEAmN0CQCRAwIFAmFZBQF0BAJkYwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFZBQF3BAJkZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFZBQF4BAJkTgkAtgIBCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEJANkEAQUCY3QCEGludmFsaWQgbHAgYXNzZXQIcXVhbnRpdHkEAmVZAwkAvwICBQJkTgUBZQYJAAIBAiJpbml0aWFsIGRlcG9zaXQgcmVxdWlyZXMgYWxsIGNvaW5zAwkAAAIFAmVZBQJlWQQCY0EJAQJiRAEFAmN1BAJjQwkBAmJEAQUCY3YEAmVaAwkAAAIFAmFhAgAJAJQKAgUCY0EFAmNDAwkAAAIFAmNxBQJjdQMJAGYCBQJlVwUCY0EJAAIBAhZpbnZhbGlkIHBheW1lbnQgYW1vdW50CQCUCgIJAGUCBQJjQQUCZVcFAmNDAwkAAAIFAmNxBQJjdgMJAGYCBQJlVwUCY0MJAAIBAhZpbnZhbGlkIHBheW1lbnQgYW1vdW50CQCUCgIFAmNBCQBlAgUCY0MFAmVXCQACAQIQd3JvbmcgcG10QXNzZXRJZAQCZmEIBQJlWgJfMQQCZmIIBQJlWgJfMgQCZmMDCQAAAgUCY3EFAmN1CQCUCgIFAmVXAAADCQAAAgUCY3EFAmN2CQCUCgIAAAUCZVcJAAIBAg9pbnZhbGlkIHBheW1lbnQEAmZkCAUCZmMCXzEEAmZlCAUCZmMCXzIEAmZmAwUCZVgJAJUKAwgJAQJjbAEFAmZkAl8xCAkBAmNsAQUCZmUCXzEICQECY2wBBQJlVwJfMgkAlQoDBQJmZAUCZmUAAAQCZmcIBQJmZgJfMQQCZmgIBQJmZgJfMgQCY24IBQJmZgJfMwQCZmkJAGQCBQJmYQUCZmcEAmZqCQBkAgUCZmIFAmZoBAJiUQkBAmVnAQkAzAgCCQC2AgEFAmZhCQDMCAIJALYCAQUCZmIFA25pbAQCYlAJAQJlZwEJAMwIAgkAtgIBBQJmaQkAzAgCCQC2AgEFAmZqBQNuaWwEAmZrAwkAvwICBQJiUAUCYlEGCQEFdGhyb3cAAwkAAAIFAmZrBQJmawQCZmwJALwCAwUCZE4JALgCAgUCYlAFAmJRBQJiUQQCY0YJAQFJAgkBAmJGAgkBAUYCBQJmagUCZGQJAQFGAgUCZmkFAmRjBQFhBAJkQgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVUABQJjRgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVYCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjRgkAzAgCCQELU3RyaW5nRW50cnkCCQEBWQIFAmNzBQJhYQkBAmJvCgUCZmQFAmZlCQCgAwEFAmZsBQJjRgAAAAAFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAAAAAABQNuaWwEAmZtCQBrAwUCZmIFAWEFAmZhBAJmbgkAawMFAmVXBQFhCQBkAgUCZm0FAWEEAmZvCQBlAgUCZVcFAmZuBAJmcAkAvAIDBQJkTgkAtgIBBQJmbwkAtgIBBQJmYgQCZnEJAKADAQkAvAIDCQC4AgIFAmZsBQJmcAUBYgUCZnAJAJYKBAkAoAMBBQJmbAUCZEIFAmNuBQJmcQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZnIGAmZzAmZ0AmZ1AmVkAmZ2AmZ3BAJhWQkBAmFRAAQCY3QJAJEDAgUCYVkFAXQEAmN1CQCRAwIFAmFZBQF1BAJjdgkAkQMCBQJhWQUBdgQCZngJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhWQUBdwQCZnkJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhWQUBeAQCZnoJAJEDAgUCYVkFAXMEAmNzAwkAAAIFAmVkBQJibgUCZnYFAmVkBAJlYgkBBXZhbHVlAQkA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BgUCZlQDCQABAgUCYUMCBFVuaXQDCQAAAggFAmVhBmNhbGxlcgUEdGhpcwYFAmZUCQACAQILTWF0Y2ggZXJyb3IdAmVhAQtjb25zdHJ1Y3RvcgEBUgQCZU8JAQJmVwEFAmVhAwkAAAIFAmVPBQJlTwkAzAgCCQELU3RyaW5nRW50cnkCCQEBUgAFAVIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlYQEKc2V0TWFuYWdlcgECZlgEAmVPCQECZlcBBQJlYQMJAAACBQJlTwUCZU8EAmZZCQDZBAEFAmZYAwkAAAIFAmZZBQJmWQkAzAgCCQELU3RyaW5nRW50cnkCCQEBVAAFAmZYBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZWEBDmNvbmZpcm1NYW5hZ2VyAAQCY2sJAQJmUwAEAmZaAwkBCWlzRGVmaW5lZAEFAmNrBgkAAgECEk5vIHBlbmRpbmcgbWFuYWdlcgMJAAACBQJmWgUCZloEAmdhAwkAAAIIBQJlYQ9jYWxsZXJQdWJsaWNLZXkJAQV2YWx1ZQEFAmNrBgkAAgECG1lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAACBQJnYQUCZ2EJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVMACQDYBAEJAQV2YWx1ZQEFAmNrCQDMCAIJAQtEZWxldGVFbnRyeQEJAQFUAAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmVhAQNwdXQCAmdiAmdjBAJnZAkBAmJpAAQCZ2UJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmdkBQFBAgpXciBzdCBhZGRyBAJnZgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCZ2QFAUMCCldyIHNsIGFkZHIDCQBmAgAABQJnYgkAAgECDldyb25nIHNsaXBwYWdlAwkBAiE9AgkAkAMBCAUCZWEIcGF5bWVudHMAAgkAAgECDDIgcG1udHMgZXhwZAQCZ2cJAQJlYwoJAKUIAQgFAmVhBmNhbGxlcgkA2AQBCAUCZWENdHJhbnNhY3Rpb25JZAkBD0F0dGFjaGVkUGF5bWVudAIICQEFdmFsdWUBCQCRAwIIBQJlYQhwYXltZW50cwAAB2Fzc2V0SWQICQEFdmFsdWUBCQCRAwIIBQJlYQhwYXltZW50cwAABmFtb3VudAkAkQMCCAUCZWEIcGF5bWVudHMAAQUCZ2IGBwYAAAIABAJkdggFAmdnAl8yBAJnaAgFAmdnAl83BAJjTQgFAmdnAl85BAJkdwgFAmdnA18xMAQCZHgIBQJnZwNfMTEEAmN1CAUCZ2cDXzEyBAJjdggFAmdnA18xMwQCZGkJAPwHBAUCYUwCBGVtaXQJAMwIAgUCZHYFA25pbAUDbmlsAwkAAAIFAmRpBQJkaQQCZ2kEAmFDBQJkaQMJAAECBQJhQwIHQWRkcmVzcwQCZ2oFAmFDCQD8BwQFAmdqAgRlbWl0CQDMCAIFAmR2BQNuaWwFA25pbAUEdW5pdAMJAAACBQJnaQUCZ2kEAmdrAwkAZgIFAmR3AAAJAPwHBAUCZ2YCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJjdQUCZHcFA25pbAUDbmlsAwkAAAIFAmdrBQJnawQCZ2wDCQBmAgUCZHgAAAkA/AcEBQJnZgIDcHV0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmN2BQJkeAUDbmlsBQNuaWwDCQAAAgUCZ2wFAmdsBAJnbQMFAmdjBAJnbgkA/AcEBQJnZQIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZ2gFAmR2BQNuaWwDCQAAAgUCZ24FAmduBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmVhBmNhbGxlcgUCZHYFAmdoBQNuaWwEAmdvCQECZEgDAAAAAAAABAJmUQgFAmdvAl8xBAJkRwgFAmdvAl8yCQDOCAIJAM4IAgUCY00FAmdtBQJmUQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlYQELcHV0T25lVGtuVjICAmZ0AmdjBAJncAoAAmZCCQD8BwQFAmFMAihpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCZkICB0Jvb2xlYW4FAmZCCQACAQkArAICCQADAQUCZkICHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmdxAwMDCQECYU4ABgkAAAIFAmJjBQFvBgkAAAIFAmJjBQFxBgUCZ3AEAmdyCQDMCAIDAwkBASEBBQJncQYJAQJmVQEFAmVhBgkBAmFJAQIhcHV0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCZWEIcGF5bWVudHMAAQYJAQJhSQECHmV4YWN0bHkgMSBwYXltZW50IGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmdyBQJncgQCYVkJAQJhUQAEAmN1CQCRAwIFAmFZBQF1BAJjdgkAkQMCBQJhWQUBdgQCY3QJANkEAQkAkQMCBQJhWQUBdAQCZngJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhWQUBdwQCZnkJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhWQUBeAQCY3MDCQAAAggFAmVhBmNhbGxlcgUEdGhpcwgFAmVhDG9yaWdpbkNhbGxlcggFAmVhBmNhbGxlcgQCZWIJAQV2YWx1ZQEJAJEDAggFAmVhCHBheW1lbnRzAAAEAmNxCQDYBAEJAQV2YWx1ZQEIBQJlYgdhc3NldElkBAJjVwgFAmViBmFtb3VudAQCZ3MJAQJlVgUFAmNXBQJjcQkApQgBBQJjcwkA2AQBCAUCZWENdHJhbnNhY3Rpb25JZAYDCQAAAgUCZ3MFAmdzBAJjbggFAmdzAl8zBAJjTQgFAmdzAl8yBAJndAgFAmdzAl8xBAJkdgMDCQBmAgUCZnQAAAkAZgIFAmZ0BQJndAcJAQJhSQEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZnQFA25pbAIABQJndAQCZ2cJAPwHBAUCYUwCBGVtaXQJAMwIAgUCZHYFA25pbAUDbmlsAwkAAAIFAmdnBQJnZwQCZ2kEAmFDBQJnZwMJAAECBQJhQwIHQWRkcmVzcwQCZ2oFAmFDCQD8BwQFAmdqAgRlbWl0CQDMCAIFAmR2BQNuaWwFA25pbAUEdW5pdAMJAAACBQJnaQUCZ2kEAmdtAwUCZ2MEAmduCQD8BwQFAmJrAgVzdGFrZQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJjdAUCZHYFA25pbAMJAAACBQJnbgUCZ24FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCZWEGY2FsbGVyBQJkdgUCY3QFA25pbAQCZksDCQBmAgUCY24AAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhUAUCY24JANkEAQUCY3EFA25pbAUDbmlsBAJndQMJAAACBQR0aGlzBQJhUAkAlAoCAAAAAAQCZ3YDCQAAAggFAmViB2Fzc2V0SWQFAmJlBgcDBQJndgkAlAoCCQEBLQEFAmNuAAAJAJQKAgAACQEBLQEFAmNuBAJkSQgFAmd1Al8xBAJkSggFAmd1Al8yBAJndwkBAmRIAwUCZEkFAmRKAAAEAmZRCAUCZ3cCXzEEAmRHCAUCZ3cCXzIJAJQKAgkAzggCCQDOCAIJAM4IAgUCY00FAmdtBQJmSwUCZlEFAmR2CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmVhAQpwdXRGb3JGcmVlAQJneAMJAGYCAAAFAmd4CQACAQIKV3Jvbmcgc2xwZwMJAQIhPQIJAJADAQgFAmVhCHBheW1lbnRzAAIJAAIBAgwyIHBtbnRzIGV4cGQEAmd5CQECZWMKCQClCAEIBQJlYQZjYWxsZXIJANgEAQgFAmVhDXRyYW5zYWN0aW9uSWQJAQ9BdHRhY2hlZFBheW1lbnQCCAkBBXZhbHVlAQkAkQMCCAUCZWEIcGF5bWVudHMAAAdhc3NldElkCAkBBXZhbHVlAQkAkQMCCAUCZWEIcGF5bWVudHMAAAZhbW91bnQJAJEDAggFAmVhCHBheW1lbnRzAAEFAmd4BwcGAAACAAQCY00IBQJneQJfOQQCZ3oJAQJkSAMAAAAAAAAEAmZRCAUCZ3oCXzEEAmdBCAUCZ3oCXzIJAM4IAgUCY00FAmZRAmVhAQNnZXQABAJkaQkBAmRaAQUCZWEEAmdCCAUCZGkCXzEEAmNMCAUCZGkCXzIEAmNXCAUCZGkCXzMEAmNxCAUCZGkCXzQEAmNNCAUCZGkCXzUEAmVQCQD8BwQFAmFMAgRidXJuCQDMCAIFAmNXBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmNxBQJjVwUDbmlsAwkAAAIFAmVQBQJlUAQCZ0MJAQJkSAMJAQEtAQUCZ0IJAQEtAQUCY0wAAAQCZlEIBQJnQwJfMQQCZEcIBQJnQwJfMgkAzggCBQJjTQUCZlEJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZWEBC2dldE9uZVRrblYyAgJmcwJmdAQCZ3AKAAJmQgkA/AcEBQJhTAIoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmZCAgdCb29sZWFuBQJmQgkAAgEJAKwCAgkAAwEFAmZCAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJnRAMDCQECYU4ABgkAAAIFAmJjBQFxBgUCZ3AEAmdyCQDMCAIDAwkBASEBBQJnRAYJAQJmVQEFAmVhBgkBAmFJAQIhZ2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCZWEIcGF5bWVudHMAAQYJAQJhSQECHmV4YWN0bHkgMSBwYXltZW50IGFyZSBleHBlY3RlZAUDbmlsAwkA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IGl0c2VsZi4CZWEBDXVuc3Rha2VBbmRHZXQBAmNtBAJnVQMJAQIhPQIJAJADAQgFAmVhCHBheW1lbnRzAAAJAAIBAg1ObyBwbW50cyBleHBkBgMJAAACBQJnVQUCZ1UEAmNjCQECYVEABAJnVgkBAmJpAAQCZ2gJANkEAQkAkQMCBQJjYwUBdAQCZ1cJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmdWBQFBAgpXciBzdCBhZGRyBAJnWAkA/AcEBQJnVwIHdW5zdGFrZQkAzAgCCQDYBAEFAmdoCQDMCAIFAmNtBQNuaWwFA25pbAMJAAACBQJnWAUCZ1gEAmRpCQECY28ECQDYBAEIBQJlYQ10cmFuc2FjdGlvbklkCQDYBAEFAmdoBQJjbQgFAmVhBmNhbGxlcgQCY0sIBQJkaQJfMQQCY0wIBQJkaQJfMgQCY3kJAQ1wYXJzZUludFZhbHVlAQgFAmRpAl85BAJjTQgFAmRpA18xMAQCZ1kDAwkBAmFOAAYJAAACBQJjeQUBcQkAAgEJAKwCAgIJQmxvY2tlZDogCQCkAwEFAmN5BgMJAAACBQJnWQUCZ1kEAmdaCQD8BwQFAmFMAgRidXJuCQDMCAIFAmNtBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmdoBQJjbQUDbmlsAwkAAAIFAmdaBQJnWgQCaGEJAQJkSAMJAQEtAQUCY0sJAQEtAQUCY0wAAAQCZlEIBQJoYQJfMQQCZEcIBQJoYQJfMgkAzggCBQJjTQUCZlEJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZWEBE3Vuc3Rha2VBbmRHZXROb0xlc3MDAmhiAmhjAmdSBAJnRAMJAQJhTgAGCQAAAgUCYmMFAXEEAmdyCQDMCAIDCQEBIQEFAmdEBgkAAgECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmVhCHBheW1lbnRzAAAGCQACAQIYbm8gcGF5bWVudHMgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZ3IFAmdyBAJnWAkA/AcEBQJiawIHdW5zdGFrZQkAzAgCCQDYBAEFAmJkCQDMCAIFAmhiBQNuaWwFA25pbAMJAAACBQJnWAUCZ1gEAmhkCQECY28ECQDYBAEIBQJlYQ10cmFuc2FjdGlvbklkCQDYBAEFAmJkBQJoYggFAmVhBmNhbGxlcgQCY0sIBQJoZAJfMQQCY0wIBQJoZAJfMgQCY00IBQJoZANfMTAEAmhlCQDMCAIDCQBnAgUCY0sFAmhjBgkAAgEJALkJAgkAzAgCAixhbW91bnQgYXNzZXQgYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmhjBQNuaWwCAAkAzAgCAwkAZwIFAmNMBQJnUgYJAAIBCQC5CQIJAMwIAgIrcHJpY2UgYXNzZXQgYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmdSBQNuaWwCAAUDbmlsAwkAAAIFAmhlBQJoZQQCZ1MJAPwHBAUCYUwCBGJ1cm4JAMwIAgUCaGIFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYmQFAmhiBQNuaWwDCQAAAgUCZ1MFAmdTBAJoZgkBAmRIAwkBAS0BBQJjSwkBAS0BBQJjTAAABAJmUQgFAmhmAl8xBAJkRwgFAmhmAl8yCQDOCAIFAmNNBQJmUQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlYQEVdW5zdGFrZUFuZEdldE9uZVRrblYyAwJoYgJmcwJmdAQCZ3AKAAJmQgkA/AcEBQJhTAIoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmZCAgdCb29sZWFuBQJmQgkAAgEJAKwCAgkAAwEFAmZCAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJnRAMDCQECYU4ABgkAAAIFAmJjBQFxBgUCZ3AEAmdyCQDMCAIDAwkBASEBBQJnRAYJAQJmVQEFAmVhBgkBAmFJAQIhZ2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCZWEIcGF5bWVudHMAAAYJAQJhSQECGG5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmdyBQJncgQCY2MJAQJhUQAEAmdWCQECYmkABAJnaAkA2QQBCQCRAwIFAmNjBQF0BAJnVwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCZ1YFAUECCldyIHN0IGFkZHIEAmdYCQD8BwQFAmdXAgd1bnN0YWtlCQDMCAIJANgEAQUCZ2gJAMwIAgUCaGIFA25pbAUDbmlsAwkAAAIFAmdYBQJnWAQCaGcJAQJmcgYFAmZzBQJmdAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZ2gFAmhiBQNuaWwIBQJlYQZjYWxsZXIIBQJlYQxvcmlnaW5DYWxsZXIIBQJlYQ10cmFuc2FjdGlvbklkBAJjTQgFAmhnAl8xBAJmRAgFAmhnAl8yCQCUCgIFAmNNBQJmRAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlYQEccHV0T25lVGtuVjJXaXRoQm9udXNSRUFET05MWQICaGgCaGkEAmFZCQECYVEABAJjdQkAkQMCBQJhWQUBdQQCY3YJAJEDAgUCYVkFAXYEAmN0CQCRAwIFAmFZBQF0BAJoagkBAmVWBQUCaGgFAmhpAgACAAYEAmZsCAUCaGoCXzEEAmNNCAUCaGoCXzIEAmNuCAUCaGoCXzMEAmZxCAUCaGoCXzQJAJQKAgUDbmlsCQCVCgMFAmZsBQJjbgUCZnECZWEBIXB1dE9uZVRrblYyV2l0aG91dFRha2VGZWVSRUFET05MWQICaGgCaGkEAmFZCQECYVEABAJjdQkAkQMCBQJhWQUBdQQCY3YJAJEDAgUCYVkFAXYEAmN0CQCRAwIFAmFZBQF0BAJoawkBAmVWBQUCaGgFAmhpAgACAAcEAmZsCAUCaGsCXzEEAmNNCAUCaGsCXzIEAmNuCAUCaGsCXzMEAmZxCAUCaGsCXzQJAJQKAgUDbmlsCQCVCgMFAmZsBQJjbgUCZnECZWEBCGFjdGl2YXRlAgJobAJobQMJAQIhPQIJAKUIAQgFAmVhBmNhbGxlcgkApQgBBQJhTAkAAgECBmRlbmllZAkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhYwAFAmhsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhZAAFAmhtBQNuaWwCB3N1Y2Nlc3MCZWEBBHNldFMCAmhuAmdZAwkBAiE9AgkApQgBCAUCZWEGY2FsbGVyCQECYUUCBQR0aGlzCQECYWYABQJmVAkAzAgCCQELU3RyaW5nRW50cnkCBQJobgUCZ1kFA25pbAJlYQEEc2V0SQICaG4CZ1kDCQECIT0CCQClCAEIBQJlYQZjYWxsZXIJAQJhRQIFBHRoaXMJAQJhZgAFAmZUCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJobgUCZ1kFA25pbAJlYQEcZ2V0UG9vbENvbmZpZ1dyYXBwZXJSRUFET05MWQAJAJQKAgUDbmlsCQECYVEAAmVhARxnZXRBY2NCYWxhbmNlV3JhcHBlclJFQURPTkxZAQJiRQkAlAoCBQNuaWwJAQJiRAEFAmJFAmVhARljYWxjUHJpY2VzV3JhcHBlclJFQURPTkxZAwJiVwJiWAJjYgQCaG8JAQJjYQMFAmJXBQJiWAUCY2IJAJQKAgUDbmlsCQDMCAIJAKYDAQkAkQMCBQJobwAACQDMCAIJAKYDAQkAkQMCBQJobwABCQDMCAIJAKYDAQkAkQMCBQJobwACBQNuaWwCZWEBFmZyb21YMThXcmFwcGVyUkVBRE9OTFkCAUoCaHAJAJQKAgUDbmlsCQEBSQIJAKcDAQUBSgUCaHACZWEBFHRvWDE4V3JhcHBlclJFQURPTkxZAgFHAUgJAJQKAgUDbmlsCQCmAwEJAQFGAgUBRwUBSAJlYQEeY2FsY1ByaWNlQmlnSW50V3JhcHBlclJFQURPTkxZAgJiRwJiSAkAlAoCBQNuaWwJAKYDAQkBAmJGAgkApwMBBQJiRwkApwMBBQJiSAJlYQEjZXN0aW1hdGVQdXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkJAmNwAmJMAmNPAmNQAmNRAmNSAmhxAmNTAmNUCQCUCgIFA25pbAkBAmNODQUCY3AFAmJMBQJjTwUCY1AFAmNRBQJjUgUCaHEFAmNTBQJjVAYHAAACAAJlYQEjZXN0aW1hdGVHZXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkEAmNwAmhyAmNyAmhxBAJkaQkBAmNvBAUCY3AFAmhyBQJjcgkBEUBleHRyTmF0aXZlKDEwNjIpAQUCaHEJAJQKAgUDbmlsCQCcCgoIBQJkaQJfMQgFAmRpAl8yCAUCZGkCXzMIBQJkaQJfNAgFAmRpAl81CAUCZGkCXzYIBQJkaQJfNwkApgMBCAUCZGkCXzgIBQJkaQJfOQgFAmRpA18xMAJlYQEOZ2V0RmVlUkVBRE9OTFkACQCUCgIFA25pbAUCYWgBAmhzAQJodAAEAmh1BAJhQwkBAmZSAAMJAAECBQJhQwIKQnl0ZVZlY3RvcgQCZlYFAmFDBQJmVgMJAAECBQJhQwIEVW5pdAgFAmhzD3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yBAJhQwUCaHMDCQABAgUCYUMCBU9yZGVyBAJkUQUCYUMEAmh2CQECYU8ABAJodwkBAmRQAQUCZFEEAmh4CQD0AwMIBQJkUQlib2R5Qnl0ZXMJAJEDAggFAmRRBnByb29mcwAACAUCZFEPc2VuZGVyUHVibGljS2V5BAJoeQkA9AMDCAUCZFEJYm9keUJ5dGVzCQCRAwIIBQJkUQZwcm9vZnMAAQUCaHYDAwMFAmh3BQJoeAcFAmh5BwYJAQJheAMFAmh3BQJoeAUCaHkDCQABAgUCYUMCFFNldFNjcmlwdFRyYW5zYWN0aW9uBAJlbgUCYUMEAmh6CQD2AwEJAQV2YWx1ZQEIBQJlbgZzY3JpcHQEAmhBCQDbBAEJAQV2YWx1ZQEJAJ0IAgUCYUwJAQJhdgAEAmhCCQDxBwEFBHRoaXMDAwkAAAIFAmhBBQJoegkBAiE9AgUCaEIFAmh6BwYJAPQDAwgFAmhzCWJvZHlCeXRlcwkAkQMCCAUCaHMGcHJvb2ZzAAAFAmh1CQD0AwMIBQJocwlib2R5Qnl0ZXMJAJEDAggFAmhzBnByb29mcwAABQJodU+D3yE=", "chainId": 84, "height": 2339550, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AaHe8MUw5hjftKhv8HExXPmrmnNpNWhGxEqaeuq7AN9p Next: 3DiPSmYNmnjCS2ZbnJHKvnMGAwNdqeH9m2jrpnvmZDcS Diff:
OldNewDifferences
742742 then {
743743 let fL = invoke(aL, "burn", [cW], [AttachedPayment(cq, cW)])
744744 if ((fL == fL))
745- then $Tuple2(cM, fD)
745+ then {
746+ let fM = {
747+ let fN = if ((this == aP))
748+ then 0
749+ else cn
750+ let fO = if ((aU(fs) == be))
751+ then true
752+ else false
753+ if (fO)
754+ then $Tuple2(-((fC + fN)), 0)
755+ else $Tuple2(0, -((fC + fN)))
756+ }
757+ let dI = fM._1
758+ let dJ = fM._2
759+ let fP = dH(dI, dJ, 0)
760+ let fQ = fP._1
761+ let dG = fP._2
762+ $Tuple2((cM ++ fQ), fD)
763+ }
746764 else throw("Strict value is not equal to itself.")
747765 }
748766 else throw("Strict value is not equal to itself.")
752770 }
753771
754772
755-func fM () = {
773+func fR () = {
756774 let aC = getString(S())
757775 if ($isInstanceOf(aC, "String"))
758776 then {
765783 }
766784
767785
768-func fN () = {
786+func fS () = {
769787 let aC = getString(T())
770788 if ($isInstanceOf(aC, "String"))
771789 then {
778796 }
779797
780798
781-let fO = throw("Permission denied")
799+let fT = throw("Permission denied")
782800
783-func fP (ea) = {
784- let aC = fM()
801+func fU (ea) = {
802+ let aC = fR()
785803 if ($isInstanceOf(aC, "ByteVector"))
786804 then {
787- let fQ = aC
788- (ea.callerPublicKey == fQ)
805+ let fV = aC
806+ (ea.callerPublicKey == fV)
789807 }
790808 else if ($isInstanceOf(aC, "Unit"))
791809 then (ea.caller == this)
793811 }
794812
795813
796-func fR (ea) = {
797- let aC = fM()
814+func fW (ea) = {
815+ let aC = fR()
798816 if ($isInstanceOf(aC, "ByteVector"))
799817 then {
800- let fQ = aC
801- if ((ea.callerPublicKey == fQ))
818+ let fV = aC
819+ if ((ea.callerPublicKey == fV))
802820 then true
803- else fO
821+ else fT
804822 }
805823 else if ($isInstanceOf(aC, "Unit"))
806824 then if ((ea.caller == this))
807825 then true
808- else fO
826+ else fT
809827 else throw("Match error")
810828 }
811829
812830
813831 @Callable(ea)
814832 func constructor (R) = {
815- let eO = fR(ea)
833+ let eO = fW(ea)
816834 if ((eO == eO))
817835 then [StringEntry(R(), R)]
818836 else throw("Strict value is not equal to itself.")
821839
822840
823841 @Callable(ea)
824-func setManager (fS) = {
825- let eO = fR(ea)
842+func setManager (fX) = {
843+ let eO = fW(ea)
826844 if ((eO == eO))
827845 then {
828- let fT = fromBase58String(fS)
829- if ((fT == fT))
830- then [StringEntry(T(), fS)]
846+ let fY = fromBase58String(fX)
847+ if ((fY == fY))
848+ then [StringEntry(T(), fX)]
831849 else throw("Strict value is not equal to itself.")
832850 }
833851 else throw("Strict value is not equal to itself.")
837855
838856 @Callable(ea)
839857 func confirmManager () = {
840- let ck = fN()
841- let fU = if (isDefined(ck))
858+ let ck = fS()
859+ let fZ = if (isDefined(ck))
842860 then true
843861 else throw("No pending manager")
844- if ((fU == fU))
862+ if ((fZ == fZ))
845863 then {
846- let fV = if ((ea.callerPublicKey == value(ck)))
864+ let ga = if ((ea.callerPublicKey == value(ck)))
847865 then true
848866 else throw("You are not pending manager")
849- if ((fV == fV))
867+ if ((ga == ga))
850868 then [StringEntry(S(), toBase58String(value(ck))), DeleteEntry(T())]
851869 else throw("Strict value is not equal to itself.")
852870 }
856874
857875
858876 @Callable(ea)
859-func put (fW,fX) = {
860- let fY = bi()
861- let fZ = valueOrErrorMessage(addressFromString(fY[A]), "Wr st addr")
862- let ga = valueOrErrorMessage(addressFromString(fY[C]), "Wr sl addr")
863- if ((0 > fW))
877+func put (gb,gc) = {
878+ let gd = bi()
879+ let ge = valueOrErrorMessage(addressFromString(gd[A]), "Wr st addr")
880+ let gf = valueOrErrorMessage(addressFromString(gd[C]), "Wr sl addr")
881+ if ((0 > gb))
864882 then throw("Wrong slippage")
865883 else if ((size(ea.payments) != 2))
866884 then throw("2 pmnts expd")
867885 else {
868- let gb = ec(toString(ea.caller), toBase58String(ea.transactionId), AttachedPayment(value(ea.payments[0]).assetId, value(ea.payments[0]).amount), ea.payments[1], fW, true, false, true, 0, "")
869- let dv = gb._2
870- let gc = gb._7
871- let cM = gb._9
872- let dw = gb._10
873- let dx = gb._11
874- let cu = gb._12
875- let cv = gb._13
886+ let gg = ec(toString(ea.caller), toBase58String(ea.transactionId), AttachedPayment(value(ea.payments[0]).assetId, value(ea.payments[0]).amount), ea.payments[1], gb, true, false, true, 0, "")
887+ let dv = gg._2
888+ let gh = gg._7
889+ let cM = gg._9
890+ let dw = gg._10
891+ let dx = gg._11
892+ let cu = gg._12
893+ let cv = gg._13
876894 let di = invoke(aL, "emit", [dv], nil)
877895 if ((di == di))
878896 then {
879- let gd = {
897+ let gi = {
880898 let aC = di
881899 if ($isInstanceOf(aC, "Address"))
882900 then {
883- let ge = aC
884- invoke(ge, "emit", [dv], nil)
901+ let gj = aC
902+ invoke(gj, "emit", [dv], nil)
885903 }
886904 else unit
887905 }
888- if ((gd == gd))
906+ if ((gi == gi))
889907 then {
890- let gf = if ((dw > 0))
891- then invoke(ga, "put", nil, [AttachedPayment(cu, dw)])
908+ let gk = if ((dw > 0))
909+ then invoke(gf, "put", nil, [AttachedPayment(cu, dw)])
892910 else nil
893- if ((gf == gf))
911+ if ((gk == gk))
894912 then {
895- let gg = if ((dx > 0))
896- then invoke(ga, "put", nil, [AttachedPayment(cv, dx)])
913+ let gl = if ((dx > 0))
914+ then invoke(gf, "put", nil, [AttachedPayment(cv, dx)])
897915 else nil
898- if ((gg == gg))
916+ if ((gl == gl))
899917 then {
900- let gh = if (fX)
918+ let gm = if (gc)
901919 then {
902- let gi = invoke(fZ, "stake", nil, [AttachedPayment(gc, dv)])
903- if ((gi == gi))
920+ let gn = invoke(ge, "stake", nil, [AttachedPayment(gh, dv)])
921+ if ((gn == gn))
904922 then nil
905923 else throw("Strict value is not equal to itself.")
906924 }
907- else [ScriptTransfer(ea.caller, dv, gc)]
908- (cM ++ gh)
925+ else [ScriptTransfer(ea.caller, dv, gh)]
926+ let go = dH(0, 0, 0)
927+ let fQ = go._1
928+ let dG = go._2
929+ ((cM ++ gm) ++ fQ)
909930 }
910931 else throw("Strict value is not equal to itself.")
911932 }
920941
921942
922943 @Callable(ea)
923-func putOneTknV2 (ft,fX) = {
924- let gj = {
944+func putOneTknV2 (ft,gc) = {
945+ let gp = {
925946 let fB = invoke(aL, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
926947 if ($isInstanceOf(fB, "Boolean"))
927948 then fB
928949 else throw(($getType(fB) + " couldn't be cast to Boolean"))
929950 }
930- let gk = if (if (if (aN())
951+ let gq = if (if (if (aN())
931952 then true
932953 else (bc == o))
933954 then true
934955 else (bc == q))
935956 then true
936- else gj
937- let gl = [if (if (!(gk))
957+ else gp
958+ let gr = [if (if (!(gq))
938959 then true
939- else fP(ea))
960+ else fU(ea))
940961 then true
941962 else aI("put operation is blocked by admin"), if ((size(ea.payments) == 1))
942963 then true
943964 else aI("exactly 1 payment are expected")]
944- if ((gl == gl))
965+ if ((gr == gr))
945966 then {
946967 let aY = aQ()
947968 let cu = aY[u]
955976 let eb = value(ea.payments[0])
956977 let cq = toBase58String(value(eb.assetId))
957978 let cW = eb.amount
958- let gm = eV(cW, cq, toString(cs), toBase58String(ea.transactionId), true)
959- if ((gm == gm))
979+ let gs = eV(cW, cq, toString(cs), toBase58String(ea.transactionId), true)
980+ if ((gs == gs))
960981 then {
961- let cn = gm._3
962- let cM = gm._2
963- let gn = gm._1
982+ let cn = gs._3
983+ let cM = gs._2
984+ let gt = gs._1
964985 let dv = if (if ((ft > 0))
965- then (ft > gn)
986+ then (ft > gt)
966987 else false)
967988 then aI(makeString(["amount to receive is less than ", toString(ft)], ""))
968- else gn
969- let gb = invoke(aL, "emit", [dv], nil)
970- if ((gb == gb))
989+ else gt
990+ let gg = invoke(aL, "emit", [dv], nil)
991+ if ((gg == gg))
971992 then {
972- let gd = {
973- let aC = gb
993+ let gi = {
994+ let aC = gg
974995 if ($isInstanceOf(aC, "Address"))
975996 then {
976- let ge = aC
977- invoke(ge, "emit", [dv], nil)
997+ let gj = aC
998+ invoke(gj, "emit", [dv], nil)
978999 }
9791000 else unit
9801001 }
981- if ((gd == gd))
1002+ if ((gi == gi))
9821003 then {
983- let gh = if (fX)
1004+ let gm = if (gc)
9841005 then {
985- let gi = invoke(bk, "stake", nil, [AttachedPayment(ct, dv)])
986- if ((gi == gi))
1006+ let gn = invoke(bk, "stake", nil, [AttachedPayment(ct, dv)])
1007+ if ((gn == gn))
9871008 then nil
9881009 else throw("Strict value is not equal to itself.")
9891010 }
9911012 let fK = if ((cn > 0))
9921013 then [ScriptTransfer(aP, cn, fromBase58String(cq))]
9931014 else nil
994- $Tuple2(((cM ++ gh) ++ fK), dv)
1015+ let gu = if ((this == aP))
1016+ then $Tuple2(0, 0)
1017+ else {
1018+ let gv = if ((eb.assetId == be))
1019+ then true
1020+ else false
1021+ if (gv)
1022+ then $Tuple2(-(cn), 0)
1023+ else $Tuple2(0, -(cn))
1024+ }
1025+ let dI = gu._1
1026+ let dJ = gu._2
1027+ let gw = dH(dI, dJ, 0)
1028+ let fQ = gw._1
1029+ let dG = gw._2
1030+ $Tuple2((((cM ++ gm) ++ fK) ++ fQ), dv)
9951031 }
9961032 else throw("Strict value is not equal to itself.")
9971033 }
10051041
10061042
10071043 @Callable(ea)
1008-func putForFree (go) = if ((0 > go))
1044+func putForFree (gx) = if ((0 > gx))
10091045 then throw("Wrong slpg")
10101046 else if ((size(ea.payments) != 2))
10111047 then throw("2 pmnts expd")
10121048 else {
1013- let gp = ec(toString(ea.caller), toBase58String(ea.transactionId), AttachedPayment(value(ea.payments[0]).assetId, value(ea.payments[0]).amount), ea.payments[1], go, false, false, true, 0, "")
1014- gp._9
1049+ let gy = ec(toString(ea.caller), toBase58String(ea.transactionId), AttachedPayment(value(ea.payments[0]).assetId, value(ea.payments[0]).amount), ea.payments[1], gx, false, false, true, 0, "")
1050+ let cM = gy._9
1051+ let gz = dH(0, 0, 0)
1052+ let fQ = gz._1
1053+ let gA = gz._2
1054+ (cM ++ fQ)
10151055 }
10161056
10171057
10191059 @Callable(ea)
10201060 func get () = {
10211061 let di = dZ(ea)
1022- let gq = di._1
1062+ let gB = di._1
10231063 let cL = di._2
10241064 let cW = di._3
10251065 let cq = di._4
10261066 let cM = di._5
10271067 let eP = invoke(aL, "burn", [cW], [AttachedPayment(cq, cW)])
10281068 if ((eP == eP))
1029- then cM
1069+ then {
1070+ let gC = dH(-(gB), -(cL), 0)
1071+ let fQ = gC._1
1072+ let dG = gC._2
1073+ (cM ++ fQ)
1074+ }
10301075 else throw("Strict value is not equal to itself.")
10311076 }
10321077
10341079
10351080 @Callable(ea)
10361081 func getOneTknV2 (fs,ft) = {
1037- let gj = {
1082+ let gp = {
10381083 let fB = invoke(aL, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
10391084 if ($isInstanceOf(fB, "Boolean"))
10401085 then fB
10411086 else throw(($getType(fB) + " couldn't be cast to Boolean"))
10421087 }
1043- let gr = if (if (aN())
1088+ let gD = if (if (aN())
10441089 then true
10451090 else (bc == q))
10461091 then true
1047- else gj
1048- let gl = [if (if (!(gr))
1092+ else gp
1093+ let gr = [if (if (!(gD))
10491094 then true
1050- else fP(ea))
1095+ else fU(ea))
10511096 then true
10521097 else aI("get operation is blocked by admin"), if ((size(ea.payments) == 1))
10531098 then true
10541099 else aI("exactly 1 payment are expected")]
1055- if ((gl == gl))
1100+ if ((gr == gr))
10561101 then {
1057- let gs = fr(fs, ft, ea.payments, ea.caller, ea.originCaller, ea.transactionId)
1058- let cM = gs._1
1059- let fD = gs._2
1102+ let gE = fr(fs, ft, ea.payments, ea.caller, ea.originCaller, ea.transactionId)
1103+ let cM = gE._1
1104+ let fD = gE._2
10601105 $Tuple2(cM, fD)
10611106 }
10621107 else throw("Strict value is not equal to itself.")
10661111
10671112 @Callable(ea)
10681113 func refreshDLp () = {
1069- let gt = valueOrElse(getInteger(aj), 0)
1070- let gu = if (((height - gt) >= am))
1114+ let gF = valueOrElse(getInteger(aj), 0)
1115+ let gG = if (((height - gF) >= am))
10711116 then unit
10721117 else aI(makeString([toString(am), " blocks have not passed since the previous call"], ""))
1073- if ((gu == gu))
1118+ if ((gG == gG))
10741119 then {
1075- let gv = dH(0, 0, 0)
1076- let dO = gv._1
1077- let gw = gv._2
1078- $Tuple2(dO, toString(gw))
1120+ let gH = dH(0, 0, 0)
1121+ let dO = gH._1
1122+ let gA = gH._2
1123+ $Tuple2(dO, toString(gA))
10791124 }
10801125 else throw("Strict value is not equal to itself.")
10811126 }
10831128
10841129
10851130 @Callable(ea)
1086-func getOneTknV2READONLY (fs,gx) = {
1131+func getOneTknV2READONLY (fs,gI) = {
10871132 let aY = aQ()
10881133 let cu = aY[u]
10891134 let cv = aY[v]
10911136 let eh = [toBigInt(bD(cu)), toBigInt(bD(cv))]
10921137 let dF = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(ct)), "invalid lp asset").quantity)
10931138 let bQ = eg(eh)
1094- let bP = (bQ - fraction(toBigInt(gx), bQ, dF))
1095- let gy = if ((fs == cu))
1139+ let bP = (bQ - fraction(toBigInt(gI), bQ, dF))
1140+ let gJ = if ((fs == cu))
10961141 then 0
10971142 else if ((fs == cv))
10981143 then 1
10991144 else throw("invalid out asset id")
1100- let gz = eL(eh, gy, bP)
1101- let gA = (eh[gy] - gz)
1102- let gB = max([0, toInt((gA - f))])
1103- let gC = cl(gB)
1104- let fC = gC._1
1105- let cn = gC._2
1145+ let gK = eL(eh, gJ, bP)
1146+ let gL = (eh[gJ] - gK)
1147+ let gM = max([0, toInt((gL - f))])
1148+ let gN = cl(gM)
1149+ let fC = gN._1
1150+ let cn = gN._2
11061151 $Tuple2(nil, $Tuple2(fC, cn))
11071152 }
11081153
11091154
11101155
11111156 @Callable(ea)
1112-func getOneTknV2WithBonusREADONLY (fs,gx) = {
1157+func getOneTknV2WithBonusREADONLY (fs,gI) = {
11131158 let aY = aQ()
11141159 let cu = aY[u]
11151160 let cv = aY[v]
11161161 let ct = aY[t]
11171162 let cA = bD(cu)
11181163 let cC = bD(cv)
1119- let gD = {
1120- let fB = invoke(this, "getOneTknV2READONLY", [fs, gx], nil)
1164+ let gO = {
1165+ let fB = invoke(this, "getOneTknV2READONLY", [fs, gI], nil)
11211166 if ($isInstanceOf(fB, "(Int, Int)"))
11221167 then fB
11231168 else throw(($getType(fB) + " couldn't be cast to (Int, Int)"))
11241169 }
1125- let fC = gD._1
1126- let cn = gD._2
1127- let di = co("", ct, gx, this)
1170+ let fC = gO._1
1171+ let cn = gO._2
1172+ let di = co("", ct, gI, this)
11281173 let cK = di._1
11291174 let cL = di._2
1130- let gE = (cK + cL)
1131- let fq = if ((gE == 0))
1175+ let gP = (cK + cL)
1176+ let fq = if ((gP == 0))
11321177 then if ((fC == 0))
11331178 then 0
11341179 else throw("bonus calculation error")
1135- else fraction((fC - gE), a, gE)
1180+ else fraction((fC - gP), a, gP)
11361181 $Tuple2(nil, $Tuple3(fC, cn, fq))
11371182 }
11381183
11391184
11401185
11411186 @Callable(ea)
1142-func getNoLess (gF,gG) = {
1187+func getNoLess (gQ,gR) = {
11431188 let di = dZ(ea)
11441189 let cK = di._1
11451190 let cL = di._2
11461191 let cW = di._3
11471192 let cq = di._4
11481193 let cM = di._5
1149- if ((gF > cK))
1150- then throw(((("Failed: " + toString(cK)) + " < ") + toString(gF)))
1151- else if ((gG > cL))
1152- then throw(((("Failed: " + toString(cL)) + " < ") + toString(gG)))
1194+ if ((gQ > cK))
1195+ then throw(((("Failed: " + toString(cK)) + " < ") + toString(gQ)))
1196+ else if ((gR > cL))
1197+ then throw(((("Failed: " + toString(cL)) + " < ") + toString(gR)))
11531198 else {
1154- let gH = invoke(aL, "burn", [cW], [AttachedPayment(cq, cW)])
1155- if ((gH == gH))
1156- then cM
1199+ let gS = invoke(aL, "burn", [cW], [AttachedPayment(cq, cW)])
1200+ if ((gS == gS))
1201+ then {
1202+ let gT = dH(-(cK), -(cL), 0)
1203+ let fQ = gT._1
1204+ let dG = gT._2
1205+ (cM ++ fQ)
1206+ }
11571207 else throw("Strict value is not equal to itself.")
11581208 }
11591209 }
11621212
11631213 @Callable(ea)
11641214 func unstakeAndGet (cm) = {
1165- let gI = if ((size(ea.payments) != 0))
1215+ let gU = if ((size(ea.payments) != 0))
11661216 then throw("No pmnts expd")
11671217 else true
1168- if ((gI == gI))
1218+ if ((gU == gU))
11691219 then {
11701220 let cc = aQ()
1171- let gJ = bi()
1172- let gc = fromBase58String(cc[t])
1173- let gK = valueOrErrorMessage(addressFromString(gJ[A]), "Wr st addr")
1174- let gL = invoke(gK, "unstake", [toBase58String(gc), cm], nil)
1175- if ((gL == gL))
1221+ let gV = bi()
1222+ let gh = fromBase58String(cc[t])
1223+ let gW = valueOrErrorMessage(addressFromString(gV[A]), "Wr st addr")
1224+ let gX = invoke(gW, "unstake", [toBase58String(gh), cm], nil)
1225+ if ((gX == gX))
11761226 then {
1177- let di = co(toBase58String(ea.transactionId), toBase58String(gc), cm, ea.caller)
1227+ let di = co(toBase58String(ea.transactionId), toBase58String(gh), cm, ea.caller)
1228+ let cK = di._1
1229+ let cL = di._2
11781230 let cy = parseIntValue(di._9)
11791231 let cM = di._10
1180- let gM = if (if (aN())
1232+ let gY = if (if (aN())
11811233 then true
11821234 else (cy == q))
11831235 then throw(("Blocked: " + toString(cy)))
11841236 else true
1185- if ((gM == gM))
1237+ if ((gY == gY))
11861238 then {
1187- let gN = invoke(aL, "burn", [cm], [AttachedPayment(gc, cm)])
1188- if ((gN == gN))
1189- then cM
1239+ let gZ = invoke(aL, "burn", [cm], [AttachedPayment(gh, cm)])
1240+ if ((gZ == gZ))
1241+ then {
1242+ let ha = dH(-(cK), -(cL), 0)
1243+ let fQ = ha._1
1244+ let dG = ha._2
1245+ (cM ++ fQ)
1246+ }
11901247 else throw("Strict value is not equal to itself.")
11911248 }
11921249 else throw("Strict value is not equal to itself.")
11991256
12001257
12011258 @Callable(ea)
1202-func unstakeAndGetNoLess (gO,gP,gG) = {
1203- let gr = if (aN())
1259+func unstakeAndGetNoLess (hb,hc,gR) = {
1260+ let gD = if (aN())
12041261 then true
12051262 else (bc == q)
1206- let gl = [if (!(gr))
1263+ let gr = [if (!(gD))
12071264 then true
12081265 else throw("get operation is blocked by admin"), if ((size(ea.payments) == 0))
12091266 then true
12101267 else throw("no payments are expected")]
1211- if ((gl == gl))
1268+ if ((gr == gr))
12121269 then {
1213- let gL = invoke(bk, "unstake", [toBase58String(bd), gO], nil)
1214- if ((gL == gL))
1270+ let gX = invoke(bk, "unstake", [toBase58String(bd), hb], nil)
1271+ if ((gX == gX))
12151272 then {
1216- let gQ = co(toBase58String(ea.transactionId), toBase58String(bd), gO, ea.caller)
1217- let cK = gQ._1
1218- let cL = gQ._2
1219- let cM = gQ._10
1220- let gR = [if ((cK >= gP))
1273+ let hd = co(toBase58String(ea.transactionId), toBase58String(bd), hb, ea.caller)
1274+ let cK = hd._1
1275+ let cL = hd._2
1276+ let cM = hd._10
1277+ let he = [if ((cK >= hc))
12211278 then true
1222- else throw(makeString(["amount asset amount to receive is less than ", toString(gP)], "")), if ((cL >= gG))
1279+ else throw(makeString(["amount asset amount to receive is less than ", toString(hc)], "")), if ((cL >= gR))
12231280 then true
1224- else throw(makeString(["price asset amount to receive is less than ", toString(gG)], ""))]
1225- if ((gR == gR))
1281+ else throw(makeString(["price asset amount to receive is less than ", toString(gR)], ""))]
1282+ if ((he == he))
12261283 then {
1227- let gH = invoke(aL, "burn", [gO], [AttachedPayment(bd, gO)])
1228- if ((gH == gH))
1229- then cM
1284+ let gS = invoke(aL, "burn", [hb], [AttachedPayment(bd, hb)])
1285+ if ((gS == gS))
1286+ then {
1287+ let hf = dH(-(cK), -(cL), 0)
1288+ let fQ = hf._1
1289+ let dG = hf._2
1290+ (cM ++ fQ)
1291+ }
12301292 else throw("Strict value is not equal to itself.")
12311293 }
12321294 else throw("Strict value is not equal to itself.")
12391301
12401302
12411303 @Callable(ea)
1242-func unstakeAndGetOneTknV2 (gO,fs,ft) = {
1243- let gj = {
1304+func unstakeAndGetOneTknV2 (hb,fs,ft) = {
1305+ let gp = {
12441306 let fB = invoke(aL, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
12451307 if ($isInstanceOf(fB, "Boolean"))
12461308 then fB
12471309 else throw(($getType(fB) + " couldn't be cast to Boolean"))
12481310 }
1249- let gr = if (if (aN())
1311+ let gD = if (if (aN())
12501312 then true
12511313 else (bc == q))
12521314 then true
1253- else gj
1254- let gl = [if (if (!(gr))
1315+ else gp
1316+ let gr = [if (if (!(gD))
12551317 then true
1256- else fP(ea))
1318+ else fU(ea))
12571319 then true
12581320 else aI("get operation is blocked by admin"), if ((size(ea.payments) == 0))
12591321 then true
12601322 else aI("no payments are expected")]
1261- if ((gl == gl))
1323+ if ((gr == gr))
12621324 then {
12631325 let cc = aQ()
1264- let gJ = bi()
1265- let gc = fromBase58String(cc[t])
1266- let gK = valueOrErrorMessage(addressFromString(gJ[A]), "Wr st addr")
1267- let gL = invoke(gK, "unstake", [toBase58String(gc), gO], nil)
1268- if ((gL == gL))
1326+ let gV = bi()
1327+ let gh = fromBase58String(cc[t])
1328+ let gW = valueOrErrorMessage(addressFromString(gV[A]), "Wr st addr")
1329+ let gX = invoke(gW, "unstake", [toBase58String(gh), hb], nil)
1330+ if ((gX == gX))
12691331 then {
1270- let gS = fr(fs, ft, [AttachedPayment(gc, gO)], ea.caller, ea.originCaller, ea.transactionId)
1271- let cM = gS._1
1272- let fD = gS._2
1332+ let hg = fr(fs, ft, [AttachedPayment(gh, hb)], ea.caller, ea.originCaller, ea.transactionId)
1333+ let cM = hg._1
1334+ let fD = hg._2
12731335 $Tuple2(cM, fD)
12741336 }
12751337 else throw("Strict value is not equal to itself.")
12801342
12811343
12821344 @Callable(ea)
1283-func putOneTknV2WithBonusREADONLY (gT,gU) = {
1345+func putOneTknV2WithBonusREADONLY (hh,hi) = {
12841346 let aY = aQ()
12851347 let cu = aY[u]
12861348 let cv = aY[v]
12871349 let ct = aY[t]
1288- let gV = eV(gT, gU, "", "", true)
1289- let fl = gV._1
1290- let cM = gV._2
1291- let cn = gV._3
1292- let fq = gV._4
1350+ let hj = eV(hh, hi, "", "", true)
1351+ let fl = hj._1
1352+ let cM = hj._2
1353+ let cn = hj._3
1354+ let fq = hj._4
12931355 $Tuple2(nil, $Tuple3(fl, cn, fq))
12941356 }
12951357
12961358
12971359
12981360 @Callable(ea)
1299-func putOneTknV2WithoutTakeFeeREADONLY (gT,gU) = {
1361+func putOneTknV2WithoutTakeFeeREADONLY (hh,hi) = {
13001362 let aY = aQ()
13011363 let cu = aY[u]
13021364 let cv = aY[v]
13031365 let ct = aY[t]
1304- let gW = eV(gT, gU, "", "", false)
1305- let fl = gW._1
1306- let cM = gW._2
1307- let cn = gW._3
1308- let fq = gW._4
1366+ let hk = eV(hh, hi, "", "", false)
1367+ let fl = hk._1
1368+ let cM = hk._2
1369+ let cn = hk._3
1370+ let fq = hk._4
13091371 $Tuple2(nil, $Tuple3(fl, cn, fq))
13101372 }
13111373
13121374
13131375
13141376 @Callable(ea)
1315-func activate (gX,gY) = if ((toString(ea.caller) != toString(aL)))
1377+func activate (hl,hm) = if ((toString(ea.caller) != toString(aL)))
13161378 then throw("denied")
1317- else $Tuple2([StringEntry(ac(), gX), StringEntry(ad(), gY)], "success")
1379+ else $Tuple2([StringEntry(ac(), hl), StringEntry(ad(), hm)], "success")
13181380
13191381
13201382
13211383 @Callable(ea)
1322-func setS (gZ,gM) = if ((toString(ea.caller) != aE(this, af())))
1323- then fO
1324- else [StringEntry(gZ, gM)]
1384+func setS (hn,gY) = if ((toString(ea.caller) != aE(this, af())))
1385+ then fT
1386+ else [StringEntry(hn, gY)]
13251387
13261388
13271389
13281390 @Callable(ea)
1329-func setI (gZ,gM) = if ((toString(ea.caller) != aE(this, af())))
1330- then fO
1331- else [IntegerEntry(gZ, gM)]
1391+func setI (hn,gY) = if ((toString(ea.caller) != aE(this, af())))
1392+ then fT
1393+ else [IntegerEntry(hn, gY)]
13321394
13331395
13341396
13441406
13451407 @Callable(ea)
13461408 func calcPricesWrapperREADONLY (bW,bX,cb) = {
1347- let ha = ca(bW, bX, cb)
1348- $Tuple2(nil, [toString(ha[0]), toString(ha[1]), toString(ha[2])])
1409+ let ho = ca(bW, bX, cb)
1410+ $Tuple2(nil, [toString(ho[0]), toString(ho[1]), toString(ho[2])])
13491411 }
13501412
13511413
13521414
13531415 @Callable(ea)
1354-func fromX18WrapperREADONLY (J,hb) = $Tuple2(nil, I(parseBigIntValue(J), hb))
1416+func fromX18WrapperREADONLY (J,hp) = $Tuple2(nil, I(parseBigIntValue(J), hp))
13551417
13561418
13571419
13661428
13671429
13681430 @Callable(ea)
1369-func estimatePutOperationWrapperREADONLY (cp,bL,cO,cP,cQ,cR,hc,cS,cT) = $Tuple2(nil, cN(cp, bL, cO, cP, cQ, cR, hc, cS, cT, true, false, 0, ""))
1431+func estimatePutOperationWrapperREADONLY (cp,bL,cO,cP,cQ,cR,hq,cS,cT) = $Tuple2(nil, cN(cp, bL, cO, cP, cQ, cR, hq, cS, cT, true, false, 0, ""))
13701432
13711433
13721434
13731435 @Callable(ea)
1374-func estimateGetOperationWrapperREADONLY (cp,hd,cr,hc) = {
1375- let di = co(cp, hd, cr, addressFromStringValue(hc))
1436+func estimateGetOperationWrapperREADONLY (cp,hr,cr,hq) = {
1437+ let di = co(cp, hr, cr, addressFromStringValue(hq))
13761438 $Tuple2(nil, $Tuple10(di._1, di._2, di._3, di._4, di._5, di._6, di._7, toString(di._8), di._9, di._10))
13771439 }
13781440
13821444 func getFeeREADONLY () = $Tuple2(nil, ah)
13831445
13841446
1385-@Verifier(he)
1386-func hf () = {
1387- let hg = {
1388- let aC = fM()
1447+@Verifier(hs)
1448+func ht () = {
1449+ let hu = {
1450+ let aC = fR()
13891451 if ($isInstanceOf(aC, "ByteVector"))
13901452 then {
1391- let fQ = aC
1392- fQ
1453+ let fV = aC
1454+ fV
13931455 }
13941456 else if ($isInstanceOf(aC, "Unit"))
1395- then he.senderPublicKey
1457+ then hs.senderPublicKey
13961458 else throw("Match error")
13971459 }
1398- let aC = he
1460+ let aC = hs
13991461 if ($isInstanceOf(aC, "Order"))
14001462 then {
14011463 let dQ = aC
1402- let hh = aO()
1403- let hi = dP(dQ)
1404- let hj = sigVerify(dQ.bodyBytes, dQ.proofs[0], dQ.senderPublicKey)
1405- let hk = sigVerify(dQ.bodyBytes, dQ.proofs[1], hh)
1406- if (if (if (hi)
1407- then hj
1464+ let hv = aO()
1465+ let hw = dP(dQ)
1466+ let hx = sigVerify(dQ.bodyBytes, dQ.proofs[0], dQ.senderPublicKey)
1467+ let hy = sigVerify(dQ.bodyBytes, dQ.proofs[1], hv)
1468+ if (if (if (hw)
1469+ then hx
14081470 else false)
1409- then hk
1471+ then hy
14101472 else false)
14111473 then true
1412- else ax(hi, hj, hk)
1474+ else ax(hw, hx, hy)
14131475 }
14141476 else if ($isInstanceOf(aC, "SetScriptTransaction"))
14151477 then {
14161478 let en = aC
1417- let hl = blake2b256(value(en.script))
1418- let hm = fromBase64String(value(getString(aL, av())))
1419- let hn = scriptHash(this)
1420- if (if ((hm == hl))
1421- then (hn != hl)
1479+ let hz = blake2b256(value(en.script))
1480+ let hA = fromBase64String(value(getString(aL, av())))
1481+ let hB = scriptHash(this)
1482+ if (if ((hA == hz))
1483+ then (hB != hz)
14221484 else false)
14231485 then true
1424- else sigVerify(he.bodyBytes, he.proofs[0], hg)
1486+ else sigVerify(hs.bodyBytes, hs.proofs[0], hu)
14251487 }
1426- else sigVerify(he.bodyBytes, he.proofs[0], hg)
1488+ else sigVerify(hs.bodyBytes, hs.proofs[0], hu)
14271489 }
14281490
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((a - ((a * 1) / a)))
1919
2020 let i = "WAVES"
2121
2222 let j = "100"
2323
2424 let k = "1"
2525
2626 let l = "__"
2727
2828 let m = ""
2929
3030 let n = 1
3131
3232 let o = 2
3333
3434 let p = 3
3535
3636 let q = 4
3737
3838 let r = 1
3939
4040 let s = 2
4141
4242 let t = 3
4343
4444 let u = 4
4545
4646 let v = 5
4747
4848 let w = 6
4949
5050 let x = 7
5151
5252 let y = 8
5353
5454 let z = 9
5555
5656 let A = 1
5757
5858 let B = 6
5959
6060 let C = 7
6161
6262 let D = 10
6363
6464 let E = fraction(10, a, 10000)
6565
6666 func F (G,H) = fraction(toBigInt(G), c, toBigInt(H))
6767
6868
6969 func I (J,K) = toInt(fraction(J, toBigInt(K), c))
7070
7171
7272 func L (M,N,O) = fraction(M, N, O)
7373
7474
7575 func P (J) = if ((d > J))
7676 then -(J)
7777 else J
7878
7979
8080 func Q (J) = if ((d > J))
8181 then -(J)
8282 else J
8383
8484
8585 func R () = "%s__factoryContract"
8686
8787
8888 func S () = "%s__managerPublicKey"
8989
9090
9191 func T () = "%s__pendingManagerPublicKey"
9292
9393
9494 func U () = "%s%s__price__last"
9595
9696
9797 func V (W,X) = makeString(["%s%s%d%d__price__history", toString(W), toString(X)], l)
9898
9999
100100 func Y (Z,aa) = ((("%s%s%s__P__" + Z) + "__") + aa)
101101
102102
103103 func ab (Z,aa) = ((("%s%s%s__G__" + Z) + "__") + aa)
104104
105105
106106 func ac () = "%s__amountAsset"
107107
108108
109109 func ad () = "%s__priceAsset"
110110
111111
112112 func ae () = "%s__amp"
113113
114114
115115 func af () = "%s__addonAddr"
116116
117117
118118 let ag = "%s__fee"
119119
120120 let ah = valueOrElse(getInteger(this, ag), E)
121121
122122 let ai = makeString(["%s", "dLp"], l)
123123
124124 let aj = makeString(["%s", "dLpRefreshedHeight"], l)
125125
126126 let ak = makeString(["%s", "refreshDLpDelay"], l)
127127
128128 let al = 30
129129
130130 let am = valueOrElse(getInteger(this, ak), al)
131131
132132 func an () = "%s__factoryConfig"
133133
134134
135135 func ao () = "%s%s__matcher__publicKey"
136136
137137
138138 func ap (aq,ar) = (((("%d%d%s__" + aq) + "__") + ar) + "__config")
139139
140140
141141 func as (at) = ("%s%s%s__mappings__baseAsset2internalId__" + at)
142142
143143
144144 func au () = "%s__shutdown"
145145
146146
147147 func av () = "%s__allowedLpStableScriptHash"
148148
149149
150150 func aw () = "%s__feeCollectorAddress"
151151
152152
153153 func ax (ay,az,aA) = throw(((((("Failed: ordValid=" + toString(ay)) + " sndrValid=") + toString(az)) + " mtchrValid=") + toString(aA)))
154154
155155
156156 func aB (J) = {
157157 let aC = J
158158 if ($isInstanceOf(aC, "String"))
159159 then {
160160 let aD = aC
161161 aD
162162 }
163163 else throw("fail cast to String")
164164 }
165165
166166
167167 func aE (aF,aG) = valueOrErrorMessage(getString(aF, aG), makeString(["mandatory ", toString(aF), ".", aG, " not defined"], ""))
168168
169169
170170 func aH (aF,aG) = valueOrErrorMessage(getInteger(aF, aG), makeString(["mandatory ", toString(aF), ".", aG, " not defined"], ""))
171171
172172
173173 func aI (aJ) = throw(makeString(["lp_stable.ride:", aJ], " "))
174174
175175
176176 func aK (aJ) = makeString(["lp_stable.ride:", aJ], " ")
177177
178178
179179 let aL = addressFromStringValue(aE(this, R()))
180180
181181 let aM = aE(this, ae())
182182
183183 func aN () = valueOrElse(getBoolean(aL, au()), false)
184184
185185
186186 func aO () = fromBase58String(aE(aL, ao()))
187187
188188
189189 let aP = addressFromStringValue(aE(aL, aw()))
190190
191191 func aQ () = {
192192 let aR = aE(this, ac())
193193 let aS = aE(this, ad())
194194 let aT = aH(aL, as(aS))
195195 let aq = aH(aL, as(aR))
196196 split(aE(aL, ap(toString(aq), toString(aT))), l)
197197 }
198198
199199
200200 func aU (aV) = if ((aV == i))
201201 then unit
202202 else fromBase58String(aV)
203203
204204
205205 func aW (aV) = if ((aV == unit))
206206 then i
207207 else toBase58String(value(aV))
208208
209209
210210 func aX (aY) = $Tuple7(addressFromStringValue(aY[r]), parseIntValue(aY[s]), fromBase58String(aY[t]), aU(aY[u]), aU(aY[v]), parseIntValue(aY[w]), parseIntValue(aY[x]))
211211
212212
213213 let aZ = aX(aQ())
214214
215215 let ba = aZ
216216
217217 let bb = ba._1
218218
219219 let bc = ba._2
220220
221221 let bd = ba._3
222222
223223 let be = ba._4
224224
225225 let bf = ba._5
226226
227227 let bg = ba._6
228228
229229 let bh = ba._7
230230
231231 func bi () = split(aE(aL, an()), l)
232232
233233
234234 let bj = bi()
235235
236236 let bk = valueOrErrorMessage(addressFromString(bj[A]), "Invalid staking contract address")
237237
238238 let bl = valueOrErrorMessage(addressFromString(bj[C]), "Invalid slipage contract address")
239239
240240 let bm = valueOrErrorMessage(addressFromString(bj[D]), "Invalid gwx contract address")
241241
242242 let bn = valueOrErrorMessage(addressFromString(bj[B]), "Invalid gwx contract address")
243243
244244 func bo (bp,bq,br,bs,bt,bu,bv,bw,bx,by) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bp), toString(bq), toString(br), toString(bs), toString(bt), toString(bu), toString(bv), toString(bw), toString(bx), toString(by)], l)
245245
246246
247247 func bz (bA,bB,bC,bs,bv,bw) = makeString(["%d%d%d%d%d%d", toString(bA), toString(bB), toString(bC), toString(bs), toString(bv), toString(bw)], l)
248248
249249
250250 func bD (bE) = if ((bE == "WAVES"))
251251 then wavesBalance(this).available
252252 else assetBalance(this, fromBase58String(bE))
253253
254254
255255 func bF (bG,bH) = fraction(bG, c, bH)
256256
257257
258258 func bI (bJ,bK,bL) = {
259259 let bM = fraction((bJ - bK), b, bK)
260260 let bN = ((bL - P(bM)) > d)
261261 if (!(bN))
262262 then throw(("Big slpg: " + toString(bM)))
263263 else $Tuple2(bN, min([bJ, bK]))
264264 }
265265
266266
267267 func bO (bP,bQ,bR) = {
268268 let bM = fraction(bQ, b, bP)
269269 let bS = (bR > bM)
270270 if (if (bS)
271271 then true
272272 else (bQ > bP))
273273 then throw(((((((toString(bQ) + " ") + toString(bP)) + " ") + toString(bM)) + " ") + toString(bR)))
274274 else bS
275275 }
276276
277277
278278 func bT (bU,bV,bW,bX) = {
279279 let bY = F(bW, bU)
280280 let bZ = F(bX, bV)
281281 bF(bZ, bY)
282282 }
283283
284284
285285 func ca (bW,bX,cb) = {
286286 let cc = aQ()
287287 let cd = parseIntValue(cc[w])
288288 let ce = parseIntValue(cc[x])
289289 let cf = bT(cd, ce, bW, bX)
290290 let bH = F(bW, cd)
291291 let bG = F(bX, ce)
292292 let cg = F(cb, a)
293293 let ch = bF(bH, cg)
294294 let ci = bF(bG, cg)
295295 [cf, ch, ci]
296296 }
297297
298298
299299 func cj (bW,bX,cb) = {
300300 let ck = ca(bW, bX, cb)
301301 [I(ck[0], a), I(ck[1], a), I(ck[2], a)]
302302 }
303303
304304
305305 func cl (cm) = {
306306 let cn = fraction(cm, ah, a)
307307 $Tuple2((cm - cn), cn)
308308 }
309309
310310
311311 func co (cp,cq,cr,cs) = {
312312 let cc = aQ()
313313 let ct = cc[t]
314314 let cu = cc[u]
315315 let cv = cc[v]
316316 let cw = parseIntValue(cc[w])
317317 let cx = parseIntValue(cc[x])
318318 let cy = cc[s]
319319 let cz = valueOrErrorMessage(assetInfo(fromBase58String(ct)), "Wrong LP id").quantity
320320 if ((ct != cq))
321321 then throw("Wrong pmt asset")
322322 else {
323323 let cA = bD(cu)
324324 let cB = F(cA, cw)
325325 let cC = bD(cv)
326326 let cD = F(cC, cx)
327327 let cE = bF(cD, cB)
328328 let cF = I(cE, a)
329329 let cG = F(cr, a)
330330 let cH = F(cz, a)
331331 let cI = fraction(cB, cG, cH)
332332 let cJ = fraction(cD, cG, cH)
333333 let cK = I(cI, cw)
334334 let cL = I(cJ, cx)
335335 let cM = if ((cp == ""))
336336 then nil
337337 else [ScriptTransfer(cs, cK, if ((cu == "WAVES"))
338338 then unit
339339 else fromBase58String(cu)), ScriptTransfer(cs, cL, if ((cv == "WAVES"))
340340 then unit
341341 else fromBase58String(cv)), StringEntry(ab(toString(cs), cp), bz(cK, cL, cr, cF, height, lastBlock.timestamp)), IntegerEntry(U(), cF), IntegerEntry(V(height, lastBlock.timestamp), cF)]
342342 $Tuple10(cK, cL, cu, cv, cA, cC, cz, cE, cy, cM)
343343 }
344344 }
345345
346346
347347 func cN (cp,bL,cO,cP,cQ,cR,cs,cS,cT,cU,cV,cW,cX) = {
348348 let cc = aQ()
349349 let ct = fromBase58String(cc[t])
350350 let cY = cc[u]
351351 let cZ = cc[v]
352352 let da = cc[y]
353353 let db = cc[z]
354354 let dc = parseIntValue(cc[w])
355355 let dd = parseIntValue(cc[x])
356356 let cy = cc[s]
357357 let de = valueOrErrorMessage(assetInfo(ct), "Wr lp as").quantity
358358 let cA = if (cS)
359359 then bD(cY)
360360 else if (if (cU)
361361 then (cX == cY)
362362 else false)
363363 then (bD(cY) - cW)
364364 else if (cU)
365365 then bD(cY)
366366 else (bD(cY) - cO)
367367 let cC = if (cS)
368368 then bD(cZ)
369369 else if (if (cU)
370370 then (cX == cZ)
371371 else false)
372372 then (bD(cZ) - cW)
373373 else if (cU)
374374 then bD(cZ)
375375 else (bD(cZ) - cQ)
376376 let df = F(cO, dc)
377377 let dg = F(cQ, dd)
378378 let dh = bF(dg, df)
379379 let cB = F(cA, dc)
380380 let cD = F(cC, dd)
381381 let di = if ((de == 0))
382382 then {
383383 let cE = d
384384 let dj = d
385385 let cg = pow((df * dg), 0, toBigInt(5), 1, 0, DOWN)
386386 $Tuple5(I(cg, a), I(df, dc), I(dg, dd), bF((cD + dg), (cB + df)), dj)
387387 }
388388 else {
389389 let cE = bF(cD, cB)
390390 let dk = fraction(P((cE - dh)), c, cE)
391391 let dj = F(bL, a)
392392 if (if (if (cV)
393393 then (cE != d)
394394 else false)
395395 then (dk > dj)
396396 else false)
397397 then throw(((("Price slippage " + toString(dk)) + " > ") + toString(dj)))
398398 else {
399399 let dl = F(de, a)
400400 let dm = fraction(df, cE, c)
401401 let dn = fraction(dg, c, cE)
402402 let do = if ((dm > dg))
403403 then $Tuple2(dn, dg)
404404 else $Tuple2(df, dm)
405405 let dp = do._1
406406 let dq = do._2
407407 let cg = fraction(dl, dq, cD)
408408 $Tuple5(I(cg, a), I(dp, dc), I(dq, dd), cE, dj)
409409 }
410410 }
411411 let dr = di._1
412412 let ds = di._2
413413 let dt = di._3
414414 let cF = I(di._4, a)
415415 let du = I(di._5, a)
416416 if ((0 >= dr))
417417 then throw("LP <= 0")
418418 else {
419419 let dv = if (!(cT))
420420 then 0
421421 else dr
422422 let dw = (cO - ds)
423423 let dx = (cQ - dt)
424424 let dy = if (if (cU)
425425 then (cX == cY)
426426 else false)
427427 then $Tuple2(cW, 0)
428428 else if (if (cU)
429429 then (cX == cZ)
430430 else false)
431431 then $Tuple2(0, cW)
432432 else $Tuple2(ds, dt)
433433 let dz = dy._1
434434 let dA = dy._2
435435 let dB = [IntegerEntry(U(), cF), IntegerEntry(V(height, lastBlock.timestamp), cF), StringEntry(Y(cs, cp), bo(dz, dA, dv, cF, bL, du, height, lastBlock.timestamp, dw, dx))]
436436 $Tuple13(dr, dv, cF, cA, cC, de, ct, cy, dB, dw, dx, cP, cR)
437437 }
438438 }
439439
440440
441441 func dC (dD,dE,dF) = {
442442 let dG = fraction((dD * dE), c, dF)
443443 dG
444444 }
445445
446446
447447 func dH (dI,dJ,dK) = {
448448 let dL = (bD(aW(be)) + dI)
449449 let dM = (bD(aW(bf)) + dJ)
450450 let dN = (value(assetInfo(bd)).quantity + dK)
451451 let dG = dC(toBigInt(dL), toBigInt(dM), toBigInt(dN))
452452 let dO = [IntegerEntry(aj, height), StringEntry(ai, toString(dG))]
453453 $Tuple2(dO, dG)
454454 }
455455
456456
457457 func dP (dQ) = {
458458 let dR = dQ.amount
459459 let dS = fraction(dQ.amount, dQ.price, a)
460460 let dT = if ((dQ.orderType == Buy))
461461 then $Tuple2(dR, -(dS))
462462 else $Tuple2(-(dR), dS)
463463 let dI = dT._1
464464 let dJ = dT._2
465465 if (if (if (aN())
466466 then true
467467 else (bc == p))
468468 then true
469469 else (bc == q))
470470 then throw("Admin blocked")
471471 else if (if ((dQ.assetPair.amountAsset != be))
472472 then true
473473 else (dQ.assetPair.priceAsset != bf))
474474 then throw("Wr assets")
475475 else {
476476 let dU = valueOrErrorMessage(parseBigInt(valueOrErrorMessage(getString(this, ai), aK("dLp is required"))), aK("invalid dLp"))
477477 let dV = dH(dI, dJ, 0)
478478 let dW = dV._1
479479 let dX = dV._2
480480 let dY = (dX > dU)
481481 dY
482482 }
483483 }
484484
485485
486486 func dZ (ea) = if ((size(ea.payments) != 1))
487487 then throw("1 pmnt exp")
488488 else {
489489 let eb = value(ea.payments[0])
490490 let cq = value(eb.assetId)
491491 let cW = eb.amount
492492 let di = co(toBase58String(ea.transactionId), toBase58String(cq), cW, ea.caller)
493493 let cK = di._1
494494 let cL = di._2
495495 let cy = parseIntValue(di._9)
496496 let cM = di._10
497497 if (if (aN())
498498 then true
499499 else (cy == q))
500500 then throw(("Admin blocked: " + toString(cy)))
501501 else $Tuple5(cK, cL, cW, cq, cM)
502502 }
503503
504504
505505 func ec (ed,aa,ee,ef,bL,cT,cU,cV,cW,cX) = {
506506 let di = cN(aa, bL, value(ee).amount, value(ee).assetId, value(ef).amount, value(ef).assetId, ed, (aa == ""), cT, cU, cV, cW, cX)
507507 let cy = parseIntValue(di._8)
508508 if (if (if (aN())
509509 then true
510510 else (cy == o))
511511 then true
512512 else (cy == q))
513513 then throw(("Blocked:" + toString(cy)))
514514 else di
515515 }
516516
517517
518518 func eg (eh) = {
519519 let ei = g
520520 let ej = eh[0]
521521 let ek = eh[1]
522522 let el = parseBigIntValue(j)
523523 let em = (parseBigIntValue(aM) * el)
524524 let en = (ej + ek)
525525 if ((en == e))
526526 then e
527527 else {
528528 let eo = (em * ei)
529529 let ep = (((ej * ek) * ei) * ei)
530530 let eq = ((eo * en) / el)
531531 let er = (eo - el)
532532 let es = (ei + f)
533533 func et (eu,ev) = {
534534 let ew = eu
535535 let ex = ew._1
536536 let ey = ew._2
537537 if ((ey != unit))
538538 then eu
539539 else {
540540 let ez = (((ex * ex) * ex) / ep)
541541 let eA = (((eq + (ez * ei)) * ex) / (((er * ex) / el) + (es * ez)))
542542 let eB = Q((eA - value(ex)))
543543 if ((f >= eB))
544544 then $Tuple2(eA, ev)
545545 else $Tuple2(eA, unit)
546546 }
547547 }
548548
549549 let eC = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
550550 let eD = {
551551 let eE = eC
552552 let eF = size(eE)
553553 let eG = $Tuple2(en, unit)
554554 func eH (eI,eJ) = if ((eJ >= eF))
555555 then eI
556556 else et(eI, eE[eJ])
557557
558558 func eK (eI,eJ) = if ((eJ >= eF))
559559 then eI
560560 else throw("List size exceeds 15")
561561
562562 eK(eH(eH(eH(eH(eH(eH(eH(eH(eH(eH(eH(eH(eH(eH(eH(eG, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
563563 }
564564 let ex = eD._1
565565 let ey = eD._2
566566 if ((ey != unit))
567567 then ex
568568 else throw(("D calculation error, D = " + toString(ex)))
569569 }
570570 }
571571
572572
573573 func eL (eh,ea,eM) = {
574574 let ei = g
575575 let eN = eh[if ((ea == 0))
576576 then 1
577577 else 0]
578578 let el = parseBigIntValue(j)
579579 let em = (parseBigIntValue(aM) * el)
580580 let en = eN
581581 let eo = (em * ei)
582582 let eO = (((((eM * eM) / (eN * ei)) * eM) * el) / (eo * ei))
583583 let eP = ((en + ((eM * el) / eo)) - eM)
584584 func et (eu,ev) = {
585585 let eQ = eu
586586 let eR = eQ._1
587587 let ey = eQ._2
588588 if ((ey != unit))
589589 then eu
590590 else {
591591 let eS = (((eR * eR) + eO) / ((g * eR) + eP))
592592 let eT = Q((eS - value(eR)))
593593 if ((f >= eT))
594594 then $Tuple2(eS, ev)
595595 else $Tuple2(eS, unit)
596596 }
597597 }
598598
599599 let eC = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
600600 let eU = {
601601 let eE = eC
602602 let eF = size(eE)
603603 let eG = $Tuple2(eM, unit)
604604 func eH (eI,eJ) = if ((eJ >= eF))
605605 then eI
606606 else et(eI, eE[eJ])
607607
608608 func eK (eI,eJ) = if ((eJ >= eF))
609609 then eI
610610 else throw("List size exceeds 15")
611611
612612 eK(eH(eH(eH(eH(eH(eH(eH(eH(eH(eH(eH(eH(eH(eH(eH(eG, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
613613 }
614614 let eR = eU._1
615615 let ey = eU._2
616616 if ((ey != unit))
617617 then eR
618618 else throw(("Y calculation error, Y = " + toString(eR)))
619619 }
620620
621621
622622 func eV (eW,cq,cs,aa,eX) = {
623623 let aY = aQ()
624624 let cu = aY[u]
625625 let cv = aY[v]
626626 let ct = aY[t]
627627 let dc = parseIntValue(aY[w])
628628 let dd = parseIntValue(aY[x])
629629 let dN = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(ct)), "invalid lp asset").quantity)
630630 let eY = if ((dN > e))
631631 then true
632632 else throw("initial deposit requires all coins")
633633 if ((eY == eY))
634634 then {
635635 let cA = bD(cu)
636636 let cC = bD(cv)
637637 let eZ = if ((aa == ""))
638638 then $Tuple2(cA, cC)
639639 else if ((cq == cu))
640640 then if ((eW > cA))
641641 then throw("invalid payment amount")
642642 else $Tuple2((cA - eW), cC)
643643 else if ((cq == cv))
644644 then if ((eW > cC))
645645 then throw("invalid payment amount")
646646 else $Tuple2(cA, (cC - eW))
647647 else throw("wrong pmtAssetId")
648648 let fa = eZ._1
649649 let fb = eZ._2
650650 let fc = if ((cq == cu))
651651 then $Tuple2(eW, 0)
652652 else if ((cq == cv))
653653 then $Tuple2(0, eW)
654654 else throw("invalid payment")
655655 let fd = fc._1
656656 let fe = fc._2
657657 let ff = if (eX)
658658 then $Tuple3(cl(fd)._1, cl(fe)._1, cl(eW)._2)
659659 else $Tuple3(fd, fe, 0)
660660 let fg = ff._1
661661 let fh = ff._2
662662 let cn = ff._3
663663 let fi = (fa + fg)
664664 let fj = (fb + fh)
665665 let bQ = eg([toBigInt(fa), toBigInt(fb)])
666666 let bP = eg([toBigInt(fi), toBigInt(fj)])
667667 let fk = if ((bP > bQ))
668668 then true
669669 else throw()
670670 if ((fk == fk))
671671 then {
672672 let fl = fraction(dN, (bP - bQ), bQ)
673673 let cF = I(bF(F(fj, dd), F(fi, dc)), a)
674674 let dB = [IntegerEntry(U(), cF), IntegerEntry(V(height, lastBlock.timestamp), cF), StringEntry(Y(cs, aa), bo(fd, fe, toInt(fl), cF, 0, 0, height, lastBlock.timestamp, 0, 0))]
675675 let fm = fraction(fb, a, fa)
676676 let fn = fraction(eW, a, (fm + a))
677677 let fo = (eW - fn)
678678 let fp = fraction(dN, toBigInt(fo), toBigInt(fb))
679679 let fq = toInt(fraction((fl - fp), b, fp))
680680 $Tuple4(toInt(fl), dB, cn, fq)
681681 }
682682 else throw("Strict value is not equal to itself.")
683683 }
684684 else throw("Strict value is not equal to itself.")
685685 }
686686
687687
688688 func fr (fs,ft,fu,ed,fv,fw) = {
689689 let aY = aQ()
690690 let ct = aY[t]
691691 let cu = aY[u]
692692 let cv = aY[v]
693693 let fx = parseIntValue(aY[w])
694694 let fy = parseIntValue(aY[x])
695695 let fz = aY[s]
696696 let cs = if ((ed == bn))
697697 then fv
698698 else ed
699699 let eb = value(fu[0])
700700 let cq = value(eb.assetId)
701701 let cW = eb.amount
702702 let cp = toBase58String(fw)
703703 if ((ct != toBase58String(cq)))
704704 then throw("Wrong LP")
705705 else {
706706 let cA = bD(cu)
707707 let cC = bD(cv)
708708 let fA = {
709709 let fB = invoke(this, "getOneTknV2READONLY", [fs, cW], nil)
710710 if ($isInstanceOf(fB, "(Int, Int)"))
711711 then fB
712712 else throw(($getType(fB) + " couldn't be cast to (Int, Int)"))
713713 }
714714 if ((fA == fA))
715715 then {
716716 let cn = fA._2
717717 let fC = fA._1
718718 let fD = if (if ((ft > 0))
719719 then (ft > fC)
720720 else false)
721721 then aI(makeString(["amount to receive is less than ", toString(ft)], ""))
722722 else fC
723723 let fE = if ((fs == cu))
724724 then $Tuple4(fD, 0, ((cA - fD) - cn), cC)
725725 else if ((fs == cv))
726726 then $Tuple4(0, fD, cA, ((cC - fD) - cn))
727727 else throw("invalid out asset id")
728728 let fF = fE._1
729729 let fG = fE._2
730730 let fi = fE._3
731731 let fj = fE._4
732732 let fH = bF(F(fj, fy), F(fi, fx))
733733 let fI = I(fH, a)
734734 let fJ = if ((fs == "WAVES"))
735735 then unit
736736 else fromBase58String(fs)
737737 let fK = if ((cn > 0))
738738 then [ScriptTransfer(aP, cn, fJ)]
739739 else nil
740740 let cM = ([ScriptTransfer(cs, fD, fJ), StringEntry(ab(toString(cs), cp), bz(fF, fG, cW, fI, height, lastBlock.timestamp)), IntegerEntry(U(), fI), IntegerEntry(V(height, lastBlock.timestamp), fI)] ++ fK)
741741 if ((cM == cM))
742742 then {
743743 let fL = invoke(aL, "burn", [cW], [AttachedPayment(cq, cW)])
744744 if ((fL == fL))
745- then $Tuple2(cM, fD)
745+ then {
746+ let fM = {
747+ let fN = if ((this == aP))
748+ then 0
749+ else cn
750+ let fO = if ((aU(fs) == be))
751+ then true
752+ else false
753+ if (fO)
754+ then $Tuple2(-((fC + fN)), 0)
755+ else $Tuple2(0, -((fC + fN)))
756+ }
757+ let dI = fM._1
758+ let dJ = fM._2
759+ let fP = dH(dI, dJ, 0)
760+ let fQ = fP._1
761+ let dG = fP._2
762+ $Tuple2((cM ++ fQ), fD)
763+ }
746764 else throw("Strict value is not equal to itself.")
747765 }
748766 else throw("Strict value is not equal to itself.")
749767 }
750768 else throw("Strict value is not equal to itself.")
751769 }
752770 }
753771
754772
755-func fM () = {
773+func fR () = {
756774 let aC = getString(S())
757775 if ($isInstanceOf(aC, "String"))
758776 then {
759777 let en = aC
760778 fromBase58String(en)
761779 }
762780 else if ($isInstanceOf(aC, "Unit"))
763781 then unit
764782 else throw("Match error")
765783 }
766784
767785
768-func fN () = {
786+func fS () = {
769787 let aC = getString(T())
770788 if ($isInstanceOf(aC, "String"))
771789 then {
772790 let en = aC
773791 fromBase58String(en)
774792 }
775793 else if ($isInstanceOf(aC, "Unit"))
776794 then unit
777795 else throw("Match error")
778796 }
779797
780798
781-let fO = throw("Permission denied")
799+let fT = throw("Permission denied")
782800
783-func fP (ea) = {
784- let aC = fM()
801+func fU (ea) = {
802+ let aC = fR()
785803 if ($isInstanceOf(aC, "ByteVector"))
786804 then {
787- let fQ = aC
788- (ea.callerPublicKey == fQ)
805+ let fV = aC
806+ (ea.callerPublicKey == fV)
789807 }
790808 else if ($isInstanceOf(aC, "Unit"))
791809 then (ea.caller == this)
792810 else throw("Match error")
793811 }
794812
795813
796-func fR (ea) = {
797- let aC = fM()
814+func fW (ea) = {
815+ let aC = fR()
798816 if ($isInstanceOf(aC, "ByteVector"))
799817 then {
800- let fQ = aC
801- if ((ea.callerPublicKey == fQ))
818+ let fV = aC
819+ if ((ea.callerPublicKey == fV))
802820 then true
803- else fO
821+ else fT
804822 }
805823 else if ($isInstanceOf(aC, "Unit"))
806824 then if ((ea.caller == this))
807825 then true
808- else fO
826+ else fT
809827 else throw("Match error")
810828 }
811829
812830
813831 @Callable(ea)
814832 func constructor (R) = {
815- let eO = fR(ea)
833+ let eO = fW(ea)
816834 if ((eO == eO))
817835 then [StringEntry(R(), R)]
818836 else throw("Strict value is not equal to itself.")
819837 }
820838
821839
822840
823841 @Callable(ea)
824-func setManager (fS) = {
825- let eO = fR(ea)
842+func setManager (fX) = {
843+ let eO = fW(ea)
826844 if ((eO == eO))
827845 then {
828- let fT = fromBase58String(fS)
829- if ((fT == fT))
830- then [StringEntry(T(), fS)]
846+ let fY = fromBase58String(fX)
847+ if ((fY == fY))
848+ then [StringEntry(T(), fX)]
831849 else throw("Strict value is not equal to itself.")
832850 }
833851 else throw("Strict value is not equal to itself.")
834852 }
835853
836854
837855
838856 @Callable(ea)
839857 func confirmManager () = {
840- let ck = fN()
841- let fU = if (isDefined(ck))
858+ let ck = fS()
859+ let fZ = if (isDefined(ck))
842860 then true
843861 else throw("No pending manager")
844- if ((fU == fU))
862+ if ((fZ == fZ))
845863 then {
846- let fV = if ((ea.callerPublicKey == value(ck)))
864+ let ga = if ((ea.callerPublicKey == value(ck)))
847865 then true
848866 else throw("You are not pending manager")
849- if ((fV == fV))
867+ if ((ga == ga))
850868 then [StringEntry(S(), toBase58String(value(ck))), DeleteEntry(T())]
851869 else throw("Strict value is not equal to itself.")
852870 }
853871 else throw("Strict value is not equal to itself.")
854872 }
855873
856874
857875
858876 @Callable(ea)
859-func put (fW,fX) = {
860- let fY = bi()
861- let fZ = valueOrErrorMessage(addressFromString(fY[A]), "Wr st addr")
862- let ga = valueOrErrorMessage(addressFromString(fY[C]), "Wr sl addr")
863- if ((0 > fW))
877+func put (gb,gc) = {
878+ let gd = bi()
879+ let ge = valueOrErrorMessage(addressFromString(gd[A]), "Wr st addr")
880+ let gf = valueOrErrorMessage(addressFromString(gd[C]), "Wr sl addr")
881+ if ((0 > gb))
864882 then throw("Wrong slippage")
865883 else if ((size(ea.payments) != 2))
866884 then throw("2 pmnts expd")
867885 else {
868- let gb = ec(toString(ea.caller), toBase58String(ea.transactionId), AttachedPayment(value(ea.payments[0]).assetId, value(ea.payments[0]).amount), ea.payments[1], fW, true, false, true, 0, "")
869- let dv = gb._2
870- let gc = gb._7
871- let cM = gb._9
872- let dw = gb._10
873- let dx = gb._11
874- let cu = gb._12
875- let cv = gb._13
886+ let gg = ec(toString(ea.caller), toBase58String(ea.transactionId), AttachedPayment(value(ea.payments[0]).assetId, value(ea.payments[0]).amount), ea.payments[1], gb, true, false, true, 0, "")
887+ let dv = gg._2
888+ let gh = gg._7
889+ let cM = gg._9
890+ let dw = gg._10
891+ let dx = gg._11
892+ let cu = gg._12
893+ let cv = gg._13
876894 let di = invoke(aL, "emit", [dv], nil)
877895 if ((di == di))
878896 then {
879- let gd = {
897+ let gi = {
880898 let aC = di
881899 if ($isInstanceOf(aC, "Address"))
882900 then {
883- let ge = aC
884- invoke(ge, "emit", [dv], nil)
901+ let gj = aC
902+ invoke(gj, "emit", [dv], nil)
885903 }
886904 else unit
887905 }
888- if ((gd == gd))
906+ if ((gi == gi))
889907 then {
890- let gf = if ((dw > 0))
891- then invoke(ga, "put", nil, [AttachedPayment(cu, dw)])
908+ let gk = if ((dw > 0))
909+ then invoke(gf, "put", nil, [AttachedPayment(cu, dw)])
892910 else nil
893- if ((gf == gf))
911+ if ((gk == gk))
894912 then {
895- let gg = if ((dx > 0))
896- then invoke(ga, "put", nil, [AttachedPayment(cv, dx)])
913+ let gl = if ((dx > 0))
914+ then invoke(gf, "put", nil, [AttachedPayment(cv, dx)])
897915 else nil
898- if ((gg == gg))
916+ if ((gl == gl))
899917 then {
900- let gh = if (fX)
918+ let gm = if (gc)
901919 then {
902- let gi = invoke(fZ, "stake", nil, [AttachedPayment(gc, dv)])
903- if ((gi == gi))
920+ let gn = invoke(ge, "stake", nil, [AttachedPayment(gh, dv)])
921+ if ((gn == gn))
904922 then nil
905923 else throw("Strict value is not equal to itself.")
906924 }
907- else [ScriptTransfer(ea.caller, dv, gc)]
908- (cM ++ gh)
925+ else [ScriptTransfer(ea.caller, dv, gh)]
926+ let go = dH(0, 0, 0)
927+ let fQ = go._1
928+ let dG = go._2
929+ ((cM ++ gm) ++ fQ)
909930 }
910931 else throw("Strict value is not equal to itself.")
911932 }
912933 else throw("Strict value is not equal to itself.")
913934 }
914935 else throw("Strict value is not equal to itself.")
915936 }
916937 else throw("Strict value is not equal to itself.")
917938 }
918939 }
919940
920941
921942
922943 @Callable(ea)
923-func putOneTknV2 (ft,fX) = {
924- let gj = {
944+func putOneTknV2 (ft,gc) = {
945+ let gp = {
925946 let fB = invoke(aL, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
926947 if ($isInstanceOf(fB, "Boolean"))
927948 then fB
928949 else throw(($getType(fB) + " couldn't be cast to Boolean"))
929950 }
930- let gk = if (if (if (aN())
951+ let gq = if (if (if (aN())
931952 then true
932953 else (bc == o))
933954 then true
934955 else (bc == q))
935956 then true
936- else gj
937- let gl = [if (if (!(gk))
957+ else gp
958+ let gr = [if (if (!(gq))
938959 then true
939- else fP(ea))
960+ else fU(ea))
940961 then true
941962 else aI("put operation is blocked by admin"), if ((size(ea.payments) == 1))
942963 then true
943964 else aI("exactly 1 payment are expected")]
944- if ((gl == gl))
965+ if ((gr == gr))
945966 then {
946967 let aY = aQ()
947968 let cu = aY[u]
948969 let cv = aY[v]
949970 let ct = fromBase58String(aY[t])
950971 let fx = parseIntValue(aY[w])
951972 let fy = parseIntValue(aY[x])
952973 let cs = if ((ea.caller == this))
953974 then ea.originCaller
954975 else ea.caller
955976 let eb = value(ea.payments[0])
956977 let cq = toBase58String(value(eb.assetId))
957978 let cW = eb.amount
958- let gm = eV(cW, cq, toString(cs), toBase58String(ea.transactionId), true)
959- if ((gm == gm))
979+ let gs = eV(cW, cq, toString(cs), toBase58String(ea.transactionId), true)
980+ if ((gs == gs))
960981 then {
961- let cn = gm._3
962- let cM = gm._2
963- let gn = gm._1
982+ let cn = gs._3
983+ let cM = gs._2
984+ let gt = gs._1
964985 let dv = if (if ((ft > 0))
965- then (ft > gn)
986+ then (ft > gt)
966987 else false)
967988 then aI(makeString(["amount to receive is less than ", toString(ft)], ""))
968- else gn
969- let gb = invoke(aL, "emit", [dv], nil)
970- if ((gb == gb))
989+ else gt
990+ let gg = invoke(aL, "emit", [dv], nil)
991+ if ((gg == gg))
971992 then {
972- let gd = {
973- let aC = gb
993+ let gi = {
994+ let aC = gg
974995 if ($isInstanceOf(aC, "Address"))
975996 then {
976- let ge = aC
977- invoke(ge, "emit", [dv], nil)
997+ let gj = aC
998+ invoke(gj, "emit", [dv], nil)
978999 }
9791000 else unit
9801001 }
981- if ((gd == gd))
1002+ if ((gi == gi))
9821003 then {
983- let gh = if (fX)
1004+ let gm = if (gc)
9841005 then {
985- let gi = invoke(bk, "stake", nil, [AttachedPayment(ct, dv)])
986- if ((gi == gi))
1006+ let gn = invoke(bk, "stake", nil, [AttachedPayment(ct, dv)])
1007+ if ((gn == gn))
9871008 then nil
9881009 else throw("Strict value is not equal to itself.")
9891010 }
9901011 else [ScriptTransfer(ea.caller, dv, ct)]
9911012 let fK = if ((cn > 0))
9921013 then [ScriptTransfer(aP, cn, fromBase58String(cq))]
9931014 else nil
994- $Tuple2(((cM ++ gh) ++ fK), dv)
1015+ let gu = if ((this == aP))
1016+ then $Tuple2(0, 0)
1017+ else {
1018+ let gv = if ((eb.assetId == be))
1019+ then true
1020+ else false
1021+ if (gv)
1022+ then $Tuple2(-(cn), 0)
1023+ else $Tuple2(0, -(cn))
1024+ }
1025+ let dI = gu._1
1026+ let dJ = gu._2
1027+ let gw = dH(dI, dJ, 0)
1028+ let fQ = gw._1
1029+ let dG = gw._2
1030+ $Tuple2((((cM ++ gm) ++ fK) ++ fQ), dv)
9951031 }
9961032 else throw("Strict value is not equal to itself.")
9971033 }
9981034 else throw("Strict value is not equal to itself.")
9991035 }
10001036 else throw("Strict value is not equal to itself.")
10011037 }
10021038 else throw("Strict value is not equal to itself.")
10031039 }
10041040
10051041
10061042
10071043 @Callable(ea)
1008-func putForFree (go) = if ((0 > go))
1044+func putForFree (gx) = if ((0 > gx))
10091045 then throw("Wrong slpg")
10101046 else if ((size(ea.payments) != 2))
10111047 then throw("2 pmnts expd")
10121048 else {
1013- let gp = ec(toString(ea.caller), toBase58String(ea.transactionId), AttachedPayment(value(ea.payments[0]).assetId, value(ea.payments[0]).amount), ea.payments[1], go, false, false, true, 0, "")
1014- gp._9
1049+ let gy = ec(toString(ea.caller), toBase58String(ea.transactionId), AttachedPayment(value(ea.payments[0]).assetId, value(ea.payments[0]).amount), ea.payments[1], gx, false, false, true, 0, "")
1050+ let cM = gy._9
1051+ let gz = dH(0, 0, 0)
1052+ let fQ = gz._1
1053+ let gA = gz._2
1054+ (cM ++ fQ)
10151055 }
10161056
10171057
10181058
10191059 @Callable(ea)
10201060 func get () = {
10211061 let di = dZ(ea)
1022- let gq = di._1
1062+ let gB = di._1
10231063 let cL = di._2
10241064 let cW = di._3
10251065 let cq = di._4
10261066 let cM = di._5
10271067 let eP = invoke(aL, "burn", [cW], [AttachedPayment(cq, cW)])
10281068 if ((eP == eP))
1029- then cM
1069+ then {
1070+ let gC = dH(-(gB), -(cL), 0)
1071+ let fQ = gC._1
1072+ let dG = gC._2
1073+ (cM ++ fQ)
1074+ }
10301075 else throw("Strict value is not equal to itself.")
10311076 }
10321077
10331078
10341079
10351080 @Callable(ea)
10361081 func getOneTknV2 (fs,ft) = {
1037- let gj = {
1082+ let gp = {
10381083 let fB = invoke(aL, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
10391084 if ($isInstanceOf(fB, "Boolean"))
10401085 then fB
10411086 else throw(($getType(fB) + " couldn't be cast to Boolean"))
10421087 }
1043- let gr = if (if (aN())
1088+ let gD = if (if (aN())
10441089 then true
10451090 else (bc == q))
10461091 then true
1047- else gj
1048- let gl = [if (if (!(gr))
1092+ else gp
1093+ let gr = [if (if (!(gD))
10491094 then true
1050- else fP(ea))
1095+ else fU(ea))
10511096 then true
10521097 else aI("get operation is blocked by admin"), if ((size(ea.payments) == 1))
10531098 then true
10541099 else aI("exactly 1 payment are expected")]
1055- if ((gl == gl))
1100+ if ((gr == gr))
10561101 then {
1057- let gs = fr(fs, ft, ea.payments, ea.caller, ea.originCaller, ea.transactionId)
1058- let cM = gs._1
1059- let fD = gs._2
1102+ let gE = fr(fs, ft, ea.payments, ea.caller, ea.originCaller, ea.transactionId)
1103+ let cM = gE._1
1104+ let fD = gE._2
10601105 $Tuple2(cM, fD)
10611106 }
10621107 else throw("Strict value is not equal to itself.")
10631108 }
10641109
10651110
10661111
10671112 @Callable(ea)
10681113 func refreshDLp () = {
1069- let gt = valueOrElse(getInteger(aj), 0)
1070- let gu = if (((height - gt) >= am))
1114+ let gF = valueOrElse(getInteger(aj), 0)
1115+ let gG = if (((height - gF) >= am))
10711116 then unit
10721117 else aI(makeString([toString(am), " blocks have not passed since the previous call"], ""))
1073- if ((gu == gu))
1118+ if ((gG == gG))
10741119 then {
1075- let gv = dH(0, 0, 0)
1076- let dO = gv._1
1077- let gw = gv._2
1078- $Tuple2(dO, toString(gw))
1120+ let gH = dH(0, 0, 0)
1121+ let dO = gH._1
1122+ let gA = gH._2
1123+ $Tuple2(dO, toString(gA))
10791124 }
10801125 else throw("Strict value is not equal to itself.")
10811126 }
10821127
10831128
10841129
10851130 @Callable(ea)
1086-func getOneTknV2READONLY (fs,gx) = {
1131+func getOneTknV2READONLY (fs,gI) = {
10871132 let aY = aQ()
10881133 let cu = aY[u]
10891134 let cv = aY[v]
10901135 let ct = aY[t]
10911136 let eh = [toBigInt(bD(cu)), toBigInt(bD(cv))]
10921137 let dF = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(ct)), "invalid lp asset").quantity)
10931138 let bQ = eg(eh)
1094- let bP = (bQ - fraction(toBigInt(gx), bQ, dF))
1095- let gy = if ((fs == cu))
1139+ let bP = (bQ - fraction(toBigInt(gI), bQ, dF))
1140+ let gJ = if ((fs == cu))
10961141 then 0
10971142 else if ((fs == cv))
10981143 then 1
10991144 else throw("invalid out asset id")
1100- let gz = eL(eh, gy, bP)
1101- let gA = (eh[gy] - gz)
1102- let gB = max([0, toInt((gA - f))])
1103- let gC = cl(gB)
1104- let fC = gC._1
1105- let cn = gC._2
1145+ let gK = eL(eh, gJ, bP)
1146+ let gL = (eh[gJ] - gK)
1147+ let gM = max([0, toInt((gL - f))])
1148+ let gN = cl(gM)
1149+ let fC = gN._1
1150+ let cn = gN._2
11061151 $Tuple2(nil, $Tuple2(fC, cn))
11071152 }
11081153
11091154
11101155
11111156 @Callable(ea)
1112-func getOneTknV2WithBonusREADONLY (fs,gx) = {
1157+func getOneTknV2WithBonusREADONLY (fs,gI) = {
11131158 let aY = aQ()
11141159 let cu = aY[u]
11151160 let cv = aY[v]
11161161 let ct = aY[t]
11171162 let cA = bD(cu)
11181163 let cC = bD(cv)
1119- let gD = {
1120- let fB = invoke(this, "getOneTknV2READONLY", [fs, gx], nil)
1164+ let gO = {
1165+ let fB = invoke(this, "getOneTknV2READONLY", [fs, gI], nil)
11211166 if ($isInstanceOf(fB, "(Int, Int)"))
11221167 then fB
11231168 else throw(($getType(fB) + " couldn't be cast to (Int, Int)"))
11241169 }
1125- let fC = gD._1
1126- let cn = gD._2
1127- let di = co("", ct, gx, this)
1170+ let fC = gO._1
1171+ let cn = gO._2
1172+ let di = co("", ct, gI, this)
11281173 let cK = di._1
11291174 let cL = di._2
1130- let gE = (cK + cL)
1131- let fq = if ((gE == 0))
1175+ let gP = (cK + cL)
1176+ let fq = if ((gP == 0))
11321177 then if ((fC == 0))
11331178 then 0
11341179 else throw("bonus calculation error")
1135- else fraction((fC - gE), a, gE)
1180+ else fraction((fC - gP), a, gP)
11361181 $Tuple2(nil, $Tuple3(fC, cn, fq))
11371182 }
11381183
11391184
11401185
11411186 @Callable(ea)
1142-func getNoLess (gF,gG) = {
1187+func getNoLess (gQ,gR) = {
11431188 let di = dZ(ea)
11441189 let cK = di._1
11451190 let cL = di._2
11461191 let cW = di._3
11471192 let cq = di._4
11481193 let cM = di._5
1149- if ((gF > cK))
1150- then throw(((("Failed: " + toString(cK)) + " < ") + toString(gF)))
1151- else if ((gG > cL))
1152- then throw(((("Failed: " + toString(cL)) + " < ") + toString(gG)))
1194+ if ((gQ > cK))
1195+ then throw(((("Failed: " + toString(cK)) + " < ") + toString(gQ)))
1196+ else if ((gR > cL))
1197+ then throw(((("Failed: " + toString(cL)) + " < ") + toString(gR)))
11531198 else {
1154- let gH = invoke(aL, "burn", [cW], [AttachedPayment(cq, cW)])
1155- if ((gH == gH))
1156- then cM
1199+ let gS = invoke(aL, "burn", [cW], [AttachedPayment(cq, cW)])
1200+ if ((gS == gS))
1201+ then {
1202+ let gT = dH(-(cK), -(cL), 0)
1203+ let fQ = gT._1
1204+ let dG = gT._2
1205+ (cM ++ fQ)
1206+ }
11571207 else throw("Strict value is not equal to itself.")
11581208 }
11591209 }
11601210
11611211
11621212
11631213 @Callable(ea)
11641214 func unstakeAndGet (cm) = {
1165- let gI = if ((size(ea.payments) != 0))
1215+ let gU = if ((size(ea.payments) != 0))
11661216 then throw("No pmnts expd")
11671217 else true
1168- if ((gI == gI))
1218+ if ((gU == gU))
11691219 then {
11701220 let cc = aQ()
1171- let gJ = bi()
1172- let gc = fromBase58String(cc[t])
1173- let gK = valueOrErrorMessage(addressFromString(gJ[A]), "Wr st addr")
1174- let gL = invoke(gK, "unstake", [toBase58String(gc), cm], nil)
1175- if ((gL == gL))
1221+ let gV = bi()
1222+ let gh = fromBase58String(cc[t])
1223+ let gW = valueOrErrorMessage(addressFromString(gV[A]), "Wr st addr")
1224+ let gX = invoke(gW, "unstake", [toBase58String(gh), cm], nil)
1225+ if ((gX == gX))
11761226 then {
1177- let di = co(toBase58String(ea.transactionId), toBase58String(gc), cm, ea.caller)
1227+ let di = co(toBase58String(ea.transactionId), toBase58String(gh), cm, ea.caller)
1228+ let cK = di._1
1229+ let cL = di._2
11781230 let cy = parseIntValue(di._9)
11791231 let cM = di._10
1180- let gM = if (if (aN())
1232+ let gY = if (if (aN())
11811233 then true
11821234 else (cy == q))
11831235 then throw(("Blocked: " + toString(cy)))
11841236 else true
1185- if ((gM == gM))
1237+ if ((gY == gY))
11861238 then {
1187- let gN = invoke(aL, "burn", [cm], [AttachedPayment(gc, cm)])
1188- if ((gN == gN))
1189- then cM
1239+ let gZ = invoke(aL, "burn", [cm], [AttachedPayment(gh, cm)])
1240+ if ((gZ == gZ))
1241+ then {
1242+ let ha = dH(-(cK), -(cL), 0)
1243+ let fQ = ha._1
1244+ let dG = ha._2
1245+ (cM ++ fQ)
1246+ }
11901247 else throw("Strict value is not equal to itself.")
11911248 }
11921249 else throw("Strict value is not equal to itself.")
11931250 }
11941251 else throw("Strict value is not equal to itself.")
11951252 }
11961253 else throw("Strict value is not equal to itself.")
11971254 }
11981255
11991256
12001257
12011258 @Callable(ea)
1202-func unstakeAndGetNoLess (gO,gP,gG) = {
1203- let gr = if (aN())
1259+func unstakeAndGetNoLess (hb,hc,gR) = {
1260+ let gD = if (aN())
12041261 then true
12051262 else (bc == q)
1206- let gl = [if (!(gr))
1263+ let gr = [if (!(gD))
12071264 then true
12081265 else throw("get operation is blocked by admin"), if ((size(ea.payments) == 0))
12091266 then true
12101267 else throw("no payments are expected")]
1211- if ((gl == gl))
1268+ if ((gr == gr))
12121269 then {
1213- let gL = invoke(bk, "unstake", [toBase58String(bd), gO], nil)
1214- if ((gL == gL))
1270+ let gX = invoke(bk, "unstake", [toBase58String(bd), hb], nil)
1271+ if ((gX == gX))
12151272 then {
1216- let gQ = co(toBase58String(ea.transactionId), toBase58String(bd), gO, ea.caller)
1217- let cK = gQ._1
1218- let cL = gQ._2
1219- let cM = gQ._10
1220- let gR = [if ((cK >= gP))
1273+ let hd = co(toBase58String(ea.transactionId), toBase58String(bd), hb, ea.caller)
1274+ let cK = hd._1
1275+ let cL = hd._2
1276+ let cM = hd._10
1277+ let he = [if ((cK >= hc))
12211278 then true
1222- else throw(makeString(["amount asset amount to receive is less than ", toString(gP)], "")), if ((cL >= gG))
1279+ else throw(makeString(["amount asset amount to receive is less than ", toString(hc)], "")), if ((cL >= gR))
12231280 then true
1224- else throw(makeString(["price asset amount to receive is less than ", toString(gG)], ""))]
1225- if ((gR == gR))
1281+ else throw(makeString(["price asset amount to receive is less than ", toString(gR)], ""))]
1282+ if ((he == he))
12261283 then {
1227- let gH = invoke(aL, "burn", [gO], [AttachedPayment(bd, gO)])
1228- if ((gH == gH))
1229- then cM
1284+ let gS = invoke(aL, "burn", [hb], [AttachedPayment(bd, hb)])
1285+ if ((gS == gS))
1286+ then {
1287+ let hf = dH(-(cK), -(cL), 0)
1288+ let fQ = hf._1
1289+ let dG = hf._2
1290+ (cM ++ fQ)
1291+ }
12301292 else throw("Strict value is not equal to itself.")
12311293 }
12321294 else throw("Strict value is not equal to itself.")
12331295 }
12341296 else throw("Strict value is not equal to itself.")
12351297 }
12361298 else throw("Strict value is not equal to itself.")
12371299 }
12381300
12391301
12401302
12411303 @Callable(ea)
1242-func unstakeAndGetOneTknV2 (gO,fs,ft) = {
1243- let gj = {
1304+func unstakeAndGetOneTknV2 (hb,fs,ft) = {
1305+ let gp = {
12441306 let fB = invoke(aL, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
12451307 if ($isInstanceOf(fB, "Boolean"))
12461308 then fB
12471309 else throw(($getType(fB) + " couldn't be cast to Boolean"))
12481310 }
1249- let gr = if (if (aN())
1311+ let gD = if (if (aN())
12501312 then true
12511313 else (bc == q))
12521314 then true
1253- else gj
1254- let gl = [if (if (!(gr))
1315+ else gp
1316+ let gr = [if (if (!(gD))
12551317 then true
1256- else fP(ea))
1318+ else fU(ea))
12571319 then true
12581320 else aI("get operation is blocked by admin"), if ((size(ea.payments) == 0))
12591321 then true
12601322 else aI("no payments are expected")]
1261- if ((gl == gl))
1323+ if ((gr == gr))
12621324 then {
12631325 let cc = aQ()
1264- let gJ = bi()
1265- let gc = fromBase58String(cc[t])
1266- let gK = valueOrErrorMessage(addressFromString(gJ[A]), "Wr st addr")
1267- let gL = invoke(gK, "unstake", [toBase58String(gc), gO], nil)
1268- if ((gL == gL))
1326+ let gV = bi()
1327+ let gh = fromBase58String(cc[t])
1328+ let gW = valueOrErrorMessage(addressFromString(gV[A]), "Wr st addr")
1329+ let gX = invoke(gW, "unstake", [toBase58String(gh), hb], nil)
1330+ if ((gX == gX))
12691331 then {
1270- let gS = fr(fs, ft, [AttachedPayment(gc, gO)], ea.caller, ea.originCaller, ea.transactionId)
1271- let cM = gS._1
1272- let fD = gS._2
1332+ let hg = fr(fs, ft, [AttachedPayment(gh, hb)], ea.caller, ea.originCaller, ea.transactionId)
1333+ let cM = hg._1
1334+ let fD = hg._2
12731335 $Tuple2(cM, fD)
12741336 }
12751337 else throw("Strict value is not equal to itself.")
12761338 }
12771339 else throw("Strict value is not equal to itself.")
12781340 }
12791341
12801342
12811343
12821344 @Callable(ea)
1283-func putOneTknV2WithBonusREADONLY (gT,gU) = {
1345+func putOneTknV2WithBonusREADONLY (hh,hi) = {
12841346 let aY = aQ()
12851347 let cu = aY[u]
12861348 let cv = aY[v]
12871349 let ct = aY[t]
1288- let gV = eV(gT, gU, "", "", true)
1289- let fl = gV._1
1290- let cM = gV._2
1291- let cn = gV._3
1292- let fq = gV._4
1350+ let hj = eV(hh, hi, "", "", true)
1351+ let fl = hj._1
1352+ let cM = hj._2
1353+ let cn = hj._3
1354+ let fq = hj._4
12931355 $Tuple2(nil, $Tuple3(fl, cn, fq))
12941356 }
12951357
12961358
12971359
12981360 @Callable(ea)
1299-func putOneTknV2WithoutTakeFeeREADONLY (gT,gU) = {
1361+func putOneTknV2WithoutTakeFeeREADONLY (hh,hi) = {
13001362 let aY = aQ()
13011363 let cu = aY[u]
13021364 let cv = aY[v]
13031365 let ct = aY[t]
1304- let gW = eV(gT, gU, "", "", false)
1305- let fl = gW._1
1306- let cM = gW._2
1307- let cn = gW._3
1308- let fq = gW._4
1366+ let hk = eV(hh, hi, "", "", false)
1367+ let fl = hk._1
1368+ let cM = hk._2
1369+ let cn = hk._3
1370+ let fq = hk._4
13091371 $Tuple2(nil, $Tuple3(fl, cn, fq))
13101372 }
13111373
13121374
13131375
13141376 @Callable(ea)
1315-func activate (gX,gY) = if ((toString(ea.caller) != toString(aL)))
1377+func activate (hl,hm) = if ((toString(ea.caller) != toString(aL)))
13161378 then throw("denied")
1317- else $Tuple2([StringEntry(ac(), gX), StringEntry(ad(), gY)], "success")
1379+ else $Tuple2([StringEntry(ac(), hl), StringEntry(ad(), hm)], "success")
13181380
13191381
13201382
13211383 @Callable(ea)
1322-func setS (gZ,gM) = if ((toString(ea.caller) != aE(this, af())))
1323- then fO
1324- else [StringEntry(gZ, gM)]
1384+func setS (hn,gY) = if ((toString(ea.caller) != aE(this, af())))
1385+ then fT
1386+ else [StringEntry(hn, gY)]
13251387
13261388
13271389
13281390 @Callable(ea)
1329-func setI (gZ,gM) = if ((toString(ea.caller) != aE(this, af())))
1330- then fO
1331- else [IntegerEntry(gZ, gM)]
1391+func setI (hn,gY) = if ((toString(ea.caller) != aE(this, af())))
1392+ then fT
1393+ else [IntegerEntry(hn, gY)]
13321394
13331395
13341396
13351397 @Callable(ea)
13361398 func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aQ())
13371399
13381400
13391401
13401402 @Callable(ea)
13411403 func getAccBalanceWrapperREADONLY (bE) = $Tuple2(nil, bD(bE))
13421404
13431405
13441406
13451407 @Callable(ea)
13461408 func calcPricesWrapperREADONLY (bW,bX,cb) = {
1347- let ha = ca(bW, bX, cb)
1348- $Tuple2(nil, [toString(ha[0]), toString(ha[1]), toString(ha[2])])
1409+ let ho = ca(bW, bX, cb)
1410+ $Tuple2(nil, [toString(ho[0]), toString(ho[1]), toString(ho[2])])
13491411 }
13501412
13511413
13521414
13531415 @Callable(ea)
1354-func fromX18WrapperREADONLY (J,hb) = $Tuple2(nil, I(parseBigIntValue(J), hb))
1416+func fromX18WrapperREADONLY (J,hp) = $Tuple2(nil, I(parseBigIntValue(J), hp))
13551417
13561418
13571419
13581420 @Callable(ea)
13591421 func toX18WrapperREADONLY (G,H) = $Tuple2(nil, toString(F(G, H)))
13601422
13611423
13621424
13631425 @Callable(ea)
13641426 func calcPriceBigIntWrapperREADONLY (bG,bH) = $Tuple2(nil, toString(bF(parseBigIntValue(bG), parseBigIntValue(bH))))
13651427
13661428
13671429
13681430 @Callable(ea)
1369-func estimatePutOperationWrapperREADONLY (cp,bL,cO,cP,cQ,cR,hc,cS,cT) = $Tuple2(nil, cN(cp, bL, cO, cP, cQ, cR, hc, cS, cT, true, false, 0, ""))
1431+func estimatePutOperationWrapperREADONLY (cp,bL,cO,cP,cQ,cR,hq,cS,cT) = $Tuple2(nil, cN(cp, bL, cO, cP, cQ, cR, hq, cS, cT, true, false, 0, ""))
13701432
13711433
13721434
13731435 @Callable(ea)
1374-func estimateGetOperationWrapperREADONLY (cp,hd,cr,hc) = {
1375- let di = co(cp, hd, cr, addressFromStringValue(hc))
1436+func estimateGetOperationWrapperREADONLY (cp,hr,cr,hq) = {
1437+ let di = co(cp, hr, cr, addressFromStringValue(hq))
13761438 $Tuple2(nil, $Tuple10(di._1, di._2, di._3, di._4, di._5, di._6, di._7, toString(di._8), di._9, di._10))
13771439 }
13781440
13791441
13801442
13811443 @Callable(ea)
13821444 func getFeeREADONLY () = $Tuple2(nil, ah)
13831445
13841446
1385-@Verifier(he)
1386-func hf () = {
1387- let hg = {
1388- let aC = fM()
1447+@Verifier(hs)
1448+func ht () = {
1449+ let hu = {
1450+ let aC = fR()
13891451 if ($isInstanceOf(aC, "ByteVector"))
13901452 then {
1391- let fQ = aC
1392- fQ
1453+ let fV = aC
1454+ fV
13931455 }
13941456 else if ($isInstanceOf(aC, "Unit"))
1395- then he.senderPublicKey
1457+ then hs.senderPublicKey
13961458 else throw("Match error")
13971459 }
1398- let aC = he
1460+ let aC = hs
13991461 if ($isInstanceOf(aC, "Order"))
14001462 then {
14011463 let dQ = aC
1402- let hh = aO()
1403- let hi = dP(dQ)
1404- let hj = sigVerify(dQ.bodyBytes, dQ.proofs[0], dQ.senderPublicKey)
1405- let hk = sigVerify(dQ.bodyBytes, dQ.proofs[1], hh)
1406- if (if (if (hi)
1407- then hj
1464+ let hv = aO()
1465+ let hw = dP(dQ)
1466+ let hx = sigVerify(dQ.bodyBytes, dQ.proofs[0], dQ.senderPublicKey)
1467+ let hy = sigVerify(dQ.bodyBytes, dQ.proofs[1], hv)
1468+ if (if (if (hw)
1469+ then hx
14081470 else false)
1409- then hk
1471+ then hy
14101472 else false)
14111473 then true
1412- else ax(hi, hj, hk)
1474+ else ax(hw, hx, hy)
14131475 }
14141476 else if ($isInstanceOf(aC, "SetScriptTransaction"))
14151477 then {
14161478 let en = aC
1417- let hl = blake2b256(value(en.script))
1418- let hm = fromBase64String(value(getString(aL, av())))
1419- let hn = scriptHash(this)
1420- if (if ((hm == hl))
1421- then (hn != hl)
1479+ let hz = blake2b256(value(en.script))
1480+ let hA = fromBase64String(value(getString(aL, av())))
1481+ let hB = scriptHash(this)
1482+ if (if ((hA == hz))
1483+ then (hB != hz)
14221484 else false)
14231485 then true
1424- else sigVerify(he.bodyBytes, he.proofs[0], hg)
1486+ else sigVerify(hs.bodyBytes, hs.proofs[0], hu)
14251487 }
1426- else sigVerify(he.bodyBytes, he.proofs[0], hg)
1488+ else sigVerify(hs.bodyBytes, hs.proofs[0], hu)
14271489 }
14281490

github/deemru/w8io/169f3d6 
236.23 ms