tx · H3JvzL9JwfmUNm7yqWx4xt75vTDfpUbX2g1p94P6Qvrx

3N6wAa7PMFZJu4Zrmp3avXmMnRTrRpMM9Lh:  -0.04300000 Waves

2023.04.04 14:20 [2519750] smart account 3N6wAa7PMFZJu4Zrmp3avXmMnRTrRpMM9Lh > SELF 0.00000000 Waves

{ "type": 13, "id": "H3JvzL9JwfmUNm7yqWx4xt75vTDfpUbX2g1p94P6Qvrx", "fee": 4300000, "feeAssetId": null, "timestamp": 1680607191190, "version": 2, "chainId": 84, "sender": "3N6wAa7PMFZJu4Zrmp3avXmMnRTrRpMM9Lh", "senderPublicKey": "Cr8D7eozSzJh7XHsYTjBinPpo3SS83BrCGiBAJsjGxBo", "proofs": [ "StVDbQNdvqaDTLBqy7VTTWX7P7NZzkc65yyjMfr2k9nGhPexV8wmDZq961N2mbZMwXm1SGGDdQRNxny7ipB3m6f" ], "script": "base64:BgLGNwgCEgASBQoDAQQBEgcKBQEEAQgBEgMKAQgSABIECgIBBBIDCgEBEgQKAgEEEgQKAggBEgQKAggBEgQKAggBEgUKAwEIARIAEgQKAgEBEgMKAQESBQoDAQEBEgQKAggIEgASABIDCgEIEgUKAwEBARIECgIBARIECgIIARIECgIICBILCgkIAQECAQIIBAQSBgoECAgBCBIAEgMKAQESAwoBARIECgIIASIKbFBkZWNpbWFscyIGc2NhbGU4IgxzY2FsZThCaWdJbnQiB3NjYWxlMTgiCnplcm9CaWdJbnQiBGJpZzAiBGJpZzEiBGJpZzIiC3dhdmVzU3RyaW5nIgNTRVAiClBvb2xBY3RpdmUiD1Bvb2xQdXREaXNhYmxlZCITUG9vbE1hdGNoZXJEaXNhYmxlZCIMUG9vbFNodXRkb3duIg5pZHhQb29sQWRkcmVzcyINaWR4UG9vbFN0YXR1cyIQaWR4UG9vbExQQXNzZXRJZCINaWR4QW10QXNzZXRJZCIPaWR4UHJpY2VBc3NldElkIg5pZHhBbXRBc3NldERjbSIQaWR4UHJpY2VBc3NldERjbSIOaWR4SUFtdEFzc2V0SWQiEGlkeElQcmljZUFzc2V0SWQiDWlkeExQQXNzZXREY20iEmlkeFBvb2xBbXRBc3NldEFtdCIUaWR4UG9vbFByaWNlQXNzZXRBbXQiEWlkeFBvb2xMUEFzc2V0QW10IhlpZHhGYWN0b3J5U3Rha2luZ0NvbnRyYWN0IhppZHhGYWN0b3J5U2xpcHBhZ2VDb250cmFjdCIFdG9YMTgiB29yaWdWYWwiDW9yaWdTY2FsZU11bHQiC3RvWDE4QmlnSW50Igdmcm9tWDE4IgN2YWwiD3Jlc3VsdFNjYWxlTXVsdCIMZnJvbVgxOFJvdW5kIgVyb3VuZCIHdG9TY2FsZSIDYW10IghyZXNTY2FsZSIIY3VyU2NhbGUiA2FicyIJYWJzQmlnSW50Igxzd2FwQ29udHJhY3QiAmZjIgNtcGsiBHBtcGsiAnBsIgJwaCIBaCIJdGltZXN0YW1wIgNwYXUiC3VzZXJBZGRyZXNzIgR0eElkIgNnYXUiAmFhIgJwYSIGa2V5RmVlIgpmZWVEZWZhdWx0IgNmZWUiBmtleUtMcCIVa2V5S0xwUmVmcmVzaGVkSGVpZ2h0IhJrZXlLTHBSZWZyZXNoRGVsYXkiFmtMcFJlZnJlc2hEZWxheURlZmF1bHQiD2tMcFJlZnJlc2hEZWxheSIQa2V5U1dhdmVzQXNzZXRJZCIVa2V5U1dhdmVzUHJveHlBZGRyZXNzIhRrZXlBZGRpdGlvbmFsQmFsYW5jZSIHYXNzZXRJZCIWa2V5U3Rha2luZ0Fzc2V0QmFsYW5jZSIaZ2V0QWRkaXRpb25hbEJhbGFuY2VPclplcm8iHGdldFN0YWtpbmdBc3NldEJhbGFuY2VPclplcm8iEGtleUZhY3RvcnlDb25maWciDWtleU1hdGNoZXJQdWIiKWtleU1hcHBpbmdQb29sQ29udHJhY3RBZGRyZXNzVG9Qb29sQXNzZXRzIhNwb29sQ29udHJhY3RBZGRyZXNzIg1rZXlQb29sQ29uZmlnIglpQW10QXNzZXQiC2lQcmljZUFzc2V0Ih9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkIgxiYXNlQXNzZXRTdHIiE2tleUFsbFBvb2xzU2h1dGRvd24iDWtleVBvb2xXZWlnaHQiD2NvbnRyYWN0QWRkcmVzcyIWa2V5QWxsb3dlZExwU2NyaXB0SGFzaCIWa2V5RmVlQ29sbGVjdG9yQWRkcmVzcyIPdGhyb3dPcmRlckVycm9yIgpvcmRlclZhbGlkIg5vcmRlclZhbGlkSW5mbyILc2VuZGVyVmFsaWQiDG1hdGNoZXJWYWxpZCIPZ2V0U3RyaW5nT3JGYWlsIgdhZGRyZXNzIgNrZXkiDGdldEludE9yRmFpbCIIdGhyb3dFcnIiA21zZyIGZm10RXJyIg9mYWN0b3J5Q29udHJhY3QiE2ZlZUNvbGxlY3RvckFkZHJlc3MiBWluRmVlIgFAIgZvdXRGZWUiCHNXYXZlc0lkIgtzV2F2ZXNQcm94eSIQaXNHbG9iYWxTaHV0ZG93biITZ2V0TWF0Y2hlclB1Yk9yRmFpbCINZ2V0UG9vbENvbmZpZyIIYW10QXNzZXQiCnByaWNlQXNzZXQiDHBhcnNlQXNzZXRJZCIFaW5wdXQiD2Fzc2V0SWRUb1N0cmluZyIPcGFyc2VQb29sQ29uZmlnIgpwb29sQ29uZmlnIhBwb29sQ29uZmlnUGFyc2VkIgskdDA5Mjk3OTQ2MyIOY2ZnUG9vbEFkZHJlc3MiDWNmZ1Bvb2xTdGF0dXMiDGNmZ0xwQXNzZXRJZCIQY2ZnQW1vdW50QXNzZXRJZCIPY2ZnUHJpY2VBc3NldElkIhZjZmdBbW91bnRBc3NldERlY2ltYWxzIhVjZmdQcmljZUFzc2V0RGVjaW1hbHMiEGdldEZhY3RvcnlDb25maWciD3N0YWtpbmdDb250cmFjdCIQc2xpcHBhZ2VDb250cmFjdCIRZGF0YVB1dEFjdGlvbkluZm8iDWluQW10QXNzZXRBbXQiD2luUHJpY2VBc3NldEFtdCIIb3V0THBBbXQiBXByaWNlIh1zbGlwcGFnZVRvbGVyYW5jZVBhc3NlZEJ5VXNlciIVc2xpcHBhZ2VUb2xlcmFuY2VSZWFsIgh0eEhlaWdodCILdHhUaW1lc3RhbXAiEnNsaXBhZ2VBbXRBc3NldEFtdCIUc2xpcGFnZVByaWNlQXNzZXRBbXQiEWRhdGFHZXRBY3Rpb25JbmZvIg5vdXRBbXRBc3NldEFtdCIQb3V0UHJpY2VBc3NldEFtdCIHaW5McEFtdCINZ2V0QWNjQmFsYW5jZSINYmFsYW5jZU9uUG9vbCIMdG90YWxCYWxhbmNlIg9jYWxjUHJpY2VCaWdJbnQiCHByQW10WDE4IghhbUFtdFgxOCIUY2FsY1ByaWNlQmlnSW50Um91bmQiB2dldFJhdGUiBXByb3h5IgNpbnYiByRtYXRjaDAiAXIiB2RlcG9zaXQiBmFtb3VudCIOc3Rha2luZ0Fzc2V0SWQiGGN1cnJlbnRBZGRpdGlvbmFsQmFsYW5jZSIaY3VycmVudFN0YWtpbmdBc3NldEJhbGFuY2UiBWFzc2V0Ig1kZXBvc2l0SW52b2tlIhRyZWNlaXZlZFN0YWtpbmdBc3NldCIUbmV3QWRkaXRpb25hbEJhbGFuY2UiFm5ld1N0YWtpbmdBc3NldEJhbGFuY2UiCHdpdGhkcmF3Igxwcm94eVJhdGVNdWwiDXByb2ZpdEFkZHJlc3MiEGN1cnJlbnRQcm94eVJhdGUiB29sZFJhdGUiDHN0YWtpbmdBc3NldCIUb2xkU2VuZFN0YWtpbmdBbW91bnQiFnNlbmRTdGFraW5nQXNzZXRBbW91bnQiDHByb2ZpdEFtb3VudCIOd2l0aGRyYXdJbnZva2UiDnJlY2VpdmVkQXNzZXRzIhNnZXRMZWFzZVByb3h5Q29uZmlnIhFyZWJhbGFuY2VJbnRlcm5hbCILdGFyZ2V0UmF0aW8iCm1pbkJhbGFuY2UiEGF2YWlsYWJsZUJhbGFuY2UiAWIiAXUiDHdob2xlQmFsYW5jZSIXdGFyZ2V0QWRkaXRpb25hbEJhbGFuY2UiBGRpZmYiD3NlbmRBc3NldEFtb3VudCIOZ2V0QXNzZXRBbW91bnQiDnJlYmFsYW5jZUFzc2V0IgFhIg0kdDAxNTgxNDE1OTIzIgppc0xlYXNhYmxlIgtsZWFzZWRSYXRpbyIMcHJveHlBZGRyZXNzIgxwcm94eUFzc2V0SWQiFHN0YWtpbmdQcm9maXRBZGRyZXNzIhR3aXRoZHJhd0Fzc2V0V3JhcHBlciINJHQwMTY0NTMxNjU2MiIVZ2V0V2l0aGRyYXdBc3NldFN0YXRlIgthc3NldE9uUG9vbCIBdyIKYW1vdW50RGlmZiIQcHJpdmF0ZUNhbGNQcmljZSIKYW1Bc3NldERjbSIKcHJBc3NldERjbSIFYW1BbXQiBXByQW10Ig5hbXRBc3NldEFtdFgxOCIQcHJpY2VBc3NldEFtdFgxOCIKY2FsY1ByaWNlcyIFbHBBbXQiA2NmZyILYW10QXNzZXREY20iDXByaWNlQXNzZXREY20iCHByaWNlWDE4IghscEFtdFgxOCITbHBQcmljZUluQW1Bc3NldFgxOCITbHBQcmljZUluUHJBc3NldFgxOCIPY2FsY3VsYXRlUHJpY2VzIgZwcmljZXMiFGVzdGltYXRlR2V0T3BlcmF0aW9uIgZ0eElkNTgiCnBtdEFzc2V0SWQiCHBtdExwQW10IglscEFzc2V0SWQiCWFtQXNzZXRJZCIJcHJBc3NldElkIgpwb29sU3RhdHVzIgpscEVtaXNzaW9uIglhbUJhbGFuY2UiDGFtQmFsYW5jZVgxOCIJcHJCYWxhbmNlIgxwckJhbGFuY2VYMTgiC2N1clByaWNlWDE4IghjdXJQcmljZSILcG10THBBbXRYMTgiDWxwRW1pc3Npb25YMTgiC291dEFtQW10WDE4IgtvdXRQckFtdFgxOCIIb3V0QW1BbXQiCG91dFByQW10IhJBbUFtdFdpdGhkcmF3U3RhdGUiElByQW10V2l0aGRyYXdTdGF0ZSIDcmViIgVzdGF0ZSIUZXN0aW1hdGVQdXRPcGVyYXRpb24iEXNsaXBwYWdlVG9sZXJhbmNlIgxpbkFtQXNzZXRBbXQiC2luQW1Bc3NldElkIgxpblByQXNzZXRBbXQiC2luUHJBc3NldElkIgppc0V2YWx1YXRlIgZlbWl0THAiDGFtQXNzZXRJZFN0ciIMcHJBc3NldElkU3RyIgtpQW10QXNzZXRJZCINaVByaWNlQXNzZXRJZCIOaW5BbUFzc2V0SWRTdHIiDmluUHJBc3NldElkU3RyIg9pbkFtQXNzZXRBbXRYMTgiD2luUHJBc3NldEFtdFgxOCIMdXNlclByaWNlWDE4IgNyZXMiC3NsaXBwYWdlWDE4IhRzbGlwcGFnZVRvbGVyYW5jZVgxOCIKcHJWaWFBbVgxOCIKYW1WaWFQclgxOCIMZXhwZWN0ZWRBbXRzIhFleHBBbXRBc3NldEFtdFgxOCITZXhwUHJpY2VBc3NldEFtdFgxOCIJY2FsY0xwQW10Ig5jYWxjQW1Bc3NldFBtdCIOY2FsY1ByQXNzZXRQbXQiDHNsaXBwYWdlQ2FsYyIJZW1pdExwQW10IgZhbURpZmYiBnByRGlmZiILY29tbW9uU3RhdGUiB2NhbGNLTHAiDWFtb3VudEJhbGFuY2UiDHByaWNlQmFsYW5jZSIQYW1vdW50QmFsYW5jZVgxOCIPcHJpY2VCYWxhbmNlWDE4Igp1cGRhdGVkS0xwIg5jYWxjQ3VycmVudEtMcCIQYW1vdW50QXNzZXREZWx0YSIPcHJpY2VBc3NldERlbHRhIhRscEFzc2V0RW1pc3Npb25EZWx0YSISYW1vdW50QXNzZXRCYWxhbmNlIhFwcmljZUFzc2V0QmFsYW5jZSIPbHBBc3NldEVtaXNzaW9uIgpjdXJyZW50S0xwIhJyZWZyZXNoS0xwSW50ZXJuYWwiF2Ftb3VudEFzc2V0QmFsYW5jZURlbHRhIhZwcmljZUFzc2V0QmFsYW5jZURlbHRhIgdhY3Rpb25zIhJ2YWxpZGF0ZVVwZGF0ZWRLTHAiBm9sZEtMcCIbdmFsaWRhdGVNYXRjaGVyT3JkZXJBbGxvd2VkIgVvcmRlciIRYW1vdW50QXNzZXRBbW91bnQiEHByaWNlQXNzZXRBbW91bnQiDSR0MDI4ODAwMjkwMTIiA2tMcCINJHQwMjk0NTIyOTU1MiINdW51c2VkQWN0aW9ucyIGa0xwTmV3Igxpc09yZGVyVmFsaWQiBGluZm8iCWNvbW1vbkdldCIBaSIDcG10IgZwbXRBbXQiCWNvbW1vblB1dCIKYW1Bc3NldFBtdCIKcHJBc3NldFBtdCIGZXN0UHV0IgRlbWl0IgdlbWl0SW52Ig1lbWl0SW52TGVnYWN5IhVsZWdhY3lGYWN0b3J5Q29udHJhY3QiB3Rha2VGZWUiCWZlZUFtb3VudCIPY2FsY1B1dE9uZVRva2VuIhBwYXltZW50QW1vdW50UmF3Ig5wYXltZW50QXNzZXRJZCIGaXNFdmFsIhBhbW91bnRCYWxhbmNlUmF3Ig9wcmljZUJhbGFuY2VSYXciFHBheW1lbnRJbkFtb3VudEFzc2V0Ig0kdDAzMjY2NTMyOTU4IhBhbW91bnRCYWxhbmNlT2xkIg9wcmljZUJhbGFuY2VPbGQiDSR0MDMyOTYyMzMxMTEiFGFtb3VudEFzc2V0QW1vdW50UmF3IhNwcmljZUFzc2V0QW1vdW50UmF3Ig0kdDAzMzI0MzMzMzA3Ig1wYXltZW50QW1vdW50IhBhbW91bnRCYWxhbmNlTmV3Ig9wcmljZUJhbGFuY2VOZXciC3ByaWNlTmV3WDE4IghwcmljZU5ldyIOcGF5bWVudEJhbGFuY2UiFHBheW1lbnRCYWxhbmNlQmlnSW50IgxzdXBwbHlCaWdJbnQiC2NoZWNoU3VwcGx5Ig1kZXBvc2l0QmlnSW50Igtpc3N1ZUFtb3VudCILcHJpY2VPbGRYMTgiCHByaWNlT2xkIgRsb3NzIg0kdDAzNDk4ODM1MTU1IgdiYWxhbmNlIg9pc3N1ZUFtb3VudEJvdGgiD2NhbGNHZXRPbmVUb2tlbiIKb3V0QXNzZXRJZCIGY2hlY2tzIhBvdXRJbkFtb3VudEFzc2V0Ig1iYWxhbmNlQmlnSW50IhhvdXRJbkFtb3VudEFzc2V0RGVjaW1hbHMiDGFtQmFsYW5jZU9sZCIMcHJCYWxhbmNlT2xkIgpvdXRCYWxhbmNlIhBvdXRCYWxhbmNlQmlnSW50Ig5yZWRlZW1lZEJpZ0ludCIJYW1vdW50UmF3Ig0kdDAzNzIzMzM3Mjg5Igt0b3RhbEFtb3VudCINJHQwMzcyOTMzNzUxOSILb3V0QW1BbW91bnQiC291dFByQW1vdW50IgxhbUJhbGFuY2VOZXciDHByQmFsYW5jZU5ldyIYYW1vdW50Qm90aEluUGF5bWVudEFzc2V0IhZtYW5hZ2VyUHVibGljS2V5T3JVbml0IgFzIh1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdCIJaXNNYW5hZ2VyIgJwayILbXVzdE1hbmFnZXIiAnBkIg1jbGVhbkFtb3VudEluIglpc1JldmVyc2UiDWZlZVBvb2xBbW91bnQiDSR0MDM5NDA1Mzk3MTAiCGFzc2V0T3V0Igdhc3NldEluIhJwb29sQXNzZXRJbkJhbGFuY2UiE3Bvb2xBc3NldE91dEJhbGFuY2UiCWFtb3VudE91dCIEb2xkSyIEbmV3SyIGY2hlY2tLIgxhbW91bnRPdXRNaW4iCWFkZHJlc3NUbyILc3dhcENvbnRhY3QiCGNoZWNrTWluIgZsc0NvbmYiDXdpdGhkcmF3U3RhdGUiF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5IgtjaGVja0NhbGxlciIVY2hlY2tNYW5hZ2VyUHVibGljS2V5IgJwbSIFaGFzUE0iB2NoZWNrUE0iD3Nob3VsZEF1dG9TdGFrZSIEYW1JZCIEcHJJZCIMc2xpcHBhZ2VBSW52IgxzbGlwcGFnZVBJbnYiCmxwVHJhbnNmZXIiC3NscFN0YWtlSW52Ig0kdDA0NDkxMTQ1MzczIhFyZWZyZXNoS0xwQWN0aW9ucyIRaXNVcGRhdGVkS0xwVmFsaWQiC21heFNsaXBwYWdlIg0kdDA0NTkzNTQ2MDAwIgxtaW5PdXRBbW91bnQiCWF1dG9TdGFrZSIgaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiDWlzUHV0RGlzYWJsZWQiB3BheW1lbnQiDSR0MDQ3MTg4NDczNDAiBWJvbnVzIhNlbWl0QW1vdW50RXN0aW1hdGVkIgplbWl0QW1vdW50IghzdGFrZUludiIHc2VuZEZlZSINJHQwNDc5MjY0ODEyMyINJHQwNDgxMjY0ODIzNCINJHQwNDg1ODk0ODc0NiINb3V0QXNzZXRJZFN0ciINaXNHZXREaXNhYmxlZCINJHQwNDk2MzE0OTc4NCIPYW1vdW50RXN0aW1hdGVkIgdidXJuSW52Ig1hc3NldFRyYW5zZmVyIg0kdDA1MDU0MDUwNzg3IhBmZWVBbW91bnRGb3JDYWxjIg0kdDA1MDc5MDUwODk4Ig0kdDA1MTIyNDUxMzgwIg11bnN0YWtlQW1vdW50Igp1bnN0YWtlSW52Ig0kdDA1MjI4NTUyNDM2Ig0kdDA1MzAwMTUzMjQ4Ig0kdDA1MzI1MTUzMzU5IglvdXRBbXRBbXQiFGJ1cm5MUEFzc2V0T25GYWN0b3J5Ig0kdDA1NDM3MzU0NDU1IhJub0xlc3NUaGVuQW10QXNzZXQiFG5vTGVzc1RoZW5QcmljZUFzc2V0Ig0kdDA1NTQwNDU1NDg1Ig1jaGVja1BheW1lbnRzIg9jaGVja1Bvb2xTdGF0dXMiDSR0MDU2NjExNTY2OTIiFW5vTGVzc1RoZW5BbW91bnRBc3NldCIMY2hlY2tBbW91bnRzIg0kdDA1Nzk4NzU4MDY4IgthbXRBc3NldFN0ciINcHJpY2VBc3NldFN0ciIYbGFzdFJlZnJlc2hlZEJsb2NrSGVpZ2h0Ih1jaGVja0xhc3RSZWZyZXNoZWRCbG9ja0hlaWdodCINJHQwNTkyNTU1OTMxOSIQa0xwVXBkYXRlQWN0aW9ucyIKYW10QXNzZXRJZCIMcHJpY2VBc3NldElkIg1wb29sTFBCYWxhbmNlIhJhY2NBbXRBc3NldEJhbGFuY2UiFGFjY1ByaWNlQXNzZXRCYWxhbmNlIgpwcmljZXNMaXN0Ig9scEFtdEFzc2V0U2hhcmUiEWxwUHJpY2VBc3NldFNoYXJlIgpwb29sV2VpZ2h0IgxjdXJQcmljZUNhbGMiDGFtQmFsYW5jZVJhdyIMcHJCYWxhbmNlUmF3Ig9hbUJhbGFuY2VSYXdYMTgiD3ByQmFsYW5jZVJhd1gxOCIQcGF5bWVudExwQXNzZXRJZCIMcGF5bWVudExwQW10IgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXkiCm1hdGNoZXJQdWIiDSR0MDY3OTgxNjgwNTAiB25ld0hhc2giC2FsbG93ZWRIYXNoIgtjdXJyZW50SGFzaIMBAAFhAAgAAWIAgMLXLwABYwkAtgIBAIDC1y8AAWQJALYCAQCAgJC7utat8A0AAWUJALYCAQAAAAFmCQC2AgEAAAABZwkAtgIBAAEAAWgJALYCAQACAAFpAgVXQVZFUwABagICX18AAWsAAQABbAACAAFtAAMAAW4ABAABbwABAAFwAAIAAXEAAwABcgAEAAFzAAUAAXQABgABdQAHAAF2AAgAAXcACQABeAAKAAF5AAEAAXoAAgABQQADAAFCAAEAAUMABwEBRAIBRQFGCQC8AgMJALYCAQUBRQUBZAkAtgIBBQFGAQFHAgFFAUYJALwCAwUBRQUBZAUBRgEBSAIBSQFKCQCgAwEJALwCAwUBSQkAtgIBBQFKBQFkAQFLAwFJAUoBTAkAoAMBCQC9AgQFAUkJALYCAQUBSgUBZAUBTAEBTQMBTgFPAVAJAGsDBQFOBQFPBQFQAQFRAQFJAwkAZgIAAAUBSQkBAS0BBQFJBQFJAQFSAQFJAwkAvwICBQFlBQFJCQC+AgEFAUkFAUkBAVMAAhAlc19fc3dhcENvbnRyYWN0AQFUAAITJXNfX2ZhY3RvcnlDb250cmFjdAEBVQACFCVzX19tYW5hZ2VyUHVibGljS2V5AQFWAAIbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AQFXAAIRJXMlc19fcHJpY2VfX2xhc3QBAVgCAVkBWgkAuQkCCQDMCAICGCVzJXMlZCVkX19wcmljZV9faGlzdG9yeQkAzAgCCQCkAwEFAVkJAMwIAgkApAMBBQFaBQNuaWwFAWoBAmFhAgJhYgJhYwkArAICCQCsAgIJAKwCAgILJXMlcyVzX19QX18FAmFiAgJfXwUCYWMBAmFkAgJhYgJhYwkArAICCQCsAgIJAKwCAgILJXMlcyVzX19HX18FAmFiAgJfXwUCYWMBAmFlAAIPJXNfX2Ftb3VudEFzc2V0AQJhZgACDiVzX19wcmljZUFzc2V0AAJhZwIHJXNfX2ZlZQACYWgJAGsDAAoFAWIAkE4AAmFpCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmFnBQJhaAACYWoJALkJAgkAzAgCAgIlcwkAzAgCAgNrTHAFA25pbAUBagACYWsJALkJAgkAzAgCAgIlcwkAzAgCAhJrTHBSZWZyZXNoZWRIZWlnaHQFA25pbAUBagACYWwJALkJAgkAzAgCAgIlcwkAzAgCAg9yZWZyZXNoS0xwRGVsYXkFA25pbAUBagACYW0AHgACYW4JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCYWwFAmFtAQJhbwACESVzX19zV2F2ZXNBc3NldElkAQJhcAACFiVzX19zV2F2ZXNQcm94eUFkZHJlc3MBAmFxAQJhcgkAuQkCCQDMCAICBCVzJXMJAMwIAgIRYWRkaXRpb25hbEJhbGFuY2UJAMwIAgUCYXIFA25pbAUBagECYXMBAmFyCQC5CQIJAMwIAgIEJXMlcwkAzAgCAhNzdGFraW5nQXNzZXRCYWxhbmNlCQDMCAIFAmFyBQNuaWwFAWoBAmF0AQJhcgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYXEBBQJhcgAAAQJhdQECYXIJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmFzAQUCYXIAAAECYXYAAhElc19fZmFjdG9yeUNvbmZpZwECYXcAAhglcyVzX19tYXRjaGVyX19wdWJsaWNLZXkBAmF4AQJheQkArAICCQCsAgICCCVzJXMlc19fBQJheQIgX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MkxwQXNzZXQBAmF6AgJhQQJhQgkArAICCQCsAgIJAKwCAgkArAICAgglZCVkJXNfXwUCYUECAl9fBQJhQgIIX19jb25maWcBAmFDAQJhRAkArAICAiglcyVzJXNfX21hcHBpbmdzX19iYXNlQXNzZXQyaW50ZXJuYWxJZF9fBQJhRAECYUUAAgwlc19fc2h1dGRvd24BAmFGAQJhRwkArAICAhIlcyVzX19wb29sV2VpZ2h0X18FAmFHAQJhSAACFyVzX19hbGxvd2VkTHBTY3JpcHRIYXNoAAJhSQIXJXNfX2ZlZUNvbGxlY3RvckFkZHJlc3MBAmFKBAJhSwJhTAJhTQJhTgkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAiRvcmRlciB2YWxpZGF0aW9uIGZhaWxlZDogb3JkZXJWYWxpZD0JAKUDAQUCYUsCAiAoBQJhTAIBKQINIHNlbmRlclZhbGlkPQkApQMBBQJhTQIOIG1hdGNoZXJWYWxpZD0JAKUDAQUCYU4BAmFPAgJhUAJhUQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFAmFQBQJhUQkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQJhUAkAzAgCAgEuCQDMCAIFAmFRCQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgABAmFSAgJhUAJhUQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFAmFQBQJhUQkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQJhUAkAzAgCAgEuCQDMCAIFAmFRCQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgABAmFTAQJhVAkAAgEJALkJAgkAzAgCAghscC5yaWRlOgkAzAgCBQJhVAUDbmlsAgEgAQJhVQECYVQJALkJAgkAzAgCAghscC5yaWRlOgkAzAgCBQJhVAUDbmlsAgEgAAJhVgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmFPAgUEdGhpcwkBAVQAAAJhVwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmFPAgUCYVYFAmFJAAJhWAoAAmFZCQD8BwQFAmFWAhBnZXRJbkZlZVJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYVkCA0ludAUCYVkJAAIBCQCsAgIJAAMBBQJhWQIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AAJhWgoAAmFZCQD8BwQFAmFWAhFnZXRPdXRGZWVSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmFZAgNJbnQFAmFZCQACAQkArAICCQADAQUCYVkCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAECYmEACQECYU8CBQJhVgkBAmFvAAECYmIACQECYU8CBQJhVgkBAmFwAAECYmMACQELdmFsdWVPckVsc2UCCQCbCAIFAmFWCQECYUUABwECYmQACQDZBAEJAQJhTwIFAmFWCQECYXcAAQJiZQAEAmJmCQECYU8CBQR0aGlzCQECYWUABAJiZwkBAmFPAgUEdGhpcwkBAmFmAAQCYUIJAQJhUgIFAmFWCQECYUMBBQJiZwQCYUEJAQJhUgIFAmFWCQECYUMBBQJiZgkAtQkCCQECYU8CBQJhVgkBAmF6AgkApAMBBQJhQQkApAMBBQJhQgUBagECYmgBAmJpAwkAAAIFAmJpBQFpBQR1bml0CQDZBAEFAmJpAQJiagECYmkDCQAAAgUCYmkFBHVuaXQFAWkJANgEAQkBBXZhbHVlAQUCYmkBAmJrAQJibAkAmQoHCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmJsBQFvCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYmwFAXAJANkEAQkAkQMCBQJibAUBcQkBAmJoAQkAkQMCBQJibAUBcgkBAmJoAQkAkQMCBQJibAUBcwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJsBQF0CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYmwFAXUAAmJtCQECYmsBCQECYmUAAAJibgUCYm0AAmJvCAUCYm4CXzEAAmJwCAUCYm4CXzIAAmJxCAUCYm4CXzMAAmJyCAUCYm4CXzQAAmJzCAUCYm4CXzUAAmJ0CAUCYm4CXzYAAmJ1CAUCYm4CXzcBAmJ2AAkAtQkCCQECYU8CBQJhVgkBAmF2AAUBagACYncJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIJAQJidgAFAUICGWluY29ycmVjdCBzdGFraW5nIGFkZHJlc3MAAmJ4CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCCQECYnYABQFDAhlpbmNvcnJlY3Qgc3Rha2luZyBhZGRyZXNzAQJieQoCYnoCYkECYkICYkMCYkQCYkUCYkYCYkcCYkgCYkkJALkJAgkAzAgCAhQlZCVkJWQlZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmJ6CQDMCAIJAKQDAQUCYkEJAMwIAgkApAMBBQJiQgkAzAgCCQCkAwEFAmJDCQDMCAIJAKQDAQUCYkQJAMwIAgkApAMBBQJiRQkAzAgCCQCkAwEFAmJGCQDMCAIJAKQDAQUCYkcJAMwIAgkApAMBBQJiSAkAzAgCCQCkAwEFAmJJBQNuaWwFAWoBAmJKBgJiSwJiTAJiTQJiQwJiRgJiRwkAuQkCCQDMCAICDCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmJLCQDMCAIJAKQDAQUCYkwJAMwIAgkApAMBBQJiTQkAzAgCCQCkAwEFAmJDCQDMCAIJAKQDAQUCYkYJAMwIAgkApAMBBQJiRwUDbmlsBQFqAQJiTgECYXIEAmJPAwkAAAIFAmFyAgVXQVZFUwgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAPAHAgUEdGhpcwkA2QQBBQJhcgQCYlAJAGUCCQBkAgUCYk8JAQJhdAEFAmFyCQECYXUBBQJhcgkAlgMBCQDMCAIAAAkAzAgCBQJiUAUDbmlsAQJiUQICYlICYlMJALwCAwUCYlIFAWQFAmJTAQJiVAMCYlICYlMBTAkAvQIEBQJiUgUBZAUCYlMFAUwBAmJVAQJiVgQCYlcJAPwHBAUCYlYCB2dldFJhdGUFA25pbAUDbmlsAwkAAAIFAmJXBQJiVwQCYlgFAmJXAwkAAQIFAmJYAgNJbnQEAmJZBQJiWAUCYlkJAQJhUwECIHByb3h5LmdldFJhdGUoKSB1bmV4cGVjdGVkIHZhbHVlCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJiWgQCYXICY2ECY2ICYlYEAmNjCQECYXQBBQJhcgMJAAACBQJjYwUCY2MEAmNkCQECYXUBBQJjYgMJAAACBQJjZAUCY2QEAmNlCQECYmgBBQJhcgMJAGYCBQJjYQAABAJjZgkA/AcEBQJiVgIHZGVwb3NpdAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJjZQUCY2EFA25pbAMJAAACBQJjZgUCY2YEAmJYBQJjZgMJAAECBQJiWAIDSW50BAJjZwUCYlgEAmNoCQBkAgUCY2MFAmNhBAJjaQkAZAIFAmNkBQJjZwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFxAQUCYXIFAmNoCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYXMBBQJjYgUCY2kFA25pbAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmNqBgJhcgJjYQJjYgJiVgJjawJjbAQCY2MJAQJhdAEFAmFyAwkAAAIFAmNjBQJjYwQCY2QJAQJhdQEFAmNiAwkAAAIFAmNkBQJjZAQCY20JAQJiVQEFAmJWAwkAAAIFAmNtBQJjbQQCY24JAGsDBQJjawUCY2MFAmNkBAJjbwkBAmJoAQUCY2IEAmNwCQBrAwUCY2sFAmNhBQJjbgQCY3EJAGsDBQJjawUCY2EFAmNtBAJjcgkAlgMBCQDMCAIAAAkAzAgCCQBlAgUCY3AFAmNxBQNuaWwDCQBmAgUCY3EAAAQCY3MJAPwHBAUCYlYCCHdpdGhkcmF3BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmNvBQJjcQUDbmlsAwkAAAIFAmNzBQJjcwQCYlgFAmNzAwkAAQIFAmJYAgNJbnQEAmN0BQJiWAQCY2gJAGUCBQJjYwUCY3QEAmNpCQBlAgkAZQIFAmNkBQJjcQUCY3IJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhcQEFAmFyBQJjaAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFzAQUCY2IFAmNpCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmNsBQJjcgkBAmJoAQUCY2IFA25pbAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmN1AQJhcgkA/AcEBQJhVgIaZ2V0UG9vbExlYXNlQ29uZmlnUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzCQDMCAIFAmFyBQNuaWwFA25pbAECY3YHAmN3AmFyAmNiAmN4AmJWAmNrAmNsBAJjYwkBAmF0AQUCYXIDCQAAAgUCY2MFAmNjBAJjZAkBAmF1AQUCY2IDCQAAAgUCY2QFAmNkBAJjeQQCYlgJAQJiaAEFAmFyAwkAAQIFAmJYAgpCeXRlVmVjdG9yBAJjegUCYlgJAPAHAgUEdGhpcwUCY3oDCQABAgUCYlgCBFVuaXQEAmNBBQJiWAgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAAIBAgtNYXRjaCBlcnJvcgMJAAACBQJjeQUCY3kEAmNCCQCWAwEJAMwIAgAACQDMCAIJAGUCCQBkAgUCY3kFAmNjBQJjeAUDbmlsBAJjQwkAawMFAmN3BQJjQgBkBAJjRAkAZQIFAmNjBQJjQwMJAAACBQJjRAAABQNuaWwDCQBmAgAABQJjRAQCY0UJAQEtAQUCY0QJAQJiWgQFAmFyBQJjRQUCY2IFAmJWBAJjRgUCY0QJAQJjagYFAmFyBQJjRgUCY2IFAmJWBQJjawUCY2wJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmNHAQJhcgQCYlgJAQJjdQEFAmFyAwkAAQIFAmJYAjAoQm9vbGVhbiwgSW50LCBJbnQsIFN0cmluZywgU3RyaW5nLCBJbnQsIFN0cmluZykEAmNIBQJiWAQCY0kFAmNIBAJjSggFAmNJAl8xBAJjSwgFAmNJAl8yBAJjeAgFAmNJAl8zBAJjTAgFAmNJAl80BAJjTQgFAmNJAl81BAJjawgFAmNJAl82BAJjTggFAmNJAl83AwUCY0oJAQJjdgcFAmNLBQJhcgUCY00FAmN4CQERQGV4dHJOYXRpdmUoMTA2MikBBQJjTAUCY2sJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmNOBQNuaWwJAQJhUwEJAKwCAgkArAICAgFbBQJhcgIRXSBSZWJhbGFuY2UgZXJyb3IBAmNPAgJhcgJjYQQCYlgJAQJjdQEFAmFyAwkAAQIFAmJYAjAoQm9vbGVhbiwgSW50LCBJbnQsIFN0cmluZywgU3RyaW5nLCBJbnQsIFN0cmluZykEAmNIBQJiWAQCY1AFAmNIBAJjSggFAmNQAl8xBAJjSwgFAmNQAl8yBAJjeAgFAmNQAl8zBAJjTAgFAmNQAl80BAJjTQgFAmNQAl81BAJjawgFAmNQAl82BAJjTggFAmNQAl83AwUCY0oJAQJjagYFAmFyBQJjYQUCY00JARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmNMBQJjawkBEUBleHRyTmF0aXZlKDEwNjIpAQUCY04FA25pbAkBAmFTAQkArAICCQCsAgICAVsFAmFyAh5dIHdpdGhkcmF3QXNzZXRXcmFwcGVyKCkgZXJyb3IBAmNRAgJhcgJjYQQCY1IEAmJYCQECYmgBBQJhcgMJAAECBQJiWAIKQnl0ZVZlY3RvcgQCY3oFAmJYCQDwBwIFBHRoaXMFAmN6AwkAAQIFAmJYAgRVbml0BAJjUwUCYlgICQDvBwEFBHRoaXMJYXZhaWxhYmxlCQACAQILTWF0Y2ggZXJyb3IDCQBmAgUCY2EFAmNSBAJjVAkAZQIFAmNhBQJjUgkBAmNPAgUCYXIFAmNUBQNuaWwBAmNVBAJjVgJjVwJjWAJjWQQCY1oJAQFEAgUCY1gFAmNWBAJkYQkBAUQCBQJjWQUCY1cJAQJiUQIFAmRhBQJjWgECZGIDAmNYAmNZAmRjBAJkZAkBAmJlAAQCZGUJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkZAUBdAQCZGYJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkZAUBdQQCZGcJAQJjVQQFAmRlBQJkZgUCY1gFAmNZBAJiUwkBAUQCBQJjWAUCZGUEAmJSCQEBRAIFAmNZBQJkZgQCZGgJAQFEAgUCZGMFAWIEAmRpCQECYlECBQJiUwUCZGgEAmRqCQECYlECBQJiUgUCZGgJAMwIAgUCZGcJAMwIAgUCZGkJAMwIAgUCZGoFA25pbAECZGsDAmNYAmNZAmRjBAJkbAkBAmRiAwUCY1gFAmNZBQJkYwkAzAgCCQEBSAIJAJEDAgUCZGwAAAUBYgkAzAgCCQEBSAIJAJEDAgUCZGwAAQUBYgkAzAgCCQEBSAIJAJEDAgUCZGwAAgUBYgUDbmlsAQJkbQQCZG4CZG8CZHACYWIEAmRkCQECYmUABAJkcQkAkQMCBQJkZAUBcQQCZHIJAJEDAgUCZGQFAXIEAmRzCQCRAwIFAmRkBQFzBAJjVgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRkBQF0BAJjVwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRkBQF1BAJkdAkAkQMCBQJkZAUBcAQCZHUICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQkA2QQBBQJkcQkArAICCQCsAgICBkFzc2V0IAUCZHECDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5AwkBAiE9AgUCZHEFAmRvCQACAQIVSW52YWxpZCBhc3NldCBwYXNzZWQuBAJkdgkBAmJOAQUCZHIEAmR3CQEBRAIFAmR2BQJjVgQCZHgJAQJiTgEFAmRzBAJkeQkBAUQCBQJkeAUCY1cEAmR6CQECYlECBQJkeQUCZHcEAmRBCQEBSAIFAmR6BQFiBAJkQgkBAUQCBQJkcAUBYgQCZEMJAQFEAgUCZHUFAWIEAmRECQC8AgMFAmR3BQJkQgUCZEMEAmRFCQC8AgMFAmR5BQJkQgUCZEMEAmRGCQEBSwMFAmREBQJjVgUFRkxPT1IEAmRHCQEBSwMFAmRFBQJjVwUFRkxPT1IEAmRICQECY1ECBQJkcgUCZEYDCQAAAgUCZEgFAmRIBAJkSQkBAmNRAgUCZHMFAmRHAwkAAAIFAmRJBQJkSQQCZEoJAPwHBAUEdGhpcwIJcmViYWxhbmNlBQNuaWwFA25pbAMJAAACBQJkSgUCZEoEAmRLAwkAAAIFAmRuAgAFA25pbAkAzggCCQDOCAIFAmRIBQJkSQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhYgUCZEYDCQAAAgUCZHICBVdBVkVTBQR1bml0CQDZBAEFAmRyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFiBQJkRwMJAAACBQJkcwIFV0FWRVMFBHVuaXQJANkEAQUCZHMJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFkAgkApQgBBQJhYgUCZG4JAQJiSgYFAmRGBQJkRwUCZHAFAmRBBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVwAFAmRBCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBWAIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmRBBQNuaWwJAJwKCgUCZEYFAmRHBQJkcgUCZHMFAmR2BQJkeAUCZHUFAmR6BQJkdAUCZEsJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmRMCQJkbgJkTQJkTgJkTwJkUAJkUQJhYgJkUgJkUwQCZGQJAQJiZQAEAmRxCQDZBAEJAJEDAgUCZGQFAXEEAmRUCQCRAwIFAmRkBQFyBAJkVQkAkQMCBQJkZAUBcwQCZFYJAJEDAgUCZGQFAXYEAmRXCQCRAwIFAmRkBQF3BAJkZQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRkBQF0BAJkZgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRkBQF1BAJkdAkAkQMCBQJkZAUBcAQCZHUICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCZHEJAKwCAgkArAICAgZBc3NldCAJANgEAQUCZHECDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJkWAkA2AQBCQELdmFsdWVPckVsc2UCBQJkTwkA2QQBAgVXQVZFUwQCZFkJANgEAQkBC3ZhbHVlT3JFbHNlAgUCZFEJANkEAQIFV0FWRVMDAwkBAiE9AgUCZFQFAmRYBgkBAiE9AgUCZFUFAmRZCQACAQIiSW52YWxpZCBhbXQgb3IgcHJpY2UgYXNzZXQgcGFzc2VkLgQCZHYDBQJkUgkBAmJOAQUCZFQJAGUCCQECYk4BBQJkVAUCZE4EAmR4AwUCZFIJAQJiTgEFAmRVCQBlAgkBAmJOAQUCZFUFAmRQBAJkWgkBAUQCBQJkTgUCZGUEAmVhCQEBRAIFAmRQBQJkZgQCZWIJAQJiUQIFAmVhBQJkWgQCZHcJAQFEAgUCZHYFAmRlBAJkeQkBAUQCBQJkeAUCZGYEAmVjAwkAAAIFAmR1AAAEAmR6BQFlBAJlZAUBZQQCZGgJAHYGCQC5AgIFAmRaBQJlYQAACQC2AgEABQABAAAFBERPV04JAJcKBQkBAUgCBQJkaAUBYgkBAUgCBQJkWgUCZGUJAQFIAgUCZWEFAmRmCQECYlECCQC3AgIFAmR5BQJlYQkAtwICBQJkdwUCZFoFAmVkBAJkegkBAmJRAgUCZHkFAmR3BAJlZAkAvAIDCQEBUgEJALgCAgUCZHoFAmViBQFkBQJkegQCZWUJAQFEAgUCZE0FAWIDAwkBAiE9AgUCZHoFAWUJAL8CAgUCZWQFAmVlBwkAAgEJAKwCAgkArAICCQCsAgICD1ByaWNlIHNsaXBwYWdlIAkApgMBBQJlZAIeIGV4Y2VlZGVkIHRoZSBwYXNzZWQgbGltaXQgb2YgCQCmAwEFAmVlBAJkQwkBAUQCBQJkdQUBYgQCZWYJAL0CBAUCZFoJAQJiVAMFAmR5BQJkdwUHQ0VJTElORwUBZAUHQ0VJTElORwQCZWcJAL0CBAUCZWEFAWQJAQJiVAMFAmR5BQJkdwUFRkxPT1IFB0NFSUxJTkcEAmVoAwkAvwICBQJlZgUCZWEJAJQKAgUCZWcFAmVhCQCUCgIFAmRaBQJlZgQCZWkIBQJlaAJfMQQCZWoIBQJlaAJfMgQCZGgJAL0CBAUCZEMFAmVqBQJkeQUFRkxPT1IJAJcKBQkBAUsDBQJkaAUBYgUFRkxPT1IJAQFLAwUCZWkFAmRlBQdDRUlMSU5HCQEBSwMFAmVqBQJkZgUHQ0VJTElORwUCZHoFAmVkBAJlawgFAmVjAl8xBAJlbAgFAmVjAl8yBAJlbQgFAmVjAl8zBAJkQQkBAUgCCAUCZWMCXzQFAWIEAmVuCQEBSAIIBQJlYwJfNQUBYgMJAGcCAAAFAmVrCQACAQI2SW52YWxpZCBjYWxjdWxhdGlvbnMuIExQIGNhbGN1bGF0ZWQgaXMgbGVzcyB0aGFuIHplcm8uBAJlbwMJAQEhAQUCZFMAAAUCZWsEAmVwCQBlAgUCZE4FAmVsBAJlcQkAZQIFAmRQBQJlbQQCZXIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFXAAUCZEEJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFYAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZEEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFhAgUCYWIFAmRuCQECYnkKBQJlbAUCZW0FAmVvBQJkQQUCZE0FAmVuBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJlcAUCZXEFA25pbAkAnwoNBQJlawUCZW8FAmRBBQJkdgUCZHgFAmR1BQJkcQUCZHQFAmVyBQJlcAUCZXEFAmRPBQJkUQECZXMDAmV0AmV1AmR1BAJldgkBAUcCBQJldAkAtgIBBQJidAQCZXcJAQFHAgUCZXUJALYCAQUCYnUEAmV4CQC8AgMJAHYGCQC5AgIFAmV2BQJldwAACQC2AgEABQABABIFBERPV04FAWcFAmR1AwkAAAIFAmR1BQFmBQFmBQJleAECZXkDAmV6AmVBAmVCBAJlQwkAuAICCQC2AgEJAQJiTgEJAQJiagEFAmJyBQJlegQCZUQJALgCAgkAtgIBCQECYk4BCQECYmoBBQJicwUCZUEEAmVFCQC4AgIJALYCAQgJAQV2YWx1ZQEJAOwHAQUCYnEIcXVhbnRpdHkFAmVCBAJlRgkBAmVzAwUCZUMFAmVEBQJlRQUCZUYBAmVHAwJlSAJlSQJlQgQCZUMJAGQCCQECYk4BCQECYmoBBQJicgUCZUgEAmVECQBkAgkBAmJOAQkBAmJqAQUCYnMFAmVJBAJlRQkAZAIICQEFdmFsdWUBCQDsBwEFAmJxCHF1YW50aXR5BQJlQgQCZXgJAQJlcwMJALYCAQUCZUMJALYCAQUCZUQJALYCAQUCZUUEAmVKCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJhawUGaGVpZ2h0CQDMCAIJAQtTdHJpbmdFbnRyeQIFAmFqCQCmAwEFAmV4BQNuaWwJAJQKAgUCZUoFAmV4AQJlSwICZUwCZXgDCQDAAgIFAmV4BQJlTAYJAQJhUwEJALkJAgkAzAgCAiJ1cGRhdGVkIEtMcCBsb3dlciB0aGFuIGN1cnJlbnQgS0xwCQDMCAIJAKYDAQUCZUwJAMwIAgkApgMBBQJleAUDbmlsAgEgAQJlTQECZU4EAmVDCQECYk4BCQECYmoBBQJicgQCZUQJAQJiTgEJAQJiagEFAmJzBAJlTwgFAmVOBmFtb3VudAQCZVAJAG4ECAUCZU4GYW1vdW50CAUCZU4FcHJpY2UFAWIFBUZMT09SBAJlUQMJAAACCAUCZU4Jb3JkZXJUeXBlBQNCdXkJAJQKAgUCZU8JAQEtAQUCZVAJAJQKAgkBAS0BBQJlTwUCZVAEAmVICAUCZVECXzEEAmVJCAUCZVECXzIDAwMJAQJiYwAGCQAAAgUCYnAFAW0GCQAAAgUCYnAFAW4JAAIBAhxFeGNoYW5nZSBvcGVyYXRpb25zIGRpc2FibGVkAwMJAQIhPQIICAUCZU4JYXNzZXRQYWlyC2Ftb3VudEFzc2V0BQJicgYJAQIhPQIICAUCZU4JYXNzZXRQYWlyCnByaWNlQXNzZXQFAmJzCQACAQITV3Jvbmcgb3JkZXIgYXNzZXRzLgQCZVIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAqAMBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFAmFqAgEwCQECYVUBAgtpbnZhbGlkIGtMcAQCZVMJAQJlRwMFAmVIBQJlSQAABAJlVAgFAmVTAl8xBAJlVQgFAmVTAl8yBAJlVgkAwAICBQJlVQUCZVIEAmVXCQC5CQIJAMwIAgIEa0xwPQkAzAgCCQCmAwEFAmVSCQDMCAICCCBrTHBOZXc9CQDMCAIJAKYDAQUCZVUJAMwIAgIUIGFtb3VudEFzc2V0QmFsYW5jZT0JAMwIAgkApAMBBQJlQwkAzAgCAhMgcHJpY2VBc3NldEJhbGFuY2U9CQDMCAIJAKQDAQUCZUQJAMwIAgIZIGFtb3VudEFzc2V0QmFsYW5jZURlbHRhPQkAzAgCCQCkAwEFAmVICQDMCAICGCBwcmljZUFzc2V0QmFsYW5jZURlbHRhPQkAzAgCCQCkAwEFAmVJCQDMCAICCCBoZWlnaHQ9CQDMCAIJAKQDAQUGaGVpZ2h0BQNuaWwCAAkAlAoCBQJlVgUCZVcBAmVYAQJlWQMJAQIhPQIJAJADAQgFAmVZCHBheW1lbnRzAAEJAAIBAh1leGFjdGx5IDEgcGF5bWVudCBpcyBleHBlY3RlZAQCZVoJAQV2YWx1ZQEJAJEDAggFAmVZCHBheW1lbnRzAAAEAmRvCQEFdmFsdWUBCAUCZVoHYXNzZXRJZAQCZmEIBQJlWgZhbW91bnQEAmVjCQECZG0ECQDYBAEIBQJlWQ10cmFuc2FjdGlvbklkCQDYBAEFAmRvBQJmYQgFAmVZBmNhbGxlcgQCZEYIBQJlYwJfMQQCZEcIBQJlYwJfMgQCZHQJAQ1wYXJzZUludFZhbHVlAQgFAmVjAl85BAJkSwgFAmVjA18xMAMDCQECYmMABgkAAAIFAmR0BQFuCQACAQkArAICAixHZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4uIFN0YXR1cyA9IAkApAMBBQJkdAkAlwoFBQJkRgUCZEcFAmZhBQJkbwUCZEsBAmZiAwJlWQJkTQJkUwMJAQIhPQIJAJADAQgFAmVZCHBheW1lbnRzAAIJAAIBAh9leGFjdGx5IDIgcGF5bWVudHMgYXJlIGV4cGVjdGVkBAJmYwkBBXZhbHVlAQkAkQMCCAUCZVkIcGF5bWVudHMAAAQCZmQJAQV2YWx1ZQEJAJEDAggFAmVZCHBheW1lbnRzAAEEAmZlCQECZEwJCQDYBAEIBQJlWQ10cmFuc2FjdGlvbklkBQJkTQgFAmZjBmFtb3VudAgFAmZjB2Fzc2V0SWQIBQJmZAZhbW91bnQIBQJmZAdhc3NldElkCQClCAEIBQJlWQZjYWxsZXIHBQJkUwQCZHQJAQ1wYXJzZUludFZhbHVlAQgFAmZlAl84AwMDCQECYmMABgkAAAIFAmR0BQFsBgkAAAIFAmR0BQFuCQACAQkArAICAixQdXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4uIFN0YXR1cyA9IAkApAMBBQJkdAUCZmUBAmZmAQJjYQQCZmcJAPwHBAUCYVYCBGVtaXQJAMwIAgUCY2EFA25pbAUDbmlsAwkAAAIFAmZnBQJmZwQCZmgEAmJYBQJmZwMJAAECBQJiWAIHQWRkcmVzcwQCZmkFAmJYCQD8BwQFAmZpAgRlbWl0CQDMCAIFAmNhBQNuaWwFA25pbAUEdW5pdAMJAAACBQJmaAUCZmgFAmNhCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJmagICY2ECYWkEAmZrAwkAAAIFAmFpAAAAAAkAawMFAmNhBQJhaQUBYgkAlAoCCQBlAgUCY2EFAmZrBQJmawECZmwEAmZtAmZuAmFiAmFjBAJmbwkAAAIFAmFjBQR1bml0BAJmcAkBAmJOAQkBAmJqAQUCYnIEAmZxCQECYk4BCQECYmoBBQJicwQCZnIDCQAAAgUCZm4FAmJyBgMJAAACBQJmbgUCYnMHCQECYVMBAg1pbnZhbGlkIGFzc2V0BAJmcwMFAmZvCQCUCgIFAmZwBQJmcQMFAmZyCQCUCgIJAGUCBQJmcAUCZm0FAmZxCQCUCgIFAmZwCQBlAgUCZnEFAmZtBAJmdAgFAmZzAl8xBAJmdQgFAmZzAl8yBAJmdgMFAmZyCQCUCgIFAmZtAAAJAJQKAgAABQJmbQQCZncIBQJmdgJfMQQCZngIBQJmdgJfMgQCZU8ICQECZmoCBQJmdwUCYVgCXzEEAmVQCAkBAmZqAgUCZngFAmFYAl8xBAJmeQkBAmZqAgUCZm0FAmFYBAJmeggFAmZ5Al8xBAJmawgFAmZ5Al8yBAJmQQkAZAIFAmZ0BQJlTwQCZkIJAGQCBQJmdQUCZVAEAmZDCQECYlECCQEBRAIFAmZCBQJidQkBAUQCBQJmQQUCYnQEAmZECQEBSAIFAmZDBQFiBAJmRQMFAmZyBQJmdAUCZnUEAmZGCQC2AgEFAmZFBAJmRwkAtgIBCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmJxCQCsAgIJAKwCAgIGYXNzZXQgCQDYBAEFAmJxAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCZkgDCQC/AgIFAmZHBQFmBgkBAmFTAQIiaW5pdGlhbCBkZXBvc2l0IHJlcXVpcmVzIGFsbCBjb2lucwMJAAACBQJmSAUCZkgEAmZJCQC2AgEFAmZ6BAJmSgkAlgMBCQDMCAIAAAkAzAgCCQCgAwEJALoCAgkAuQICBQJmRwkAuAICCQEKc3FydEJpZ0ludAQJALcCAgUBZAkAugICCQC5AgIFAmZJBQFkBQJmRgASABIFBERPV04FAWQFAWQFA25pbAQCZXIDBQJmbwUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVwAFAmZECQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBWAIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmZECQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhYQIJAKUIAQkBBXZhbHVlAQUCYWIJANgEAQkBBXZhbHVlAQUCYWMJAQJieQoFAmZ3BQJmeAUCZkoFAmZEAAAAAAUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAAAAAAFA25pbAQCZksJAQJiUQIJAQFEAgUCZnUFAmJ1CQEBRAIFAmZ0BQJidAQCZkwJAQFIAgUCZksFAWIEAmZNBAJmTgMFAmZyCQCUCgIFAmZ3BQJmdAkAlAoCBQJmeAUCZnUEAmNhCAUCZk4CXzEEAmZPCAUCZk4CXzIEAmZQCQCgAwEJALwCAwUCZkcJALYCAQkAaQIFAmNhAAIJALYCAQUCZk8JAGsDCQBlAgUCZkoFAmZQBQFiBQJmUAkAlwoFBQJmSgUCZXIFAmZrBQJmTQUCZnIJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmZRBQJmUgJmegJmbgJhYgJhYwQCZm8JAAACBQJhYwUEdW5pdAQCZGQJAQJiZQAEAmRlCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGQFAXQEAmRmCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGQFAXUEAmZTCQDMCAIDCQAAAgUCZm4FAmJxBgkBAmFTAQIQaW52YWxpZCBscCBhc3NldAUDbmlsAwkAAAIFAmZTBQJmUwQCZlQDCQAAAgUCZlIFAmJyBgMJAAACBQJmUgUCYnMHCQECYVMBAg1pbnZhbGlkIGFzc2V0BAJmVQMFAmZUCQC2AgEJAQJiTgEJAQJiagEFAmJyCQC2AgEJAQJiTgEJAQJiagEFAmJzBAJmVgMFAmZUBQJkZQUCZGYEAmZXCQECYk4BCQECYmoBBQJicgQCZlgJAQJiTgEJAQJiagEFAmJzBAJmWQMFAmZUBQJmVwUCZlgEAmZaCQC2AgEFAmZZBAJmRwkAtgIBCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmJxCQCsAgIJAKwCAgIGYXNzZXQgCQDYBAEFAmJxAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCZ2EJALYCAQUCZnoEAmdiCQCWAwEJAMwIAgAACQDMCAIJAKADAQkAugICCQC5AgIFAmZVCQC4AgIFAWQJAHYGCQC4AgIFAWQJALoCAgkAuQICBQJnYQUBZAUCZkcAEgUBaAAAABIFBERPV04FAWQFA25pbAQCZ2MJAQJmagIFAmdiBQJhWgQCZ2QIBQJnYwJfMQQCZmsIBQJnYwJfMgQCZ2UDBQJmVAkAlgoEBQJnZAAACQBlAgUCZlcFAmdiBQJmWAkAlgoEAAAFAmdkBQJmVwkAZQIFAmZYBQJnYgQCZ2YIBQJnZQJfMQQCZ2cIBQJnZQJfMgQCZ2gIBQJnZQJfMwQCZ2kIBQJnZQJfNAQCZkMJAQJiUQIJAQFEAgUCZ2kFAmJ1CQEBRAIFAmdoBQJidAQCZkQJAQFIAgUCZkMFAWIEAmVyAwUCZm8FA25pbAkAzAgCCQELU3RyaW5nRW50cnkCCQECYWQCCQClCAEJAQV2YWx1ZQEFAmFiCQDYBAEJAQV2YWx1ZQEFAmFjCQECYkoGBQJnZgUCZ2cFAmZ6BQJmRAUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVcABQJmRAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVgCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJmRAUDbmlsBAJmSwkBAmJRAgkBAUQCBQJmWAUCYnUJAQFEAgUCZlcFAmJ0BAJmTAkBAUgCBQJmSwUBYgQCZk0EAmdqCQBoAgkAoAMBCQC8AgMFAmZVBQJnYQUCZkcAAgkAawMJAGUCBQJnZAUCZ2oFAWIFAmdqCQCXCgUFAmdkBQJlcgUCZmsFAmZNBQJmVAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZ2sABAJiWAkAoggBCQEBVQADCQABAgUCYlgCBlN0cmluZwQCZ2wFAmJYCQDZBAEFAmdsAwkAAQIFAmJYAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBAmdtAAQCYlgJAKIIAQkBAVYAAwkAAQIFAmJYAgZTdHJpbmcEAmdsBQJiWAkA2QQBBQJnbAMJAAECBQJiWAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJnbgECZVkEAmJYCQECZ2sAAwkAAQIFAmJYAgpCeXRlVmVjdG9yBAJnbwUCYlgJAAACCAUCZVkPY2FsbGVyUHVibGljS2V5BQJnbwMJAAECBQJiWAIEVW5pdAkAAAIIBQJlWQZjYWxsZXIFBHRoaXMJAAIBAgtNYXRjaCBlcnJvcgECZ3ABAmVZBAJncQkAAgECEVBlcm1pc3Npb24gZGVuaWVkBAJiWAkBAmdrAAMJAAECBQJiWAIKQnl0ZVZlY3RvcgQCZ28FAmJYAwkAAAIIBQJlWQ9jYWxsZXJQdWJsaWNLZXkFAmdvBgUCZ3EDCQABAgUCYlgCBFVuaXQDCQAAAggFAmVZBmNhbGxlcgUEdGhpcwYFAmdxCQACAQILTWF0Y2ggZXJyb3IeAmVZAQlyZWJhbGFuY2UACQDOCAIJAQJjRwEJAQJhTwIFBHRoaXMJAQJhZQAJAQJjRwEJAQJhTwIFBHRoaXMJAQJhZgACZVkBIWNhbGN1bGF0ZUFtb3VudE91dEZvclN3YXBSRUFET05MWQMCZ3ICZ3MCZ3QEAmd1AwkAAAIFAmdzBwQCZ3YJAQJhTwIFBHRoaXMJAQJhZgAEAmd3CQECYU8CBQR0aGlzCQECYWUACQCUCgIFAmd2BQJndwQCZ3YJAQJhTwIFBHRoaXMJAQJhZQAEAmd3CQECYU8CBQR0aGlzCQECYWYACQCUCgIFAmd2BQJndwQCZ3YIBQJndQJfMQQCZ3cIBQJndQJfMgQCZ3gJAQJiTgEFAmd3BAJneQkBAmJOAQUCZ3YEAmd6CQBrAwUCZ3kFAmdyCQBkAgUCZ3gFAmdyBAJnQQkAuQICCQC2AgEFAmd4CQC2AgEFAmd5BAJnQgkAuQICCQC3AgIJALcCAgkAtgIBCQECYk4BBQJndwkAtgIBBQJncgkAtgIBBQJndAkAuAICCQC2AgEJAQJiTgEFAmd2CQC2AgEFAmd6BAJnQwMJAMACAgUCZ0IFAmdBBgkAAgECFG5ldyBLIGlzIGZld2VyIGVycm9yAwkAAAIFAmdDBQJnQwkAlAoCBQNuaWwFAmd6CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmVZASZjYWxjdWxhdGVBbW91bnRPdXRGb3JTd2FwQW5kU2VuZFRva2VucwUCZ3ICZ3MCZ0QCZ0UCZ3QEAmdGCgACYVkJAPwHBAUCYVYCF2dldFN3YXBDb250cmFjdFJFQURPTkxZBQNuaWwFA25pbAMJAAECBQJhWQIGU3RyaW5nBQJhWQkAAgEJAKwCAgkAAwEFAmFZAhsgY291bGRuJ3QgYmUgY2FzdCB0byBTdHJpbmcEAmZTCQDMCAIDCQBnAggJAQV2YWx1ZQEJAJEDAggFAmVZCHBheW1lbnRzAAAGYW1vdW50BQJncgYJAQJhUwECDFdyb25nIGFtb3VudAkAzAgCAwkAAAIIBQJlWQZjYWxsZXIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmdGBgkBAmFTAQIRUGVybWlzc2lvbiBkZW5pZWQFA25pbAMJAAACBQJmUwUCZlMEAmVaCQEFdmFsdWUBCQCRAwIIBQJlWQhwYXltZW50cwAABAJndwkBAmJqAQgFAmVaB2Fzc2V0SWQEAmd2AwkAAAIFAmdzBwkBAmFPAgUEdGhpcwkBAmFmAAkBAmFPAgUEdGhpcwkBAmFlAAQCZ3gJAGUCCQECYk4BBQJndwgJAQV2YWx1ZQEJAJEDAggFAmVZCHBheW1lbnRzAAAGYW1vdW50BAJneQkBAmJOAQUCZ3YEAmd6CQBrAwUCZ3kFAmdyCQBkAgUCZ3gFAmdyBAJnQQkAuQICCQC2AgEFAmd4CQC2AgEFAmd5BAJnQgkAuQICCQC3AgIJALYCAQkBAmJOAQUCZ3cJALYCAQUCZ3QJALgCAgkAtgIBCQECYk4BBQJndgkAtgIBBQJnegQCZ0MDCQDAAgIFAmdCBQJnQQYJAAIBAhRuZXcgSyBpcyBmZXdlciBlcnJvcgMJAAACBQJnQwUCZ0MEAmdHAwkAZwIFAmd6BQJnRAYJAAIBAixFeGNoYW5nZSByZXN1bHQgaXMgZmV3ZXIgY29pbnMgdGhhbiBleHBlY3RlZAMJAAACBQJnRwUCZ0cEAmdIBAJiWAkBAmN1AQUCZ3YDCQABAgUCYlgCMChCb29sZWFuLCBJbnQsIEludCwgU3RyaW5nLCBTdHJpbmcsIEludCwgU3RyaW5nKQQCY0gFAmJYBQJjSAkAAgECEmVycm9yIGxlYXNlIGNvbmZpZwQCZ0kJAQJjUQIFAmd2BQJnegMJAAACBQJnSQUCZ0kEAmRKCQD8BwQFBHRoaXMCCXJlYmFsYW5jZQUDbmlsBQNuaWwDCQAAAgUCZEoFAmRKCQCUCgIJAM4IAgUCZ0kJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUCZ0UFAmd6CQECYmgBBQJndgUDbmlsBQJnegkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlWQEKc2V0TWFuYWdlcgECZ0oEAmdLCQECZ3ABBQJlWQMJAAACBQJnSwUCZ0sEAmdMCQDZBAEFAmdKAwkAAAIFAmdMBQJnTAkAzAgCCQELU3RyaW5nRW50cnkCCQEBVgAFAmdKBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVkBDmNvbmZpcm1NYW5hZ2VyAAQCZ00JAQJnbQAEAmdOAwkBCWlzRGVmaW5lZAEFAmdNBgkAAgECEk5vIHBlbmRpbmcgbWFuYWdlcgMJAAACBQJnTgUCZ04EAmdPAwkAAAIIBQJlWQ9jYWxsZXJQdWJsaWNLZXkJAQV2YWx1ZQEFAmdNBgkAAgECG1lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAACBQJnTwUCZ08JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVUACQDYBAEJAQV2YWx1ZQEFAmdNCQDMCAIJAQtEZWxldGVFbnRyeQEJAQFWAAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmVZAQNwdXQCAmRNAmdQAwkAZgIAAAUCZE0JAAIBAiBJbnZhbGlkIHNsaXBwYWdlVG9sZXJhbmNlIHBhc3NlZAQCZmUJAQJmYgMFAmVZBQJkTQYEAmVvCAUCZmUCXzIEAmRxCAUCZmUCXzcEAmRLCAUCZmUCXzkEAmVwCAUCZmUDXzEwBAJlcQgFAmZlA18xMQQCZ1EIBQJmZQNfMTIEAmdSCAUCZmUDXzEzBAJmYwkAtgIBCAkBBXZhbHVlAQkAkQMCCAUCZVkIcGF5bWVudHMAAAZhbW91bnQEAmZkCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJlWQhwYXltZW50cwABBmFtb3VudAQCZUYJAQJleQMFAmZjBQJmZAkAtgIBAAADCQAAAgUCZUYFAmVGBAJmZwkA/AcEBQJhVgIEZW1pdAkAzAgCBQJlbwUDbmlsBQNuaWwDCQAAAgUCZmcFAmZnBAJmaAQCYlgFAmZnAwkAAQIFAmJYAgdBZGRyZXNzBAJmaQUCYlgJAPwHBAUCZmkCBGVtaXQJAMwIAgUCZW8FA25pbAUDbmlsBQR1bml0AwkAAAIFAmZoBQJmaAQCZ1MDCQBmAgUCZXAAAAkA/AcEBQJieAIDcHV0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmdRBQJlcAUDbmlsBQNuaWwDCQAAAgUCZ1MFAmdTBAJnVAMJAGYCBQJlcQAACQD8BwQFAmJ4AgNwdXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZ1IFAmVxBQNuaWwFA25pbAMJAAACBQJnVAUCZ1QEAmdVAwUCZ1AEAmdWCQD8BwQFAmJ3AgVzdGFrZQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJkcQUCZW8FA25pbAMJAAACBQJnVgUCZ1YFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCZVkGY2FsbGVyBQJlbwUCZHEFA25pbAQCZ1cJAQJlRwMAAAAAAAADCQAAAgUCZ1cFAmdXBAJleAgFAmdXAl8yBAJnWAgFAmdXAl8xBAJnWQkBAmVLAgUCZUYFAmV4AwkAAAIFAmdZBQJnWQkAzggCCQDOCAIFAmRLBQJnVQUCZ1gJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVkBCnB1dEZvckZyZWUBAmdaAwkAZgIAAAUCZ1oJAAIBAhRJbnZhbGlkIHZhbHVlIHBhc3NlZAQCZmUJAQJmYgMFAmVZBQJnWgcEAmRLCAUCZmUCXzkEAmZjCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJlWQhwYXltZW50cwAABmFtb3VudAQCZmQJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmVZCHBheW1lbnRzAAEGYW1vdW50BAJlRgkBAmV5AwUCZmMFAmZkCQC2AgEAAAMJAAACBQJlRgUCZUYEAmhhCQECZUcDAAAAAAAABAJnWAgFAmhhAl8xBAJleAgFAmhhAl8yBAJnWQkBAmVLAgUCZUYFAmV4AwkAAAIFAmdZBQJnWQkAzggCBQJkSwUCZ1gJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVkBCXB1dE9uZVRrbgICaGICaGMEAmhkCgACYVkJAPwHBAUCYVYCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJhWQIHQm9vbGVhbgUCYVkJAAIBCQCsAgIJAAMBBQJhWQIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCaGUDAwMJAQJiYwAGCQAAAgUCYnAFAWwGCQAAAgUCYnAFAW4GBQJoZAQCZlMJAMwIAgMDCQEBIQEFAmhlBgkBAmduAQUCZVkGCQECYVMBAiFwdXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJlWQhwYXltZW50cwABBgkBAmFTAQIeZXhhY3RseSAxIHBheW1lbnQgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZlMFAmZTBAJoZgkAkQMCCAUCZVkIcGF5bWVudHMAAAQCZm4IBQJoZgdhc3NldElkBAJmbQgFAmhmBmFtb3VudAQCZUYDCQAAAgUCZm4FAmJyCQECZXkDCQC2AgEFAmZtCQC2AgEAAAkAtgIBAAADCQAAAgUCZm4FAmJzCQECZXkDCQC2AgEAAAkAtgIBBQJmbQkAtgIBAAAJAQJhUwECHnBheW1lbnQgYXNzZXQgaXMgbm90IHN1cHBvcnRlZAMJAAACBQJlRgUCZUYEAmFiCAUCZVkGY2FsbGVyBAJhYwgFAmVZDXRyYW5zYWN0aW9uSWQEAmhnCQECZmwEBQJmbQUCZm4FAmFiBQJhYwMJAAACBQJoZwUCaGcEAmZyCAUCaGcCXzUEAmhoCAUCaGcCXzQEAmZrCAUCaGcCXzMEAmVyCAUCaGcCXzIEAmhpCAUCaGcCXzEEAmhqAwMJAGYCBQJoYgAACQBmAgUCaGIFAmhpBwkBAmFTAQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJoYgUDbmlsAgAFAmhpBAJmZwkBAmZmAQUCaGoDCQAAAgUCZmcFAmZnBAJnVQMFAmhjBAJoawkA/AcEBQJidwIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYnEFAmhqBQNuaWwDCQAAAgUCaGsFAmhrBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmVZBmNhbGxlcgUCaGoFAmJxBQNuaWwEAmhsAwkAZgIFAmZrAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYVcFAmZrBQJmbgUDbmlsBQNuaWwEAmhtAwkAAAIFBHRoaXMFAmFXCQCUCgIAAAAAAwUCZnIJAJQKAgkBAS0BBQJmawAACQCUCgIAAAkBAS0BBQJmawQCZUgIBQJobQJfMQQCZUkIBQJobQJfMgQCaG4JAQJlRwMFAmVIBQJlSQAABAJnWAgFAmhuAl8xBAJleAgFAmhuAl8yBAJlUgkBBXZhbHVlAQkAoggBBQJhagQCZ1kJAQJlSwIFAmVGBQJleAMJAAACBQJnWQUCZ1kEAmRKCQD8BwQFBHRoaXMCCXJlYmFsYW5jZQUDbmlsBQNuaWwDCQAAAgUCZEoFAmRKCQCUCgIJAM4IAgkAzggCCQDOCAIFAmVyBQJnVQUCaGwFAmdYBQJoagkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlWQERcHV0T25lVGtuUkVBRE9OTFkCAmZuAmZtBAJobwkBAmZsBAUCZm0JAQJiaAEFAmZuBQR1bml0BQR1bml0BAJoaQgFAmhvAl8xBAJlcggFAmhvAl8yBAJmawgFAmhvAl8zBAJoaAgFAmhvAl80BAJmcggFAmhvAl81CQCUCgIFA25pbAkAlQoDBQJoaQUCZmsFAmhoAmVZAQlnZXRPbmVUa24CAmhwAmhiBAJoZAoAAmFZCQD8BwQFAmFWAihpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYVkCB0Jvb2xlYW4FAmFZCQACAQkArAICCQADAQUCYVkCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmhxAwMJAQJiYwAGCQAAAgUCYnAFAW4GBQJoZAQCZlMJAMwIAgMDCQEBIQEFAmhxBgkBAmduAQUCZVkGCQECYVMBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJlWQhwYXltZW50cwABBgkBAmFTAQIeZXhhY3RseSAxIHBheW1lbnQgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZlMFAmZTBAJmUgkBAmJoAQUCaHAEAmhmCQCRAwIIBQJlWQhwYXltZW50cwAABAJmbggFAmhmB2Fzc2V0SWQEAmZ6CAUCaGYGYW1vdW50BAJlRgkBAmV5AwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJlRgUCZUYEAmFiCAUCZVkGY2FsbGVyBAJhYwgFAmVZDXRyYW5zYWN0aW9uSWQEAmhyCQECZlEFBQJmUgUCZnoFAmZuBQJhYgUCYWMDCQAAAgUCaHIFAmhyBAJmVAgFAmhyAl81BAJoaAgFAmhyAl80BAJmawgFAmhyAl8zBAJlcggFAmhyAl8yBAJocwgFAmhyAl8xBAJjYQMDCQBmAgUCaGIAAAkAZgIFAmhiBQJocwcJAQJhUwEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCaGIFA25pbAIABQJocwQCZ0gEAmJYCQECY3UBBQJocAMJAAECBQJiWAIwKEJvb2xlYW4sIEludCwgSW50LCBTdHJpbmcsIFN0cmluZywgSW50LCBTdHJpbmcpBAJjSAUCYlgFAmNICQACAQISZXJyb3IgbGVhc2UgY29uZmlnBAJodAkA/AcEBQJhVgIEYnVybgkAzAgCBQJmegUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJmbgUCZnoFA25pbAMJAAACBQJodAUCaHQEAmdJCQECY1ECBQJocAUCY2EDCQAAAgUCZ0kFAmdJBAJodQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhYgUCY2EFAmZSBQNuaWwEAmhsAwkAZgIFAmZrAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYVcFAmZrBQJmUgUDbmlsBQNuaWwEAmh2BAJodwMJAAACBQR0aGlzBQJhVwAABQJmawMFAmZUCQCUCgIJAQEtAQkAZAIFAmNhBQJodwAACQCUCgIAAAkBAS0BCQBkAgUCY2EFAmh3BAJlSAgFAmh2Al8xBAJlSQgFAmh2Al8yBAJoeAkBAmVHAwUCZUgFAmVJAAAEAmdYCAUCaHgCXzEEAmV4CAUCaHgCXzIEAmdZCQECZUsCBQJlRgUCZXgDCQAAAgUCZ1kFAmdZBAJkSgkA/AcEBQR0aGlzAglyZWJhbGFuY2UFA25pbAUDbmlsAwkAAAIFAmRKBQJkSgkAlAoCCQDOCAIJAM4IAgkAzggCCQDOCAIFAmVyBQJnSQUCaHUFAmhsBQJnWAUCY2EJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVkBEWdldE9uZVRrblJFQURPTkxZAgJmUgJmegQCaHkJAQJmUQUJAQJiaAEFAmZSBQJmegUCYnEFBHVuaXQFBHVuaXQEAmhzCAUCaHkCXzEEAmVyCAUCaHkCXzIEAmZrCAUCaHkCXzMEAmhoCAUCaHkCXzQEAmZUCAUCaHkCXzUJAJQKAgUDbmlsCQCVCgMFAmhzBQJmawUCaGgCZVkBE3Vuc3Rha2VBbmRHZXRPbmVUa24DAmh6AmhwAmhiBAJoZAoAAmFZCQD8BwQFAmFWAihpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYVkCB0Jvb2xlYW4FAmFZCQACAQkArAICCQADAQUCYVkCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmhxAwMJAQJiYwAGCQAAAgUCYnAFAW4GBQJoZAQCZlMJAMwIAgMDCQEBIQEFAmhxBgkBAmduAQUCZVkGCQECYVMBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJlWQhwYXltZW50cwAABgkBAmFTAQIYbm8gcGF5bWVudHMgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZlMFAmZTBAJmUgkBAmJoAQUCaHAEAmFiCAUCZVkGY2FsbGVyBAJhYwgFAmVZDXRyYW5zYWN0aW9uSWQEAmVGCQECZXkDCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmVGBQJlRgQCaEEJAPwHBAUCYncCB3Vuc3Rha2UJAMwIAgkA2AQBBQJicQkAzAgCBQJoegUDbmlsBQNuaWwDCQAAAgUCaEEFAmhBBAJoQgkBAmZRBQUCZlIFAmh6BQJicQUCYWIFAmFjAwkAAAIFAmhCBQJoQgQCZlQIBQJoQgJfNQQCaGgIBQJoQgJfNAQCZmsIBQJoQgJfMwQCZXIIBQJoQgJfMgQCaHMIBQJoQgJfMQQCY2EDAwkAZgIFAmhiAAAJAGYCBQJoYgUCaHMHCQECYVMBCQC5CQIJAMwIAgIfYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmhiBQNuaWwCAAUCaHMEAmh0CQD8BwQFAmFWAgRidXJuCQDMCAIFAmh6BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJxBQJoegUDbmlsAwkAAAIFAmh0BQJodAQCZ0kJAQJjUQIFAmhwBQJjYQMJAAACBQJnSQUCZ0kEAmh1CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJlWQZjYWxsZXIFAmNhBQJmUgUDbmlsBAJobAMJAGYCBQJmawAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFXBQJmawUCZlIFA25pbAUDbmlsBAJoQwQCaHcDCQAAAgUEdGhpcwUCYVcAAAUCZmsDBQJmVAkAlAoCCQEBLQEJAGQCBQJjYQUCaHcAAAkAlAoCAAAJAQEtAQkAZAIFAmNhBQJodwQCZUgIBQJoQwJfMQQCZUkIBQJoQwJfMgQCaEQJAQJlRwMFAmVIBQJlSQAABAJnWAgFAmhEAl8xBAJleAgFAmhEAl8yBAJnWQkBAmVLAgUCZUYFAmV4AwkAAAIFAmdZBQJnWQQCZEoJAPwHBAUEdGhpcwIJcmViYWxhbmNlBQNuaWwFA25pbAMJAAACBQJkSgUCZEoJAJQKAgkAzggCCQDOCAIJAM4IAgkAzggCBQJlcgUCZ0kFAmh1BQJobAUCZ1gFAmNhCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmVZAQNnZXQABAJlYwkBAmVYAQUCZVkEAmhFCAUCZWMCXzEEAmRHCAUCZWMCXzIEAmZhCAUCZWMCXzMEAmRvCAUCZWMCXzQEAmRLCAUCZWMCXzUEAmVGCQECZXkDCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmVGBQJlRgQCaEYJAPwHBAUCYVYCBGJ1cm4JAMwIAgUCZmEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZG8FAmZhBQNuaWwDCQAAAgUCaEYFAmhGBAJoRwkBAmVHAwkBAS0BBQJoRQkBAS0BBQJkRwAABAJnWAgFAmhHAl8xBAJleAgFAmhHAl8yBAJnWQkBAmVLAgUCZUYFAmV4AwkAAAIFAmdZBQJnWQkAzggCBQJkSwUCZ1gJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVkBCWdldE5vTGVzcwICaEgCaEkEAmVjCQECZVgBBQJlWQQCZEYIBQJlYwJfMQQCZEcIBQJlYwJfMgQCZmEIBQJlYwJfMwQCZG8IBQJlYwJfNAQCZEsIBQJlYwJfNQMJAGYCBQJoSAUCZEYJAAIBCQCsAgIJAKwCAgkArAICAhxub0xlc3NUaGVuQW10QXNzZXQgZmFpbGVkOiAgCQCkAwEFAmRGAgMgPCAJAKQDAQUCaEgDCQBmAgUCaEkFAmRHCQACAQkArAICCQCsAgIJAKwCAgIdbm9MZXNzVGhlblByaWNlQXNzZXQgZmFpbGVkOiAJAKQDAQUCZEcCAyA8IAkApAMBBQJoSQQCZUYJAQJleQMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZUYFAmVGBAJoRgkA/AcEBQJhVgIEYnVybgkAzAgCBQJmYQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJkbwUCZmEFA25pbAMJAAACBQJoRgUCaEYEAmhKCQECZUcDCQEBLQEFAmRGCQEBLQEFAmRHAAAEAmdYCAUCaEoCXzEEAmV4CAUCaEoCXzIEAmdZCQECZUsCBQJlRgUCZXgDCQAAAgUCZ1kFAmdZCQDOCAIFAmRLBQJnWAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlWQENdW5zdGFrZUFuZEdldAECY2EEAmhLAwkBAiE9AgkAkAMBCAUCZVkIcGF5bWVudHMAAAkAAgECGE5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAYDCQAAAgUCaEsFAmhLBAJkZAkBAmJlAAQCZHEJANkEAQkAkQMCBQJkZAUBcQQCZUYJAQJleQMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZUYFAmVGBAJoQQkA/AcEBQJidwIHdW5zdGFrZQkAzAgCCQDYBAEFAmRxCQDMCAIFAmNhBQNuaWwFA25pbAMJAAACBQJoQQUCaEEEAmVjCQECZG0ECQDYBAEIBQJlWQ10cmFuc2FjdGlvbklkCQDYBAEFAmRxBQJjYQgFAmVZBmNhbGxlcgQCZEYIBQJlYwJfMQQCZEcIBQJlYwJfMgQCZHQJAQ1wYXJzZUludFZhbHVlAQgFAmVjAl85BAJkSwgFAmVjA18xMAQCaEwDAwkBAmJjAAYJAAACBQJkdAUBbgkAAgEJAKwCAgIsR2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluLiBTdGF0dXMgPSAJAKQDAQUCZHQGAwkAAAIFAmhMBQJoTAQCaEYJAPwHBAUCYVYCBGJ1cm4JAMwIAgUCY2EFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZHEFAmNhBQNuaWwDCQAAAgUCaEYFAmhGBAJoTQkBAmVHAwkBAS0BBQJkRgkBAS0BBQJkRwAABAJnWAgFAmhNAl8xBAJleAgFAmhNAl8yBAJnWQkBAmVLAgUCZUYFAmV4AwkAAAIFAmdZBQJnWQkAzggCBQJkSwUCZ1gJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVkBE3Vuc3Rha2VBbmRHZXROb0xlc3MDAmh6AmhOAmhJBAJocQMJAQJiYwAGCQAAAgUCYnAFAW4EAmZTCQDMCAIDCQEBIQEFAmhxBgkAAgECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmVZCHBheW1lbnRzAAAGCQACAQIYbm8gcGF5bWVudHMgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZlMFAmZTBAJlRgkBAmV5AwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJlRgUCZUYEAmhBCQD8BwQFAmJ3Agd1bnN0YWtlCQDMCAIJANgEAQUCYnEJAMwIAgUCaHoFA25pbAUDbmlsAwkAAAIFAmhBBQJoQQQCZWMJAQJkbQQJANgEAQgFAmVZDXRyYW5zYWN0aW9uSWQJANgEAQUCYnEFAmh6CAUCZVkGY2FsbGVyBAJkRggFAmVjAl8xBAJkRwgFAmVjAl8yBAJkSwgFAmVjA18xMAQCaE8JAMwIAgMJAGcCBQJkRgUCaE4GCQACAQkAuQkCCQDMCAICLGFtb3VudCBhc3NldCBhbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCaE4FA25pbAIACQDMCAIDCQBnAgUCZEcFAmhJBgkAAgEJALkJAgkAzAgCAitwcmljZSBhc3NldCBhbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCaEkFA25pbAIABQNuaWwDCQAAAgUCaE8FAmhPBAJoRgkA/AcEBQJhVgIEYnVybgkAzAgCBQJoegUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJicQUCaHoFA25pbAMJAAACBQJoRgUCaEYEAmhQCQECZUcDCQEBLQEFAmRGCQEBLQEFAmRHAAAEAmdYCAUCaFACXzEEAmV4CAUCaFACXzIEAmdZCQECZUsCBQJlRgUCZXgDCQAAAgUCZ1kFAmdZCQDOCAIFAmRLBQJnWAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlWQEIYWN0aXZhdGUCAmhRAmhSAwkBAiE9AgkApQgBCAUCZVkGY2FsbGVyCQClCAEFAmFWCQACAQIScGVybWlzc2lvbnMgZGVuaWVkCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFlAAUCaFEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFmAAUCaFIFA25pbAIHc3VjY2VzcwJlWQEKcmVmcmVzaEtMcAAEAmhTCQELdmFsdWVPckVsc2UCCQCfCAEFAmFrAAAEAmhUAwkAZwIJAGUCBQZoZWlnaHQFAmhTBQJhbgUEdW5pdAkBAmFTAQkAuQkCCQDMCAIJAKQDAQUCYW4JAMwIAgIvIGJsb2NrcyBoYXZlIG5vdCBwYXNzZWQgc2luY2UgdGhlIHByZXZpb3VzIGNhbGwFA25pbAIAAwkAAAIFAmhUBQJoVAQCZVIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAqAMBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFAmFqAgEwCQECYVUBAgtpbnZhbGlkIGtMcAQCaFUJAQJlRwMAAAAAAAAEAmhWCAUCaFUCXzEEAmV4CAUCaFUCXzIEAmVKAwkBAiE9AgUCZVIFAmV4BQJoVgkBAmFTAQISbm90aGluZyB0byByZWZyZXNoCQCUCgIFAmVKCQCmAwEFAmV4CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmVZARxnZXRQb29sQ29uZmlnV3JhcHBlclJFQURPTkxZAAkAlAoCBQNuaWwJAQJiZQACZVkBHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkBAmFyCQCUCgIFA25pbAkBAmJOAQUCYXICZVkBGWNhbGNQcmljZXNXcmFwcGVyUkVBRE9OTFkDAmNYAmNZAmRjBAJkbAkBAmRiAwUCY1gFAmNZBQJkYwkAlAoCBQNuaWwJAMwIAgkApgMBCQCRAwIFAmRsAAAJAMwIAgkApgMBCQCRAwIFAmRsAAEJAMwIAgkApgMBCQCRAwIFAmRsAAIFA25pbAJlWQEUdG9YMThXcmFwcGVyUkVBRE9OTFkCAUUBRgkAlAoCBQNuaWwJAKYDAQkBAUQCBQFFBQFGAmVZARZmcm9tWDE4V3JhcHBlclJFQURPTkxZAgFJAUoJAJQKAgUDbmlsCQEBSAIJAKcDAQUBSQUBSgJlWQEeY2FsY1ByaWNlQmlnSW50V3JhcHBlclJFQURPTkxZAgJiUgJiUwkAlAoCBQNuaWwJAKYDAQkBAmJRAgkApwMBBQJiUgkApwMBBQJiUwJlWQEjZXN0aW1hdGVQdXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkJAmRuAmRNAmROAmRPAmRQAmRRAmFiAmRSAmRTCQCUCgIFA25pbAkBAmRMCQUCZG4FAmRNBQJkTgUCZE8FAmRQBQJkUQUCYWIFAmRSBQJkUwJlWQEjZXN0aW1hdGVHZXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkEAmRuAmRvAmRwAmFiBAJlYwkBAmRtBAUCZG4FAmRvBQJkcAkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYWIJAJQKAgUDbmlsCQCcCgoIBQJlYwJfMQgFAmVjAl8yCAUCZWMCXzMIBQJlYwJfNAgFAmVjAl81CAUCZWMCXzYIBQJlYwJfNwkApgMBCAUCZWMCXzgIBQJlYwJfOQgFAmVjA18xMAJlWQENc3RhdHNSRUFET05MWQAEAmRkCQECYmUABAJkcQkA2QQBCQCRAwIFAmRkBQFxBAJoVwkAkQMCBQJkZAUBcgQCaFgJAJEDAgUCZGQFAXMEAmRWCQCRAwIFAmRkBQF2BAJkVwkAkQMCBQJkZAUBdwQCZGUJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkZAUBdAQCZGYJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkZAUBdQQCaFkICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCZHEJAKwCAgkArAICAgZBc3NldCAJANgEAQUCZHECDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJoWgkBAmJOAQUCaFcEAmlhCQECYk4BBQJoWAQCaWIDCQAAAgUCaFkAAAkAzAgCBQFlCQDMCAIFAWUJAMwIAgUBZQUDbmlsCQECZGIDBQJoWgUCaWEFAmhZBAJkQQAABAJpYwkBAUgCCQCRAwIFAmliAAEFAWIEAmlkCQEBSAIJAJEDAgUCaWIAAgUBYgQCaWUJAQV2YWx1ZQEJAJoIAgUCYVYJAQJhRgEJAKUIAQUEdGhpcwkAlAoCBQNuaWwJALkJAgkAzAgCAg4lZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmhaCQDMCAIJAKQDAQUCaWEJAMwIAgkApAMBBQJoWQkAzAgCCQCkAwEFAmRBCQDMCAIJAKQDAQUCaWMJAMwIAgkApAMBBQJpZAkAzAgCCQCkAwEFAmllBQNuaWwFAWoCZVkBIGV2YWx1YXRlUHV0QnlBbW91bnRBc3NldFJFQURPTkxZAQJkTgQCZGQJAQJiZQAEAmRxCQDZBAEJAJEDAgUCZGQFAXEEAmRUCQCRAwIFAmRkBQFyBAJkcgkA2QQBBQJkVAQCZFUJAJEDAgUCZGQFAXMEAmRzCQDZBAEFAmRVBAJkZQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRkBQF0BAJkZgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRkBQF1BAJkdAkAkQMCBQJkZAUBcAQCaFkICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCZHEJAKwCAgkArAICAgZBc3NldCAJANgEAQUCZHECDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJoWgkBAmJOAQUCZFQEAmlhCQECYk4BBQJkVQQCY1oJAQFEAgUCaFoFAmRlBAJkYQkBAUQCBQJpYQUCZGYEAmR6AwkAAAIFAmhZAAAFAWUJAQJiUQIFAmRhBQJjWgQCZFoJAQFEAgUCZE4FAmRlBAJlYQkAvAIDBQJkWgUCZHoFAWQEAmRQCQEBSAIFAmVhBQJkZgQCZmUJAQJkTAkCAACgwh4FAmROBQJkcgUCZFAFAmRzAgAGBwQCZWsIBQJmZQJfMQQCaWYIBQJmZQJfMwQCZHYIBQJmZQJfNAQCZHgIBQJmZQJfNQQCZHUIBQJmZQJfNgkAlAoCBQNuaWwJALkJAgkAzAgCAhAlZCVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCZWsJAMwIAgkApAMBCQEBSAIFAmR6BQFiCQDMCAIJAKQDAQUCZHYJAMwIAgkApAMBBQJkeAkAzAgCCQCkAwEFAmR1CQDMCAIFAmR0CQDMCAIJAKQDAQUCZE4JAMwIAgkApAMBBQJkUAUDbmlsBQFqAmVZAR9ldmFsdWF0ZVB1dEJ5UHJpY2VBc3NldFJFQURPTkxZAQJkUAQCZGQJAQJiZQAEAmRxCQDZBAEJAJEDAgUCZGQFAXEEAmRUCQCRAwIFAmRkBQFyBAJkcgkA2QQBBQJkVAQCZFUJAJEDAgUCZGQFAXMEAmRzCQDZBAEFAmRVBAJkZQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRkBQF0BAJkZgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRkBQF1BAJkdAkAkQMCBQJkZAUBcAQCaFkICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCZHEJAKwCAgkArAICAgZBc3NldCAJANgEAQUCZHECDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJpZwkBAmJOAQUCZFQEAmloCQECYk4BBQJkVQQCaWkJAQFEAgUCaWcFAmRlBAJpagkBAUQCBQJpaAUCZGYEAmR6AwkAAAIFAmhZAAAFAWUJAQJiUQIFAmlqBQJpaQQCZWEJAQFEAgUCZFAFAmRmBAJkWgkAvAIDBQJlYQUBZAUCZHoEAmROCQEBSAIFAmRaBQJkZQQCZmUJAQJkTAkCAACgwh4FAmROBQJkcgUCZFAFAmRzAgAGBwQCZWsIBQJmZQJfMQQCaWYIBQJmZQJfMwQCZHYIBQJmZQJfNAQCZHgIBQJmZQJfNQQCZHUIBQJmZQJfNgkAlAoCBQNuaWwJALkJAgkAzAgCAhAlZCVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCZWsJAMwIAgkApAMBCQEBSAIFAmR6BQFiCQDMCAIJAKQDAQUCZHYJAMwIAgkApAMBBQJkeAkAzAgCCQCkAwEFAmR1CQDMCAIFAmR0CQDMCAIJAKQDAQUCZE4JAMwIAgkApAMBBQJkUAUDbmlsBQFqAmVZARNldmFsdWF0ZUdldFJFQURPTkxZAgJpawJpbAQCZWMJAQJkbQQCAAUCaWsFAmlsBQR0aGlzBAJkRggFAmVjAl8xBAJkRwgFAmVjAl8yBAJkdggFAmVjAl81BAJkeAgFAmVjAl82BAJkdQgFAmVjAl83BAJkQQgFAmVjAl84BAJkdAkBDXBhcnNlSW50VmFsdWUBCAUCZWMCXzkJAJQKAgUDbmlsCQC5CQIJAMwIAgIOJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJkRgkAzAgCCQCkAwEFAmRHCQDMCAIJAKQDAQUCZHYJAMwIAgkApAMBBQJkeAkAzAgCCQCkAwEFAmR1CQDMCAIJAKYDAQUCZEEJAMwIAgkApAMBBQJkdAUDbmlsBQFqAQJpbQECaW4ABAJpbwQCYlgJAQJnawADCQABAgUCYlgCCkJ5dGVWZWN0b3IEAmdvBQJiWAUCZ28DCQABAgUCYlgCBFVuaXQIBQJpbQ9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgQCYlgFAmltAwkAAQIFAmJYAgVPcmRlcgQCZU4FAmJYBAJpcAkBAmJkAAQCaXEJAQJlTQEFAmVOBAJhSwgFAmlxAl8xBAJhTAgFAmlxAl8yBAJhTQkA9AMDCAUCZU4JYm9keUJ5dGVzCQCRAwIIBQJlTgZwcm9vZnMAAAgFAmVOD3NlbmRlclB1YmxpY0tleQQCYU4JAPQDAwgFAmVOCWJvZHlCeXRlcwkAkQMCCAUCZU4GcHJvb2ZzAAEFAmlwAwMDBQJhSwUCYU0HBQJhTgcGCQECYUoEBQJhSwUCYUwFAmFNBQJhTgMJAAECBQJiWAIUU2V0U2NyaXB0VHJhbnNhY3Rpb24EAmdsBQJiWAMJAPQDAwgFAmltCWJvZHlCeXRlcwkAkQMCCAUCaW0GcHJvb2ZzAAAFAmlvBgQCaXIJAPYDAQkBBXZhbHVlAQgFAmdsBnNjcmlwdAQCaXMJANsEAQkBBXZhbHVlAQkAnQgCBQJhVgkBAmFIAAQCaXQJAPEHAQUEdGhpcwMJAAACBQJpcwUCaXIJAQIhPQIFAml0BQJpcgcJAPQDAwgFAmltCWJvZHlCeXRlcwkAkQMCCAUCaW0GcHJvb2ZzAAAFAmlvvVn3RA==", "height": 2519750, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DmTF4tKBU57njZFnYSdkLxM7TWRLGN6DEoQPBn3R2cw4 Next: AA9S2DSnnMfn914syNFyppNj1dSKJVVXW1L3YdHishVJ Diff:
OldNewDifferences
272272 func bJ (bK,bL,bM,bC,bF,bG) = makeString(["%d%d%d%d%d%d", toString(bK), toString(bL), toString(bM), toString(bC), toString(bF), toString(bG)], j)
273273
274274
275-func bN (ar) = if ((ar == "WAVES"))
276- then (wavesBalance(this).available + at(ar))
277- else if ((ar == ba()))
278- then {
279- let bf = aO(this, ae())
280- let bg = aO(this, af())
281- if (if (if ((bf == "WAVES"))
282- then (bg == ba())
283- else false)
284- then true
285- else if ((bg == "WAVES"))
286- then (bf == ba())
287- else false)
288- then assetBalance(this, fromBase58String(ar))
289- else (assetBalance(this, fromBase58String(ar)) + au(ar))
290- }
275+func bN (ar) = {
276+ let bO = if ((ar == "WAVES"))
277+ then wavesBalance(this).available
291278 else assetBalance(this, fromBase58String(ar))
279+ let bP = ((bO + at(ar)) - au(ar))
280+ max([0, bP])
281+ }
292282
293283
294-func bO (bP,bQ) = fraction(bP, d, bQ)
284+func bQ (bR,bS) = fraction(bR, d, bS)
295285
296286
297-func bR (bP,bQ,L) = fraction(bP, d, bQ, L)
287+func bT (bR,bS,L) = fraction(bR, d, bS, L)
298288
299289
300-func bS (bT) = {
301- let bU = invoke(bT, "getRate", nil, nil)
302- if ((bU == bU))
290+func bU (bV) = {
291+ let bW = invoke(bV, "getRate", nil, nil)
292+ if ((bW == bW))
303293 then {
304- let bV = bU
305- if ($isInstanceOf(bV, "Int"))
294+ let bX = bW
295+ if ($isInstanceOf(bX, "Int"))
306296 then {
307- let bW = bV
308- bW
297+ let bY = bX
298+ bY
309299 }
310300 else aS("proxy.getRate() unexpected value")
311301 }
313303 }
314304
315305
316-func bX (ar,bY,bZ,bT) = {
317- let ca = at(ar)
318- if ((ca == ca))
306+func bZ (ar,ca,cb,bV) = {
307+ let cc = at(ar)
308+ if ((cc == cc))
319309 then {
320- let cb = au(bZ)
321- if ((cb == cb))
310+ let cd = au(cb)
311+ if ((cd == cd))
322312 then {
323- let cc = bh(ar)
324- if ((bY > 0))
313+ let ce = bh(ar)
314+ if ((ca > 0))
325315 then {
326- let cd = invoke(bT, "deposit", nil, [AttachedPayment(cc, bY)])
327- if ((cd == cd))
316+ let cf = invoke(bV, "deposit", nil, [AttachedPayment(ce, ca)])
317+ if ((cf == cf))
328318 then {
329- let bV = cd
330- if ($isInstanceOf(bV, "Int"))
319+ let bX = cf
320+ if ($isInstanceOf(bX, "Int"))
331321 then {
332- let ce = bV
333- let cf = (ca + bY)
334- let cg = (cb + ce)
335-[IntegerEntry(aq(ar), cf), IntegerEntry(as(bZ), cg)]
322+ let cg = bX
323+ let ch = (cc + ca)
324+ let ci = (cd + cg)
325+[IntegerEntry(aq(ar), ch), IntegerEntry(as(cb), ci)]
336326 }
337327 else nil
338328 }
346336 }
347337
348338
349-func ch (ar,bY,bZ,bT,ci,cj) = {
350- let ca = at(ar)
351- if ((ca == ca))
339+func cj (ar,ca,cb,bV,ck,cl) = {
340+ let cc = at(ar)
341+ if ((cc == cc))
352342 then {
353- let cb = au(bZ)
354- if ((cb == cb))
343+ let cd = au(cb)
344+ if ((cd == cd))
355345 then {
356- let ck = bS(bT)
357- if ((ck == ck))
346+ let cm = bU(bV)
347+ if ((cm == cm))
358348 then {
359- let cl = fraction(ci, ca, cb)
360- let cm = bh(bZ)
361- let cn = fraction(ci, bY, cl)
362- let co = fraction(ci, bY, ck)
363- let cp = max([0, (cn - co)])
364- if ((co > 0))
349+ let cn = fraction(ck, cc, cd)
350+ let co = bh(cb)
351+ let cp = fraction(ck, ca, cn)
352+ let cq = fraction(ck, ca, cm)
353+ let cr = max([0, (cp - cq)])
354+ if ((cq > 0))
365355 then {
366- let cq = invoke(bT, "withdraw", nil, [AttachedPayment(cm, co)])
367- if ((cq == cq))
356+ let cs = invoke(bV, "withdraw", nil, [AttachedPayment(co, cq)])
357+ if ((cs == cs))
368358 then {
369- let bV = cq
370- if ($isInstanceOf(bV, "Int"))
359+ let bX = cs
360+ if ($isInstanceOf(bX, "Int"))
371361 then {
372- let cr = bV
373- let cf = (ca - cr)
374- let cg = ((cb - co) - cp)
375-[IntegerEntry(aq(ar), cf), IntegerEntry(as(bZ), cg), ScriptTransfer(cj, cp, bh(bZ))]
362+ let ct = bX
363+ let ch = (cc - ct)
364+ let ci = ((cd - cq) - cr)
365+[IntegerEntry(aq(ar), ch), IntegerEntry(as(cb), ci), ScriptTransfer(cl, cr, bh(cb))]
376366 }
377367 else nil
378368 }
388378 }
389379
390380
391-func cs (ar) = invoke(aV, "getPoolLeaseConfigREADONLY", [toString(this), ar], nil)
381+func cu (ar) = invoke(aV, "getPoolLeaseConfigREADONLY", [toString(this), ar], nil)
392382
393383
394-func ct (cu,ar,bZ,cv,bT,ci,cj) = {
395- let ca = at(ar)
396- if ((ca == ca))
384+func cv (cw,ar,cb,cx,bV,ck,cl) = {
385+ let cc = at(ar)
386+ if ((cc == cc))
397387 then {
398- let cb = au(bZ)
399- if ((cb == cb))
388+ let cd = au(cb)
389+ if ((cd == cd))
400390 then {
401- let cw = {
402- let bV = bh(ar)
403- if ($isInstanceOf(bV, "ByteVector"))
391+ let cy = {
392+ let bX = bh(ar)
393+ if ($isInstanceOf(bX, "ByteVector"))
404394 then {
405- let cx = bV
406- assetBalance(this, cx)
395+ let cz = bX
396+ assetBalance(this, cz)
407397 }
408- else if ($isInstanceOf(bV, "Unit"))
398+ else if ($isInstanceOf(bX, "Unit"))
409399 then {
410- let cy = bV
400+ let cA = bX
411401 wavesBalance(this).available
412402 }
413403 else throw("Match error")
414404 }
415- if ((cw == cw))
405+ if ((cy == cy))
416406 then {
417- let cz = max([0, ((cw + ca) - cv)])
418- let cA = fraction(cu, cz, 100)
419- let cB = (ca - cA)
420- if ((cB == 0))
407+ let cB = max([0, ((cy + cc) - cx)])
408+ let cC = fraction(cw, cB, 100)
409+ let cD = (cc - cC)
410+ if ((cD == 0))
421411 then nil
422- else if ((0 > cB))
412+ else if ((0 > cD))
423413 then {
424- let cC = -(cB)
425- bX(ar, cC, bZ, bT)
414+ let cE = -(cD)
415+ bZ(ar, cE, cb, bV)
426416 }
427417 else {
428- let cD = cB
429- ch(ar, cD, bZ, bT, ci, cj)
418+ let cF = cD
419+ cj(ar, cF, cb, bV, ck, cl)
430420 }
431421 }
432422 else throw("Strict value is not equal to itself.")
437427 }
438428
439429
440-func cE (ar) = {
441- let bV = cs(ar)
442- if ($isInstanceOf(bV, "(Boolean, Int, Int, String, String, Int, String)"))
430+func cG (ar) = {
431+ let bX = cu(ar)
432+ if ($isInstanceOf(bX, "(Boolean, Int, Int, String, String, Int, String)"))
443433 then {
444- let cF = bV
445- let cG = cF
446- let cH = cG._1
447- let cI = cG._2
448- let cv = cG._3
449- let cJ = cG._4
450- let cK = cG._5
451- let ci = cG._6
452- let cL = cG._7
453- if (cH)
454- then ct(cI, ar, cK, cv, addressFromStringValue(cJ), ci, addressFromStringValue(cL))
434+ let cH = bX
435+ let cI = cH
436+ let cJ = cI._1
437+ let cK = cI._2
438+ let cx = cI._3
439+ let cL = cI._4
440+ let cM = cI._5
441+ let ck = cI._6
442+ let cN = cI._7
443+ if (cJ)
444+ then cv(cK, ar, cM, cx, addressFromStringValue(cL), ck, addressFromStringValue(cN))
455445 else nil
456446 }
457447 else aS((("[" + ar) + "] Rebalance error"))
458448 }
459449
460450
461-func cM (ar,bY) = {
462- let bV = cs(ar)
463- if ($isInstanceOf(bV, "(Boolean, Int, Int, String, String, Int, String)"))
451+func cO (ar,ca) = {
452+ let bX = cu(ar)
453+ if ($isInstanceOf(bX, "(Boolean, Int, Int, String, String, Int, String)"))
464454 then {
465- let cF = bV
466- let cN = cF
467- let cH = cN._1
468- let cI = cN._2
469- let cv = cN._3
470- let cJ = cN._4
471- let cK = cN._5
472- let ci = cN._6
473- let cL = cN._7
474- if (cH)
475- then ch(ar, bY, cK, addressFromStringValue(cJ), ci, addressFromStringValue(cL))
455+ let cH = bX
456+ let cP = cH
457+ let cJ = cP._1
458+ let cK = cP._2
459+ let cx = cP._3
460+ let cL = cP._4
461+ let cM = cP._5
462+ let ck = cP._6
463+ let cN = cP._7
464+ if (cJ)
465+ then cj(ar, ca, cM, addressFromStringValue(cL), ck, addressFromStringValue(cN))
476466 else nil
477467 }
478468 else aS((("[" + ar) + "] withdrawAssetWrapper() error"))
479469 }
480470
481471
482-func cO (ar,bY) = {
483- let cP = {
484- let bV = bh(ar)
485- if ($isInstanceOf(bV, "ByteVector"))
472+func cQ (ar,ca) = {
473+ let cR = {
474+ let bX = bh(ar)
475+ if ($isInstanceOf(bX, "ByteVector"))
486476 then {
487- let cx = bV
488- assetBalance(this, cx)
477+ let cz = bX
478+ assetBalance(this, cz)
489479 }
490- else if ($isInstanceOf(bV, "Unit"))
480+ else if ($isInstanceOf(bX, "Unit"))
491481 then {
492- let cQ = bV
482+ let cS = bX
493483 wavesBalance(this).available
494484 }
495485 else throw("Match error")
496486 }
497- if ((bY > cP))
487+ if ((ca > cR))
498488 then {
499- let cR = (bY - cP)
500- cM(ar, cR)
489+ let cT = (ca - cR)
490+ cO(ar, cT)
501491 }
502492 else nil
503493 }
504494
505495
506-func cS (cT,cU,cV,cW) = {
507- let cX = D(cV, cT)
508- let cY = D(cW, cU)
509- bO(cY, cX)
496+func cU (cV,cW,cX,cY) = {
497+ let cZ = D(cX, cV)
498+ let da = D(cY, cW)
499+ bQ(da, cZ)
510500 }
511501
512502
513-func cZ (cV,cW,da) = {
514- let db = be()
515- let dc = parseIntValue(db[t])
516- let dd = parseIntValue(db[u])
517- let de = cS(dc, dd, cV, cW)
518- let bQ = D(cV, dc)
519- let bP = D(cW, dd)
520- let df = D(da, b)
521- let dg = bO(bQ, df)
522- let dh = bO(bP, df)
523-[de, dg, dh]
503+func db (cX,cY,dc) = {
504+ let dd = be()
505+ let de = parseIntValue(dd[t])
506+ let df = parseIntValue(dd[u])
507+ let dg = cU(de, df, cX, cY)
508+ let bS = D(cX, de)
509+ let bR = D(cY, df)
510+ let dh = D(dc, b)
511+ let di = bQ(bS, dh)
512+ let dj = bQ(bR, dh)
513+[dg, di, dj]
524514 }
525515
526516
527-func di (cV,cW,da) = {
528- let dj = cZ(cV, cW, da)
529-[H(dj[0], b), H(dj[1], b), H(dj[2], b)]
517+func dk (cX,cY,dc) = {
518+ let dl = db(cX, cY, dc)
519+[H(dl[0], b), H(dl[1], b), H(dl[2], b)]
530520 }
531521
532522
533-func dk (dl,dm,dn,ab) = {
534- let db = be()
535- let do = db[q]
536- let dp = db[r]
537- let dq = db[s]
538- let cT = parseIntValue(db[t])
539- let cU = parseIntValue(db[u])
540- let dr = db[p]
541- let ds = valueOrErrorMessage(assetInfo(fromBase58String(do)), (("Asset " + do) + " doesn't exist")).quantity
542- if ((do != dm))
523+func dm (dn,do,dp,ab) = {
524+ let dd = be()
525+ let dq = dd[q]
526+ let dr = dd[r]
527+ let ds = dd[s]
528+ let cV = parseIntValue(dd[t])
529+ let cW = parseIntValue(dd[u])
530+ let dt = dd[p]
531+ let du = valueOrErrorMessage(assetInfo(fromBase58String(dq)), (("Asset " + dq) + " doesn't exist")).quantity
532+ if ((dq != do))
543533 then throw("Invalid asset passed.")
544534 else {
545- let dt = bN(dp)
546- let du = D(dt, cT)
547- let dv = bN(dq)
548- let dw = D(dv, cU)
549- let dx = bO(dw, du)
550- let dy = H(dx, b)
551- let dz = D(dn, b)
552- let dA = D(ds, b)
553- let dB = fraction(du, dz, dA)
554- let dC = fraction(dw, dz, dA)
555- let dD = K(dB, cT, FLOOR)
556- let dE = K(dC, cU, FLOOR)
557- let dF = cO(dp, dD)
558- if ((dF == dF))
535+ let dv = bN(dr)
536+ let dw = D(dv, cV)
537+ let dx = bN(ds)
538+ let dy = D(dx, cW)
539+ let dz = bQ(dy, dw)
540+ let dA = H(dz, b)
541+ let dB = D(dp, b)
542+ let dC = D(du, b)
543+ let dD = fraction(dw, dB, dC)
544+ let dE = fraction(dy, dB, dC)
545+ let dF = K(dD, cV, FLOOR)
546+ let dG = K(dE, cW, FLOOR)
547+ let dH = cQ(dr, dF)
548+ if ((dH == dH))
559549 then {
560- let dG = cO(dq, dE)
561- if ((dG == dG))
550+ let dI = cQ(ds, dG)
551+ if ((dI == dI))
562552 then {
563- let dH = invoke(this, "rebalance", nil, nil)
564- if ((dH == dH))
553+ let dJ = invoke(this, "rebalance", nil, nil)
554+ if ((dJ == dJ))
565555 then {
566- let dI = if ((dl == ""))
556+ let dK = if ((dn == ""))
567557 then nil
568- else ((dF ++ dG) ++ [ScriptTransfer(ab, dD, if ((dp == "WAVES"))
558+ else ((dH ++ dI) ++ [ScriptTransfer(ab, dF, if ((dr == "WAVES"))
569559 then unit
570- else fromBase58String(dp)), ScriptTransfer(ab, dE, if ((dq == "WAVES"))
560+ else fromBase58String(dr)), ScriptTransfer(ab, dG, if ((ds == "WAVES"))
571561 then unit
572- else fromBase58String(dq)), StringEntry(ad(toString(ab), dl), bJ(dD, dE, dn, dy, height, lastBlock.timestamp)), IntegerEntry(W(), dy), IntegerEntry(X(height, lastBlock.timestamp), dy)])
573- $Tuple10(dD, dE, dp, dq, dt, dv, ds, dx, dr, dI)
562+ else fromBase58String(ds)), StringEntry(ad(toString(ab), dn), bJ(dF, dG, dp, dA, height, lastBlock.timestamp)), IntegerEntry(W(), dA), IntegerEntry(X(height, lastBlock.timestamp), dA)])
563+ $Tuple10(dF, dG, dr, ds, dv, dx, du, dz, dt, dK)
574564 }
575565 else throw("Strict value is not equal to itself.")
576566 }
581571 }
582572
583573
584-func dJ (dl,dK,dL,dM,dN,dO,ab,dP,dQ) = {
585- let db = be()
586- let do = fromBase58String(db[q])
587- let dR = db[r]
588- let dS = db[s]
589- let dT = db[v]
590- let dU = db[w]
591- let dc = parseIntValue(db[t])
592- let dd = parseIntValue(db[u])
593- let dr = db[p]
594- let ds = valueOrErrorMessage(assetInfo(do), (("Asset " + toBase58String(do)) + " doesn't exist")).quantity
595- let dV = toBase58String(valueOrElse(dM, fromBase58String("WAVES")))
596- let dW = toBase58String(valueOrElse(dO, fromBase58String("WAVES")))
597- if (if ((dR != dV))
574+func dL (dn,dM,dN,dO,dP,dQ,ab,dR,dS) = {
575+ let dd = be()
576+ let dq = fromBase58String(dd[q])
577+ let dT = dd[r]
578+ let dU = dd[s]
579+ let dV = dd[v]
580+ let dW = dd[w]
581+ let de = parseIntValue(dd[t])
582+ let df = parseIntValue(dd[u])
583+ let dt = dd[p]
584+ let du = valueOrErrorMessage(assetInfo(dq), (("Asset " + toBase58String(dq)) + " doesn't exist")).quantity
585+ let dX = toBase58String(valueOrElse(dO, fromBase58String("WAVES")))
586+ let dY = toBase58String(valueOrElse(dQ, fromBase58String("WAVES")))
587+ if (if ((dT != dX))
598588 then true
599- else (dS != dW))
589+ else (dU != dY))
600590 then throw("Invalid amt or price asset passed.")
601591 else {
602- let dt = if (dP)
603- then bN(dR)
604- else (bN(dR) - dL)
605- let dv = if (dP)
606- then bN(dS)
607- else (bN(dS) - dN)
608- let dX = D(dL, dc)
609- let dY = D(dN, dd)
610- let dZ = bO(dY, dX)
611- let du = D(dt, dc)
612- let dw = D(dv, dd)
613- let ea = if ((ds == 0))
592+ let dv = if (dR)
593+ then bN(dT)
594+ else (bN(dT) - dN)
595+ let dx = if (dR)
596+ then bN(dU)
597+ else (bN(dU) - dP)
598+ let dZ = D(dN, de)
599+ let ea = D(dP, df)
600+ let eb = bQ(ea, dZ)
601+ let dw = D(dv, de)
602+ let dy = D(dx, df)
603+ let ec = if ((du == 0))
614604 then {
615- let dx = e
616- let eb = e
617- let df = pow((dX * dY), 0, toBigInt(5), 1, 0, DOWN)
618- $Tuple5(H(df, b), H(dX, dc), H(dY, dd), bO((dw + dY), (du + dX)), eb)
605+ let dz = e
606+ let ed = e
607+ let dh = pow((dZ * ea), 0, toBigInt(5), 1, 0, DOWN)
608+ $Tuple5(H(dh, b), H(dZ, de), H(ea, df), bQ((dy + ea), (dw + dZ)), ed)
619609 }
620610 else {
621- let dx = bO(dw, du)
622- let eb = fraction(R((dx - dZ)), d, dx)
623- let ec = D(dK, b)
624- if (if ((dx != e))
625- then (eb > ec)
611+ let dz = bQ(dy, dw)
612+ let ed = fraction(R((dz - eb)), d, dz)
613+ let ee = D(dM, b)
614+ if (if ((dz != e))
615+ then (ed > ee)
626616 else false)
627- then throw(((("Price slippage " + toString(eb)) + " exceeded the passed limit of ") + toString(ec)))
617+ then throw(((("Price slippage " + toString(ed)) + " exceeded the passed limit of ") + toString(ee)))
628618 else {
629- let dA = D(ds, b)
630- let ed = fraction(dX, bR(dw, du, CEILING), d, CEILING)
631- let ee = fraction(dY, d, bR(dw, du, FLOOR), CEILING)
632- let ef = if ((ed > dY))
633- then $Tuple2(ee, dY)
634- else $Tuple2(dX, ed)
635- let eg = ef._1
636- let eh = ef._2
637- let df = fraction(dA, eh, dw, FLOOR)
638- $Tuple5(K(df, b, FLOOR), K(eg, dc, CEILING), K(eh, dd, CEILING), dx, eb)
619+ let dC = D(du, b)
620+ let ef = fraction(dZ, bT(dy, dw, CEILING), d, CEILING)
621+ let eg = fraction(ea, d, bT(dy, dw, FLOOR), CEILING)
622+ let eh = if ((ef > ea))
623+ then $Tuple2(eg, ea)
624+ else $Tuple2(dZ, ef)
625+ let ei = eh._1
626+ let ej = eh._2
627+ let dh = fraction(dC, ej, dy, FLOOR)
628+ $Tuple5(K(dh, b, FLOOR), K(ei, de, CEILING), K(ej, df, CEILING), dz, ed)
639629 }
640630 }
641- let ei = ea._1
642- let ej = ea._2
643- let ek = ea._3
644- let dy = H(ea._4, b)
645- let el = H(ea._5, b)
646- if ((0 >= ei))
631+ let ek = ec._1
632+ let el = ec._2
633+ let em = ec._3
634+ let dA = H(ec._4, b)
635+ let en = H(ec._5, b)
636+ if ((0 >= ek))
647637 then throw("Invalid calculations. LP calculated is less than zero.")
648638 else {
649- let em = if (!(dQ))
639+ let eo = if (!(dS))
650640 then 0
651- else ei
652- let en = (dL - ej)
653- let eo = (dN - ek)
654- let ep = [IntegerEntry(W(), dy), IntegerEntry(X(height, lastBlock.timestamp), dy), StringEntry(aa(ab, dl), by(ej, ek, em, dy, dK, el, height, lastBlock.timestamp, en, eo))]
655- $Tuple13(ei, em, dy, dt, dv, ds, do, dr, ep, en, eo, dM, dO)
641+ else ek
642+ let ep = (dN - el)
643+ let eq = (dP - em)
644+ let er = [IntegerEntry(W(), dA), IntegerEntry(X(height, lastBlock.timestamp), dA), StringEntry(aa(ab, dn), by(el, em, eo, dA, dM, en, height, lastBlock.timestamp, ep, eq))]
645+ $Tuple13(ek, eo, dA, dv, dx, du, dq, dt, er, ep, eq, dO, dQ)
656646 }
657647 }
658648 }
659649
660650
661-func eq (er,es,ds) = {
662- let et = G(er, toBigInt(bt))
663- let eu = G(es, toBigInt(bu))
664- let ev = fraction(pow((et * eu), 0, toBigInt(5), 1, 18, DOWN), g, ds)
665- if ((ds == f))
651+func es (et,eu,du) = {
652+ let ev = G(et, toBigInt(bt))
653+ let ew = G(eu, toBigInt(bu))
654+ let ex = fraction(pow((ev * ew), 0, toBigInt(5), 1, 18, DOWN), g, du)
655+ if ((du == f))
666656 then f
667- else ev
657+ else ex
668658 }
669659
670660
671-func ew (ex,ey,ez) = {
672- let eA = (toBigInt(bN(bj(br))) - ex)
673- let eB = (toBigInt(bN(bj(bs))) - ey)
674- let eC = (toBigInt(value(assetInfo(bq)).quantity) - ez)
675- let eD = eq(eA, eB, eC)
676- eD
661+func ey (ez,eA,eB) = {
662+ let eC = (toBigInt(bN(bj(br))) - ez)
663+ let eD = (toBigInt(bN(bj(bs))) - eA)
664+ let eE = (toBigInt(value(assetInfo(bq)).quantity) - eB)
665+ let eF = es(eC, eD, eE)
666+ eF
677667 }
678668
679669
680-func eE (eF,eG,ez) = {
681- let eA = (bN(bj(br)) + eF)
682- let eB = (bN(bj(bs)) + eG)
683- let eC = (value(assetInfo(bq)).quantity + ez)
684- let ev = eq(toBigInt(eA), toBigInt(eB), toBigInt(eC))
685- let eH = [IntegerEntry(ak, height), StringEntry(aj, toString(ev))]
686- $Tuple2(eH, ev)
670+func eG (eH,eI,eB) = {
671+ let eC = (bN(bj(br)) + eH)
672+ let eD = (bN(bj(bs)) + eI)
673+ let eE = (value(assetInfo(bq)).quantity + eB)
674+ let ex = es(toBigInt(eC), toBigInt(eD), toBigInt(eE))
675+ let eJ = [IntegerEntry(ak, height), StringEntry(aj, toString(ex))]
676+ $Tuple2(eJ, ex)
687677 }
688678
689679
690-func eI (eJ,ev) = if ((ev >= eJ))
680+func eK (eL,ex) = if ((ex >= eL))
691681 then true
692- else aS(makeString(["updated KLp lower than current KLp", toString(eJ), toString(ev)], " "))
682+ else aS(makeString(["updated KLp lower than current KLp", toString(eL), toString(ex)], " "))
693683
694684
695-func eK (eL) = {
696- let eA = bN(bj(br))
697- let eB = bN(bj(bs))
698- let eM = eL.amount
699- let eN = fraction(eL.amount, eL.price, b, FLOOR)
700- let eO = if ((eL.orderType == Buy))
701- then $Tuple2(eM, -(eN))
702- else $Tuple2(-(eM), eN)
703- let eF = eO._1
704- let eG = eO._2
685+func eM (eN) = {
686+ let eC = bN(bj(br))
687+ let eD = bN(bj(bs))
688+ let eO = eN.amount
689+ let eP = fraction(eN.amount, eN.price, b, FLOOR)
690+ let eQ = if ((eN.orderType == Buy))
691+ then $Tuple2(eO, -(eP))
692+ else $Tuple2(-(eO), eP)
693+ let eH = eQ._1
694+ let eI = eQ._2
705695 if (if (if (bc())
706696 then true
707697 else (bp == m))
708698 then true
709699 else (bp == n))
710700 then throw("Exchange operations disabled")
711- else if (if ((eL.assetPair.amountAsset != br))
701+ else if (if ((eN.assetPair.amountAsset != br))
712702 then true
713- else (eL.assetPair.priceAsset != bs))
703+ else (eN.assetPair.priceAsset != bs))
714704 then throw("Wrong order assets.")
715705 else {
716- let eP = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aU("invalid kLp"))
717- let eQ = eE(eF, eG, 0)
718- let eR = eQ._1
719- let eS = eQ._2
720- let eT = (eS >= eP)
721- let eU = makeString(["kLp=", toString(eP), " kLpNew=", toString(eS), " amountAssetBalance=", toString(eA), " priceAssetBalance=", toString(eB), " amountAssetBalanceDelta=", toString(eF), " priceAssetBalanceDelta=", toString(eG), " height=", toString(height)], "")
722- $Tuple2(eT, eU)
706+ let eR = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aU("invalid kLp"))
707+ let eS = eG(eH, eI, 0)
708+ let eT = eS._1
709+ let eU = eS._2
710+ let eV = (eU >= eR)
711+ let eW = makeString(["kLp=", toString(eR), " kLpNew=", toString(eU), " amountAssetBalance=", toString(eC), " priceAssetBalance=", toString(eD), " amountAssetBalanceDelta=", toString(eH), " priceAssetBalanceDelta=", toString(eI), " height=", toString(height)], "")
712+ $Tuple2(eV, eW)
723713 }
724714 }
725715
726716
727-func eV (eW) = if ((size(eW.payments) != 1))
717+func eX (eY) = if ((size(eY.payments) != 1))
728718 then throw("exactly 1 payment is expected")
729719 else {
730- let eX = value(eW.payments[0])
731- let dm = value(eX.assetId)
732- let eY = eX.amount
733- let ea = dk(toBase58String(eW.transactionId), toBase58String(dm), eY, eW.caller)
734- let dD = ea._1
735- let dE = ea._2
736- let dr = parseIntValue(ea._9)
737- let dI = ea._10
720+ let eZ = value(eY.payments[0])
721+ let do = value(eZ.assetId)
722+ let fa = eZ.amount
723+ let ec = dm(toBase58String(eY.transactionId), toBase58String(do), fa, eY.caller)
724+ let dF = ec._1
725+ let dG = ec._2
726+ let dt = parseIntValue(ec._9)
727+ let dK = ec._10
738728 if (if (bc())
739729 then true
740- else (dr == n))
741- then throw(("Get operation is blocked by admin. Status = " + toString(dr)))
742- else $Tuple5(dD, dE, eY, dm, dI)
730+ else (dt == n))
731+ then throw(("Get operation is blocked by admin. Status = " + toString(dt)))
732+ else $Tuple5(dF, dG, fa, do, dK)
743733 }
744734
745735
746-func eZ (eW,dK,dQ) = if ((size(eW.payments) != 2))
736+func fb (eY,dM,dS) = if ((size(eY.payments) != 2))
747737 then throw("exactly 2 payments are expected")
748738 else {
749- let fa = value(eW.payments[0])
750- let fb = value(eW.payments[1])
751- let fc = dJ(toBase58String(eW.transactionId), dK, fa.amount, fa.assetId, fb.amount, fb.assetId, toString(eW.caller), false, dQ)
752- let dr = parseIntValue(fc._8)
739+ let fc = value(eY.payments[0])
740+ let fd = value(eY.payments[1])
741+ let fe = dL(toBase58String(eY.transactionId), dM, fc.amount, fc.assetId, fd.amount, fd.assetId, toString(eY.caller), false, dS)
742+ let dt = parseIntValue(fe._8)
753743 if (if (if (bc())
754744 then true
755- else (dr == l))
745+ else (dt == l))
756746 then true
757- else (dr == n))
758- then throw(("Put operation is blocked by admin. Status = " + toString(dr)))
759- else fc
747+ else (dt == n))
748+ then throw(("Put operation is blocked by admin. Status = " + toString(dt)))
749+ else fe
760750 }
761751
762752
763-func fd (bY) = {
764- let fe = invoke(aV, "emit", [bY], nil)
765- if ((fe == fe))
753+func ff (ca) = {
754+ let fg = invoke(aV, "emit", [ca], nil)
755+ if ((fg == fg))
766756 then {
767- let ff = {
768- let bV = fe
769- if ($isInstanceOf(bV, "Address"))
757+ let fh = {
758+ let bX = fg
759+ if ($isInstanceOf(bX, "Address"))
770760 then {
771- let fg = bV
772- invoke(fg, "emit", [bY], nil)
761+ let fi = bX
762+ invoke(fi, "emit", [ca], nil)
773763 }
774764 else unit
775765 }
776- if ((ff == ff))
777- then bY
766+ if ((fh == fh))
767+ then ca
778768 else throw("Strict value is not equal to itself.")
779769 }
780770 else throw("Strict value is not equal to itself.")
781771 }
782772
783773
784-func fh (bY,ai) = {
785- let fi = if ((ai == 0))
774+func fj (ca,ai) = {
775+ let fk = if ((ai == 0))
786776 then 0
787- else fraction(bY, ai, b)
788- $Tuple2((bY - fi), fi)
777+ else fraction(ca, ai, b)
778+ $Tuple2((ca - fk), fk)
789779 }
790780
791781
792-func fj (fk,fl,ab,ac) = {
793- let fm = (ac == unit)
794- let fn = bN(bj(br))
795- let fo = bN(bj(bs))
796- let fp = if ((fl == br))
782+func fl (fm,fn,ab,ac) = {
783+ let fo = (ac == unit)
784+ let fp = bN(bj(br))
785+ let fq = bN(bj(bs))
786+ let fr = if ((fn == br))
797787 then true
798- else if ((fl == bs))
788+ else if ((fn == bs))
799789 then false
800790 else aS("invalid asset")
801- let fq = if (fm)
802- then $Tuple2(fn, fo)
803- else if (fp)
804- then $Tuple2((fn - fk), fo)
805- else $Tuple2(fn, (fo - fk))
806- let fr = fq._1
807- let fs = fq._2
808- let ft = if (fp)
809- then $Tuple2(fk, 0)
810- else $Tuple2(0, fk)
811- let fu = ft._1
812- let fv = ft._2
813- let eM = fh(fu, aX)._1
814- let eN = fh(fv, aX)._1
815- let fw = fh(fk, aX)
816- let fx = fw._1
817- let fi = fw._2
818- let fy = (fr + eM)
819- let fz = (fs + eN)
820- let fA = bO(D(fz, bu), D(fy, bt))
821- let fB = H(fA, b)
822- let fC = if (fp)
823- then fr
824- else fs
825- let fD = toBigInt(fC)
826- let fE = toBigInt(valueOrErrorMessage(assetInfo(bq), (("asset " + toBase58String(bq)) + " doesn't exist")).quantity)
827- let fF = if ((fE > f))
791+ let fs = if (fo)
792+ then $Tuple2(fp, fq)
793+ else if (fr)
794+ then $Tuple2((fp - fm), fq)
795+ else $Tuple2(fp, (fq - fm))
796+ let ft = fs._1
797+ let fu = fs._2
798+ let fv = if (fr)
799+ then $Tuple2(fm, 0)
800+ else $Tuple2(0, fm)
801+ let fw = fv._1
802+ let fx = fv._2
803+ let eO = fj(fw, aX)._1
804+ let eP = fj(fx, aX)._1
805+ let fy = fj(fm, aX)
806+ let fz = fy._1
807+ let fk = fy._2
808+ let fA = (ft + eO)
809+ let fB = (fu + eP)
810+ let fC = bQ(D(fB, bu), D(fA, bt))
811+ let fD = H(fC, b)
812+ let fE = if (fr)
813+ then ft
814+ else fu
815+ let fF = toBigInt(fE)
816+ let fG = toBigInt(valueOrErrorMessage(assetInfo(bq), (("asset " + toBase58String(bq)) + " doesn't exist")).quantity)
817+ let fH = if ((fG > f))
828818 then true
829819 else aS("initial deposit requires all coins")
830- if ((fF == fF))
820+ if ((fH == fH))
831821 then {
832- let fG = toBigInt(fx)
833- let fH = max([0, toInt(((fE * (sqrtBigInt((d + ((fG * d) / fD)), 18, 18, DOWN) - d)) / d))])
834- let ep = if (fm)
822+ let fI = toBigInt(fz)
823+ let fJ = max([0, toInt(((fG * (sqrtBigInt((d + ((fI * d) / fF)), 18, 18, DOWN) - d)) / d))])
824+ let er = if (fo)
835825 then nil
836- else [IntegerEntry(W(), fB), IntegerEntry(X(height, lastBlock.timestamp), fB), StringEntry(aa(toString(value(ab)), toBase58String(value(ac))), by(fu, fv, fH, fB, 0, 0, height, lastBlock.timestamp, 0, 0))]
837- let fI = bO(D(fs, bu), D(fr, bt))
838- let fJ = H(fI, b)
839- let fK = {
840- let fL = if (fp)
841- then $Tuple2(fu, fr)
842- else $Tuple2(fv, fs)
843- let bY = fL._1
844- let fM = fL._2
845- let fN = toInt(fraction(fE, toBigInt((bY / 2)), toBigInt(fM)))
846- fraction((fH - fN), b, fN)
826+ else [IntegerEntry(W(), fD), IntegerEntry(X(height, lastBlock.timestamp), fD), StringEntry(aa(toString(value(ab)), toBase58String(value(ac))), by(fw, fx, fJ, fD, 0, 0, height, lastBlock.timestamp, 0, 0))]
827+ let fK = bQ(D(fu, bu), D(ft, bt))
828+ let fL = H(fK, b)
829+ let fM = {
830+ let fN = if (fr)
831+ then $Tuple2(fw, ft)
832+ else $Tuple2(fx, fu)
833+ let ca = fN._1
834+ let fO = fN._2
835+ let fP = toInt(fraction(fG, toBigInt((ca / 2)), toBigInt(fO)))
836+ fraction((fJ - fP), b, fP)
847837 }
848- $Tuple5(fH, ep, fi, fK, fp)
838+ $Tuple5(fJ, er, fk, fM, fr)
849839 }
850840 else throw("Strict value is not equal to itself.")
851841 }
852842
853843
854-func fO (fP,fx,fl,ab,ac) = {
855- let fm = (ac == unit)
856- let db = be()
857- let dc = parseIntValue(db[t])
858- let dd = parseIntValue(db[u])
859- let fQ = [if ((fl == bq))
844+func fQ (fR,fz,fn,ab,ac) = {
845+ let fo = (ac == unit)
846+ let dd = be()
847+ let de = parseIntValue(dd[t])
848+ let df = parseIntValue(dd[u])
849+ let fS = [if ((fn == bq))
860850 then true
861851 else aS("invalid lp asset")]
862- if ((fQ == fQ))
852+ if ((fS == fS))
863853 then {
864- let fR = if ((fP == br))
854+ let fT = if ((fR == br))
865855 then true
866- else if ((fP == bs))
856+ else if ((fR == bs))
867857 then false
868858 else aS("invalid asset")
869- let fS = if (fR)
859+ let fU = if (fT)
870860 then toBigInt(bN(bj(br)))
871861 else toBigInt(bN(bj(bs)))
872- let fT = if (fR)
873- then dc
874- else dd
875- let fU = bN(bj(br))
876- let fV = bN(bj(bs))
877- let fW = if (fR)
878- then fU
879- else fV
880- let fX = toBigInt(fW)
881- let fE = toBigInt(valueOrErrorMessage(assetInfo(bq), (("asset " + toBase58String(bq)) + " doesn't exist")).quantity)
882- let fY = toBigInt(fx)
883- let fZ = max([0, toInt(((fS * (d - pow((d - ((fY * d) / fE)), 18, h, 0, 18, DOWN))) / d))])
884- let ga = fh(fZ, aZ)
885- let gb = ga._1
886- let fi = ga._2
887- let gc = if (fR)
888- then $Tuple4(gb, 0, (fU - fZ), fV)
889- else $Tuple4(0, gb, fU, (fV - fZ))
862+ let fV = if (fT)
863+ then de
864+ else df
865+ let fW = bN(bj(br))
866+ let fX = bN(bj(bs))
867+ let fY = if (fT)
868+ then fW
869+ else fX
870+ let fZ = toBigInt(fY)
871+ let fG = toBigInt(valueOrErrorMessage(assetInfo(bq), (("asset " + toBase58String(bq)) + " doesn't exist")).quantity)
872+ let ga = toBigInt(fz)
873+ let gb = max([0, toInt(((fU * (d - pow((d - ((ga * d) / fG)), 18, h, 0, 18, DOWN))) / d))])
874+ let gc = fj(gb, aZ)
890875 let gd = gc._1
891- let ge = gc._2
892- let gf = gc._3
893- let gg = gc._4
894- let fA = bO(D(gg, bu), D(gf, bt))
895- let fB = H(fA, b)
896- let ep = if (fm)
876+ let fk = gc._2
877+ let ge = if (fT)
878+ then $Tuple4(gd, 0, (fW - gb), fX)
879+ else $Tuple4(0, gd, fW, (fX - gb))
880+ let gf = ge._1
881+ let gg = ge._2
882+ let gh = ge._3
883+ let gi = ge._4
884+ let fC = bQ(D(gi, bu), D(gh, bt))
885+ let fD = H(fC, b)
886+ let er = if (fo)
897887 then nil
898- else [StringEntry(ad(toString(value(ab)), toBase58String(value(ac))), bJ(gd, ge, fx, fB, height, lastBlock.timestamp)), IntegerEntry(W(), fB), IntegerEntry(X(height, lastBlock.timestamp), fB)]
899- let fI = bO(D(fV, bu), D(fU, bt))
900- let fJ = H(fI, b)
901- let fK = {
902- let gh = (toInt(fraction(fS, fY, fE)) * 2)
903- fraction((gb - gh), b, gh)
888+ else [StringEntry(ad(toString(value(ab)), toBase58String(value(ac))), bJ(gf, gg, fz, fD, height, lastBlock.timestamp)), IntegerEntry(W(), fD), IntegerEntry(X(height, lastBlock.timestamp), fD)]
889+ let fK = bQ(D(fX, bu), D(fW, bt))
890+ let fL = H(fK, b)
891+ let fM = {
892+ let gj = (toInt(fraction(fU, ga, fG)) * 2)
893+ fraction((gd - gj), b, gj)
904894 }
905- $Tuple5(gb, ep, fi, fK, fR)
895+ $Tuple5(gd, er, fk, fM, fT)
906896 }
907897 else throw("Strict value is not equal to itself.")
908898 }
909899
910900
911-func gi () = {
912- let bV = getString(U())
913- if ($isInstanceOf(bV, "String"))
901+func gk () = {
902+ let bX = getString(U())
903+ if ($isInstanceOf(bX, "String"))
914904 then {
915- let gj = bV
916- fromBase58String(gj)
905+ let gl = bX
906+ fromBase58String(gl)
917907 }
918- else if ($isInstanceOf(bV, "Unit"))
908+ else if ($isInstanceOf(bX, "Unit"))
919909 then unit
920910 else throw("Match error")
921911 }
922912
923913
924-func gk () = {
925- let bV = getString(V())
926- if ($isInstanceOf(bV, "String"))
914+func gm () = {
915+ let bX = getString(V())
916+ if ($isInstanceOf(bX, "String"))
927917 then {
928- let gj = bV
929- fromBase58String(gj)
918+ let gl = bX
919+ fromBase58String(gl)
930920 }
931- else if ($isInstanceOf(bV, "Unit"))
921+ else if ($isInstanceOf(bX, "Unit"))
932922 then unit
933923 else throw("Match error")
934924 }
935925
936926
937-func gl (eW) = {
938- let bV = gi()
939- if ($isInstanceOf(bV, "ByteVector"))
927+func gn (eY) = {
928+ let bX = gk()
929+ if ($isInstanceOf(bX, "ByteVector"))
940930 then {
941- let gm = bV
942- (eW.callerPublicKey == gm)
931+ let go = bX
932+ (eY.callerPublicKey == go)
943933 }
944- else if ($isInstanceOf(bV, "Unit"))
945- then (eW.caller == this)
934+ else if ($isInstanceOf(bX, "Unit"))
935+ then (eY.caller == this)
946936 else throw("Match error")
947937 }
948938
949939
950-func gn (eW) = {
951- let go = throw("Permission denied")
952- let bV = gi()
953- if ($isInstanceOf(bV, "ByteVector"))
940+func gp (eY) = {
941+ let gq = throw("Permission denied")
942+ let bX = gk()
943+ if ($isInstanceOf(bX, "ByteVector"))
954944 then {
955- let gm = bV
956- if ((eW.callerPublicKey == gm))
945+ let go = bX
946+ if ((eY.callerPublicKey == go))
957947 then true
958- else go
948+ else gq
959949 }
960- else if ($isInstanceOf(bV, "Unit"))
961- then if ((eW.caller == this))
950+ else if ($isInstanceOf(bX, "Unit"))
951+ then if ((eY.caller == this))
962952 then true
963- else go
953+ else gq
964954 else throw("Match error")
965955 }
966956
967957
968-@Callable(eW)
969-func rebalance () = (cE(aO(this, ae())) ++ cE(aO(this, af())))
958+@Callable(eY)
959+func rebalance () = (cG(aO(this, ae())) ++ cG(aO(this, af())))
970960
971961
972962
973-@Callable(eW)
974-func calculateAmountOutForSwapREADONLY (gp,gq,gr) = {
975- let gs = if ((gq == false))
963+@Callable(eY)
964+func calculateAmountOutForSwapREADONLY (gr,gs,gt) = {
965+ let gu = if ((gs == false))
976966 then {
977- let gt = aO(this, af())
978- let gu = aO(this, ae())
979- $Tuple2(gt, gu)
967+ let gv = aO(this, af())
968+ let gw = aO(this, ae())
969+ $Tuple2(gv, gw)
980970 }
981971 else {
982- let gt = aO(this, ae())
983- let gu = aO(this, af())
984- $Tuple2(gt, gu)
972+ let gv = aO(this, ae())
973+ let gw = aO(this, af())
974+ $Tuple2(gv, gw)
985975 }
986- let gt = gs._1
987- let gu = gs._2
988- let gv = bN(gu)
989- let gw = bN(gt)
990- let gx = fraction(gw, gp, (gv + gp))
991- let gy = (toBigInt(gv) * toBigInt(gw))
992- let gz = (((toBigInt(bN(gu)) + toBigInt(gp)) + toBigInt(gr)) * (toBigInt(bN(gt)) - toBigInt(gx)))
993- let gA = if ((gz >= gy))
976+ let gv = gu._1
977+ let gw = gu._2
978+ let gx = bN(gw)
979+ let gy = bN(gv)
980+ let gz = fraction(gy, gr, (gx + gr))
981+ let gA = (toBigInt(gx) * toBigInt(gy))
982+ let gB = (((toBigInt(bN(gw)) + toBigInt(gr)) + toBigInt(gt)) * (toBigInt(bN(gv)) - toBigInt(gz)))
983+ let gC = if ((gB >= gA))
994984 then true
995985 else throw("new K is fewer error")
996- if ((gA == gA))
997- then $Tuple2(nil, gx)
986+ if ((gC == gC))
987+ then $Tuple2(nil, gz)
998988 else throw("Strict value is not equal to itself.")
999989 }
1000990
1001991
1002992
1003-@Callable(eW)
1004-func calculateAmountOutForSwapAndSendTokens (gp,gq,gB,gC,gr) = {
1005- let gD = {
993+@Callable(eY)
994+func calculateAmountOutForSwapAndSendTokens (gr,gs,gD,gE,gt) = {
995+ let gF = {
1006996 let aY = invoke(aV, "getSwapContractREADONLY", nil, nil)
1007997 if ($isInstanceOf(aY, "String"))
1008998 then aY
1009999 else throw(($getType(aY) + " couldn't be cast to String"))
10101000 }
1011- let fQ = [if ((value(eW.payments[0]).amount >= gp))
1001+ let fS = [if ((value(eY.payments[0]).amount >= gr))
10121002 then true
1013- else aS("Wrong amount"), if ((eW.caller == addressFromStringValue(gD)))
1003+ else aS("Wrong amount"), if ((eY.caller == addressFromStringValue(gF)))
10141004 then true
10151005 else aS("Permission denied")]
1016- if ((fQ == fQ))
1006+ if ((fS == fS))
10171007 then {
1018- let eX = value(eW.payments[0])
1019- let gu = bj(eX.assetId)
1020- let gt = if ((gq == false))
1008+ let eZ = value(eY.payments[0])
1009+ let gw = bj(eZ.assetId)
1010+ let gv = if ((gs == false))
10211011 then aO(this, af())
10221012 else aO(this, ae())
1023- let gv = (bN(gu) - value(eW.payments[0]).amount)
1024- let gw = bN(gt)
1025- let gx = fraction(gw, gp, (gv + gp))
1026- let gy = (toBigInt(gv) * toBigInt(gw))
1027- let gz = ((toBigInt(bN(gu)) + toBigInt(gr)) * (toBigInt(bN(gt)) - toBigInt(gx)))
1028- let gA = if ((gz >= gy))
1013+ let gx = (bN(gw) - value(eY.payments[0]).amount)
1014+ let gy = bN(gv)
1015+ let gz = fraction(gy, gr, (gx + gr))
1016+ let gA = (toBigInt(gx) * toBigInt(gy))
1017+ let gB = ((toBigInt(bN(gw)) + toBigInt(gt)) * (toBigInt(bN(gv)) - toBigInt(gz)))
1018+ let gC = if ((gB >= gA))
10291019 then true
10301020 else throw("new K is fewer error")
1031- if ((gA == gA))
1021+ if ((gC == gC))
10321022 then {
1033- let gE = if ((gx >= gB))
1023+ let gG = if ((gz >= gD))
10341024 then true
10351025 else throw("Exchange result is fewer coins than expected")
1036- if ((gE == gE))
1026+ if ((gG == gG))
10371027 then {
1038- let gF = {
1039- let bV = cs(gt)
1040- if ($isInstanceOf(bV, "(Boolean, Int, Int, String, String, Int, String)"))
1028+ let gH = {
1029+ let bX = cu(gv)
1030+ if ($isInstanceOf(bX, "(Boolean, Int, Int, String, String, Int, String)"))
10411031 then {
1042- let cF = bV
1043- cF
1032+ let cH = bX
1033+ cH
10441034 }
10451035 else throw("error lease config")
10461036 }
1047- let gG = cO(gt, gx)
1048- if ((gG == gG))
1037+ let gI = cQ(gv, gz)
1038+ if ((gI == gI))
10491039 then {
1050- let dH = invoke(this, "rebalance", nil, nil)
1051- if ((dH == dH))
1052- then $Tuple2((gG ++ [ScriptTransfer(addressFromStringValue(gC), gx, bh(gt))]), gx)
1040+ let dJ = invoke(this, "rebalance", nil, nil)
1041+ if ((dJ == dJ))
1042+ then $Tuple2((gI ++ [ScriptTransfer(addressFromStringValue(gE), gz, bh(gv))]), gz)
10531043 else throw("Strict value is not equal to itself.")
10541044 }
10551045 else throw("Strict value is not equal to itself.")
10631053
10641054
10651055
1066-@Callable(eW)
1067-func setManager (gH) = {
1068- let gI = gn(eW)
1069- if ((gI == gI))
1056+@Callable(eY)
1057+func setManager (gJ) = {
1058+ let gK = gp(eY)
1059+ if ((gK == gK))
10701060 then {
1071- let gJ = fromBase58String(gH)
1072- if ((gJ == gJ))
1073- then [StringEntry(V(), gH)]
1061+ let gL = fromBase58String(gJ)
1062+ if ((gL == gL))
1063+ then [StringEntry(V(), gJ)]
10741064 else throw("Strict value is not equal to itself.")
10751065 }
10761066 else throw("Strict value is not equal to itself.")
10781068
10791069
10801070
1081-@Callable(eW)
1071+@Callable(eY)
10821072 func confirmManager () = {
1083- let gK = gk()
1084- let gL = if (isDefined(gK))
1073+ let gM = gm()
1074+ let gN = if (isDefined(gM))
10851075 then true
10861076 else throw("No pending manager")
1087- if ((gL == gL))
1077+ if ((gN == gN))
10881078 then {
1089- let gM = if ((eW.callerPublicKey == value(gK)))
1079+ let gO = if ((eY.callerPublicKey == value(gM)))
10901080 then true
10911081 else throw("You are not pending manager")
1092- if ((gM == gM))
1093- then [StringEntry(U(), toBase58String(value(gK))), DeleteEntry(V())]
1082+ if ((gO == gO))
1083+ then [StringEntry(U(), toBase58String(value(gM))), DeleteEntry(V())]
10941084 else throw("Strict value is not equal to itself.")
10951085 }
10961086 else throw("Strict value is not equal to itself.")
10981088
10991089
11001090
1101-@Callable(eW)
1102-func put (dK,gN) = if ((0 > dK))
1091+@Callable(eY)
1092+func put (dM,gP) = if ((0 > dM))
11031093 then throw("Invalid slippageTolerance passed")
11041094 else {
1105- let fc = eZ(eW, dK, true)
1106- let em = fc._2
1107- let do = fc._7
1108- let dI = fc._9
1109- let en = fc._10
1110- let eo = fc._11
1111- let gO = fc._12
1112- let gP = fc._13
1113- let fa = toBigInt(value(eW.payments[0]).amount)
1114- let fb = toBigInt(value(eW.payments[1]).amount)
1115- let eD = ew(fa, fb, toBigInt(0))
1116- if ((eD == eD))
1095+ let fe = fb(eY, dM, true)
1096+ let eo = fe._2
1097+ let dq = fe._7
1098+ let dK = fe._9
1099+ let ep = fe._10
1100+ let eq = fe._11
1101+ let gQ = fe._12
1102+ let gR = fe._13
1103+ let fc = toBigInt(value(eY.payments[0]).amount)
1104+ let fd = toBigInt(value(eY.payments[1]).amount)
1105+ let eF = ey(fc, fd, toBigInt(0))
1106+ if ((eF == eF))
11171107 then {
1118- let fe = invoke(aV, "emit", [em], nil)
1119- if ((fe == fe))
1108+ let fg = invoke(aV, "emit", [eo], nil)
1109+ if ((fg == fg))
11201110 then {
1121- let ff = {
1122- let bV = fe
1123- if ($isInstanceOf(bV, "Address"))
1111+ let fh = {
1112+ let bX = fg
1113+ if ($isInstanceOf(bX, "Address"))
11241114 then {
1125- let fg = bV
1126- invoke(fg, "emit", [em], nil)
1115+ let fi = bX
1116+ invoke(fi, "emit", [eo], nil)
11271117 }
11281118 else unit
11291119 }
1130- if ((ff == ff))
1120+ if ((fh == fh))
11311121 then {
1132- let gQ = if ((en > 0))
1133- then invoke(bx, "put", nil, [AttachedPayment(gO, en)])
1122+ let gS = if ((ep > 0))
1123+ then invoke(bx, "put", nil, [AttachedPayment(gQ, ep)])
11341124 else nil
1135- if ((gQ == gQ))
1125+ if ((gS == gS))
11361126 then {
1137- let gR = if ((eo > 0))
1138- then invoke(bx, "put", nil, [AttachedPayment(gP, eo)])
1127+ let gT = if ((eq > 0))
1128+ then invoke(bx, "put", nil, [AttachedPayment(gR, eq)])
11391129 else nil
1140- if ((gR == gR))
1130+ if ((gT == gT))
11411131 then {
1142- let gS = if (gN)
1132+ let gU = if (gP)
11431133 then {
1144- let gT = invoke(bw, "stake", nil, [AttachedPayment(do, em)])
1145- if ((gT == gT))
1134+ let gV = invoke(bw, "stake", nil, [AttachedPayment(dq, eo)])
1135+ if ((gV == gV))
11461136 then nil
11471137 else throw("Strict value is not equal to itself.")
11481138 }
1149- else [ScriptTransfer(eW.caller, em, do)]
1150- let gU = eE(0, 0, 0)
1151- if ((gU == gU))
1139+ else [ScriptTransfer(eY.caller, eo, dq)]
1140+ let gW = eG(0, 0, 0)
1141+ if ((gW == gW))
11521142 then {
1153- let ev = gU._2
1154- let gV = gU._1
1155- let gW = eI(eD, ev)
1156- if ((gW == gW))
1157- then ((dI ++ gS) ++ gV)
1143+ let ex = gW._2
1144+ let gX = gW._1
1145+ let gY = eK(eF, ex)
1146+ if ((gY == gY))
1147+ then ((dK ++ gU) ++ gX)
11581148 else throw("Strict value is not equal to itself.")
11591149 }
11601150 else throw("Strict value is not equal to itself.")
11721162
11731163
11741164
1175-@Callable(eW)
1176-func putForFree (gX) = if ((0 > gX))
1165+@Callable(eY)
1166+func putForFree (gZ) = if ((0 > gZ))
11771167 then throw("Invalid value passed")
11781168 else {
1179- let fc = eZ(eW, gX, false)
1180- let dI = fc._9
1181- let fa = toBigInt(value(eW.payments[0]).amount)
1182- let fb = toBigInt(value(eW.payments[1]).amount)
1183- let eD = ew(fa, fb, toBigInt(0))
1184- if ((eD == eD))
1169+ let fe = fb(eY, gZ, false)
1170+ let dK = fe._9
1171+ let fc = toBigInt(value(eY.payments[0]).amount)
1172+ let fd = toBigInt(value(eY.payments[1]).amount)
1173+ let eF = ey(fc, fd, toBigInt(0))
1174+ if ((eF == eF))
11851175 then {
1186- let gY = eE(0, 0, 0)
1187- let gV = gY._1
1188- let ev = gY._2
1189- let gW = eI(eD, ev)
1190- if ((gW == gW))
1191- then (dI ++ gV)
1176+ let ha = eG(0, 0, 0)
1177+ let gX = ha._1
1178+ let ex = ha._2
1179+ let gY = eK(eF, ex)
1180+ if ((gY == gY))
1181+ then (dK ++ gX)
11921182 else throw("Strict value is not equal to itself.")
11931183 }
11941184 else throw("Strict value is not equal to itself.")
11961186
11971187
11981188
1199-@Callable(eW)
1200-func putOneTkn (gZ,ha) = {
1201- let hb = {
1189+@Callable(eY)
1190+func putOneTkn (hb,hc) = {
1191+ let hd = {
12021192 let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
12031193 if ($isInstanceOf(aY, "Boolean"))
12041194 then aY
12051195 else throw(($getType(aY) + " couldn't be cast to Boolean"))
12061196 }
1207- let hc = if (if (if (bc())
1197+ let he = if (if (if (bc())
12081198 then true
12091199 else (bp == l))
12101200 then true
12111201 else (bp == n))
12121202 then true
1213- else hb
1214- let fQ = [if (if (!(hc))
1203+ else hd
1204+ let fS = [if (if (!(he))
12151205 then true
1216- else gl(eW))
1206+ else gn(eY))
12171207 then true
1218- else aS("put operation is blocked by admin"), if ((size(eW.payments) == 1))
1208+ else aS("put operation is blocked by admin"), if ((size(eY.payments) == 1))
12191209 then true
12201210 else aS("exactly 1 payment are expected")]
1221- if ((fQ == fQ))
1211+ if ((fS == fS))
12221212 then {
1223- let hd = eW.payments[0]
1224- let fl = hd.assetId
1225- let fk = hd.amount
1226- let eD = if ((fl == br))
1227- then ew(toBigInt(fk), toBigInt(0), toBigInt(0))
1228- else if ((fl == bs))
1229- then ew(toBigInt(0), toBigInt(fk), toBigInt(0))
1213+ let hf = eY.payments[0]
1214+ let fn = hf.assetId
1215+ let fm = hf.amount
1216+ let eF = if ((fn == br))
1217+ then ey(toBigInt(fm), toBigInt(0), toBigInt(0))
1218+ else if ((fn == bs))
1219+ then ey(toBigInt(0), toBigInt(fm), toBigInt(0))
12301220 else aS("payment asset is not supported")
1231- if ((eD == eD))
1221+ if ((eF == eF))
12321222 then {
1233- let ab = eW.caller
1234- let ac = eW.transactionId
1235- let he = fj(fk, fl, ab, ac)
1236- if ((he == he))
1223+ let ab = eY.caller
1224+ let ac = eY.transactionId
1225+ let hg = fl(fm, fn, ab, ac)
1226+ if ((hg == hg))
12371227 then {
1238- let fp = he._5
1239- let hf = he._4
1240- let fi = he._3
1241- let ep = he._2
1242- let hg = he._1
1243- let hh = if (if ((gZ > 0))
1244- then (gZ > hg)
1228+ let fr = hg._5
1229+ let hh = hg._4
1230+ let fk = hg._3
1231+ let er = hg._2
1232+ let hi = hg._1
1233+ let hj = if (if ((hb > 0))
1234+ then (hb > hi)
12451235 else false)
1246- then aS(makeString(["amount to receive is less than ", toString(gZ)], ""))
1247- else hg
1248- let fe = fd(hh)
1249- if ((fe == fe))
1236+ then aS(makeString(["amount to receive is less than ", toString(hb)], ""))
1237+ else hi
1238+ let fg = ff(hj)
1239+ if ((fg == fg))
12501240 then {
1251- let gS = if (ha)
1241+ let gU = if (hc)
12521242 then {
1253- let hi = invoke(bw, "stake", nil, [AttachedPayment(bq, hh)])
1254- if ((hi == hi))
1243+ let hk = invoke(bw, "stake", nil, [AttachedPayment(bq, hj)])
1244+ if ((hk == hk))
12551245 then nil
12561246 else throw("Strict value is not equal to itself.")
12571247 }
1258- else [ScriptTransfer(eW.caller, hh, bq)]
1259- let hj = if ((fi > 0))
1260- then [ScriptTransfer(aW, fi, fl)]
1248+ else [ScriptTransfer(eY.caller, hj, bq)]
1249+ let hl = if ((fk > 0))
1250+ then [ScriptTransfer(aW, fk, fn)]
12611251 else nil
1262- let hk = if ((this == aW))
1252+ let hm = if ((this == aW))
12631253 then $Tuple2(0, 0)
1264- else if (fp)
1265- then $Tuple2(-(fi), 0)
1266- else $Tuple2(0, -(fi))
1267- let eF = hk._1
1268- let eG = hk._2
1269- let hl = eE(eF, eG, 0)
1270- let gV = hl._1
1271- let ev = hl._2
1272- let eP = value(getString(aj))
1273- let gW = eI(eD, ev)
1274- if ((gW == gW))
1254+ else if (fr)
1255+ then $Tuple2(-(fk), 0)
1256+ else $Tuple2(0, -(fk))
1257+ let eH = hm._1
1258+ let eI = hm._2
1259+ let hn = eG(eH, eI, 0)
1260+ let gX = hn._1
1261+ let ex = hn._2
1262+ let eR = value(getString(aj))
1263+ let gY = eK(eF, ex)
1264+ if ((gY == gY))
12751265 then {
1276- let dH = invoke(this, "rebalance", nil, nil)
1277- if ((dH == dH))
1278- then $Tuple2((((ep ++ gS) ++ hj) ++ gV), hh)
1266+ let dJ = invoke(this, "rebalance", nil, nil)
1267+ if ((dJ == dJ))
1268+ then $Tuple2((((er ++ gU) ++ hl) ++ gX), hj)
12791269 else throw("Strict value is not equal to itself.")
12801270 }
12811271 else throw("Strict value is not equal to itself.")
12911281
12921282
12931283
1294-@Callable(eW)
1295-func putOneTknREADONLY (fl,fk) = {
1296- let hm = fj(fk, bh(fl), unit, unit)
1297- let hg = hm._1
1298- let ep = hm._2
1299- let fi = hm._3
1300- let hf = hm._4
1301- let fp = hm._5
1302- $Tuple2(nil, $Tuple3(hg, fi, hf))
1284+@Callable(eY)
1285+func putOneTknREADONLY (fn,fm) = {
1286+ let ho = fl(fm, bh(fn), unit, unit)
1287+ let hi = ho._1
1288+ let er = ho._2
1289+ let fk = ho._3
1290+ let hh = ho._4
1291+ let fr = ho._5
1292+ $Tuple2(nil, $Tuple3(hi, fk, hh))
13031293 }
13041294
13051295
13061296
1307-@Callable(eW)
1308-func getOneTkn (hn,gZ) = {
1309- let hb = {
1297+@Callable(eY)
1298+func getOneTkn (hp,hb) = {
1299+ let hd = {
13101300 let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
13111301 if ($isInstanceOf(aY, "Boolean"))
13121302 then aY
13131303 else throw(($getType(aY) + " couldn't be cast to Boolean"))
13141304 }
1315- let ho = if (if (bc())
1305+ let hq = if (if (bc())
13161306 then true
13171307 else (bp == n))
13181308 then true
1319- else hb
1320- let fQ = [if (if (!(ho))
1309+ else hd
1310+ let fS = [if (if (!(hq))
13211311 then true
1322- else gl(eW))
1312+ else gn(eY))
13231313 then true
1324- else aS("get operation is blocked by admin"), if ((size(eW.payments) == 1))
1314+ else aS("get operation is blocked by admin"), if ((size(eY.payments) == 1))
13251315 then true
13261316 else aS("exactly 1 payment are expected")]
1327- if ((fQ == fQ))
1317+ if ((fS == fS))
13281318 then {
1329- let fP = bh(hn)
1330- let hd = eW.payments[0]
1331- let fl = hd.assetId
1332- let fx = hd.amount
1333- let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
1334- if ((eD == eD))
1319+ let fR = bh(hp)
1320+ let hf = eY.payments[0]
1321+ let fn = hf.assetId
1322+ let fz = hf.amount
1323+ let eF = ey(toBigInt(0), toBigInt(0), toBigInt(0))
1324+ if ((eF == eF))
13351325 then {
1336- let ab = eW.caller
1337- let ac = eW.transactionId
1338- let hp = fO(fP, fx, fl, ab, ac)
1339- if ((hp == hp))
1326+ let ab = eY.caller
1327+ let ac = eY.transactionId
1328+ let hr = fQ(fR, fz, fn, ab, ac)
1329+ if ((hr == hr))
13401330 then {
1341- let fR = hp._5
1342- let hf = hp._4
1343- let fi = hp._3
1344- let ep = hp._2
1345- let hq = hp._1
1346- let bY = if (if ((gZ > 0))
1347- then (gZ > hq)
1331+ let fT = hr._5
1332+ let hh = hr._4
1333+ let fk = hr._3
1334+ let er = hr._2
1335+ let hs = hr._1
1336+ let ca = if (if ((hb > 0))
1337+ then (hb > hs)
13481338 else false)
1349- then aS(makeString(["amount to receive is less than ", toString(gZ)], ""))
1350- else hq
1351- let gF = {
1352- let bV = cs(hn)
1353- if ($isInstanceOf(bV, "(Boolean, Int, Int, String, String, Int, String)"))
1339+ then aS(makeString(["amount to receive is less than ", toString(hb)], ""))
1340+ else hs
1341+ let gH = {
1342+ let bX = cu(hp)
1343+ if ($isInstanceOf(bX, "(Boolean, Int, Int, String, String, Int, String)"))
13541344 then {
1355- let cF = bV
1356- cF
1345+ let cH = bX
1346+ cH
13571347 }
13581348 else throw("error lease config")
13591349 }
1360- let hr = invoke(aV, "burn", [fx], [AttachedPayment(fl, fx)])
1361- if ((hr == hr))
1350+ let ht = invoke(aV, "burn", [fz], [AttachedPayment(fn, fz)])
1351+ if ((ht == ht))
13621352 then {
1363- let gG = cO(hn, bY)
1364- if ((gG == gG))
1353+ let gI = cQ(hp, ca)
1354+ if ((gI == gI))
13651355 then {
1366- let hs = [ScriptTransfer(ab, bY, fP)]
1367- let hj = if ((fi > 0))
1368- then [ScriptTransfer(aW, fi, fP)]
1356+ let hu = [ScriptTransfer(ab, ca, fR)]
1357+ let hl = if ((fk > 0))
1358+ then [ScriptTransfer(aW, fk, fR)]
13691359 else nil
1370- let ht = {
1371- let hu = if ((this == aW))
1360+ let hv = {
1361+ let hw = if ((this == aW))
13721362 then 0
1373- else fi
1374- if (fR)
1375- then $Tuple2(-((bY + hu)), 0)
1376- else $Tuple2(0, -((bY + hu)))
1363+ else fk
1364+ if (fT)
1365+ then $Tuple2(-((ca + hw)), 0)
1366+ else $Tuple2(0, -((ca + hw)))
13771367 }
1378- let eF = ht._1
1379- let eG = ht._2
1380- let hv = eE(eF, eG, 0)
1381- let gV = hv._1
1382- let ev = hv._2
1383- let gW = eI(eD, ev)
1384- if ((gW == gW))
1368+ let eH = hv._1
1369+ let eI = hv._2
1370+ let hx = eG(eH, eI, 0)
1371+ let gX = hx._1
1372+ let ex = hx._2
1373+ let gY = eK(eF, ex)
1374+ if ((gY == gY))
13851375 then {
1386- let dH = invoke(this, "rebalance", nil, nil)
1387- if ((dH == dH))
1388- then $Tuple2((((ep ++ hs) ++ hj) ++ gV), bY)
1376+ let dJ = invoke(this, "rebalance", nil, nil)
1377+ if ((dJ == dJ))
1378+ then $Tuple2(((((er ++ gI) ++ hu) ++ hl) ++ gX), ca)
13891379 else throw("Strict value is not equal to itself.")
13901380 }
13911381 else throw("Strict value is not equal to itself.")
14031393
14041394
14051395
1406-@Callable(eW)
1407-func getOneTknREADONLY (fP,fx) = {
1408- let hw = fO(bh(fP), fx, bq, unit, unit)
1409- let hq = hw._1
1410- let ep = hw._2
1411- let fi = hw._3
1412- let hf = hw._4
1413- let fR = hw._5
1414- $Tuple2(nil, $Tuple3(hq, fi, hf))
1396+@Callable(eY)
1397+func getOneTknREADONLY (fR,fz) = {
1398+ let hy = fQ(bh(fR), fz, bq, unit, unit)
1399+ let hs = hy._1
1400+ let er = hy._2
1401+ let fk = hy._3
1402+ let hh = hy._4
1403+ let fT = hy._5
1404+ $Tuple2(nil, $Tuple3(hs, fk, hh))
14151405 }
14161406
14171407
14181408
1419-@Callable(eW)
1420-func unstakeAndGetOneTkn (hx,hn,gZ) = {
1421- let hb = {
1409+@Callable(eY)
1410+func unstakeAndGetOneTkn (hz,hp,hb) = {
1411+ let hd = {
14221412 let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
14231413 if ($isInstanceOf(aY, "Boolean"))
14241414 then aY
14251415 else throw(($getType(aY) + " couldn't be cast to Boolean"))
14261416 }
1427- let ho = if (if (bc())
1417+ let hq = if (if (bc())
14281418 then true
14291419 else (bp == n))
14301420 then true
1431- else hb
1432- let fQ = [if (if (!(ho))
1421+ else hd
1422+ let fS = [if (if (!(hq))
14331423 then true
1434- else gl(eW))
1424+ else gn(eY))
14351425 then true
1436- else aS("get operation is blocked by admin"), if ((size(eW.payments) == 0))
1426+ else aS("get operation is blocked by admin"), if ((size(eY.payments) == 0))
14371427 then true
14381428 else aS("no payments are expected")]
1439- if ((fQ == fQ))
1429+ if ((fS == fS))
14401430 then {
1441- let fP = bh(hn)
1442- let ab = eW.caller
1443- let ac = eW.transactionId
1444- let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
1445- if ((eD == eD))
1431+ let fR = bh(hp)
1432+ let ab = eY.caller
1433+ let ac = eY.transactionId
1434+ let eF = ey(toBigInt(0), toBigInt(0), toBigInt(0))
1435+ if ((eF == eF))
14461436 then {
1447- let hy = invoke(bw, "unstake", [toBase58String(bq), hx], nil)
1448- if ((hy == hy))
1437+ let hA = invoke(bw, "unstake", [toBase58String(bq), hz], nil)
1438+ if ((hA == hA))
14491439 then {
1450- let hz = fO(fP, hx, bq, ab, ac)
1451- if ((hz == hz))
1440+ let hB = fQ(fR, hz, bq, ab, ac)
1441+ if ((hB == hB))
14521442 then {
1453- let fR = hz._5
1454- let hf = hz._4
1455- let fi = hz._3
1456- let ep = hz._2
1457- let hq = hz._1
1458- let bY = if (if ((gZ > 0))
1459- then (gZ > hq)
1443+ let fT = hB._5
1444+ let hh = hB._4
1445+ let fk = hB._3
1446+ let er = hB._2
1447+ let hs = hB._1
1448+ let ca = if (if ((hb > 0))
1449+ then (hb > hs)
14601450 else false)
1461- then aS(makeString(["amount to receive is less than ", toString(gZ)], ""))
1462- else hq
1463- let hr = invoke(aV, "burn", [hx], [AttachedPayment(bq, hx)])
1464- if ((hr == hr))
1451+ then aS(makeString(["amount to receive is less than ", toString(hb)], ""))
1452+ else hs
1453+ let ht = invoke(aV, "burn", [hz], [AttachedPayment(bq, hz)])
1454+ if ((ht == ht))
14651455 then {
1466- let gG = cO(hn, bY)
1467- if ((gG == gG))
1456+ let gI = cQ(hp, ca)
1457+ if ((gI == gI))
14681458 then {
1469- let hs = [ScriptTransfer(eW.caller, bY, fP)]
1470- let hj = if ((fi > 0))
1471- then [ScriptTransfer(aW, fi, fP)]
1459+ let hu = [ScriptTransfer(eY.caller, ca, fR)]
1460+ let hl = if ((fk > 0))
1461+ then [ScriptTransfer(aW, fk, fR)]
14721462 else nil
1473- let hA = {
1474- let hu = if ((this == aW))
1463+ let hC = {
1464+ let hw = if ((this == aW))
14751465 then 0
1476- else fi
1477- if (fR)
1478- then $Tuple2(-((bY + hu)), 0)
1479- else $Tuple2(0, -((bY + hu)))
1466+ else fk
1467+ if (fT)
1468+ then $Tuple2(-((ca + hw)), 0)
1469+ else $Tuple2(0, -((ca + hw)))
14801470 }
1481- let eF = hA._1
1482- let eG = hA._2
1483- let hB = eE(eF, eG, 0)
1484- let gV = hB._1
1485- let ev = hB._2
1486- let gW = eI(eD, ev)
1487- if ((gW == gW))
1471+ let eH = hC._1
1472+ let eI = hC._2
1473+ let hD = eG(eH, eI, 0)
1474+ let gX = hD._1
1475+ let ex = hD._2
1476+ let gY = eK(eF, ex)
1477+ if ((gY == gY))
14881478 then {
1489- let dH = invoke(this, "rebalance", nil, nil)
1490- if ((dH == dH))
1491- then $Tuple2(((((ep ++ gG) ++ hs) ++ hj) ++ gV), bY)
1479+ let dJ = invoke(this, "rebalance", nil, nil)
1480+ if ((dJ == dJ))
1481+ then $Tuple2(((((er ++ gI) ++ hu) ++ hl) ++ gX), ca)
14921482 else throw("Strict value is not equal to itself.")
14931483 }
14941484 else throw("Strict value is not equal to itself.")
15081498
15091499
15101500
1511-@Callable(eW)
1501+@Callable(eY)
15121502 func get () = {
1513- let ea = eV(eW)
1514- let hC = ea._1
1515- let dE = ea._2
1516- let eY = ea._3
1517- let dm = ea._4
1518- let dI = ea._5
1519- let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
1520- if ((eD == eD))
1503+ let ec = eX(eY)
1504+ let hE = ec._1
1505+ let dG = ec._2
1506+ let fa = ec._3
1507+ let do = ec._4
1508+ let dK = ec._5
1509+ let eF = ey(toBigInt(0), toBigInt(0), toBigInt(0))
1510+ if ((eF == eF))
15211511 then {
1522- let hD = invoke(aV, "burn", [eY], [AttachedPayment(dm, eY)])
1523- if ((hD == hD))
1512+ let hF = invoke(aV, "burn", [fa], [AttachedPayment(do, fa)])
1513+ if ((hF == hF))
15241514 then {
1525- let hE = eE(-(hC), -(dE), 0)
1526- let gV = hE._1
1527- let ev = hE._2
1528- let gW = eI(eD, ev)
1529- if ((gW == gW))
1530- then (dI ++ gV)
1515+ let hG = eG(-(hE), -(dG), 0)
1516+ let gX = hG._1
1517+ let ex = hG._2
1518+ let gY = eK(eF, ex)
1519+ if ((gY == gY))
1520+ then (dK ++ gX)
15311521 else throw("Strict value is not equal to itself.")
15321522 }
15331523 else throw("Strict value is not equal to itself.")
15371527
15381528
15391529
1540-@Callable(eW)
1541-func getNoLess (hF,hG) = {
1542- let ea = eV(eW)
1543- let dD = ea._1
1544- let dE = ea._2
1545- let eY = ea._3
1546- let dm = ea._4
1547- let dI = ea._5
1548- if ((hF > dD))
1549- then throw(((("noLessThenAmtAsset failed: " + toString(dD)) + " < ") + toString(hF)))
1550- else if ((hG > dE))
1551- then throw(((("noLessThenPriceAsset failed: " + toString(dE)) + " < ") + toString(hG)))
1530+@Callable(eY)
1531+func getNoLess (hH,hI) = {
1532+ let ec = eX(eY)
1533+ let dF = ec._1
1534+ let dG = ec._2
1535+ let fa = ec._3
1536+ let do = ec._4
1537+ let dK = ec._5
1538+ if ((hH > dF))
1539+ then throw(((("noLessThenAmtAsset failed: " + toString(dF)) + " < ") + toString(hH)))
1540+ else if ((hI > dG))
1541+ then throw(((("noLessThenPriceAsset failed: " + toString(dG)) + " < ") + toString(hI)))
15521542 else {
1553- let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
1554- if ((eD == eD))
1543+ let eF = ey(toBigInt(0), toBigInt(0), toBigInt(0))
1544+ if ((eF == eF))
15551545 then {
1556- let hD = invoke(aV, "burn", [eY], [AttachedPayment(dm, eY)])
1557- if ((hD == hD))
1546+ let hF = invoke(aV, "burn", [fa], [AttachedPayment(do, fa)])
1547+ if ((hF == hF))
15581548 then {
1559- let hH = eE(-(dD), -(dE), 0)
1560- let gV = hH._1
1561- let ev = hH._2
1562- let gW = eI(eD, ev)
1563- if ((gW == gW))
1564- then (dI ++ gV)
1549+ let hJ = eG(-(dF), -(dG), 0)
1550+ let gX = hJ._1
1551+ let ex = hJ._2
1552+ let gY = eK(eF, ex)
1553+ if ((gY == gY))
1554+ then (dK ++ gX)
15651555 else throw("Strict value is not equal to itself.")
15661556 }
15671557 else throw("Strict value is not equal to itself.")
15721562
15731563
15741564
1575-@Callable(eW)
1576-func unstakeAndGet (bY) = {
1577- let hI = if ((size(eW.payments) != 0))
1565+@Callable(eY)
1566+func unstakeAndGet (ca) = {
1567+ let hK = if ((size(eY.payments) != 0))
15781568 then throw("No payments are expected")
15791569 else true
1580- if ((hI == hI))
1570+ if ((hK == hK))
15811571 then {
1582- let db = be()
1583- let do = fromBase58String(db[q])
1584- let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
1585- if ((eD == eD))
1572+ let dd = be()
1573+ let dq = fromBase58String(dd[q])
1574+ let eF = ey(toBigInt(0), toBigInt(0), toBigInt(0))
1575+ if ((eF == eF))
15861576 then {
1587- let hy = invoke(bw, "unstake", [toBase58String(do), bY], nil)
1588- if ((hy == hy))
1577+ let hA = invoke(bw, "unstake", [toBase58String(dq), ca], nil)
1578+ if ((hA == hA))
15891579 then {
1590- let ea = dk(toBase58String(eW.transactionId), toBase58String(do), bY, eW.caller)
1591- let dD = ea._1
1592- let dE = ea._2
1593- let dr = parseIntValue(ea._9)
1594- let dI = ea._10
1595- let hJ = if (if (bc())
1580+ let ec = dm(toBase58String(eY.transactionId), toBase58String(dq), ca, eY.caller)
1581+ let dF = ec._1
1582+ let dG = ec._2
1583+ let dt = parseIntValue(ec._9)
1584+ let dK = ec._10
1585+ let hL = if (if (bc())
15961586 then true
1597- else (dr == n))
1598- then throw(("Get operation is blocked by admin. Status = " + toString(dr)))
1587+ else (dt == n))
1588+ then throw(("Get operation is blocked by admin. Status = " + toString(dt)))
15991589 else true
1600- if ((hJ == hJ))
1590+ if ((hL == hL))
16011591 then {
1602- let hD = invoke(aV, "burn", [bY], [AttachedPayment(do, bY)])
1603- if ((hD == hD))
1592+ let hF = invoke(aV, "burn", [ca], [AttachedPayment(dq, ca)])
1593+ if ((hF == hF))
16041594 then {
1605- let hK = eE(-(dD), -(dE), 0)
1606- let gV = hK._1
1607- let ev = hK._2
1608- let gW = eI(eD, ev)
1609- if ((gW == gW))
1610- then (dI ++ gV)
1595+ let hM = eG(-(dF), -(dG), 0)
1596+ let gX = hM._1
1597+ let ex = hM._2
1598+ let gY = eK(eF, ex)
1599+ if ((gY == gY))
1600+ then (dK ++ gX)
16111601 else throw("Strict value is not equal to itself.")
16121602 }
16131603 else throw("Strict value is not equal to itself.")
16231613
16241614
16251615
1626-@Callable(eW)
1627-func unstakeAndGetNoLess (hx,hL,hG) = {
1628- let ho = if (bc())
1616+@Callable(eY)
1617+func unstakeAndGetNoLess (hz,hN,hI) = {
1618+ let hq = if (bc())
16291619 then true
16301620 else (bp == n)
1631- let fQ = [if (!(ho))
1621+ let fS = [if (!(hq))
16321622 then true
1633- else throw("get operation is blocked by admin"), if ((size(eW.payments) == 0))
1623+ else throw("get operation is blocked by admin"), if ((size(eY.payments) == 0))
16341624 then true
16351625 else throw("no payments are expected")]
1636- if ((fQ == fQ))
1626+ if ((fS == fS))
16371627 then {
1638- let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
1639- if ((eD == eD))
1628+ let eF = ey(toBigInt(0), toBigInt(0), toBigInt(0))
1629+ if ((eF == eF))
16401630 then {
1641- let hy = invoke(bw, "unstake", [toBase58String(bq), hx], nil)
1642- if ((hy == hy))
1631+ let hA = invoke(bw, "unstake", [toBase58String(bq), hz], nil)
1632+ if ((hA == hA))
16431633 then {
1644- let ea = dk(toBase58String(eW.transactionId), toBase58String(bq), hx, eW.caller)
1645- let dD = ea._1
1646- let dE = ea._2
1647- let dI = ea._10
1648- let hM = [if ((dD >= hL))
1634+ let ec = dm(toBase58String(eY.transactionId), toBase58String(bq), hz, eY.caller)
1635+ let dF = ec._1
1636+ let dG = ec._2
1637+ let dK = ec._10
1638+ let hO = [if ((dF >= hN))
16491639 then true
1650- else throw(makeString(["amount asset amount to receive is less than ", toString(hL)], "")), if ((dE >= hG))
1640+ else throw(makeString(["amount asset amount to receive is less than ", toString(hN)], "")), if ((dG >= hI))
16511641 then true
1652- else throw(makeString(["price asset amount to receive is less than ", toString(hG)], ""))]
1653- if ((hM == hM))
1642+ else throw(makeString(["price asset amount to receive is less than ", toString(hI)], ""))]
1643+ if ((hO == hO))
16541644 then {
1655- let hD = invoke(aV, "burn", [hx], [AttachedPayment(bq, hx)])
1656- if ((hD == hD))
1645+ let hF = invoke(aV, "burn", [hz], [AttachedPayment(bq, hz)])
1646+ if ((hF == hF))
16571647 then {
1658- let hN = eE(-(dD), -(dE), 0)
1659- let gV = hN._1
1660- let ev = hN._2
1661- let gW = eI(eD, ev)
1662- if ((gW == gW))
1663- then (dI ++ gV)
1648+ let hP = eG(-(dF), -(dG), 0)
1649+ let gX = hP._1
1650+ let ex = hP._2
1651+ let gY = eK(eF, ex)
1652+ if ((gY == gY))
1653+ then (dK ++ gX)
16641654 else throw("Strict value is not equal to itself.")
16651655 }
16661656 else throw("Strict value is not equal to itself.")
16761666
16771667
16781668
1679-@Callable(eW)
1680-func activate (hO,hP) = if ((toString(eW.caller) != toString(aV)))
1669+@Callable(eY)
1670+func activate (hQ,hR) = if ((toString(eY.caller) != toString(aV)))
16811671 then throw("permissions denied")
1682- else $Tuple2([StringEntry(ae(), hO), StringEntry(af(), hP)], "success")
1672+ else $Tuple2([StringEntry(ae(), hQ), StringEntry(af(), hR)], "success")
16831673
16841674
16851675
1686-@Callable(eW)
1676+@Callable(eY)
16871677 func refreshKLp () = {
1688- let hQ = valueOrElse(getInteger(ak), 0)
1689- let hR = if (((height - hQ) >= an))
1678+ let hS = valueOrElse(getInteger(ak), 0)
1679+ let hT = if (((height - hS) >= an))
16901680 then unit
16911681 else aS(makeString([toString(an), " blocks have not passed since the previous call"], ""))
1692- if ((hR == hR))
1682+ if ((hT == hT))
16931683 then {
1694- let eP = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aU("invalid kLp"))
1695- let hS = eE(0, 0, 0)
1696- let hT = hS._1
1697- let ev = hS._2
1698- let eH = if ((eP != ev))
1699- then hT
1684+ let eR = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aU("invalid kLp"))
1685+ let hU = eG(0, 0, 0)
1686+ let hV = hU._1
1687+ let ex = hU._2
1688+ let eJ = if ((eR != ex))
1689+ then hV
17001690 else aS("nothing to refresh")
1701- $Tuple2(eH, toString(ev))
1691+ $Tuple2(eJ, toString(ex))
17021692 }
17031693 else throw("Strict value is not equal to itself.")
17041694 }
17051695
17061696
17071697
1708-@Callable(eW)
1698+@Callable(eY)
17091699 func getPoolConfigWrapperREADONLY () = $Tuple2(nil, be())
17101700
17111701
17121702
1713-@Callable(eW)
1703+@Callable(eY)
17141704 func getAccBalanceWrapperREADONLY (ar) = $Tuple2(nil, bN(ar))
17151705
17161706
17171707
1718-@Callable(eW)
1719-func calcPricesWrapperREADONLY (cV,cW,da) = {
1720- let dj = cZ(cV, cW, da)
1721- $Tuple2(nil, [toString(dj[0]), toString(dj[1]), toString(dj[2])])
1708+@Callable(eY)
1709+func calcPricesWrapperREADONLY (cX,cY,dc) = {
1710+ let dl = db(cX, cY, dc)
1711+ $Tuple2(nil, [toString(dl[0]), toString(dl[1]), toString(dl[2])])
17221712 }
17231713
17241714
17251715
1726-@Callable(eW)
1716+@Callable(eY)
17271717 func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
17281718
17291719
17301720
1731-@Callable(eW)
1721+@Callable(eY)
17321722 func fromX18WrapperREADONLY (I,J) = $Tuple2(nil, H(parseBigIntValue(I), J))
17331723
17341724
17351725
1736-@Callable(eW)
1737-func calcPriceBigIntWrapperREADONLY (bP,bQ) = $Tuple2(nil, toString(bO(parseBigIntValue(bP), parseBigIntValue(bQ))))
1726+@Callable(eY)
1727+func calcPriceBigIntWrapperREADONLY (bR,bS) = $Tuple2(nil, toString(bQ(parseBigIntValue(bR), parseBigIntValue(bS))))
17381728
17391729
17401730
1741-@Callable(eW)
1742-func estimatePutOperationWrapperREADONLY (dl,dK,dL,dM,dN,dO,ab,dP,dQ) = $Tuple2(nil, dJ(dl, dK, dL, dM, dN, dO, ab, dP, dQ))
1731+@Callable(eY)
1732+func estimatePutOperationWrapperREADONLY (dn,dM,dN,dO,dP,dQ,ab,dR,dS) = $Tuple2(nil, dL(dn, dM, dN, dO, dP, dQ, ab, dR, dS))
17431733
17441734
17451735
1746-@Callable(eW)
1747-func estimateGetOperationWrapperREADONLY (dl,dm,dn,ab) = {
1748- let ea = dk(dl, dm, dn, addressFromStringValue(ab))
1749- $Tuple2(nil, $Tuple10(ea._1, ea._2, ea._3, ea._4, ea._5, ea._6, ea._7, toString(ea._8), ea._9, ea._10))
1736+@Callable(eY)
1737+func estimateGetOperationWrapperREADONLY (dn,do,dp,ab) = {
1738+ let ec = dm(dn, do, dp, addressFromStringValue(ab))
1739+ $Tuple2(nil, $Tuple10(ec._1, ec._2, ec._3, ec._4, ec._5, ec._6, ec._7, toString(ec._8), ec._9, ec._10))
17501740 }
17511741
17521742
17531743
1754-@Callable(eW)
1744+@Callable(eY)
17551745 func statsREADONLY () = {
1756- let db = be()
1757- let do = fromBase58String(db[q])
1758- let hU = db[r]
1759- let hV = db[s]
1760- let dT = db[v]
1761- let dU = db[w]
1762- let dc = parseIntValue(db[t])
1763- let dd = parseIntValue(db[u])
1764- let hW = valueOrErrorMessage(assetInfo(do), (("Asset " + toBase58String(do)) + " doesn't exist")).quantity
1765- let hX = bN(hU)
1766- let hY = bN(hV)
1767- let hZ = if ((hW == 0))
1746+ let dd = be()
1747+ let dq = fromBase58String(dd[q])
1748+ let hW = dd[r]
1749+ let hX = dd[s]
1750+ let dV = dd[v]
1751+ let dW = dd[w]
1752+ let de = parseIntValue(dd[t])
1753+ let df = parseIntValue(dd[u])
1754+ let hY = valueOrErrorMessage(assetInfo(dq), (("Asset " + toBase58String(dq)) + " doesn't exist")).quantity
1755+ let hZ = bN(hW)
1756+ let ia = bN(hX)
1757+ let ib = if ((hY == 0))
17681758 then [e, e, e]
1769- else cZ(hX, hY, hW)
1770- let dy = 0
1771- let ia = H(hZ[1], b)
1772- let ib = H(hZ[2], b)
1773- let ic = value(getInteger(aV, aF(toString(this))))
1774- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hX), toString(hY), toString(hW), toString(dy), toString(ia), toString(ib), toString(ic)], j))
1759+ else db(hZ, ia, hY)
1760+ let dA = 0
1761+ let ic = H(ib[1], b)
1762+ let id = H(ib[2], b)
1763+ let ie = value(getInteger(aV, aF(toString(this))))
1764+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hZ), toString(ia), toString(hY), toString(dA), toString(ic), toString(id), toString(ie)], j))
17751765 }
17761766
17771767
17781768
1779-@Callable(eW)
1780-func evaluatePutByAmountAssetREADONLY (dL) = {
1781- let db = be()
1782- let do = fromBase58String(db[q])
1783- let dR = db[r]
1784- let dp = fromBase58String(dR)
1785- let dS = db[s]
1786- let dq = fromBase58String(dS)
1787- let dc = parseIntValue(db[t])
1788- let dd = parseIntValue(db[u])
1789- let dr = db[p]
1790- let hW = valueOrErrorMessage(assetInfo(do), (("Asset " + toBase58String(do)) + " doesn't exist")).quantity
1791- let hX = bN(dR)
1792- let hY = bN(dS)
1793- let cX = D(hX, dc)
1794- let cY = D(hY, dd)
1795- let dx = if ((hW == 0))
1769+@Callable(eY)
1770+func evaluatePutByAmountAssetREADONLY (dN) = {
1771+ let dd = be()
1772+ let dq = fromBase58String(dd[q])
1773+ let dT = dd[r]
1774+ let dr = fromBase58String(dT)
1775+ let dU = dd[s]
1776+ let ds = fromBase58String(dU)
1777+ let de = parseIntValue(dd[t])
1778+ let df = parseIntValue(dd[u])
1779+ let dt = dd[p]
1780+ let hY = valueOrErrorMessage(assetInfo(dq), (("Asset " + toBase58String(dq)) + " doesn't exist")).quantity
1781+ let hZ = bN(dT)
1782+ let ia = bN(dU)
1783+ let cZ = D(hZ, de)
1784+ let da = D(ia, df)
1785+ let dz = if ((hY == 0))
17961786 then e
1797- else bO(cY, cX)
1798- let dX = D(dL, dc)
1799- let dY = fraction(dX, dx, d)
1800- let dN = H(dY, dd)
1801- let fc = dJ("", 500000, dL, dp, dN, dq, "", true, false)
1802- let ei = fc._1
1803- let id = fc._3
1804- let dt = fc._4
1805- let dv = fc._5
1806- let ds = fc._6
1807- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ei), toString(H(dx, b)), toString(dt), toString(dv), toString(ds), dr, toString(dL), toString(dN)], j))
1787+ else bQ(da, cZ)
1788+ let dZ = D(dN, de)
1789+ let ea = fraction(dZ, dz, d)
1790+ let dP = H(ea, df)
1791+ let fe = dL("", 500000, dN, dr, dP, ds, "", true, false)
1792+ let ek = fe._1
1793+ let if = fe._3
1794+ let dv = fe._4
1795+ let dx = fe._5
1796+ let du = fe._6
1797+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ek), toString(H(dz, b)), toString(dv), toString(dx), toString(du), dt, toString(dN), toString(dP)], j))
18081798 }
18091799
18101800
18111801
1812-@Callable(eW)
1813-func evaluatePutByPriceAssetREADONLY (dN) = {
1814- let db = be()
1815- let do = fromBase58String(db[q])
1816- let dR = db[r]
1817- let dp = fromBase58String(dR)
1818- let dS = db[s]
1819- let dq = fromBase58String(dS)
1820- let dc = parseIntValue(db[t])
1821- let dd = parseIntValue(db[u])
1822- let dr = db[p]
1823- let hW = valueOrErrorMessage(assetInfo(do), (("Asset " + toBase58String(do)) + " doesn't exist")).quantity
1824- let ie = bN(dR)
1825- let if = bN(dS)
1826- let ig = D(ie, dc)
1827- let ih = D(if, dd)
1828- let dx = if ((hW == 0))
1802+@Callable(eY)
1803+func evaluatePutByPriceAssetREADONLY (dP) = {
1804+ let dd = be()
1805+ let dq = fromBase58String(dd[q])
1806+ let dT = dd[r]
1807+ let dr = fromBase58String(dT)
1808+ let dU = dd[s]
1809+ let ds = fromBase58String(dU)
1810+ let de = parseIntValue(dd[t])
1811+ let df = parseIntValue(dd[u])
1812+ let dt = dd[p]
1813+ let hY = valueOrErrorMessage(assetInfo(dq), (("Asset " + toBase58String(dq)) + " doesn't exist")).quantity
1814+ let ig = bN(dT)
1815+ let ih = bN(dU)
1816+ let ii = D(ig, de)
1817+ let ij = D(ih, df)
1818+ let dz = if ((hY == 0))
18291819 then e
1830- else bO(ih, ig)
1831- let dY = D(dN, dd)
1832- let dX = fraction(dY, d, dx)
1833- let dL = H(dX, dc)
1834- let fc = dJ("", 500000, dL, dp, dN, dq, "", true, false)
1835- let ei = fc._1
1836- let id = fc._3
1837- let dt = fc._4
1838- let dv = fc._5
1839- let ds = fc._6
1840- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ei), toString(H(dx, b)), toString(dt), toString(dv), toString(ds), dr, toString(dL), toString(dN)], j))
1820+ else bQ(ij, ii)
1821+ let ea = D(dP, df)
1822+ let dZ = fraction(ea, d, dz)
1823+ let dN = H(dZ, de)
1824+ let fe = dL("", 500000, dN, dr, dP, ds, "", true, false)
1825+ let ek = fe._1
1826+ let if = fe._3
1827+ let dv = fe._4
1828+ let dx = fe._5
1829+ let du = fe._6
1830+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ek), toString(H(dz, b)), toString(dv), toString(dx), toString(du), dt, toString(dN), toString(dP)], j))
18411831 }
18421832
18431833
18441834
1845-@Callable(eW)
1846-func evaluateGetREADONLY (ii,ij) = {
1847- let ea = dk("", ii, ij, this)
1848- let dD = ea._1
1849- let dE = ea._2
1850- let dt = ea._5
1851- let dv = ea._6
1852- let ds = ea._7
1853- let dy = ea._8
1854- let dr = parseIntValue(ea._9)
1855- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dD), toString(dE), toString(dt), toString(dv), toString(ds), toString(dy), toString(dr)], j))
1835+@Callable(eY)
1836+func evaluateGetREADONLY (ik,il) = {
1837+ let ec = dm("", ik, il, this)
1838+ let dF = ec._1
1839+ let dG = ec._2
1840+ let dv = ec._5
1841+ let dx = ec._6
1842+ let du = ec._7
1843+ let dA = ec._8
1844+ let dt = parseIntValue(ec._9)
1845+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dF), toString(dG), toString(dv), toString(dx), toString(du), toString(dA), toString(dt)], j))
18561846 }
18571847
18581848
1859-@Verifier(ik)
1860-func il () = {
1861- let im = {
1862- let bV = gi()
1863- if ($isInstanceOf(bV, "ByteVector"))
1849+@Verifier(im)
1850+func in () = {
1851+ let io = {
1852+ let bX = gk()
1853+ if ($isInstanceOf(bX, "ByteVector"))
18641854 then {
1865- let gm = bV
1866- gm
1855+ let go = bX
1856+ go
18671857 }
1868- else if ($isInstanceOf(bV, "Unit"))
1869- then ik.senderPublicKey
1858+ else if ($isInstanceOf(bX, "Unit"))
1859+ then im.senderPublicKey
18701860 else throw("Match error")
18711861 }
1872- let bV = ik
1873- if ($isInstanceOf(bV, "Order"))
1862+ let bX = im
1863+ if ($isInstanceOf(bX, "Order"))
18741864 then {
1875- let eL = bV
1876- let in = bd()
1877- let io = eK(eL)
1878- let aK = io._1
1879- let aL = io._2
1880- let aM = sigVerify(eL.bodyBytes, eL.proofs[0], eL.senderPublicKey)
1881- let aN = sigVerify(eL.bodyBytes, eL.proofs[1], in)
1865+ let eN = bX
1866+ let ip = bd()
1867+ let iq = eM(eN)
1868+ let aK = iq._1
1869+ let aL = iq._2
1870+ let aM = sigVerify(eN.bodyBytes, eN.proofs[0], eN.senderPublicKey)
1871+ let aN = sigVerify(eN.bodyBytes, eN.proofs[1], ip)
18821872 if (if (if (aK)
18831873 then aM
18841874 else false)
18871877 then true
18881878 else aJ(aK, aL, aM, aN)
18891879 }
1890- else if ($isInstanceOf(bV, "SetScriptTransaction"))
1880+ else if ($isInstanceOf(bX, "SetScriptTransaction"))
18911881 then {
1892- let gj = bV
1893- if (sigVerify(ik.bodyBytes, ik.proofs[0], im))
1882+ let gl = bX
1883+ if (sigVerify(im.bodyBytes, im.proofs[0], io))
18941884 then true
18951885 else {
1896- let ip = blake2b256(value(gj.script))
1897- let iq = fromBase64String(value(getString(aV, aH())))
1898- let ir = scriptHash(this)
1899- if ((iq == ip))
1900- then (ir != ip)
1886+ let ir = blake2b256(value(gl.script))
1887+ let is = fromBase64String(value(getString(aV, aH())))
1888+ let it = scriptHash(this)
1889+ if ((is == ir))
1890+ then (it != ir)
19011891 else false
19021892 }
19031893 }
1904- else sigVerify(ik.bodyBytes, ik.proofs[0], im)
1894+ else sigVerify(im.bodyBytes, im.proofs[0], io)
19051895 }
19061896
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
66 let b = 100000000
77
88 let c = toBigInt(100000000)
99
1010 let d = toBigInt(1000000000000000000)
1111
1212 let e = toBigInt(0)
1313
1414 let f = toBigInt(0)
1515
1616 let g = toBigInt(1)
1717
1818 let h = toBigInt(2)
1919
2020 let i = "WAVES"
2121
2222 let j = "__"
2323
2424 let k = 1
2525
2626 let l = 2
2727
2828 let m = 3
2929
3030 let n = 4
3131
3232 let o = 1
3333
3434 let p = 2
3535
3636 let q = 3
3737
3838 let r = 4
3939
4040 let s = 5
4141
4242 let t = 6
4343
4444 let u = 7
4545
4646 let v = 8
4747
4848 let w = 9
4949
5050 let x = 10
5151
5252 let y = 1
5353
5454 let z = 2
5555
5656 let A = 3
5757
5858 let B = 1
5959
6060 let C = 7
6161
6262 func D (E,F) = fraction(toBigInt(E), d, toBigInt(F))
6363
6464
6565 func G (E,F) = fraction(E, d, F)
6666
6767
6868 func H (I,J) = toInt(fraction(I, toBigInt(J), d))
6969
7070
7171 func K (I,J,L) = toInt(fraction(I, toBigInt(J), d, L))
7272
7373
7474 func M (N,O,P) = fraction(N, O, P)
7575
7676
7777 func Q (I) = if ((0 > I))
7878 then -(I)
7979 else I
8080
8181
8282 func R (I) = if ((e > I))
8383 then -(I)
8484 else I
8585
8686
8787 func S () = "%s__swapContract"
8888
8989
9090 func T () = "%s__factoryContract"
9191
9292
9393 func U () = "%s__managerPublicKey"
9494
9595
9696 func V () = "%s__pendingManagerPublicKey"
9797
9898
9999 func W () = "%s%s__price__last"
100100
101101
102102 func X (Y,Z) = makeString(["%s%s%d%d__price__history", toString(Y), toString(Z)], j)
103103
104104
105105 func aa (ab,ac) = ((("%s%s%s__P__" + ab) + "__") + ac)
106106
107107
108108 func ad (ab,ac) = ((("%s%s%s__G__" + ab) + "__") + ac)
109109
110110
111111 func ae () = "%s__amountAsset"
112112
113113
114114 func af () = "%s__priceAsset"
115115
116116
117117 let ag = "%s__fee"
118118
119119 let ah = fraction(10, b, 10000)
120120
121121 let ai = valueOrElse(getInteger(this, ag), ah)
122122
123123 let aj = makeString(["%s", "kLp"], j)
124124
125125 let ak = makeString(["%s", "kLpRefreshedHeight"], j)
126126
127127 let al = makeString(["%s", "refreshKLpDelay"], j)
128128
129129 let am = 30
130130
131131 let an = valueOrElse(getInteger(this, al), am)
132132
133133 func ao () = "%s__sWavesAssetId"
134134
135135
136136 func ap () = "%s__sWavesProxyAddress"
137137
138138
139139 func aq (ar) = makeString(["%s%s", "additionalBalance", ar], j)
140140
141141
142142 func as (ar) = makeString(["%s%s", "stakingAssetBalance", ar], j)
143143
144144
145145 func at (ar) = valueOrElse(getInteger(this, aq(ar)), 0)
146146
147147
148148 func au (ar) = valueOrElse(getInteger(this, as(ar)), 0)
149149
150150
151151 func av () = "%s__factoryConfig"
152152
153153
154154 func aw () = "%s%s__matcher__publicKey"
155155
156156
157157 func ax (ay) = (("%s%s%s__" + ay) + "__mappings__poolContract2LpAsset")
158158
159159
160160 func az (aA,aB) = (((("%d%d%s__" + aA) + "__") + aB) + "__config")
161161
162162
163163 func aC (aD) = ("%s%s%s__mappings__baseAsset2internalId__" + aD)
164164
165165
166166 func aE () = "%s__shutdown"
167167
168168
169169 func aF (aG) = ("%s%s__poolWeight__" + aG)
170170
171171
172172 func aH () = "%s__allowedLpScriptHash"
173173
174174
175175 let aI = "%s__feeCollectorAddress"
176176
177177 func aJ (aK,aL,aM,aN) = throw((((((((("order validation failed: orderValid=" + toString(aK)) + " (") + aL) + ")") + " senderValid=") + toString(aM)) + " matcherValid=") + toString(aN)))
178178
179179
180180 func aO (aP,aQ) = valueOrErrorMessage(getString(aP, aQ), makeString(["mandatory ", toString(aP), ".", aQ, " is not defined"], ""))
181181
182182
183183 func aR (aP,aQ) = valueOrErrorMessage(getInteger(aP, aQ), makeString(["mandatory ", toString(aP), ".", aQ, " is not defined"], ""))
184184
185185
186186 func aS (aT) = throw(makeString(["lp.ride:", aT], " "))
187187
188188
189189 func aU (aT) = makeString(["lp.ride:", aT], " ")
190190
191191
192192 let aV = addressFromStringValue(aO(this, T()))
193193
194194 let aW = addressFromStringValue(aO(aV, aI))
195195
196196 let aX = {
197197 let aY = invoke(aV, "getInFeeREADONLY", [toString(this)], nil)
198198 if ($isInstanceOf(aY, "Int"))
199199 then aY
200200 else throw(($getType(aY) + " couldn't be cast to Int"))
201201 }
202202
203203 let aZ = {
204204 let aY = invoke(aV, "getOutFeeREADONLY", [toString(this)], nil)
205205 if ($isInstanceOf(aY, "Int"))
206206 then aY
207207 else throw(($getType(aY) + " couldn't be cast to Int"))
208208 }
209209
210210 func ba () = aO(aV, ao())
211211
212212
213213 func bb () = aO(aV, ap())
214214
215215
216216 func bc () = valueOrElse(getBoolean(aV, aE()), false)
217217
218218
219219 func bd () = fromBase58String(aO(aV, aw()))
220220
221221
222222 func be () = {
223223 let bf = aO(this, ae())
224224 let bg = aO(this, af())
225225 let aB = aR(aV, aC(bg))
226226 let aA = aR(aV, aC(bf))
227227 split(aO(aV, az(toString(aA), toString(aB))), j)
228228 }
229229
230230
231231 func bh (bi) = if ((bi == i))
232232 then unit
233233 else fromBase58String(bi)
234234
235235
236236 func bj (bi) = if ((bi == unit))
237237 then i
238238 else toBase58String(value(bi))
239239
240240
241241 func bk (bl) = $Tuple7(addressFromStringValue(bl[o]), parseIntValue(bl[p]), fromBase58String(bl[q]), bh(bl[r]), bh(bl[s]), parseIntValue(bl[t]), parseIntValue(bl[u]))
242242
243243
244244 let bm = bk(be())
245245
246246 let bn = bm
247247
248248 let bo = bn._1
249249
250250 let bp = bn._2
251251
252252 let bq = bn._3
253253
254254 let br = bn._4
255255
256256 let bs = bn._5
257257
258258 let bt = bn._6
259259
260260 let bu = bn._7
261261
262262 func bv () = split(aO(aV, av()), j)
263263
264264
265265 let bw = valueOrErrorMessage(addressFromString(bv()[B]), "incorrect staking address")
266266
267267 let bx = valueOrErrorMessage(addressFromString(bv()[C]), "incorrect staking address")
268268
269269 func by (bz,bA,bB,bC,bD,bE,bF,bG,bH,bI) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bz), toString(bA), toString(bB), toString(bC), toString(bD), toString(bE), toString(bF), toString(bG), toString(bH), toString(bI)], j)
270270
271271
272272 func bJ (bK,bL,bM,bC,bF,bG) = makeString(["%d%d%d%d%d%d", toString(bK), toString(bL), toString(bM), toString(bC), toString(bF), toString(bG)], j)
273273
274274
275-func bN (ar) = if ((ar == "WAVES"))
276- then (wavesBalance(this).available + at(ar))
277- else if ((ar == ba()))
278- then {
279- let bf = aO(this, ae())
280- let bg = aO(this, af())
281- if (if (if ((bf == "WAVES"))
282- then (bg == ba())
283- else false)
284- then true
285- else if ((bg == "WAVES"))
286- then (bf == ba())
287- else false)
288- then assetBalance(this, fromBase58String(ar))
289- else (assetBalance(this, fromBase58String(ar)) + au(ar))
290- }
275+func bN (ar) = {
276+ let bO = if ((ar == "WAVES"))
277+ then wavesBalance(this).available
291278 else assetBalance(this, fromBase58String(ar))
279+ let bP = ((bO + at(ar)) - au(ar))
280+ max([0, bP])
281+ }
292282
293283
294-func bO (bP,bQ) = fraction(bP, d, bQ)
284+func bQ (bR,bS) = fraction(bR, d, bS)
295285
296286
297-func bR (bP,bQ,L) = fraction(bP, d, bQ, L)
287+func bT (bR,bS,L) = fraction(bR, d, bS, L)
298288
299289
300-func bS (bT) = {
301- let bU = invoke(bT, "getRate", nil, nil)
302- if ((bU == bU))
290+func bU (bV) = {
291+ let bW = invoke(bV, "getRate", nil, nil)
292+ if ((bW == bW))
303293 then {
304- let bV = bU
305- if ($isInstanceOf(bV, "Int"))
294+ let bX = bW
295+ if ($isInstanceOf(bX, "Int"))
306296 then {
307- let bW = bV
308- bW
297+ let bY = bX
298+ bY
309299 }
310300 else aS("proxy.getRate() unexpected value")
311301 }
312302 else throw("Strict value is not equal to itself.")
313303 }
314304
315305
316-func bX (ar,bY,bZ,bT) = {
317- let ca = at(ar)
318- if ((ca == ca))
306+func bZ (ar,ca,cb,bV) = {
307+ let cc = at(ar)
308+ if ((cc == cc))
319309 then {
320- let cb = au(bZ)
321- if ((cb == cb))
310+ let cd = au(cb)
311+ if ((cd == cd))
322312 then {
323- let cc = bh(ar)
324- if ((bY > 0))
313+ let ce = bh(ar)
314+ if ((ca > 0))
325315 then {
326- let cd = invoke(bT, "deposit", nil, [AttachedPayment(cc, bY)])
327- if ((cd == cd))
316+ let cf = invoke(bV, "deposit", nil, [AttachedPayment(ce, ca)])
317+ if ((cf == cf))
328318 then {
329- let bV = cd
330- if ($isInstanceOf(bV, "Int"))
319+ let bX = cf
320+ if ($isInstanceOf(bX, "Int"))
331321 then {
332- let ce = bV
333- let cf = (ca + bY)
334- let cg = (cb + ce)
335-[IntegerEntry(aq(ar), cf), IntegerEntry(as(bZ), cg)]
322+ let cg = bX
323+ let ch = (cc + ca)
324+ let ci = (cd + cg)
325+[IntegerEntry(aq(ar), ch), IntegerEntry(as(cb), ci)]
336326 }
337327 else nil
338328 }
339329 else throw("Strict value is not equal to itself.")
340330 }
341331 else nil
342332 }
343333 else throw("Strict value is not equal to itself.")
344334 }
345335 else throw("Strict value is not equal to itself.")
346336 }
347337
348338
349-func ch (ar,bY,bZ,bT,ci,cj) = {
350- let ca = at(ar)
351- if ((ca == ca))
339+func cj (ar,ca,cb,bV,ck,cl) = {
340+ let cc = at(ar)
341+ if ((cc == cc))
352342 then {
353- let cb = au(bZ)
354- if ((cb == cb))
343+ let cd = au(cb)
344+ if ((cd == cd))
355345 then {
356- let ck = bS(bT)
357- if ((ck == ck))
346+ let cm = bU(bV)
347+ if ((cm == cm))
358348 then {
359- let cl = fraction(ci, ca, cb)
360- let cm = bh(bZ)
361- let cn = fraction(ci, bY, cl)
362- let co = fraction(ci, bY, ck)
363- let cp = max([0, (cn - co)])
364- if ((co > 0))
349+ let cn = fraction(ck, cc, cd)
350+ let co = bh(cb)
351+ let cp = fraction(ck, ca, cn)
352+ let cq = fraction(ck, ca, cm)
353+ let cr = max([0, (cp - cq)])
354+ if ((cq > 0))
365355 then {
366- let cq = invoke(bT, "withdraw", nil, [AttachedPayment(cm, co)])
367- if ((cq == cq))
356+ let cs = invoke(bV, "withdraw", nil, [AttachedPayment(co, cq)])
357+ if ((cs == cs))
368358 then {
369- let bV = cq
370- if ($isInstanceOf(bV, "Int"))
359+ let bX = cs
360+ if ($isInstanceOf(bX, "Int"))
371361 then {
372- let cr = bV
373- let cf = (ca - cr)
374- let cg = ((cb - co) - cp)
375-[IntegerEntry(aq(ar), cf), IntegerEntry(as(bZ), cg), ScriptTransfer(cj, cp, bh(bZ))]
362+ let ct = bX
363+ let ch = (cc - ct)
364+ let ci = ((cd - cq) - cr)
365+[IntegerEntry(aq(ar), ch), IntegerEntry(as(cb), ci), ScriptTransfer(cl, cr, bh(cb))]
376366 }
377367 else nil
378368 }
379369 else throw("Strict value is not equal to itself.")
380370 }
381371 else nil
382372 }
383373 else throw("Strict value is not equal to itself.")
384374 }
385375 else throw("Strict value is not equal to itself.")
386376 }
387377 else throw("Strict value is not equal to itself.")
388378 }
389379
390380
391-func cs (ar) = invoke(aV, "getPoolLeaseConfigREADONLY", [toString(this), ar], nil)
381+func cu (ar) = invoke(aV, "getPoolLeaseConfigREADONLY", [toString(this), ar], nil)
392382
393383
394-func ct (cu,ar,bZ,cv,bT,ci,cj) = {
395- let ca = at(ar)
396- if ((ca == ca))
384+func cv (cw,ar,cb,cx,bV,ck,cl) = {
385+ let cc = at(ar)
386+ if ((cc == cc))
397387 then {
398- let cb = au(bZ)
399- if ((cb == cb))
388+ let cd = au(cb)
389+ if ((cd == cd))
400390 then {
401- let cw = {
402- let bV = bh(ar)
403- if ($isInstanceOf(bV, "ByteVector"))
391+ let cy = {
392+ let bX = bh(ar)
393+ if ($isInstanceOf(bX, "ByteVector"))
404394 then {
405- let cx = bV
406- assetBalance(this, cx)
395+ let cz = bX
396+ assetBalance(this, cz)
407397 }
408- else if ($isInstanceOf(bV, "Unit"))
398+ else if ($isInstanceOf(bX, "Unit"))
409399 then {
410- let cy = bV
400+ let cA = bX
411401 wavesBalance(this).available
412402 }
413403 else throw("Match error")
414404 }
415- if ((cw == cw))
405+ if ((cy == cy))
416406 then {
417- let cz = max([0, ((cw + ca) - cv)])
418- let cA = fraction(cu, cz, 100)
419- let cB = (ca - cA)
420- if ((cB == 0))
407+ let cB = max([0, ((cy + cc) - cx)])
408+ let cC = fraction(cw, cB, 100)
409+ let cD = (cc - cC)
410+ if ((cD == 0))
421411 then nil
422- else if ((0 > cB))
412+ else if ((0 > cD))
423413 then {
424- let cC = -(cB)
425- bX(ar, cC, bZ, bT)
414+ let cE = -(cD)
415+ bZ(ar, cE, cb, bV)
426416 }
427417 else {
428- let cD = cB
429- ch(ar, cD, bZ, bT, ci, cj)
418+ let cF = cD
419+ cj(ar, cF, cb, bV, ck, cl)
430420 }
431421 }
432422 else throw("Strict value is not equal to itself.")
433423 }
434424 else throw("Strict value is not equal to itself.")
435425 }
436426 else throw("Strict value is not equal to itself.")
437427 }
438428
439429
440-func cE (ar) = {
441- let bV = cs(ar)
442- if ($isInstanceOf(bV, "(Boolean, Int, Int, String, String, Int, String)"))
430+func cG (ar) = {
431+ let bX = cu(ar)
432+ if ($isInstanceOf(bX, "(Boolean, Int, Int, String, String, Int, String)"))
443433 then {
444- let cF = bV
445- let cG = cF
446- let cH = cG._1
447- let cI = cG._2
448- let cv = cG._3
449- let cJ = cG._4
450- let cK = cG._5
451- let ci = cG._6
452- let cL = cG._7
453- if (cH)
454- then ct(cI, ar, cK, cv, addressFromStringValue(cJ), ci, addressFromStringValue(cL))
434+ let cH = bX
435+ let cI = cH
436+ let cJ = cI._1
437+ let cK = cI._2
438+ let cx = cI._3
439+ let cL = cI._4
440+ let cM = cI._5
441+ let ck = cI._6
442+ let cN = cI._7
443+ if (cJ)
444+ then cv(cK, ar, cM, cx, addressFromStringValue(cL), ck, addressFromStringValue(cN))
455445 else nil
456446 }
457447 else aS((("[" + ar) + "] Rebalance error"))
458448 }
459449
460450
461-func cM (ar,bY) = {
462- let bV = cs(ar)
463- if ($isInstanceOf(bV, "(Boolean, Int, Int, String, String, Int, String)"))
451+func cO (ar,ca) = {
452+ let bX = cu(ar)
453+ if ($isInstanceOf(bX, "(Boolean, Int, Int, String, String, Int, String)"))
464454 then {
465- let cF = bV
466- let cN = cF
467- let cH = cN._1
468- let cI = cN._2
469- let cv = cN._3
470- let cJ = cN._4
471- let cK = cN._5
472- let ci = cN._6
473- let cL = cN._7
474- if (cH)
475- then ch(ar, bY, cK, addressFromStringValue(cJ), ci, addressFromStringValue(cL))
455+ let cH = bX
456+ let cP = cH
457+ let cJ = cP._1
458+ let cK = cP._2
459+ let cx = cP._3
460+ let cL = cP._4
461+ let cM = cP._5
462+ let ck = cP._6
463+ let cN = cP._7
464+ if (cJ)
465+ then cj(ar, ca, cM, addressFromStringValue(cL), ck, addressFromStringValue(cN))
476466 else nil
477467 }
478468 else aS((("[" + ar) + "] withdrawAssetWrapper() error"))
479469 }
480470
481471
482-func cO (ar,bY) = {
483- let cP = {
484- let bV = bh(ar)
485- if ($isInstanceOf(bV, "ByteVector"))
472+func cQ (ar,ca) = {
473+ let cR = {
474+ let bX = bh(ar)
475+ if ($isInstanceOf(bX, "ByteVector"))
486476 then {
487- let cx = bV
488- assetBalance(this, cx)
477+ let cz = bX
478+ assetBalance(this, cz)
489479 }
490- else if ($isInstanceOf(bV, "Unit"))
480+ else if ($isInstanceOf(bX, "Unit"))
491481 then {
492- let cQ = bV
482+ let cS = bX
493483 wavesBalance(this).available
494484 }
495485 else throw("Match error")
496486 }
497- if ((bY > cP))
487+ if ((ca > cR))
498488 then {
499- let cR = (bY - cP)
500- cM(ar, cR)
489+ let cT = (ca - cR)
490+ cO(ar, cT)
501491 }
502492 else nil
503493 }
504494
505495
506-func cS (cT,cU,cV,cW) = {
507- let cX = D(cV, cT)
508- let cY = D(cW, cU)
509- bO(cY, cX)
496+func cU (cV,cW,cX,cY) = {
497+ let cZ = D(cX, cV)
498+ let da = D(cY, cW)
499+ bQ(da, cZ)
510500 }
511501
512502
513-func cZ (cV,cW,da) = {
514- let db = be()
515- let dc = parseIntValue(db[t])
516- let dd = parseIntValue(db[u])
517- let de = cS(dc, dd, cV, cW)
518- let bQ = D(cV, dc)
519- let bP = D(cW, dd)
520- let df = D(da, b)
521- let dg = bO(bQ, df)
522- let dh = bO(bP, df)
523-[de, dg, dh]
503+func db (cX,cY,dc) = {
504+ let dd = be()
505+ let de = parseIntValue(dd[t])
506+ let df = parseIntValue(dd[u])
507+ let dg = cU(de, df, cX, cY)
508+ let bS = D(cX, de)
509+ let bR = D(cY, df)
510+ let dh = D(dc, b)
511+ let di = bQ(bS, dh)
512+ let dj = bQ(bR, dh)
513+[dg, di, dj]
524514 }
525515
526516
527-func di (cV,cW,da) = {
528- let dj = cZ(cV, cW, da)
529-[H(dj[0], b), H(dj[1], b), H(dj[2], b)]
517+func dk (cX,cY,dc) = {
518+ let dl = db(cX, cY, dc)
519+[H(dl[0], b), H(dl[1], b), H(dl[2], b)]
530520 }
531521
532522
533-func dk (dl,dm,dn,ab) = {
534- let db = be()
535- let do = db[q]
536- let dp = db[r]
537- let dq = db[s]
538- let cT = parseIntValue(db[t])
539- let cU = parseIntValue(db[u])
540- let dr = db[p]
541- let ds = valueOrErrorMessage(assetInfo(fromBase58String(do)), (("Asset " + do) + " doesn't exist")).quantity
542- if ((do != dm))
523+func dm (dn,do,dp,ab) = {
524+ let dd = be()
525+ let dq = dd[q]
526+ let dr = dd[r]
527+ let ds = dd[s]
528+ let cV = parseIntValue(dd[t])
529+ let cW = parseIntValue(dd[u])
530+ let dt = dd[p]
531+ let du = valueOrErrorMessage(assetInfo(fromBase58String(dq)), (("Asset " + dq) + " doesn't exist")).quantity
532+ if ((dq != do))
543533 then throw("Invalid asset passed.")
544534 else {
545- let dt = bN(dp)
546- let du = D(dt, cT)
547- let dv = bN(dq)
548- let dw = D(dv, cU)
549- let dx = bO(dw, du)
550- let dy = H(dx, b)
551- let dz = D(dn, b)
552- let dA = D(ds, b)
553- let dB = fraction(du, dz, dA)
554- let dC = fraction(dw, dz, dA)
555- let dD = K(dB, cT, FLOOR)
556- let dE = K(dC, cU, FLOOR)
557- let dF = cO(dp, dD)
558- if ((dF == dF))
535+ let dv = bN(dr)
536+ let dw = D(dv, cV)
537+ let dx = bN(ds)
538+ let dy = D(dx, cW)
539+ let dz = bQ(dy, dw)
540+ let dA = H(dz, b)
541+ let dB = D(dp, b)
542+ let dC = D(du, b)
543+ let dD = fraction(dw, dB, dC)
544+ let dE = fraction(dy, dB, dC)
545+ let dF = K(dD, cV, FLOOR)
546+ let dG = K(dE, cW, FLOOR)
547+ let dH = cQ(dr, dF)
548+ if ((dH == dH))
559549 then {
560- let dG = cO(dq, dE)
561- if ((dG == dG))
550+ let dI = cQ(ds, dG)
551+ if ((dI == dI))
562552 then {
563- let dH = invoke(this, "rebalance", nil, nil)
564- if ((dH == dH))
553+ let dJ = invoke(this, "rebalance", nil, nil)
554+ if ((dJ == dJ))
565555 then {
566- let dI = if ((dl == ""))
556+ let dK = if ((dn == ""))
567557 then nil
568- else ((dF ++ dG) ++ [ScriptTransfer(ab, dD, if ((dp == "WAVES"))
558+ else ((dH ++ dI) ++ [ScriptTransfer(ab, dF, if ((dr == "WAVES"))
569559 then unit
570- else fromBase58String(dp)), ScriptTransfer(ab, dE, if ((dq == "WAVES"))
560+ else fromBase58String(dr)), ScriptTransfer(ab, dG, if ((ds == "WAVES"))
571561 then unit
572- else fromBase58String(dq)), StringEntry(ad(toString(ab), dl), bJ(dD, dE, dn, dy, height, lastBlock.timestamp)), IntegerEntry(W(), dy), IntegerEntry(X(height, lastBlock.timestamp), dy)])
573- $Tuple10(dD, dE, dp, dq, dt, dv, ds, dx, dr, dI)
562+ else fromBase58String(ds)), StringEntry(ad(toString(ab), dn), bJ(dF, dG, dp, dA, height, lastBlock.timestamp)), IntegerEntry(W(), dA), IntegerEntry(X(height, lastBlock.timestamp), dA)])
563+ $Tuple10(dF, dG, dr, ds, dv, dx, du, dz, dt, dK)
574564 }
575565 else throw("Strict value is not equal to itself.")
576566 }
577567 else throw("Strict value is not equal to itself.")
578568 }
579569 else throw("Strict value is not equal to itself.")
580570 }
581571 }
582572
583573
584-func dJ (dl,dK,dL,dM,dN,dO,ab,dP,dQ) = {
585- let db = be()
586- let do = fromBase58String(db[q])
587- let dR = db[r]
588- let dS = db[s]
589- let dT = db[v]
590- let dU = db[w]
591- let dc = parseIntValue(db[t])
592- let dd = parseIntValue(db[u])
593- let dr = db[p]
594- let ds = valueOrErrorMessage(assetInfo(do), (("Asset " + toBase58String(do)) + " doesn't exist")).quantity
595- let dV = toBase58String(valueOrElse(dM, fromBase58String("WAVES")))
596- let dW = toBase58String(valueOrElse(dO, fromBase58String("WAVES")))
597- if (if ((dR != dV))
574+func dL (dn,dM,dN,dO,dP,dQ,ab,dR,dS) = {
575+ let dd = be()
576+ let dq = fromBase58String(dd[q])
577+ let dT = dd[r]
578+ let dU = dd[s]
579+ let dV = dd[v]
580+ let dW = dd[w]
581+ let de = parseIntValue(dd[t])
582+ let df = parseIntValue(dd[u])
583+ let dt = dd[p]
584+ let du = valueOrErrorMessage(assetInfo(dq), (("Asset " + toBase58String(dq)) + " doesn't exist")).quantity
585+ let dX = toBase58String(valueOrElse(dO, fromBase58String("WAVES")))
586+ let dY = toBase58String(valueOrElse(dQ, fromBase58String("WAVES")))
587+ if (if ((dT != dX))
598588 then true
599- else (dS != dW))
589+ else (dU != dY))
600590 then throw("Invalid amt or price asset passed.")
601591 else {
602- let dt = if (dP)
603- then bN(dR)
604- else (bN(dR) - dL)
605- let dv = if (dP)
606- then bN(dS)
607- else (bN(dS) - dN)
608- let dX = D(dL, dc)
609- let dY = D(dN, dd)
610- let dZ = bO(dY, dX)
611- let du = D(dt, dc)
612- let dw = D(dv, dd)
613- let ea = if ((ds == 0))
592+ let dv = if (dR)
593+ then bN(dT)
594+ else (bN(dT) - dN)
595+ let dx = if (dR)
596+ then bN(dU)
597+ else (bN(dU) - dP)
598+ let dZ = D(dN, de)
599+ let ea = D(dP, df)
600+ let eb = bQ(ea, dZ)
601+ let dw = D(dv, de)
602+ let dy = D(dx, df)
603+ let ec = if ((du == 0))
614604 then {
615- let dx = e
616- let eb = e
617- let df = pow((dX * dY), 0, toBigInt(5), 1, 0, DOWN)
618- $Tuple5(H(df, b), H(dX, dc), H(dY, dd), bO((dw + dY), (du + dX)), eb)
605+ let dz = e
606+ let ed = e
607+ let dh = pow((dZ * ea), 0, toBigInt(5), 1, 0, DOWN)
608+ $Tuple5(H(dh, b), H(dZ, de), H(ea, df), bQ((dy + ea), (dw + dZ)), ed)
619609 }
620610 else {
621- let dx = bO(dw, du)
622- let eb = fraction(R((dx - dZ)), d, dx)
623- let ec = D(dK, b)
624- if (if ((dx != e))
625- then (eb > ec)
611+ let dz = bQ(dy, dw)
612+ let ed = fraction(R((dz - eb)), d, dz)
613+ let ee = D(dM, b)
614+ if (if ((dz != e))
615+ then (ed > ee)
626616 else false)
627- then throw(((("Price slippage " + toString(eb)) + " exceeded the passed limit of ") + toString(ec)))
617+ then throw(((("Price slippage " + toString(ed)) + " exceeded the passed limit of ") + toString(ee)))
628618 else {
629- let dA = D(ds, b)
630- let ed = fraction(dX, bR(dw, du, CEILING), d, CEILING)
631- let ee = fraction(dY, d, bR(dw, du, FLOOR), CEILING)
632- let ef = if ((ed > dY))
633- then $Tuple2(ee, dY)
634- else $Tuple2(dX, ed)
635- let eg = ef._1
636- let eh = ef._2
637- let df = fraction(dA, eh, dw, FLOOR)
638- $Tuple5(K(df, b, FLOOR), K(eg, dc, CEILING), K(eh, dd, CEILING), dx, eb)
619+ let dC = D(du, b)
620+ let ef = fraction(dZ, bT(dy, dw, CEILING), d, CEILING)
621+ let eg = fraction(ea, d, bT(dy, dw, FLOOR), CEILING)
622+ let eh = if ((ef > ea))
623+ then $Tuple2(eg, ea)
624+ else $Tuple2(dZ, ef)
625+ let ei = eh._1
626+ let ej = eh._2
627+ let dh = fraction(dC, ej, dy, FLOOR)
628+ $Tuple5(K(dh, b, FLOOR), K(ei, de, CEILING), K(ej, df, CEILING), dz, ed)
639629 }
640630 }
641- let ei = ea._1
642- let ej = ea._2
643- let ek = ea._3
644- let dy = H(ea._4, b)
645- let el = H(ea._5, b)
646- if ((0 >= ei))
631+ let ek = ec._1
632+ let el = ec._2
633+ let em = ec._3
634+ let dA = H(ec._4, b)
635+ let en = H(ec._5, b)
636+ if ((0 >= ek))
647637 then throw("Invalid calculations. LP calculated is less than zero.")
648638 else {
649- let em = if (!(dQ))
639+ let eo = if (!(dS))
650640 then 0
651- else ei
652- let en = (dL - ej)
653- let eo = (dN - ek)
654- let ep = [IntegerEntry(W(), dy), IntegerEntry(X(height, lastBlock.timestamp), dy), StringEntry(aa(ab, dl), by(ej, ek, em, dy, dK, el, height, lastBlock.timestamp, en, eo))]
655- $Tuple13(ei, em, dy, dt, dv, ds, do, dr, ep, en, eo, dM, dO)
641+ else ek
642+ let ep = (dN - el)
643+ let eq = (dP - em)
644+ let er = [IntegerEntry(W(), dA), IntegerEntry(X(height, lastBlock.timestamp), dA), StringEntry(aa(ab, dn), by(el, em, eo, dA, dM, en, height, lastBlock.timestamp, ep, eq))]
645+ $Tuple13(ek, eo, dA, dv, dx, du, dq, dt, er, ep, eq, dO, dQ)
656646 }
657647 }
658648 }
659649
660650
661-func eq (er,es,ds) = {
662- let et = G(er, toBigInt(bt))
663- let eu = G(es, toBigInt(bu))
664- let ev = fraction(pow((et * eu), 0, toBigInt(5), 1, 18, DOWN), g, ds)
665- if ((ds == f))
651+func es (et,eu,du) = {
652+ let ev = G(et, toBigInt(bt))
653+ let ew = G(eu, toBigInt(bu))
654+ let ex = fraction(pow((ev * ew), 0, toBigInt(5), 1, 18, DOWN), g, du)
655+ if ((du == f))
666656 then f
667- else ev
657+ else ex
668658 }
669659
670660
671-func ew (ex,ey,ez) = {
672- let eA = (toBigInt(bN(bj(br))) - ex)
673- let eB = (toBigInt(bN(bj(bs))) - ey)
674- let eC = (toBigInt(value(assetInfo(bq)).quantity) - ez)
675- let eD = eq(eA, eB, eC)
676- eD
661+func ey (ez,eA,eB) = {
662+ let eC = (toBigInt(bN(bj(br))) - ez)
663+ let eD = (toBigInt(bN(bj(bs))) - eA)
664+ let eE = (toBigInt(value(assetInfo(bq)).quantity) - eB)
665+ let eF = es(eC, eD, eE)
666+ eF
677667 }
678668
679669
680-func eE (eF,eG,ez) = {
681- let eA = (bN(bj(br)) + eF)
682- let eB = (bN(bj(bs)) + eG)
683- let eC = (value(assetInfo(bq)).quantity + ez)
684- let ev = eq(toBigInt(eA), toBigInt(eB), toBigInt(eC))
685- let eH = [IntegerEntry(ak, height), StringEntry(aj, toString(ev))]
686- $Tuple2(eH, ev)
670+func eG (eH,eI,eB) = {
671+ let eC = (bN(bj(br)) + eH)
672+ let eD = (bN(bj(bs)) + eI)
673+ let eE = (value(assetInfo(bq)).quantity + eB)
674+ let ex = es(toBigInt(eC), toBigInt(eD), toBigInt(eE))
675+ let eJ = [IntegerEntry(ak, height), StringEntry(aj, toString(ex))]
676+ $Tuple2(eJ, ex)
687677 }
688678
689679
690-func eI (eJ,ev) = if ((ev >= eJ))
680+func eK (eL,ex) = if ((ex >= eL))
691681 then true
692- else aS(makeString(["updated KLp lower than current KLp", toString(eJ), toString(ev)], " "))
682+ else aS(makeString(["updated KLp lower than current KLp", toString(eL), toString(ex)], " "))
693683
694684
695-func eK (eL) = {
696- let eA = bN(bj(br))
697- let eB = bN(bj(bs))
698- let eM = eL.amount
699- let eN = fraction(eL.amount, eL.price, b, FLOOR)
700- let eO = if ((eL.orderType == Buy))
701- then $Tuple2(eM, -(eN))
702- else $Tuple2(-(eM), eN)
703- let eF = eO._1
704- let eG = eO._2
685+func eM (eN) = {
686+ let eC = bN(bj(br))
687+ let eD = bN(bj(bs))
688+ let eO = eN.amount
689+ let eP = fraction(eN.amount, eN.price, b, FLOOR)
690+ let eQ = if ((eN.orderType == Buy))
691+ then $Tuple2(eO, -(eP))
692+ else $Tuple2(-(eO), eP)
693+ let eH = eQ._1
694+ let eI = eQ._2
705695 if (if (if (bc())
706696 then true
707697 else (bp == m))
708698 then true
709699 else (bp == n))
710700 then throw("Exchange operations disabled")
711- else if (if ((eL.assetPair.amountAsset != br))
701+ else if (if ((eN.assetPair.amountAsset != br))
712702 then true
713- else (eL.assetPair.priceAsset != bs))
703+ else (eN.assetPair.priceAsset != bs))
714704 then throw("Wrong order assets.")
715705 else {
716- let eP = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aU("invalid kLp"))
717- let eQ = eE(eF, eG, 0)
718- let eR = eQ._1
719- let eS = eQ._2
720- let eT = (eS >= eP)
721- let eU = makeString(["kLp=", toString(eP), " kLpNew=", toString(eS), " amountAssetBalance=", toString(eA), " priceAssetBalance=", toString(eB), " amountAssetBalanceDelta=", toString(eF), " priceAssetBalanceDelta=", toString(eG), " height=", toString(height)], "")
722- $Tuple2(eT, eU)
706+ let eR = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aU("invalid kLp"))
707+ let eS = eG(eH, eI, 0)
708+ let eT = eS._1
709+ let eU = eS._2
710+ let eV = (eU >= eR)
711+ let eW = makeString(["kLp=", toString(eR), " kLpNew=", toString(eU), " amountAssetBalance=", toString(eC), " priceAssetBalance=", toString(eD), " amountAssetBalanceDelta=", toString(eH), " priceAssetBalanceDelta=", toString(eI), " height=", toString(height)], "")
712+ $Tuple2(eV, eW)
723713 }
724714 }
725715
726716
727-func eV (eW) = if ((size(eW.payments) != 1))
717+func eX (eY) = if ((size(eY.payments) != 1))
728718 then throw("exactly 1 payment is expected")
729719 else {
730- let eX = value(eW.payments[0])
731- let dm = value(eX.assetId)
732- let eY = eX.amount
733- let ea = dk(toBase58String(eW.transactionId), toBase58String(dm), eY, eW.caller)
734- let dD = ea._1
735- let dE = ea._2
736- let dr = parseIntValue(ea._9)
737- let dI = ea._10
720+ let eZ = value(eY.payments[0])
721+ let do = value(eZ.assetId)
722+ let fa = eZ.amount
723+ let ec = dm(toBase58String(eY.transactionId), toBase58String(do), fa, eY.caller)
724+ let dF = ec._1
725+ let dG = ec._2
726+ let dt = parseIntValue(ec._9)
727+ let dK = ec._10
738728 if (if (bc())
739729 then true
740- else (dr == n))
741- then throw(("Get operation is blocked by admin. Status = " + toString(dr)))
742- else $Tuple5(dD, dE, eY, dm, dI)
730+ else (dt == n))
731+ then throw(("Get operation is blocked by admin. Status = " + toString(dt)))
732+ else $Tuple5(dF, dG, fa, do, dK)
743733 }
744734
745735
746-func eZ (eW,dK,dQ) = if ((size(eW.payments) != 2))
736+func fb (eY,dM,dS) = if ((size(eY.payments) != 2))
747737 then throw("exactly 2 payments are expected")
748738 else {
749- let fa = value(eW.payments[0])
750- let fb = value(eW.payments[1])
751- let fc = dJ(toBase58String(eW.transactionId), dK, fa.amount, fa.assetId, fb.amount, fb.assetId, toString(eW.caller), false, dQ)
752- let dr = parseIntValue(fc._8)
739+ let fc = value(eY.payments[0])
740+ let fd = value(eY.payments[1])
741+ let fe = dL(toBase58String(eY.transactionId), dM, fc.amount, fc.assetId, fd.amount, fd.assetId, toString(eY.caller), false, dS)
742+ let dt = parseIntValue(fe._8)
753743 if (if (if (bc())
754744 then true
755- else (dr == l))
745+ else (dt == l))
756746 then true
757- else (dr == n))
758- then throw(("Put operation is blocked by admin. Status = " + toString(dr)))
759- else fc
747+ else (dt == n))
748+ then throw(("Put operation is blocked by admin. Status = " + toString(dt)))
749+ else fe
760750 }
761751
762752
763-func fd (bY) = {
764- let fe = invoke(aV, "emit", [bY], nil)
765- if ((fe == fe))
753+func ff (ca) = {
754+ let fg = invoke(aV, "emit", [ca], nil)
755+ if ((fg == fg))
766756 then {
767- let ff = {
768- let bV = fe
769- if ($isInstanceOf(bV, "Address"))
757+ let fh = {
758+ let bX = fg
759+ if ($isInstanceOf(bX, "Address"))
770760 then {
771- let fg = bV
772- invoke(fg, "emit", [bY], nil)
761+ let fi = bX
762+ invoke(fi, "emit", [ca], nil)
773763 }
774764 else unit
775765 }
776- if ((ff == ff))
777- then bY
766+ if ((fh == fh))
767+ then ca
778768 else throw("Strict value is not equal to itself.")
779769 }
780770 else throw("Strict value is not equal to itself.")
781771 }
782772
783773
784-func fh (bY,ai) = {
785- let fi = if ((ai == 0))
774+func fj (ca,ai) = {
775+ let fk = if ((ai == 0))
786776 then 0
787- else fraction(bY, ai, b)
788- $Tuple2((bY - fi), fi)
777+ else fraction(ca, ai, b)
778+ $Tuple2((ca - fk), fk)
789779 }
790780
791781
792-func fj (fk,fl,ab,ac) = {
793- let fm = (ac == unit)
794- let fn = bN(bj(br))
795- let fo = bN(bj(bs))
796- let fp = if ((fl == br))
782+func fl (fm,fn,ab,ac) = {
783+ let fo = (ac == unit)
784+ let fp = bN(bj(br))
785+ let fq = bN(bj(bs))
786+ let fr = if ((fn == br))
797787 then true
798- else if ((fl == bs))
788+ else if ((fn == bs))
799789 then false
800790 else aS("invalid asset")
801- let fq = if (fm)
802- then $Tuple2(fn, fo)
803- else if (fp)
804- then $Tuple2((fn - fk), fo)
805- else $Tuple2(fn, (fo - fk))
806- let fr = fq._1
807- let fs = fq._2
808- let ft = if (fp)
809- then $Tuple2(fk, 0)
810- else $Tuple2(0, fk)
811- let fu = ft._1
812- let fv = ft._2
813- let eM = fh(fu, aX)._1
814- let eN = fh(fv, aX)._1
815- let fw = fh(fk, aX)
816- let fx = fw._1
817- let fi = fw._2
818- let fy = (fr + eM)
819- let fz = (fs + eN)
820- let fA = bO(D(fz, bu), D(fy, bt))
821- let fB = H(fA, b)
822- let fC = if (fp)
823- then fr
824- else fs
825- let fD = toBigInt(fC)
826- let fE = toBigInt(valueOrErrorMessage(assetInfo(bq), (("asset " + toBase58String(bq)) + " doesn't exist")).quantity)
827- let fF = if ((fE > f))
791+ let fs = if (fo)
792+ then $Tuple2(fp, fq)
793+ else if (fr)
794+ then $Tuple2((fp - fm), fq)
795+ else $Tuple2(fp, (fq - fm))
796+ let ft = fs._1
797+ let fu = fs._2
798+ let fv = if (fr)
799+ then $Tuple2(fm, 0)
800+ else $Tuple2(0, fm)
801+ let fw = fv._1
802+ let fx = fv._2
803+ let eO = fj(fw, aX)._1
804+ let eP = fj(fx, aX)._1
805+ let fy = fj(fm, aX)
806+ let fz = fy._1
807+ let fk = fy._2
808+ let fA = (ft + eO)
809+ let fB = (fu + eP)
810+ let fC = bQ(D(fB, bu), D(fA, bt))
811+ let fD = H(fC, b)
812+ let fE = if (fr)
813+ then ft
814+ else fu
815+ let fF = toBigInt(fE)
816+ let fG = toBigInt(valueOrErrorMessage(assetInfo(bq), (("asset " + toBase58String(bq)) + " doesn't exist")).quantity)
817+ let fH = if ((fG > f))
828818 then true
829819 else aS("initial deposit requires all coins")
830- if ((fF == fF))
820+ if ((fH == fH))
831821 then {
832- let fG = toBigInt(fx)
833- let fH = max([0, toInt(((fE * (sqrtBigInt((d + ((fG * d) / fD)), 18, 18, DOWN) - d)) / d))])
834- let ep = if (fm)
822+ let fI = toBigInt(fz)
823+ let fJ = max([0, toInt(((fG * (sqrtBigInt((d + ((fI * d) / fF)), 18, 18, DOWN) - d)) / d))])
824+ let er = if (fo)
835825 then nil
836- else [IntegerEntry(W(), fB), IntegerEntry(X(height, lastBlock.timestamp), fB), StringEntry(aa(toString(value(ab)), toBase58String(value(ac))), by(fu, fv, fH, fB, 0, 0, height, lastBlock.timestamp, 0, 0))]
837- let fI = bO(D(fs, bu), D(fr, bt))
838- let fJ = H(fI, b)
839- let fK = {
840- let fL = if (fp)
841- then $Tuple2(fu, fr)
842- else $Tuple2(fv, fs)
843- let bY = fL._1
844- let fM = fL._2
845- let fN = toInt(fraction(fE, toBigInt((bY / 2)), toBigInt(fM)))
846- fraction((fH - fN), b, fN)
826+ else [IntegerEntry(W(), fD), IntegerEntry(X(height, lastBlock.timestamp), fD), StringEntry(aa(toString(value(ab)), toBase58String(value(ac))), by(fw, fx, fJ, fD, 0, 0, height, lastBlock.timestamp, 0, 0))]
827+ let fK = bQ(D(fu, bu), D(ft, bt))
828+ let fL = H(fK, b)
829+ let fM = {
830+ let fN = if (fr)
831+ then $Tuple2(fw, ft)
832+ else $Tuple2(fx, fu)
833+ let ca = fN._1
834+ let fO = fN._2
835+ let fP = toInt(fraction(fG, toBigInt((ca / 2)), toBigInt(fO)))
836+ fraction((fJ - fP), b, fP)
847837 }
848- $Tuple5(fH, ep, fi, fK, fp)
838+ $Tuple5(fJ, er, fk, fM, fr)
849839 }
850840 else throw("Strict value is not equal to itself.")
851841 }
852842
853843
854-func fO (fP,fx,fl,ab,ac) = {
855- let fm = (ac == unit)
856- let db = be()
857- let dc = parseIntValue(db[t])
858- let dd = parseIntValue(db[u])
859- let fQ = [if ((fl == bq))
844+func fQ (fR,fz,fn,ab,ac) = {
845+ let fo = (ac == unit)
846+ let dd = be()
847+ let de = parseIntValue(dd[t])
848+ let df = parseIntValue(dd[u])
849+ let fS = [if ((fn == bq))
860850 then true
861851 else aS("invalid lp asset")]
862- if ((fQ == fQ))
852+ if ((fS == fS))
863853 then {
864- let fR = if ((fP == br))
854+ let fT = if ((fR == br))
865855 then true
866- else if ((fP == bs))
856+ else if ((fR == bs))
867857 then false
868858 else aS("invalid asset")
869- let fS = if (fR)
859+ let fU = if (fT)
870860 then toBigInt(bN(bj(br)))
871861 else toBigInt(bN(bj(bs)))
872- let fT = if (fR)
873- then dc
874- else dd
875- let fU = bN(bj(br))
876- let fV = bN(bj(bs))
877- let fW = if (fR)
878- then fU
879- else fV
880- let fX = toBigInt(fW)
881- let fE = toBigInt(valueOrErrorMessage(assetInfo(bq), (("asset " + toBase58String(bq)) + " doesn't exist")).quantity)
882- let fY = toBigInt(fx)
883- let fZ = max([0, toInt(((fS * (d - pow((d - ((fY * d) / fE)), 18, h, 0, 18, DOWN))) / d))])
884- let ga = fh(fZ, aZ)
885- let gb = ga._1
886- let fi = ga._2
887- let gc = if (fR)
888- then $Tuple4(gb, 0, (fU - fZ), fV)
889- else $Tuple4(0, gb, fU, (fV - fZ))
862+ let fV = if (fT)
863+ then de
864+ else df
865+ let fW = bN(bj(br))
866+ let fX = bN(bj(bs))
867+ let fY = if (fT)
868+ then fW
869+ else fX
870+ let fZ = toBigInt(fY)
871+ let fG = toBigInt(valueOrErrorMessage(assetInfo(bq), (("asset " + toBase58String(bq)) + " doesn't exist")).quantity)
872+ let ga = toBigInt(fz)
873+ let gb = max([0, toInt(((fU * (d - pow((d - ((ga * d) / fG)), 18, h, 0, 18, DOWN))) / d))])
874+ let gc = fj(gb, aZ)
890875 let gd = gc._1
891- let ge = gc._2
892- let gf = gc._3
893- let gg = gc._4
894- let fA = bO(D(gg, bu), D(gf, bt))
895- let fB = H(fA, b)
896- let ep = if (fm)
876+ let fk = gc._2
877+ let ge = if (fT)
878+ then $Tuple4(gd, 0, (fW - gb), fX)
879+ else $Tuple4(0, gd, fW, (fX - gb))
880+ let gf = ge._1
881+ let gg = ge._2
882+ let gh = ge._3
883+ let gi = ge._4
884+ let fC = bQ(D(gi, bu), D(gh, bt))
885+ let fD = H(fC, b)
886+ let er = if (fo)
897887 then nil
898- else [StringEntry(ad(toString(value(ab)), toBase58String(value(ac))), bJ(gd, ge, fx, fB, height, lastBlock.timestamp)), IntegerEntry(W(), fB), IntegerEntry(X(height, lastBlock.timestamp), fB)]
899- let fI = bO(D(fV, bu), D(fU, bt))
900- let fJ = H(fI, b)
901- let fK = {
902- let gh = (toInt(fraction(fS, fY, fE)) * 2)
903- fraction((gb - gh), b, gh)
888+ else [StringEntry(ad(toString(value(ab)), toBase58String(value(ac))), bJ(gf, gg, fz, fD, height, lastBlock.timestamp)), IntegerEntry(W(), fD), IntegerEntry(X(height, lastBlock.timestamp), fD)]
889+ let fK = bQ(D(fX, bu), D(fW, bt))
890+ let fL = H(fK, b)
891+ let fM = {
892+ let gj = (toInt(fraction(fU, ga, fG)) * 2)
893+ fraction((gd - gj), b, gj)
904894 }
905- $Tuple5(gb, ep, fi, fK, fR)
895+ $Tuple5(gd, er, fk, fM, fT)
906896 }
907897 else throw("Strict value is not equal to itself.")
908898 }
909899
910900
911-func gi () = {
912- let bV = getString(U())
913- if ($isInstanceOf(bV, "String"))
901+func gk () = {
902+ let bX = getString(U())
903+ if ($isInstanceOf(bX, "String"))
914904 then {
915- let gj = bV
916- fromBase58String(gj)
905+ let gl = bX
906+ fromBase58String(gl)
917907 }
918- else if ($isInstanceOf(bV, "Unit"))
908+ else if ($isInstanceOf(bX, "Unit"))
919909 then unit
920910 else throw("Match error")
921911 }
922912
923913
924-func gk () = {
925- let bV = getString(V())
926- if ($isInstanceOf(bV, "String"))
914+func gm () = {
915+ let bX = getString(V())
916+ if ($isInstanceOf(bX, "String"))
927917 then {
928- let gj = bV
929- fromBase58String(gj)
918+ let gl = bX
919+ fromBase58String(gl)
930920 }
931- else if ($isInstanceOf(bV, "Unit"))
921+ else if ($isInstanceOf(bX, "Unit"))
932922 then unit
933923 else throw("Match error")
934924 }
935925
936926
937-func gl (eW) = {
938- let bV = gi()
939- if ($isInstanceOf(bV, "ByteVector"))
927+func gn (eY) = {
928+ let bX = gk()
929+ if ($isInstanceOf(bX, "ByteVector"))
940930 then {
941- let gm = bV
942- (eW.callerPublicKey == gm)
931+ let go = bX
932+ (eY.callerPublicKey == go)
943933 }
944- else if ($isInstanceOf(bV, "Unit"))
945- then (eW.caller == this)
934+ else if ($isInstanceOf(bX, "Unit"))
935+ then (eY.caller == this)
946936 else throw("Match error")
947937 }
948938
949939
950-func gn (eW) = {
951- let go = throw("Permission denied")
952- let bV = gi()
953- if ($isInstanceOf(bV, "ByteVector"))
940+func gp (eY) = {
941+ let gq = throw("Permission denied")
942+ let bX = gk()
943+ if ($isInstanceOf(bX, "ByteVector"))
954944 then {
955- let gm = bV
956- if ((eW.callerPublicKey == gm))
945+ let go = bX
946+ if ((eY.callerPublicKey == go))
957947 then true
958- else go
948+ else gq
959949 }
960- else if ($isInstanceOf(bV, "Unit"))
961- then if ((eW.caller == this))
950+ else if ($isInstanceOf(bX, "Unit"))
951+ then if ((eY.caller == this))
962952 then true
963- else go
953+ else gq
964954 else throw("Match error")
965955 }
966956
967957
968-@Callable(eW)
969-func rebalance () = (cE(aO(this, ae())) ++ cE(aO(this, af())))
958+@Callable(eY)
959+func rebalance () = (cG(aO(this, ae())) ++ cG(aO(this, af())))
970960
971961
972962
973-@Callable(eW)
974-func calculateAmountOutForSwapREADONLY (gp,gq,gr) = {
975- let gs = if ((gq == false))
963+@Callable(eY)
964+func calculateAmountOutForSwapREADONLY (gr,gs,gt) = {
965+ let gu = if ((gs == false))
976966 then {
977- let gt = aO(this, af())
978- let gu = aO(this, ae())
979- $Tuple2(gt, gu)
967+ let gv = aO(this, af())
968+ let gw = aO(this, ae())
969+ $Tuple2(gv, gw)
980970 }
981971 else {
982- let gt = aO(this, ae())
983- let gu = aO(this, af())
984- $Tuple2(gt, gu)
972+ let gv = aO(this, ae())
973+ let gw = aO(this, af())
974+ $Tuple2(gv, gw)
985975 }
986- let gt = gs._1
987- let gu = gs._2
988- let gv = bN(gu)
989- let gw = bN(gt)
990- let gx = fraction(gw, gp, (gv + gp))
991- let gy = (toBigInt(gv) * toBigInt(gw))
992- let gz = (((toBigInt(bN(gu)) + toBigInt(gp)) + toBigInt(gr)) * (toBigInt(bN(gt)) - toBigInt(gx)))
993- let gA = if ((gz >= gy))
976+ let gv = gu._1
977+ let gw = gu._2
978+ let gx = bN(gw)
979+ let gy = bN(gv)
980+ let gz = fraction(gy, gr, (gx + gr))
981+ let gA = (toBigInt(gx) * toBigInt(gy))
982+ let gB = (((toBigInt(bN(gw)) + toBigInt(gr)) + toBigInt(gt)) * (toBigInt(bN(gv)) - toBigInt(gz)))
983+ let gC = if ((gB >= gA))
994984 then true
995985 else throw("new K is fewer error")
996- if ((gA == gA))
997- then $Tuple2(nil, gx)
986+ if ((gC == gC))
987+ then $Tuple2(nil, gz)
998988 else throw("Strict value is not equal to itself.")
999989 }
1000990
1001991
1002992
1003-@Callable(eW)
1004-func calculateAmountOutForSwapAndSendTokens (gp,gq,gB,gC,gr) = {
1005- let gD = {
993+@Callable(eY)
994+func calculateAmountOutForSwapAndSendTokens (gr,gs,gD,gE,gt) = {
995+ let gF = {
1006996 let aY = invoke(aV, "getSwapContractREADONLY", nil, nil)
1007997 if ($isInstanceOf(aY, "String"))
1008998 then aY
1009999 else throw(($getType(aY) + " couldn't be cast to String"))
10101000 }
1011- let fQ = [if ((value(eW.payments[0]).amount >= gp))
1001+ let fS = [if ((value(eY.payments[0]).amount >= gr))
10121002 then true
1013- else aS("Wrong amount"), if ((eW.caller == addressFromStringValue(gD)))
1003+ else aS("Wrong amount"), if ((eY.caller == addressFromStringValue(gF)))
10141004 then true
10151005 else aS("Permission denied")]
1016- if ((fQ == fQ))
1006+ if ((fS == fS))
10171007 then {
1018- let eX = value(eW.payments[0])
1019- let gu = bj(eX.assetId)
1020- let gt = if ((gq == false))
1008+ let eZ = value(eY.payments[0])
1009+ let gw = bj(eZ.assetId)
1010+ let gv = if ((gs == false))
10211011 then aO(this, af())
10221012 else aO(this, ae())
1023- let gv = (bN(gu) - value(eW.payments[0]).amount)
1024- let gw = bN(gt)
1025- let gx = fraction(gw, gp, (gv + gp))
1026- let gy = (toBigInt(gv) * toBigInt(gw))
1027- let gz = ((toBigInt(bN(gu)) + toBigInt(gr)) * (toBigInt(bN(gt)) - toBigInt(gx)))
1028- let gA = if ((gz >= gy))
1013+ let gx = (bN(gw) - value(eY.payments[0]).amount)
1014+ let gy = bN(gv)
1015+ let gz = fraction(gy, gr, (gx + gr))
1016+ let gA = (toBigInt(gx) * toBigInt(gy))
1017+ let gB = ((toBigInt(bN(gw)) + toBigInt(gt)) * (toBigInt(bN(gv)) - toBigInt(gz)))
1018+ let gC = if ((gB >= gA))
10291019 then true
10301020 else throw("new K is fewer error")
1031- if ((gA == gA))
1021+ if ((gC == gC))
10321022 then {
1033- let gE = if ((gx >= gB))
1023+ let gG = if ((gz >= gD))
10341024 then true
10351025 else throw("Exchange result is fewer coins than expected")
1036- if ((gE == gE))
1026+ if ((gG == gG))
10371027 then {
1038- let gF = {
1039- let bV = cs(gt)
1040- if ($isInstanceOf(bV, "(Boolean, Int, Int, String, String, Int, String)"))
1028+ let gH = {
1029+ let bX = cu(gv)
1030+ if ($isInstanceOf(bX, "(Boolean, Int, Int, String, String, Int, String)"))
10411031 then {
1042- let cF = bV
1043- cF
1032+ let cH = bX
1033+ cH
10441034 }
10451035 else throw("error lease config")
10461036 }
1047- let gG = cO(gt, gx)
1048- if ((gG == gG))
1037+ let gI = cQ(gv, gz)
1038+ if ((gI == gI))
10491039 then {
1050- let dH = invoke(this, "rebalance", nil, nil)
1051- if ((dH == dH))
1052- then $Tuple2((gG ++ [ScriptTransfer(addressFromStringValue(gC), gx, bh(gt))]), gx)
1040+ let dJ = invoke(this, "rebalance", nil, nil)
1041+ if ((dJ == dJ))
1042+ then $Tuple2((gI ++ [ScriptTransfer(addressFromStringValue(gE), gz, bh(gv))]), gz)
10531043 else throw("Strict value is not equal to itself.")
10541044 }
10551045 else throw("Strict value is not equal to itself.")
10561046 }
10571047 else throw("Strict value is not equal to itself.")
10581048 }
10591049 else throw("Strict value is not equal to itself.")
10601050 }
10611051 else throw("Strict value is not equal to itself.")
10621052 }
10631053
10641054
10651055
1066-@Callable(eW)
1067-func setManager (gH) = {
1068- let gI = gn(eW)
1069- if ((gI == gI))
1056+@Callable(eY)
1057+func setManager (gJ) = {
1058+ let gK = gp(eY)
1059+ if ((gK == gK))
10701060 then {
1071- let gJ = fromBase58String(gH)
1072- if ((gJ == gJ))
1073- then [StringEntry(V(), gH)]
1061+ let gL = fromBase58String(gJ)
1062+ if ((gL == gL))
1063+ then [StringEntry(V(), gJ)]
10741064 else throw("Strict value is not equal to itself.")
10751065 }
10761066 else throw("Strict value is not equal to itself.")
10771067 }
10781068
10791069
10801070
1081-@Callable(eW)
1071+@Callable(eY)
10821072 func confirmManager () = {
1083- let gK = gk()
1084- let gL = if (isDefined(gK))
1073+ let gM = gm()
1074+ let gN = if (isDefined(gM))
10851075 then true
10861076 else throw("No pending manager")
1087- if ((gL == gL))
1077+ if ((gN == gN))
10881078 then {
1089- let gM = if ((eW.callerPublicKey == value(gK)))
1079+ let gO = if ((eY.callerPublicKey == value(gM)))
10901080 then true
10911081 else throw("You are not pending manager")
1092- if ((gM == gM))
1093- then [StringEntry(U(), toBase58String(value(gK))), DeleteEntry(V())]
1082+ if ((gO == gO))
1083+ then [StringEntry(U(), toBase58String(value(gM))), DeleteEntry(V())]
10941084 else throw("Strict value is not equal to itself.")
10951085 }
10961086 else throw("Strict value is not equal to itself.")
10971087 }
10981088
10991089
11001090
1101-@Callable(eW)
1102-func put (dK,gN) = if ((0 > dK))
1091+@Callable(eY)
1092+func put (dM,gP) = if ((0 > dM))
11031093 then throw("Invalid slippageTolerance passed")
11041094 else {
1105- let fc = eZ(eW, dK, true)
1106- let em = fc._2
1107- let do = fc._7
1108- let dI = fc._9
1109- let en = fc._10
1110- let eo = fc._11
1111- let gO = fc._12
1112- let gP = fc._13
1113- let fa = toBigInt(value(eW.payments[0]).amount)
1114- let fb = toBigInt(value(eW.payments[1]).amount)
1115- let eD = ew(fa, fb, toBigInt(0))
1116- if ((eD == eD))
1095+ let fe = fb(eY, dM, true)
1096+ let eo = fe._2
1097+ let dq = fe._7
1098+ let dK = fe._9
1099+ let ep = fe._10
1100+ let eq = fe._11
1101+ let gQ = fe._12
1102+ let gR = fe._13
1103+ let fc = toBigInt(value(eY.payments[0]).amount)
1104+ let fd = toBigInt(value(eY.payments[1]).amount)
1105+ let eF = ey(fc, fd, toBigInt(0))
1106+ if ((eF == eF))
11171107 then {
1118- let fe = invoke(aV, "emit", [em], nil)
1119- if ((fe == fe))
1108+ let fg = invoke(aV, "emit", [eo], nil)
1109+ if ((fg == fg))
11201110 then {
1121- let ff = {
1122- let bV = fe
1123- if ($isInstanceOf(bV, "Address"))
1111+ let fh = {
1112+ let bX = fg
1113+ if ($isInstanceOf(bX, "Address"))
11241114 then {
1125- let fg = bV
1126- invoke(fg, "emit", [em], nil)
1115+ let fi = bX
1116+ invoke(fi, "emit", [eo], nil)
11271117 }
11281118 else unit
11291119 }
1130- if ((ff == ff))
1120+ if ((fh == fh))
11311121 then {
1132- let gQ = if ((en > 0))
1133- then invoke(bx, "put", nil, [AttachedPayment(gO, en)])
1122+ let gS = if ((ep > 0))
1123+ then invoke(bx, "put", nil, [AttachedPayment(gQ, ep)])
11341124 else nil
1135- if ((gQ == gQ))
1125+ if ((gS == gS))
11361126 then {
1137- let gR = if ((eo > 0))
1138- then invoke(bx, "put", nil, [AttachedPayment(gP, eo)])
1127+ let gT = if ((eq > 0))
1128+ then invoke(bx, "put", nil, [AttachedPayment(gR, eq)])
11391129 else nil
1140- if ((gR == gR))
1130+ if ((gT == gT))
11411131 then {
1142- let gS = if (gN)
1132+ let gU = if (gP)
11431133 then {
1144- let gT = invoke(bw, "stake", nil, [AttachedPayment(do, em)])
1145- if ((gT == gT))
1134+ let gV = invoke(bw, "stake", nil, [AttachedPayment(dq, eo)])
1135+ if ((gV == gV))
11461136 then nil
11471137 else throw("Strict value is not equal to itself.")
11481138 }
1149- else [ScriptTransfer(eW.caller, em, do)]
1150- let gU = eE(0, 0, 0)
1151- if ((gU == gU))
1139+ else [ScriptTransfer(eY.caller, eo, dq)]
1140+ let gW = eG(0, 0, 0)
1141+ if ((gW == gW))
11521142 then {
1153- let ev = gU._2
1154- let gV = gU._1
1155- let gW = eI(eD, ev)
1156- if ((gW == gW))
1157- then ((dI ++ gS) ++ gV)
1143+ let ex = gW._2
1144+ let gX = gW._1
1145+ let gY = eK(eF, ex)
1146+ if ((gY == gY))
1147+ then ((dK ++ gU) ++ gX)
11581148 else throw("Strict value is not equal to itself.")
11591149 }
11601150 else throw("Strict value is not equal to itself.")
11611151 }
11621152 else throw("Strict value is not equal to itself.")
11631153 }
11641154 else throw("Strict value is not equal to itself.")
11651155 }
11661156 else throw("Strict value is not equal to itself.")
11671157 }
11681158 else throw("Strict value is not equal to itself.")
11691159 }
11701160 else throw("Strict value is not equal to itself.")
11711161 }
11721162
11731163
11741164
1175-@Callable(eW)
1176-func putForFree (gX) = if ((0 > gX))
1165+@Callable(eY)
1166+func putForFree (gZ) = if ((0 > gZ))
11771167 then throw("Invalid value passed")
11781168 else {
1179- let fc = eZ(eW, gX, false)
1180- let dI = fc._9
1181- let fa = toBigInt(value(eW.payments[0]).amount)
1182- let fb = toBigInt(value(eW.payments[1]).amount)
1183- let eD = ew(fa, fb, toBigInt(0))
1184- if ((eD == eD))
1169+ let fe = fb(eY, gZ, false)
1170+ let dK = fe._9
1171+ let fc = toBigInt(value(eY.payments[0]).amount)
1172+ let fd = toBigInt(value(eY.payments[1]).amount)
1173+ let eF = ey(fc, fd, toBigInt(0))
1174+ if ((eF == eF))
11851175 then {
1186- let gY = eE(0, 0, 0)
1187- let gV = gY._1
1188- let ev = gY._2
1189- let gW = eI(eD, ev)
1190- if ((gW == gW))
1191- then (dI ++ gV)
1176+ let ha = eG(0, 0, 0)
1177+ let gX = ha._1
1178+ let ex = ha._2
1179+ let gY = eK(eF, ex)
1180+ if ((gY == gY))
1181+ then (dK ++ gX)
11921182 else throw("Strict value is not equal to itself.")
11931183 }
11941184 else throw("Strict value is not equal to itself.")
11951185 }
11961186
11971187
11981188
1199-@Callable(eW)
1200-func putOneTkn (gZ,ha) = {
1201- let hb = {
1189+@Callable(eY)
1190+func putOneTkn (hb,hc) = {
1191+ let hd = {
12021192 let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
12031193 if ($isInstanceOf(aY, "Boolean"))
12041194 then aY
12051195 else throw(($getType(aY) + " couldn't be cast to Boolean"))
12061196 }
1207- let hc = if (if (if (bc())
1197+ let he = if (if (if (bc())
12081198 then true
12091199 else (bp == l))
12101200 then true
12111201 else (bp == n))
12121202 then true
1213- else hb
1214- let fQ = [if (if (!(hc))
1203+ else hd
1204+ let fS = [if (if (!(he))
12151205 then true
1216- else gl(eW))
1206+ else gn(eY))
12171207 then true
1218- else aS("put operation is blocked by admin"), if ((size(eW.payments) == 1))
1208+ else aS("put operation is blocked by admin"), if ((size(eY.payments) == 1))
12191209 then true
12201210 else aS("exactly 1 payment are expected")]
1221- if ((fQ == fQ))
1211+ if ((fS == fS))
12221212 then {
1223- let hd = eW.payments[0]
1224- let fl = hd.assetId
1225- let fk = hd.amount
1226- let eD = if ((fl == br))
1227- then ew(toBigInt(fk), toBigInt(0), toBigInt(0))
1228- else if ((fl == bs))
1229- then ew(toBigInt(0), toBigInt(fk), toBigInt(0))
1213+ let hf = eY.payments[0]
1214+ let fn = hf.assetId
1215+ let fm = hf.amount
1216+ let eF = if ((fn == br))
1217+ then ey(toBigInt(fm), toBigInt(0), toBigInt(0))
1218+ else if ((fn == bs))
1219+ then ey(toBigInt(0), toBigInt(fm), toBigInt(0))
12301220 else aS("payment asset is not supported")
1231- if ((eD == eD))
1221+ if ((eF == eF))
12321222 then {
1233- let ab = eW.caller
1234- let ac = eW.transactionId
1235- let he = fj(fk, fl, ab, ac)
1236- if ((he == he))
1223+ let ab = eY.caller
1224+ let ac = eY.transactionId
1225+ let hg = fl(fm, fn, ab, ac)
1226+ if ((hg == hg))
12371227 then {
1238- let fp = he._5
1239- let hf = he._4
1240- let fi = he._3
1241- let ep = he._2
1242- let hg = he._1
1243- let hh = if (if ((gZ > 0))
1244- then (gZ > hg)
1228+ let fr = hg._5
1229+ let hh = hg._4
1230+ let fk = hg._3
1231+ let er = hg._2
1232+ let hi = hg._1
1233+ let hj = if (if ((hb > 0))
1234+ then (hb > hi)
12451235 else false)
1246- then aS(makeString(["amount to receive is less than ", toString(gZ)], ""))
1247- else hg
1248- let fe = fd(hh)
1249- if ((fe == fe))
1236+ then aS(makeString(["amount to receive is less than ", toString(hb)], ""))
1237+ else hi
1238+ let fg = ff(hj)
1239+ if ((fg == fg))
12501240 then {
1251- let gS = if (ha)
1241+ let gU = if (hc)
12521242 then {
1253- let hi = invoke(bw, "stake", nil, [AttachedPayment(bq, hh)])
1254- if ((hi == hi))
1243+ let hk = invoke(bw, "stake", nil, [AttachedPayment(bq, hj)])
1244+ if ((hk == hk))
12551245 then nil
12561246 else throw("Strict value is not equal to itself.")
12571247 }
1258- else [ScriptTransfer(eW.caller, hh, bq)]
1259- let hj = if ((fi > 0))
1260- then [ScriptTransfer(aW, fi, fl)]
1248+ else [ScriptTransfer(eY.caller, hj, bq)]
1249+ let hl = if ((fk > 0))
1250+ then [ScriptTransfer(aW, fk, fn)]
12611251 else nil
1262- let hk = if ((this == aW))
1252+ let hm = if ((this == aW))
12631253 then $Tuple2(0, 0)
1264- else if (fp)
1265- then $Tuple2(-(fi), 0)
1266- else $Tuple2(0, -(fi))
1267- let eF = hk._1
1268- let eG = hk._2
1269- let hl = eE(eF, eG, 0)
1270- let gV = hl._1
1271- let ev = hl._2
1272- let eP = value(getString(aj))
1273- let gW = eI(eD, ev)
1274- if ((gW == gW))
1254+ else if (fr)
1255+ then $Tuple2(-(fk), 0)
1256+ else $Tuple2(0, -(fk))
1257+ let eH = hm._1
1258+ let eI = hm._2
1259+ let hn = eG(eH, eI, 0)
1260+ let gX = hn._1
1261+ let ex = hn._2
1262+ let eR = value(getString(aj))
1263+ let gY = eK(eF, ex)
1264+ if ((gY == gY))
12751265 then {
1276- let dH = invoke(this, "rebalance", nil, nil)
1277- if ((dH == dH))
1278- then $Tuple2((((ep ++ gS) ++ hj) ++ gV), hh)
1266+ let dJ = invoke(this, "rebalance", nil, nil)
1267+ if ((dJ == dJ))
1268+ then $Tuple2((((er ++ gU) ++ hl) ++ gX), hj)
12791269 else throw("Strict value is not equal to itself.")
12801270 }
12811271 else throw("Strict value is not equal to itself.")
12821272 }
12831273 else throw("Strict value is not equal to itself.")
12841274 }
12851275 else throw("Strict value is not equal to itself.")
12861276 }
12871277 else throw("Strict value is not equal to itself.")
12881278 }
12891279 else throw("Strict value is not equal to itself.")
12901280 }
12911281
12921282
12931283
1294-@Callable(eW)
1295-func putOneTknREADONLY (fl,fk) = {
1296- let hm = fj(fk, bh(fl), unit, unit)
1297- let hg = hm._1
1298- let ep = hm._2
1299- let fi = hm._3
1300- let hf = hm._4
1301- let fp = hm._5
1302- $Tuple2(nil, $Tuple3(hg, fi, hf))
1284+@Callable(eY)
1285+func putOneTknREADONLY (fn,fm) = {
1286+ let ho = fl(fm, bh(fn), unit, unit)
1287+ let hi = ho._1
1288+ let er = ho._2
1289+ let fk = ho._3
1290+ let hh = ho._4
1291+ let fr = ho._5
1292+ $Tuple2(nil, $Tuple3(hi, fk, hh))
13031293 }
13041294
13051295
13061296
1307-@Callable(eW)
1308-func getOneTkn (hn,gZ) = {
1309- let hb = {
1297+@Callable(eY)
1298+func getOneTkn (hp,hb) = {
1299+ let hd = {
13101300 let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
13111301 if ($isInstanceOf(aY, "Boolean"))
13121302 then aY
13131303 else throw(($getType(aY) + " couldn't be cast to Boolean"))
13141304 }
1315- let ho = if (if (bc())
1305+ let hq = if (if (bc())
13161306 then true
13171307 else (bp == n))
13181308 then true
1319- else hb
1320- let fQ = [if (if (!(ho))
1309+ else hd
1310+ let fS = [if (if (!(hq))
13211311 then true
1322- else gl(eW))
1312+ else gn(eY))
13231313 then true
1324- else aS("get operation is blocked by admin"), if ((size(eW.payments) == 1))
1314+ else aS("get operation is blocked by admin"), if ((size(eY.payments) == 1))
13251315 then true
13261316 else aS("exactly 1 payment are expected")]
1327- if ((fQ == fQ))
1317+ if ((fS == fS))
13281318 then {
1329- let fP = bh(hn)
1330- let hd = eW.payments[0]
1331- let fl = hd.assetId
1332- let fx = hd.amount
1333- let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
1334- if ((eD == eD))
1319+ let fR = bh(hp)
1320+ let hf = eY.payments[0]
1321+ let fn = hf.assetId
1322+ let fz = hf.amount
1323+ let eF = ey(toBigInt(0), toBigInt(0), toBigInt(0))
1324+ if ((eF == eF))
13351325 then {
1336- let ab = eW.caller
1337- let ac = eW.transactionId
1338- let hp = fO(fP, fx, fl, ab, ac)
1339- if ((hp == hp))
1326+ let ab = eY.caller
1327+ let ac = eY.transactionId
1328+ let hr = fQ(fR, fz, fn, ab, ac)
1329+ if ((hr == hr))
13401330 then {
1341- let fR = hp._5
1342- let hf = hp._4
1343- let fi = hp._3
1344- let ep = hp._2
1345- let hq = hp._1
1346- let bY = if (if ((gZ > 0))
1347- then (gZ > hq)
1331+ let fT = hr._5
1332+ let hh = hr._4
1333+ let fk = hr._3
1334+ let er = hr._2
1335+ let hs = hr._1
1336+ let ca = if (if ((hb > 0))
1337+ then (hb > hs)
13481338 else false)
1349- then aS(makeString(["amount to receive is less than ", toString(gZ)], ""))
1350- else hq
1351- let gF = {
1352- let bV = cs(hn)
1353- if ($isInstanceOf(bV, "(Boolean, Int, Int, String, String, Int, String)"))
1339+ then aS(makeString(["amount to receive is less than ", toString(hb)], ""))
1340+ else hs
1341+ let gH = {
1342+ let bX = cu(hp)
1343+ if ($isInstanceOf(bX, "(Boolean, Int, Int, String, String, Int, String)"))
13541344 then {
1355- let cF = bV
1356- cF
1345+ let cH = bX
1346+ cH
13571347 }
13581348 else throw("error lease config")
13591349 }
1360- let hr = invoke(aV, "burn", [fx], [AttachedPayment(fl, fx)])
1361- if ((hr == hr))
1350+ let ht = invoke(aV, "burn", [fz], [AttachedPayment(fn, fz)])
1351+ if ((ht == ht))
13621352 then {
1363- let gG = cO(hn, bY)
1364- if ((gG == gG))
1353+ let gI = cQ(hp, ca)
1354+ if ((gI == gI))
13651355 then {
1366- let hs = [ScriptTransfer(ab, bY, fP)]
1367- let hj = if ((fi > 0))
1368- then [ScriptTransfer(aW, fi, fP)]
1356+ let hu = [ScriptTransfer(ab, ca, fR)]
1357+ let hl = if ((fk > 0))
1358+ then [ScriptTransfer(aW, fk, fR)]
13691359 else nil
1370- let ht = {
1371- let hu = if ((this == aW))
1360+ let hv = {
1361+ let hw = if ((this == aW))
13721362 then 0
1373- else fi
1374- if (fR)
1375- then $Tuple2(-((bY + hu)), 0)
1376- else $Tuple2(0, -((bY + hu)))
1363+ else fk
1364+ if (fT)
1365+ then $Tuple2(-((ca + hw)), 0)
1366+ else $Tuple2(0, -((ca + hw)))
13771367 }
1378- let eF = ht._1
1379- let eG = ht._2
1380- let hv = eE(eF, eG, 0)
1381- let gV = hv._1
1382- let ev = hv._2
1383- let gW = eI(eD, ev)
1384- if ((gW == gW))
1368+ let eH = hv._1
1369+ let eI = hv._2
1370+ let hx = eG(eH, eI, 0)
1371+ let gX = hx._1
1372+ let ex = hx._2
1373+ let gY = eK(eF, ex)
1374+ if ((gY == gY))
13851375 then {
1386- let dH = invoke(this, "rebalance", nil, nil)
1387- if ((dH == dH))
1388- then $Tuple2((((ep ++ hs) ++ hj) ++ gV), bY)
1376+ let dJ = invoke(this, "rebalance", nil, nil)
1377+ if ((dJ == dJ))
1378+ then $Tuple2(((((er ++ gI) ++ hu) ++ hl) ++ gX), ca)
13891379 else throw("Strict value is not equal to itself.")
13901380 }
13911381 else throw("Strict value is not equal to itself.")
13921382 }
13931383 else throw("Strict value is not equal to itself.")
13941384 }
13951385 else throw("Strict value is not equal to itself.")
13961386 }
13971387 else throw("Strict value is not equal to itself.")
13981388 }
13991389 else throw("Strict value is not equal to itself.")
14001390 }
14011391 else throw("Strict value is not equal to itself.")
14021392 }
14031393
14041394
14051395
1406-@Callable(eW)
1407-func getOneTknREADONLY (fP,fx) = {
1408- let hw = fO(bh(fP), fx, bq, unit, unit)
1409- let hq = hw._1
1410- let ep = hw._2
1411- let fi = hw._3
1412- let hf = hw._4
1413- let fR = hw._5
1414- $Tuple2(nil, $Tuple3(hq, fi, hf))
1396+@Callable(eY)
1397+func getOneTknREADONLY (fR,fz) = {
1398+ let hy = fQ(bh(fR), fz, bq, unit, unit)
1399+ let hs = hy._1
1400+ let er = hy._2
1401+ let fk = hy._3
1402+ let hh = hy._4
1403+ let fT = hy._5
1404+ $Tuple2(nil, $Tuple3(hs, fk, hh))
14151405 }
14161406
14171407
14181408
1419-@Callable(eW)
1420-func unstakeAndGetOneTkn (hx,hn,gZ) = {
1421- let hb = {
1409+@Callable(eY)
1410+func unstakeAndGetOneTkn (hz,hp,hb) = {
1411+ let hd = {
14221412 let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
14231413 if ($isInstanceOf(aY, "Boolean"))
14241414 then aY
14251415 else throw(($getType(aY) + " couldn't be cast to Boolean"))
14261416 }
1427- let ho = if (if (bc())
1417+ let hq = if (if (bc())
14281418 then true
14291419 else (bp == n))
14301420 then true
1431- else hb
1432- let fQ = [if (if (!(ho))
1421+ else hd
1422+ let fS = [if (if (!(hq))
14331423 then true
1434- else gl(eW))
1424+ else gn(eY))
14351425 then true
1436- else aS("get operation is blocked by admin"), if ((size(eW.payments) == 0))
1426+ else aS("get operation is blocked by admin"), if ((size(eY.payments) == 0))
14371427 then true
14381428 else aS("no payments are expected")]
1439- if ((fQ == fQ))
1429+ if ((fS == fS))
14401430 then {
1441- let fP = bh(hn)
1442- let ab = eW.caller
1443- let ac = eW.transactionId
1444- let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
1445- if ((eD == eD))
1431+ let fR = bh(hp)
1432+ let ab = eY.caller
1433+ let ac = eY.transactionId
1434+ let eF = ey(toBigInt(0), toBigInt(0), toBigInt(0))
1435+ if ((eF == eF))
14461436 then {
1447- let hy = invoke(bw, "unstake", [toBase58String(bq), hx], nil)
1448- if ((hy == hy))
1437+ let hA = invoke(bw, "unstake", [toBase58String(bq), hz], nil)
1438+ if ((hA == hA))
14491439 then {
1450- let hz = fO(fP, hx, bq, ab, ac)
1451- if ((hz == hz))
1440+ let hB = fQ(fR, hz, bq, ab, ac)
1441+ if ((hB == hB))
14521442 then {
1453- let fR = hz._5
1454- let hf = hz._4
1455- let fi = hz._3
1456- let ep = hz._2
1457- let hq = hz._1
1458- let bY = if (if ((gZ > 0))
1459- then (gZ > hq)
1443+ let fT = hB._5
1444+ let hh = hB._4
1445+ let fk = hB._3
1446+ let er = hB._2
1447+ let hs = hB._1
1448+ let ca = if (if ((hb > 0))
1449+ then (hb > hs)
14601450 else false)
1461- then aS(makeString(["amount to receive is less than ", toString(gZ)], ""))
1462- else hq
1463- let hr = invoke(aV, "burn", [hx], [AttachedPayment(bq, hx)])
1464- if ((hr == hr))
1451+ then aS(makeString(["amount to receive is less than ", toString(hb)], ""))
1452+ else hs
1453+ let ht = invoke(aV, "burn", [hz], [AttachedPayment(bq, hz)])
1454+ if ((ht == ht))
14651455 then {
1466- let gG = cO(hn, bY)
1467- if ((gG == gG))
1456+ let gI = cQ(hp, ca)
1457+ if ((gI == gI))
14681458 then {
1469- let hs = [ScriptTransfer(eW.caller, bY, fP)]
1470- let hj = if ((fi > 0))
1471- then [ScriptTransfer(aW, fi, fP)]
1459+ let hu = [ScriptTransfer(eY.caller, ca, fR)]
1460+ let hl = if ((fk > 0))
1461+ then [ScriptTransfer(aW, fk, fR)]
14721462 else nil
1473- let hA = {
1474- let hu = if ((this == aW))
1463+ let hC = {
1464+ let hw = if ((this == aW))
14751465 then 0
1476- else fi
1477- if (fR)
1478- then $Tuple2(-((bY + hu)), 0)
1479- else $Tuple2(0, -((bY + hu)))
1466+ else fk
1467+ if (fT)
1468+ then $Tuple2(-((ca + hw)), 0)
1469+ else $Tuple2(0, -((ca + hw)))
14801470 }
1481- let eF = hA._1
1482- let eG = hA._2
1483- let hB = eE(eF, eG, 0)
1484- let gV = hB._1
1485- let ev = hB._2
1486- let gW = eI(eD, ev)
1487- if ((gW == gW))
1471+ let eH = hC._1
1472+ let eI = hC._2
1473+ let hD = eG(eH, eI, 0)
1474+ let gX = hD._1
1475+ let ex = hD._2
1476+ let gY = eK(eF, ex)
1477+ if ((gY == gY))
14881478 then {
1489- let dH = invoke(this, "rebalance", nil, nil)
1490- if ((dH == dH))
1491- then $Tuple2(((((ep ++ gG) ++ hs) ++ hj) ++ gV), bY)
1479+ let dJ = invoke(this, "rebalance", nil, nil)
1480+ if ((dJ == dJ))
1481+ then $Tuple2(((((er ++ gI) ++ hu) ++ hl) ++ gX), ca)
14921482 else throw("Strict value is not equal to itself.")
14931483 }
14941484 else throw("Strict value is not equal to itself.")
14951485 }
14961486 else throw("Strict value is not equal to itself.")
14971487 }
14981488 else throw("Strict value is not equal to itself.")
14991489 }
15001490 else throw("Strict value is not equal to itself.")
15011491 }
15021492 else throw("Strict value is not equal to itself.")
15031493 }
15041494 else throw("Strict value is not equal to itself.")
15051495 }
15061496 else throw("Strict value is not equal to itself.")
15071497 }
15081498
15091499
15101500
1511-@Callable(eW)
1501+@Callable(eY)
15121502 func get () = {
1513- let ea = eV(eW)
1514- let hC = ea._1
1515- let dE = ea._2
1516- let eY = ea._3
1517- let dm = ea._4
1518- let dI = ea._5
1519- let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
1520- if ((eD == eD))
1503+ let ec = eX(eY)
1504+ let hE = ec._1
1505+ let dG = ec._2
1506+ let fa = ec._3
1507+ let do = ec._4
1508+ let dK = ec._5
1509+ let eF = ey(toBigInt(0), toBigInt(0), toBigInt(0))
1510+ if ((eF == eF))
15211511 then {
1522- let hD = invoke(aV, "burn", [eY], [AttachedPayment(dm, eY)])
1523- if ((hD == hD))
1512+ let hF = invoke(aV, "burn", [fa], [AttachedPayment(do, fa)])
1513+ if ((hF == hF))
15241514 then {
1525- let hE = eE(-(hC), -(dE), 0)
1526- let gV = hE._1
1527- let ev = hE._2
1528- let gW = eI(eD, ev)
1529- if ((gW == gW))
1530- then (dI ++ gV)
1515+ let hG = eG(-(hE), -(dG), 0)
1516+ let gX = hG._1
1517+ let ex = hG._2
1518+ let gY = eK(eF, ex)
1519+ if ((gY == gY))
1520+ then (dK ++ gX)
15311521 else throw("Strict value is not equal to itself.")
15321522 }
15331523 else throw("Strict value is not equal to itself.")
15341524 }
15351525 else throw("Strict value is not equal to itself.")
15361526 }
15371527
15381528
15391529
1540-@Callable(eW)
1541-func getNoLess (hF,hG) = {
1542- let ea = eV(eW)
1543- let dD = ea._1
1544- let dE = ea._2
1545- let eY = ea._3
1546- let dm = ea._4
1547- let dI = ea._5
1548- if ((hF > dD))
1549- then throw(((("noLessThenAmtAsset failed: " + toString(dD)) + " < ") + toString(hF)))
1550- else if ((hG > dE))
1551- then throw(((("noLessThenPriceAsset failed: " + toString(dE)) + " < ") + toString(hG)))
1530+@Callable(eY)
1531+func getNoLess (hH,hI) = {
1532+ let ec = eX(eY)
1533+ let dF = ec._1
1534+ let dG = ec._2
1535+ let fa = ec._3
1536+ let do = ec._4
1537+ let dK = ec._5
1538+ if ((hH > dF))
1539+ then throw(((("noLessThenAmtAsset failed: " + toString(dF)) + " < ") + toString(hH)))
1540+ else if ((hI > dG))
1541+ then throw(((("noLessThenPriceAsset failed: " + toString(dG)) + " < ") + toString(hI)))
15521542 else {
1553- let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
1554- if ((eD == eD))
1543+ let eF = ey(toBigInt(0), toBigInt(0), toBigInt(0))
1544+ if ((eF == eF))
15551545 then {
1556- let hD = invoke(aV, "burn", [eY], [AttachedPayment(dm, eY)])
1557- if ((hD == hD))
1546+ let hF = invoke(aV, "burn", [fa], [AttachedPayment(do, fa)])
1547+ if ((hF == hF))
15581548 then {
1559- let hH = eE(-(dD), -(dE), 0)
1560- let gV = hH._1
1561- let ev = hH._2
1562- let gW = eI(eD, ev)
1563- if ((gW == gW))
1564- then (dI ++ gV)
1549+ let hJ = eG(-(dF), -(dG), 0)
1550+ let gX = hJ._1
1551+ let ex = hJ._2
1552+ let gY = eK(eF, ex)
1553+ if ((gY == gY))
1554+ then (dK ++ gX)
15651555 else throw("Strict value is not equal to itself.")
15661556 }
15671557 else throw("Strict value is not equal to itself.")
15681558 }
15691559 else throw("Strict value is not equal to itself.")
15701560 }
15711561 }
15721562
15731563
15741564
1575-@Callable(eW)
1576-func unstakeAndGet (bY) = {
1577- let hI = if ((size(eW.payments) != 0))
1565+@Callable(eY)
1566+func unstakeAndGet (ca) = {
1567+ let hK = if ((size(eY.payments) != 0))
15781568 then throw("No payments are expected")
15791569 else true
1580- if ((hI == hI))
1570+ if ((hK == hK))
15811571 then {
1582- let db = be()
1583- let do = fromBase58String(db[q])
1584- let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
1585- if ((eD == eD))
1572+ let dd = be()
1573+ let dq = fromBase58String(dd[q])
1574+ let eF = ey(toBigInt(0), toBigInt(0), toBigInt(0))
1575+ if ((eF == eF))
15861576 then {
1587- let hy = invoke(bw, "unstake", [toBase58String(do), bY], nil)
1588- if ((hy == hy))
1577+ let hA = invoke(bw, "unstake", [toBase58String(dq), ca], nil)
1578+ if ((hA == hA))
15891579 then {
1590- let ea = dk(toBase58String(eW.transactionId), toBase58String(do), bY, eW.caller)
1591- let dD = ea._1
1592- let dE = ea._2
1593- let dr = parseIntValue(ea._9)
1594- let dI = ea._10
1595- let hJ = if (if (bc())
1580+ let ec = dm(toBase58String(eY.transactionId), toBase58String(dq), ca, eY.caller)
1581+ let dF = ec._1
1582+ let dG = ec._2
1583+ let dt = parseIntValue(ec._9)
1584+ let dK = ec._10
1585+ let hL = if (if (bc())
15961586 then true
1597- else (dr == n))
1598- then throw(("Get operation is blocked by admin. Status = " + toString(dr)))
1587+ else (dt == n))
1588+ then throw(("Get operation is blocked by admin. Status = " + toString(dt)))
15991589 else true
1600- if ((hJ == hJ))
1590+ if ((hL == hL))
16011591 then {
1602- let hD = invoke(aV, "burn", [bY], [AttachedPayment(do, bY)])
1603- if ((hD == hD))
1592+ let hF = invoke(aV, "burn", [ca], [AttachedPayment(dq, ca)])
1593+ if ((hF == hF))
16041594 then {
1605- let hK = eE(-(dD), -(dE), 0)
1606- let gV = hK._1
1607- let ev = hK._2
1608- let gW = eI(eD, ev)
1609- if ((gW == gW))
1610- then (dI ++ gV)
1595+ let hM = eG(-(dF), -(dG), 0)
1596+ let gX = hM._1
1597+ let ex = hM._2
1598+ let gY = eK(eF, ex)
1599+ if ((gY == gY))
1600+ then (dK ++ gX)
16111601 else throw("Strict value is not equal to itself.")
16121602 }
16131603 else throw("Strict value is not equal to itself.")
16141604 }
16151605 else throw("Strict value is not equal to itself.")
16161606 }
16171607 else throw("Strict value is not equal to itself.")
16181608 }
16191609 else throw("Strict value is not equal to itself.")
16201610 }
16211611 else throw("Strict value is not equal to itself.")
16221612 }
16231613
16241614
16251615
1626-@Callable(eW)
1627-func unstakeAndGetNoLess (hx,hL,hG) = {
1628- let ho = if (bc())
1616+@Callable(eY)
1617+func unstakeAndGetNoLess (hz,hN,hI) = {
1618+ let hq = if (bc())
16291619 then true
16301620 else (bp == n)
1631- let fQ = [if (!(ho))
1621+ let fS = [if (!(hq))
16321622 then true
1633- else throw("get operation is blocked by admin"), if ((size(eW.payments) == 0))
1623+ else throw("get operation is blocked by admin"), if ((size(eY.payments) == 0))
16341624 then true
16351625 else throw("no payments are expected")]
1636- if ((fQ == fQ))
1626+ if ((fS == fS))
16371627 then {
1638- let eD = ew(toBigInt(0), toBigInt(0), toBigInt(0))
1639- if ((eD == eD))
1628+ let eF = ey(toBigInt(0), toBigInt(0), toBigInt(0))
1629+ if ((eF == eF))
16401630 then {
1641- let hy = invoke(bw, "unstake", [toBase58String(bq), hx], nil)
1642- if ((hy == hy))
1631+ let hA = invoke(bw, "unstake", [toBase58String(bq), hz], nil)
1632+ if ((hA == hA))
16431633 then {
1644- let ea = dk(toBase58String(eW.transactionId), toBase58String(bq), hx, eW.caller)
1645- let dD = ea._1
1646- let dE = ea._2
1647- let dI = ea._10
1648- let hM = [if ((dD >= hL))
1634+ let ec = dm(toBase58String(eY.transactionId), toBase58String(bq), hz, eY.caller)
1635+ let dF = ec._1
1636+ let dG = ec._2
1637+ let dK = ec._10
1638+ let hO = [if ((dF >= hN))
16491639 then true
1650- else throw(makeString(["amount asset amount to receive is less than ", toString(hL)], "")), if ((dE >= hG))
1640+ else throw(makeString(["amount asset amount to receive is less than ", toString(hN)], "")), if ((dG >= hI))
16511641 then true
1652- else throw(makeString(["price asset amount to receive is less than ", toString(hG)], ""))]
1653- if ((hM == hM))
1642+ else throw(makeString(["price asset amount to receive is less than ", toString(hI)], ""))]
1643+ if ((hO == hO))
16541644 then {
1655- let hD = invoke(aV, "burn", [hx], [AttachedPayment(bq, hx)])
1656- if ((hD == hD))
1645+ let hF = invoke(aV, "burn", [hz], [AttachedPayment(bq, hz)])
1646+ if ((hF == hF))
16571647 then {
1658- let hN = eE(-(dD), -(dE), 0)
1659- let gV = hN._1
1660- let ev = hN._2
1661- let gW = eI(eD, ev)
1662- if ((gW == gW))
1663- then (dI ++ gV)
1648+ let hP = eG(-(dF), -(dG), 0)
1649+ let gX = hP._1
1650+ let ex = hP._2
1651+ let gY = eK(eF, ex)
1652+ if ((gY == gY))
1653+ then (dK ++ gX)
16641654 else throw("Strict value is not equal to itself.")
16651655 }
16661656 else throw("Strict value is not equal to itself.")
16671657 }
16681658 else throw("Strict value is not equal to itself.")
16691659 }
16701660 else throw("Strict value is not equal to itself.")
16711661 }
16721662 else throw("Strict value is not equal to itself.")
16731663 }
16741664 else throw("Strict value is not equal to itself.")
16751665 }
16761666
16771667
16781668
1679-@Callable(eW)
1680-func activate (hO,hP) = if ((toString(eW.caller) != toString(aV)))
1669+@Callable(eY)
1670+func activate (hQ,hR) = if ((toString(eY.caller) != toString(aV)))
16811671 then throw("permissions denied")
1682- else $Tuple2([StringEntry(ae(), hO), StringEntry(af(), hP)], "success")
1672+ else $Tuple2([StringEntry(ae(), hQ), StringEntry(af(), hR)], "success")
16831673
16841674
16851675
1686-@Callable(eW)
1676+@Callable(eY)
16871677 func refreshKLp () = {
1688- let hQ = valueOrElse(getInteger(ak), 0)
1689- let hR = if (((height - hQ) >= an))
1678+ let hS = valueOrElse(getInteger(ak), 0)
1679+ let hT = if (((height - hS) >= an))
16901680 then unit
16911681 else aS(makeString([toString(an), " blocks have not passed since the previous call"], ""))
1692- if ((hR == hR))
1682+ if ((hT == hT))
16931683 then {
1694- let eP = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aU("invalid kLp"))
1695- let hS = eE(0, 0, 0)
1696- let hT = hS._1
1697- let ev = hS._2
1698- let eH = if ((eP != ev))
1699- then hT
1684+ let eR = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aU("invalid kLp"))
1685+ let hU = eG(0, 0, 0)
1686+ let hV = hU._1
1687+ let ex = hU._2
1688+ let eJ = if ((eR != ex))
1689+ then hV
17001690 else aS("nothing to refresh")
1701- $Tuple2(eH, toString(ev))
1691+ $Tuple2(eJ, toString(ex))
17021692 }
17031693 else throw("Strict value is not equal to itself.")
17041694 }
17051695
17061696
17071697
1708-@Callable(eW)
1698+@Callable(eY)
17091699 func getPoolConfigWrapperREADONLY () = $Tuple2(nil, be())
17101700
17111701
17121702
1713-@Callable(eW)
1703+@Callable(eY)
17141704 func getAccBalanceWrapperREADONLY (ar) = $Tuple2(nil, bN(ar))
17151705
17161706
17171707
1718-@Callable(eW)
1719-func calcPricesWrapperREADONLY (cV,cW,da) = {
1720- let dj = cZ(cV, cW, da)
1721- $Tuple2(nil, [toString(dj[0]), toString(dj[1]), toString(dj[2])])
1708+@Callable(eY)
1709+func calcPricesWrapperREADONLY (cX,cY,dc) = {
1710+ let dl = db(cX, cY, dc)
1711+ $Tuple2(nil, [toString(dl[0]), toString(dl[1]), toString(dl[2])])
17221712 }
17231713
17241714
17251715
1726-@Callable(eW)
1716+@Callable(eY)
17271717 func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
17281718
17291719
17301720
1731-@Callable(eW)
1721+@Callable(eY)
17321722 func fromX18WrapperREADONLY (I,J) = $Tuple2(nil, H(parseBigIntValue(I), J))
17331723
17341724
17351725
1736-@Callable(eW)
1737-func calcPriceBigIntWrapperREADONLY (bP,bQ) = $Tuple2(nil, toString(bO(parseBigIntValue(bP), parseBigIntValue(bQ))))
1726+@Callable(eY)
1727+func calcPriceBigIntWrapperREADONLY (bR,bS) = $Tuple2(nil, toString(bQ(parseBigIntValue(bR), parseBigIntValue(bS))))
17381728
17391729
17401730
1741-@Callable(eW)
1742-func estimatePutOperationWrapperREADONLY (dl,dK,dL,dM,dN,dO,ab,dP,dQ) = $Tuple2(nil, dJ(dl, dK, dL, dM, dN, dO, ab, dP, dQ))
1731+@Callable(eY)
1732+func estimatePutOperationWrapperREADONLY (dn,dM,dN,dO,dP,dQ,ab,dR,dS) = $Tuple2(nil, dL(dn, dM, dN, dO, dP, dQ, ab, dR, dS))
17431733
17441734
17451735
1746-@Callable(eW)
1747-func estimateGetOperationWrapperREADONLY (dl,dm,dn,ab) = {
1748- let ea = dk(dl, dm, dn, addressFromStringValue(ab))
1749- $Tuple2(nil, $Tuple10(ea._1, ea._2, ea._3, ea._4, ea._5, ea._6, ea._7, toString(ea._8), ea._9, ea._10))
1736+@Callable(eY)
1737+func estimateGetOperationWrapperREADONLY (dn,do,dp,ab) = {
1738+ let ec = dm(dn, do, dp, addressFromStringValue(ab))
1739+ $Tuple2(nil, $Tuple10(ec._1, ec._2, ec._3, ec._4, ec._5, ec._6, ec._7, toString(ec._8), ec._9, ec._10))
17501740 }
17511741
17521742
17531743
1754-@Callable(eW)
1744+@Callable(eY)
17551745 func statsREADONLY () = {
1756- let db = be()
1757- let do = fromBase58String(db[q])
1758- let hU = db[r]
1759- let hV = db[s]
1760- let dT = db[v]
1761- let dU = db[w]
1762- let dc = parseIntValue(db[t])
1763- let dd = parseIntValue(db[u])
1764- let hW = valueOrErrorMessage(assetInfo(do), (("Asset " + toBase58String(do)) + " doesn't exist")).quantity
1765- let hX = bN(hU)
1766- let hY = bN(hV)
1767- let hZ = if ((hW == 0))
1746+ let dd = be()
1747+ let dq = fromBase58String(dd[q])
1748+ let hW = dd[r]
1749+ let hX = dd[s]
1750+ let dV = dd[v]
1751+ let dW = dd[w]
1752+ let de = parseIntValue(dd[t])
1753+ let df = parseIntValue(dd[u])
1754+ let hY = valueOrErrorMessage(assetInfo(dq), (("Asset " + toBase58String(dq)) + " doesn't exist")).quantity
1755+ let hZ = bN(hW)
1756+ let ia = bN(hX)
1757+ let ib = if ((hY == 0))
17681758 then [e, e, e]
1769- else cZ(hX, hY, hW)
1770- let dy = 0
1771- let ia = H(hZ[1], b)
1772- let ib = H(hZ[2], b)
1773- let ic = value(getInteger(aV, aF(toString(this))))
1774- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hX), toString(hY), toString(hW), toString(dy), toString(ia), toString(ib), toString(ic)], j))
1759+ else db(hZ, ia, hY)
1760+ let dA = 0
1761+ let ic = H(ib[1], b)
1762+ let id = H(ib[2], b)
1763+ let ie = value(getInteger(aV, aF(toString(this))))
1764+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hZ), toString(ia), toString(hY), toString(dA), toString(ic), toString(id), toString(ie)], j))
17751765 }
17761766
17771767
17781768
1779-@Callable(eW)
1780-func evaluatePutByAmountAssetREADONLY (dL) = {
1781- let db = be()
1782- let do = fromBase58String(db[q])
1783- let dR = db[r]
1784- let dp = fromBase58String(dR)
1785- let dS = db[s]
1786- let dq = fromBase58String(dS)
1787- let dc = parseIntValue(db[t])
1788- let dd = parseIntValue(db[u])
1789- let dr = db[p]
1790- let hW = valueOrErrorMessage(assetInfo(do), (("Asset " + toBase58String(do)) + " doesn't exist")).quantity
1791- let hX = bN(dR)
1792- let hY = bN(dS)
1793- let cX = D(hX, dc)
1794- let cY = D(hY, dd)
1795- let dx = if ((hW == 0))
1769+@Callable(eY)
1770+func evaluatePutByAmountAssetREADONLY (dN) = {
1771+ let dd = be()
1772+ let dq = fromBase58String(dd[q])
1773+ let dT = dd[r]
1774+ let dr = fromBase58String(dT)
1775+ let dU = dd[s]
1776+ let ds = fromBase58String(dU)
1777+ let de = parseIntValue(dd[t])
1778+ let df = parseIntValue(dd[u])
1779+ let dt = dd[p]
1780+ let hY = valueOrErrorMessage(assetInfo(dq), (("Asset " + toBase58String(dq)) + " doesn't exist")).quantity
1781+ let hZ = bN(dT)
1782+ let ia = bN(dU)
1783+ let cZ = D(hZ, de)
1784+ let da = D(ia, df)
1785+ let dz = if ((hY == 0))
17961786 then e
1797- else bO(cY, cX)
1798- let dX = D(dL, dc)
1799- let dY = fraction(dX, dx, d)
1800- let dN = H(dY, dd)
1801- let fc = dJ("", 500000, dL, dp, dN, dq, "", true, false)
1802- let ei = fc._1
1803- let id = fc._3
1804- let dt = fc._4
1805- let dv = fc._5
1806- let ds = fc._6
1807- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ei), toString(H(dx, b)), toString(dt), toString(dv), toString(ds), dr, toString(dL), toString(dN)], j))
1787+ else bQ(da, cZ)
1788+ let dZ = D(dN, de)
1789+ let ea = fraction(dZ, dz, d)
1790+ let dP = H(ea, df)
1791+ let fe = dL("", 500000, dN, dr, dP, ds, "", true, false)
1792+ let ek = fe._1
1793+ let if = fe._3
1794+ let dv = fe._4
1795+ let dx = fe._5
1796+ let du = fe._6
1797+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ek), toString(H(dz, b)), toString(dv), toString(dx), toString(du), dt, toString(dN), toString(dP)], j))
18081798 }
18091799
18101800
18111801
1812-@Callable(eW)
1813-func evaluatePutByPriceAssetREADONLY (dN) = {
1814- let db = be()
1815- let do = fromBase58String(db[q])
1816- let dR = db[r]
1817- let dp = fromBase58String(dR)
1818- let dS = db[s]
1819- let dq = fromBase58String(dS)
1820- let dc = parseIntValue(db[t])
1821- let dd = parseIntValue(db[u])
1822- let dr = db[p]
1823- let hW = valueOrErrorMessage(assetInfo(do), (("Asset " + toBase58String(do)) + " doesn't exist")).quantity
1824- let ie = bN(dR)
1825- let if = bN(dS)
1826- let ig = D(ie, dc)
1827- let ih = D(if, dd)
1828- let dx = if ((hW == 0))
1802+@Callable(eY)
1803+func evaluatePutByPriceAssetREADONLY (dP) = {
1804+ let dd = be()
1805+ let dq = fromBase58String(dd[q])
1806+ let dT = dd[r]
1807+ let dr = fromBase58String(dT)
1808+ let dU = dd[s]
1809+ let ds = fromBase58String(dU)
1810+ let de = parseIntValue(dd[t])
1811+ let df = parseIntValue(dd[u])
1812+ let dt = dd[p]
1813+ let hY = valueOrErrorMessage(assetInfo(dq), (("Asset " + toBase58String(dq)) + " doesn't exist")).quantity
1814+ let ig = bN(dT)
1815+ let ih = bN(dU)
1816+ let ii = D(ig, de)
1817+ let ij = D(ih, df)
1818+ let dz = if ((hY == 0))
18291819 then e
1830- else bO(ih, ig)
1831- let dY = D(dN, dd)
1832- let dX = fraction(dY, d, dx)
1833- let dL = H(dX, dc)
1834- let fc = dJ("", 500000, dL, dp, dN, dq, "", true, false)
1835- let ei = fc._1
1836- let id = fc._3
1837- let dt = fc._4
1838- let dv = fc._5
1839- let ds = fc._6
1840- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ei), toString(H(dx, b)), toString(dt), toString(dv), toString(ds), dr, toString(dL), toString(dN)], j))
1820+ else bQ(ij, ii)
1821+ let ea = D(dP, df)
1822+ let dZ = fraction(ea, d, dz)
1823+ let dN = H(dZ, de)
1824+ let fe = dL("", 500000, dN, dr, dP, ds, "", true, false)
1825+ let ek = fe._1
1826+ let if = fe._3
1827+ let dv = fe._4
1828+ let dx = fe._5
1829+ let du = fe._6
1830+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ek), toString(H(dz, b)), toString(dv), toString(dx), toString(du), dt, toString(dN), toString(dP)], j))
18411831 }
18421832
18431833
18441834
1845-@Callable(eW)
1846-func evaluateGetREADONLY (ii,ij) = {
1847- let ea = dk("", ii, ij, this)
1848- let dD = ea._1
1849- let dE = ea._2
1850- let dt = ea._5
1851- let dv = ea._6
1852- let ds = ea._7
1853- let dy = ea._8
1854- let dr = parseIntValue(ea._9)
1855- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dD), toString(dE), toString(dt), toString(dv), toString(ds), toString(dy), toString(dr)], j))
1835+@Callable(eY)
1836+func evaluateGetREADONLY (ik,il) = {
1837+ let ec = dm("", ik, il, this)
1838+ let dF = ec._1
1839+ let dG = ec._2
1840+ let dv = ec._5
1841+ let dx = ec._6
1842+ let du = ec._7
1843+ let dA = ec._8
1844+ let dt = parseIntValue(ec._9)
1845+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dF), toString(dG), toString(dv), toString(dx), toString(du), toString(dA), toString(dt)], j))
18561846 }
18571847
18581848
1859-@Verifier(ik)
1860-func il () = {
1861- let im = {
1862- let bV = gi()
1863- if ($isInstanceOf(bV, "ByteVector"))
1849+@Verifier(im)
1850+func in () = {
1851+ let io = {
1852+ let bX = gk()
1853+ if ($isInstanceOf(bX, "ByteVector"))
18641854 then {
1865- let gm = bV
1866- gm
1855+ let go = bX
1856+ go
18671857 }
1868- else if ($isInstanceOf(bV, "Unit"))
1869- then ik.senderPublicKey
1858+ else if ($isInstanceOf(bX, "Unit"))
1859+ then im.senderPublicKey
18701860 else throw("Match error")
18711861 }
1872- let bV = ik
1873- if ($isInstanceOf(bV, "Order"))
1862+ let bX = im
1863+ if ($isInstanceOf(bX, "Order"))
18741864 then {
1875- let eL = bV
1876- let in = bd()
1877- let io = eK(eL)
1878- let aK = io._1
1879- let aL = io._2
1880- let aM = sigVerify(eL.bodyBytes, eL.proofs[0], eL.senderPublicKey)
1881- let aN = sigVerify(eL.bodyBytes, eL.proofs[1], in)
1865+ let eN = bX
1866+ let ip = bd()
1867+ let iq = eM(eN)
1868+ let aK = iq._1
1869+ let aL = iq._2
1870+ let aM = sigVerify(eN.bodyBytes, eN.proofs[0], eN.senderPublicKey)
1871+ let aN = sigVerify(eN.bodyBytes, eN.proofs[1], ip)
18821872 if (if (if (aK)
18831873 then aM
18841874 else false)
18851875 then aN
18861876 else false)
18871877 then true
18881878 else aJ(aK, aL, aM, aN)
18891879 }
1890- else if ($isInstanceOf(bV, "SetScriptTransaction"))
1880+ else if ($isInstanceOf(bX, "SetScriptTransaction"))
18911881 then {
1892- let gj = bV
1893- if (sigVerify(ik.bodyBytes, ik.proofs[0], im))
1882+ let gl = bX
1883+ if (sigVerify(im.bodyBytes, im.proofs[0], io))
18941884 then true
18951885 else {
1896- let ip = blake2b256(value(gj.script))
1897- let iq = fromBase64String(value(getString(aV, aH())))
1898- let ir = scriptHash(this)
1899- if ((iq == ip))
1900- then (ir != ip)
1886+ let ir = blake2b256(value(gl.script))
1887+ let is = fromBase64String(value(getString(aV, aH())))
1888+ let it = scriptHash(this)
1889+ if ((is == ir))
1890+ then (it != ir)
19011891 else false
19021892 }
19031893 }
1904- else sigVerify(ik.bodyBytes, ik.proofs[0], im)
1894+ else sigVerify(im.bodyBytes, im.proofs[0], io)
19051895 }
19061896

github/deemru/w8io/026f985 
732.82 ms