tx · AtTC6snFKDQb3f23QHeZJPKeaze5HXCaNcue72K2taAW

3Mpir1mNWWHWhzbLRKfbCeDzctPvgsLPn3u:  -0.04300000 Waves

2024.04.17 09:39 [3066422] smart account 3Mpir1mNWWHWhzbLRKfbCeDzctPvgsLPn3u > SELF 0.00000000 Waves

{ "type": 13, "id": "AtTC6snFKDQb3f23QHeZJPKeaze5HXCaNcue72K2taAW", "fee": 4300000, "feeAssetId": null, "timestamp": 1713335843547, "version": 2, "chainId": 84, "sender": "3Mpir1mNWWHWhzbLRKfbCeDzctPvgsLPn3u", "senderPublicKey": "BVULJ65bCcpd98euBCtxLcfCRUE6GHjFKfEeVrNsGhyn", "proofs": [ "52ghytV4CsEsRwT3y7Xx2i1hCiagxk4UpRtzZKcH8h5rFDeZ5UQHQXyjBHya2QQcnEavKyHj2nbgFpKGYCgPAPaG" ], "script": "base64:BgLjOAgCEgASBQoDAQQBEgcKBQEEAQgBEgQKAgEEEgMKAQESBAoCAQQSBAoCCAESBAoCCAESBAoCCAESBQoDAQgBEgASBAoCAQESAwoBARIFCgMBAQESBAoCCAgSABIAEgMKAQgSBQoDAQEBEgQKAgEBEgQKAggBEgQKAggIEgsKCQgBAQIBAggEBBIGCgQICAEIEgASAwoBARIDCgEBEgQKAggBIgpsUGRlY2ltYWxzIgZzY2FsZTgiDHNjYWxlOEJpZ0ludCIHc2NhbGUxOCIKemVyb0JpZ0ludCIEYmlnMCIEYmlnMSIEYmlnMiILd2F2ZXNTdHJpbmciA1NFUCIKUG9vbEFjdGl2ZSIPUG9vbFB1dERpc2FibGVkIhNQb29sTWF0Y2hlckRpc2FibGVkIgxQb29sU2h1dGRvd24iDmlkeFBvb2xBZGRyZXNzIg1pZHhQb29sU3RhdHVzIhBpZHhQb29sTFBBc3NldElkIg1pZHhBbXRBc3NldElkIg9pZHhQcmljZUFzc2V0SWQiDmlkeEFtdEFzc2V0RGNtIhBpZHhQcmljZUFzc2V0RGNtIg5pZHhJQW10QXNzZXRJZCIQaWR4SVByaWNlQXNzZXRJZCINaWR4TFBBc3NldERjbSISaWR4UG9vbEFtdEFzc2V0QW10IhRpZHhQb29sUHJpY2VBc3NldEFtdCIRaWR4UG9vbExQQXNzZXRBbXQiGWlkeEZhY3RvcnlTdGFraW5nQ29udHJhY3QiGmlkeEZhY3RvcnlTbGlwcGFnZUNvbnRyYWN0IgV0b1gxOCIHb3JpZ1ZhbCINb3JpZ1NjYWxlTXVsdCILdG9YMThCaWdJbnQiB2Zyb21YMTgiA3ZhbCIPcmVzdWx0U2NhbGVNdWx0Igxmcm9tWDE4Um91bmQiBXJvdW5kIgd0b1NjYWxlIgNhbXQiCHJlc1NjYWxlIghjdXJTY2FsZSIDYWJzIglhYnNCaWdJbnQiDHN3YXBDb250cmFjdCICZmMiE2tleU1hbmFnZXJQdWJsaWNLZXkiFmtleU1hbmFnZXJWYXVsdEFkZHJlc3MiAnBsIgJwaCIBaCIJdGltZXN0YW1wIgNwYXUiC3VzZXJBZGRyZXNzIgR0eElkIgNnYXUiAmFhIgJwYSIGa2V5RmVlIgpmZWVEZWZhdWx0IgNmZWUiBmtleUtMcCIVa2V5S0xwUmVmcmVzaGVkSGVpZ2h0IhJrZXlLTHBSZWZyZXNoRGVsYXkiFmtMcFJlZnJlc2hEZWxheURlZmF1bHQiD2tMcFJlZnJlc2hEZWxheSIUa2V5QWRkaXRpb25hbEJhbGFuY2UiB2Fzc2V0SWQiFmtleVN0YWtpbmdBc3NldEJhbGFuY2UiGmdldEFkZGl0aW9uYWxCYWxhbmNlT3JaZXJvIhxnZXRTdGFraW5nQXNzZXRCYWxhbmNlT3JaZXJvIhBrZXlGYWN0b3J5Q29uZmlnIg1rZXlNYXRjaGVyUHViIilrZXlNYXBwaW5nUG9vbENvbnRyYWN0QWRkcmVzc1RvUG9vbEFzc2V0cyITcG9vbENvbnRyYWN0QWRkcmVzcyINa2V5UG9vbENvbmZpZyIJaUFtdEFzc2V0IgtpUHJpY2VBc3NldCIfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZCIMYmFzZUFzc2V0U3RyIhNrZXlBbGxQb29sc1NodXRkb3duIg1rZXlQb29sV2VpZ2h0Ig9jb250cmFjdEFkZHJlc3MiFmtleUFsbG93ZWRMcFNjcmlwdEhhc2giFmtleUZlZUNvbGxlY3RvckFkZHJlc3MiFmtleVNraXBPcmRlclZhbGlkYXRpb24iC3Bvb2xBZGRyZXNzIg90aHJvd09yZGVyRXJyb3IiCm9yZGVyVmFsaWQiDm9yZGVyVmFsaWRJbmZvIgtzZW5kZXJWYWxpZCIMbWF0Y2hlclZhbGlkIhdhZGRyZXNzRnJvbVN0cmluZ09yVGhpcyINYWRkcmVzc1N0cmluZyIHJG1hdGNoMCIBYSIcZ2V0TWFuYWdlclZhdWx0QWRkcmVzc09yVGhpcyIOZmFjdG9yeUFkZHJlc3MiA2ZjYSIBcyIPZ2V0U3RyaW5nT3JGYWlsIgdhZGRyZXNzIgNrZXkiDGdldEludE9yRmFpbCIIdGhyb3dFcnIiA21zZyIGZm10RXJyIg9mYWN0b3J5Q29udHJhY3QiE2ZlZUNvbGxlY3RvckFkZHJlc3MiBWluRmVlIgFAIgZvdXRGZWUiFWtleUFkZHJlc3NXaGl0ZWxpc3RlZCIUaXNBZGRyZXNzV2hpdGVsaXN0ZWQiEGlzR2xvYmFsU2h1dGRvd24iE2dldE1hdGNoZXJQdWJPckZhaWwiDWdldFBvb2xDb25maWciCGFtdEFzc2V0IgpwcmljZUFzc2V0IgxwYXJzZUFzc2V0SWQiBWlucHV0Ig9hc3NldElkVG9TdHJpbmciD3BhcnNlUG9vbENvbmZpZyIKcG9vbENvbmZpZyIQcG9vbENvbmZpZ1BhcnNlZCILJHQwOTc2OTk5MzUiDmNmZ1Bvb2xBZGRyZXNzIg1jZmdQb29sU3RhdHVzIgxjZmdMcEFzc2V0SWQiEGNmZ0Ftb3VudEFzc2V0SWQiD2NmZ1ByaWNlQXNzZXRJZCIWY2ZnQW1vdW50QXNzZXREZWNpbWFscyIVY2ZnUHJpY2VBc3NldERlY2ltYWxzIhBnZXRGYWN0b3J5Q29uZmlnIg9zdGFraW5nQ29udHJhY3QiEHNsaXBwYWdlQ29udHJhY3QiEWRhdGFQdXRBY3Rpb25JbmZvIg1pbkFtdEFzc2V0QW10Ig9pblByaWNlQXNzZXRBbXQiCG91dExwQW10IgVwcmljZSIdc2xpcHBhZ2VUb2xlcmFuY2VQYXNzZWRCeVVzZXIiFXNsaXBwYWdlVG9sZXJhbmNlUmVhbCIIdHhIZWlnaHQiC3R4VGltZXN0YW1wIhJzbGlwYWdlQW10QXNzZXRBbXQiFHNsaXBhZ2VQcmljZUFzc2V0QW10IhFkYXRhR2V0QWN0aW9uSW5mbyIOb3V0QW10QXNzZXRBbXQiEG91dFByaWNlQXNzZXRBbXQiB2luTHBBbXQiDWdldEFjY0JhbGFuY2UiDWJhbGFuY2VPblBvb2wiDHRvdGFsQmFsYW5jZSIPY2FsY1ByaWNlQmlnSW50IghwckFtdFgxOCIIYW1BbXRYMTgiFGNhbGNQcmljZUJpZ0ludFJvdW5kIgdnZXRSYXRlIgVwcm94eSIDaW52IgFyIgdkZXBvc2l0IgZhbW91bnQiDnN0YWtpbmdBc3NldElkIhhjdXJyZW50QWRkaXRpb25hbEJhbGFuY2UiGmN1cnJlbnRTdGFraW5nQXNzZXRCYWxhbmNlIgVhc3NldCINZGVwb3NpdEludm9rZSIUcmVjZWl2ZWRTdGFraW5nQXNzZXQiFG5ld0FkZGl0aW9uYWxCYWxhbmNlIhZuZXdTdGFraW5nQXNzZXRCYWxhbmNlIgh3aXRoZHJhdyIMcHJveHlSYXRlTXVsIg1wcm9maXRBZGRyZXNzIhBjdXJyZW50UHJveHlSYXRlIgdvbGRSYXRlIgxzdGFraW5nQXNzZXQiFG9sZFNlbmRTdGFraW5nQW1vdW50IhZzZW5kU3Rha2luZ0Fzc2V0QW1vdW50Igxwcm9maXRBbW91bnQiDndpdGhkcmF3SW52b2tlIg5yZWNlaXZlZEFzc2V0cyITZ2V0TGVhc2VQcm94eUNvbmZpZyIRcmViYWxhbmNlSW50ZXJuYWwiC3RhcmdldFJhdGlvIgptaW5CYWxhbmNlIhRsZWFzYWJsZVRvdGFsQmFsYW5jZSIXdGFyZ2V0QWRkaXRpb25hbEJhbGFuY2UiBGRpZmYiD3NlbmRBc3NldEFtb3VudCIOZ2V0QXNzZXRBbW91bnQiDnJlYmFsYW5jZUFzc2V0Ig0kdDAxNjIyMDE2MzU2Igppc0xlYXNhYmxlIgtsZWFzZWRSYXRpbyIMcHJveHlBZGRyZXNzIgxwcm94eUFzc2V0SWQiFHN0YWtpbmdQcm9maXRBZGRyZXNzIhl3aXRoZHJhd0FuZFJlYmFsYW5jZUFzc2V0IglnZXRBbW91bnQiDSR0MDE2NzU1MTY4OTEiF25ld1RvdGFsTGVhc2FibGVCYWxhbmNlIg53aXRoZHJhd0Ftb3VudCIXd2l0aGRyYXdBbmRSZWJhbGFuY2VBbGwiFGFtb3VudEFzc2V0T3V0QW1vdW50IhNwcmljZUFzc2V0T3V0QW1vdW50IhJBbUFtdFdpdGhkcmF3U3RhdGUiElByQW10V2l0aGRyYXdTdGF0ZSIQcHJpdmF0ZUNhbGNQcmljZSIKYW1Bc3NldERjbSIKcHJBc3NldERjbSIFYW1BbXQiBXByQW10Ig5hbXRBc3NldEFtdFgxOCIQcHJpY2VBc3NldEFtdFgxOCIKY2FsY1ByaWNlcyIFbHBBbXQiA2NmZyILYW10QXNzZXREY20iDXByaWNlQXNzZXREY20iCHByaWNlWDE4IghscEFtdFgxOCITbHBQcmljZUluQW1Bc3NldFgxOCITbHBQcmljZUluUHJBc3NldFgxOCIPY2FsY3VsYXRlUHJpY2VzIgZwcmljZXMiFGVzdGltYXRlR2V0T3BlcmF0aW9uIgZ0eElkNTgiCnBtdEFzc2V0SWQiCHBtdExwQW10IglscEFzc2V0SWQiCWFtQXNzZXRJZCIJcHJBc3NldElkIgpwb29sU3RhdHVzIgpscEVtaXNzaW9uIglhbUJhbGFuY2UiDGFtQmFsYW5jZVgxOCIJcHJCYWxhbmNlIgxwckJhbGFuY2VYMTgiC2N1clByaWNlWDE4IghjdXJQcmljZSILcG10THBBbXRYMTgiDWxwRW1pc3Npb25YMTgiC291dEFtQW10WDE4IgtvdXRQckFtdFgxOCIIb3V0QW1BbXQiCG91dFByQW10IgVzdGF0ZSIUZXN0aW1hdGVQdXRPcGVyYXRpb24iEXNsaXBwYWdlVG9sZXJhbmNlIgxpbkFtQXNzZXRBbXQiC2luQW1Bc3NldElkIgxpblByQXNzZXRBbXQiC2luUHJBc3NldElkIgppc0V2YWx1YXRlIgZlbWl0THAiDGFtQXNzZXRJZFN0ciIMcHJBc3NldElkU3RyIgtpQW10QXNzZXRJZCINaVByaWNlQXNzZXRJZCIOaW5BbUFzc2V0SWRTdHIiDmluUHJBc3NldElkU3RyIg9pbkFtQXNzZXRBbXRYMTgiD2luUHJBc3NldEFtdFgxOCIMdXNlclByaWNlWDE4IgNyZXMiC3NsaXBwYWdlWDE4IhRzbGlwcGFnZVRvbGVyYW5jZVgxOCIKcHJWaWFBbVgxOCIKYW1WaWFQclgxOCIMZXhwZWN0ZWRBbXRzIhFleHBBbXRBc3NldEFtdFgxOCITZXhwUHJpY2VBc3NldEFtdFgxOCIJY2FsY0xwQW10Ig5jYWxjQW1Bc3NldFBtdCIOY2FsY1ByQXNzZXRQbXQiDHNsaXBwYWdlQ2FsYyIJZW1pdExwQW10IgZhbURpZmYiBnByRGlmZiILY29tbW9uU3RhdGUiB2NhbGNLTHAiDWFtb3VudEJhbGFuY2UiDHByaWNlQmFsYW5jZSIQYW1vdW50QmFsYW5jZVgxOCIPcHJpY2VCYWxhbmNlWDE4Igp1cGRhdGVkS0xwIg5jYWxjQ3VycmVudEtMcCIQYW1vdW50QXNzZXREZWx0YSIPcHJpY2VBc3NldERlbHRhIhRscEFzc2V0RW1pc3Npb25EZWx0YSISYW1vdW50QXNzZXRCYWxhbmNlIhFwcmljZUFzc2V0QmFsYW5jZSIPbHBBc3NldEVtaXNzaW9uIgpjdXJyZW50S0xwIhJyZWZyZXNoS0xwSW50ZXJuYWwiF2Ftb3VudEFzc2V0QmFsYW5jZURlbHRhIhZwcmljZUFzc2V0QmFsYW5jZURlbHRhIgdhY3Rpb25zIhNza2lwT3JkZXJWYWxpZGF0aW9uIhJ2YWxpZGF0ZVVwZGF0ZWRLTHAiBm9sZEtMcCIbdmFsaWRhdGVNYXRjaGVyT3JkZXJBbGxvd2VkIgVvcmRlciIRYW1vdW50QXNzZXRBbW91bnQiEHByaWNlQXNzZXRBbW91bnQiDSR0MDI5NTE3Mjk3MjkiA2tMcCINJHQwMzAxNjkzMDI2OSINdW51c2VkQWN0aW9ucyIGa0xwTmV3Igxpc09yZGVyVmFsaWQiBGluZm8iCWNvbW1vbkdldCIBaSIDcG10IgZwbXRBbXQiDWlzR2V0RGlzYWJsZWQiCWNvbW1vblB1dCIKYW1Bc3NldFBtdCIKcHJBc3NldFBtdCIGZXN0UHV0Ig1pc1B1dERpc2FibGVkIgRlbWl0IgdlbWl0SW52Ig1lbWl0SW52TGVnYWN5IhVsZWdhY3lGYWN0b3J5Q29udHJhY3QiB3Rha2VGZWUiCWZlZUFtb3VudCIPY2FsY1B1dE9uZVRva2VuIhBwYXltZW50QW1vdW50UmF3Ig5wYXltZW50QXNzZXRJZCIGaXNFdmFsIhBhbW91bnRCYWxhbmNlUmF3Ig9wcmljZUJhbGFuY2VSYXciFHBheW1lbnRJbkFtb3VudEFzc2V0Ig0kdDAzMzQ1NTMzNzQ4IhBhbW91bnRCYWxhbmNlT2xkIg9wcmljZUJhbGFuY2VPbGQiDSR0MDMzNzUyMzM5MDEiFGFtb3VudEFzc2V0QW1vdW50UmF3IhNwcmljZUFzc2V0QW1vdW50UmF3Ig0kdDAzNDAzMzM0MDk3Ig1wYXltZW50QW1vdW50IhBhbW91bnRCYWxhbmNlTmV3Ig9wcmljZUJhbGFuY2VOZXciC3ByaWNlTmV3WDE4IghwcmljZU5ldyIOcGF5bWVudEJhbGFuY2UiFHBheW1lbnRCYWxhbmNlQmlnSW50IgxzdXBwbHlCaWdJbnQiC2NoZWNoU3VwcGx5Ig1kZXBvc2l0QmlnSW50Igtpc3N1ZUFtb3VudCILcHJpY2VPbGRYMTgiCHByaWNlT2xkIgRsb3NzIg0kdDAzNTc3ODM1OTQ1IgdiYWxhbmNlIg9pc3N1ZUFtb3VudEJvdGgiD2NhbGNHZXRPbmVUb2tlbiIKb3V0QXNzZXRJZCIGY2hlY2tzIhBvdXRJbkFtb3VudEFzc2V0Ig1iYWxhbmNlQmlnSW50IhhvdXRJbkFtb3VudEFzc2V0RGVjaW1hbHMiDGFtQmFsYW5jZU9sZCIMcHJCYWxhbmNlT2xkIgpvdXRCYWxhbmNlIhBvdXRCYWxhbmNlQmlnSW50Ig5yZWRlZW1lZEJpZ0ludCIJYW1vdW50UmF3Ig0kdDAzODAyMzM4MDc5Igt0b3RhbEFtb3VudCINJHQwMzgwODMzODMwOSILb3V0QW1BbW91bnQiC291dFByQW1vdW50IgxhbUJhbGFuY2VOZXciDHByQmFsYW5jZU5ldyIYYW1vdW50Qm90aEluUGF5bWVudEFzc2V0IhZtYW5hZ2VyUHVibGljS2V5T3JVbml0IhNtYW5hZ2VyVmF1bHRBZGRyZXNzIglpc01hbmFnZXIiAnBrIgttdXN0TWFuYWdlciICcGQiDWNsZWFuQW1vdW50SW4iCWlzUmV2ZXJzZSINZmVlUG9vbEFtb3VudCINJHQwNDAxNjc0MDQ3MiIIYXNzZXRPdXQiB2Fzc2V0SW4iEnBvb2xBc3NldEluQmFsYW5jZSITcG9vbEFzc2V0T3V0QmFsYW5jZSIJYW1vdW50T3V0IgRvbGRLIgRuZXdLIgZjaGVja0siDGFtb3VudE91dE1pbiIJYWRkcmVzc1RvIgtzd2FwQ29udGFjdCISaXNQb29sU3dhcERpc2FibGVkIg5pc1N3YXBEaXNhYmxlZCIIY2hlY2tNaW4iEXJlZnJlc2hLTHBBY3Rpb25zIg5yZWJhbGFuY2VTdGF0ZSINd2l0aGRyYXdTdGF0ZSIPc2hvdWxkQXV0b1N0YWtlIgRhbUlkIgRwcklkIgxzbGlwcGFnZUFJbnYiDHNsaXBwYWdlUEludiIKbHBUcmFuc2ZlciILc2xwU3Rha2VJbnYiDSR0MDQ1NjQ4NDYxMTAiEWlzVXBkYXRlZEtMcFZhbGlkIgNyZWIiC21heFNsaXBwYWdlIg0kdDA0NjcyMjQ2Nzg3IgxtaW5PdXRBbW91bnQiCWF1dG9TdGFrZSIgaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiB3BheW1lbnQiDSR0MDQ4MDE2NDgxNjgiBWJvbnVzIhNlbWl0QW1vdW50RXN0aW1hdGVkIgplbWl0QW1vdW50IghzdGFrZUludiIHc2VuZEZlZSINJHQwNDg3NTQ0ODk1MSINJHQwNDg5NTQ0OTA2MiINJHQwNDk0MTc0OTU3NCINb3V0QXNzZXRJZFN0ciINJHQwNTA0OTY1MDY0OSIPYW1vdW50RXN0aW1hdGVkIgdidXJuSW52Ig1hc3NldFRyYW5zZmVyIg0kdDA1MTMxMzUxNTYwIhBmZWVBbW91bnRGb3JDYWxjIg0kdDA1MTU2MzUxNjcxIg0kdDA1MTk0OTUyMTA1Ig11bnN0YWtlQW1vdW50Igp1bnN0YWtlSW52Ig0kdDA1MzA0NzUzMTk4Ig0kdDA1Mzg1NzU0MTA0Ig0kdDA1NDEwNzU0MjE1IhRidXJuTFBBc3NldE9uRmFjdG9yeSINJHQwNTUzMTA1NTM5MSISbm9MZXNzVGhlbkFtdEFzc2V0IhRub0xlc3NUaGVuUHJpY2VBc3NldCINJHQwNTY0ODY1NjU2NyINY2hlY2tQYXltZW50cyIPY2hlY2tQb29sU3RhdHVzIg0kdDA1NzkxNTU3OTk2IhVub0xlc3NUaGVuQW1vdW50QXNzZXQiDGNoZWNrQW1vdW50cyINJHQwNTk0NzQ1OTU1NSILYW10QXNzZXRTdHIiDXByaWNlQXNzZXRTdHIiGGxhc3RSZWZyZXNoZWRCbG9ja0hlaWdodCIdY2hlY2tMYXN0UmVmcmVzaGVkQmxvY2tIZWlnaHQiDSR0MDYwNzU5NjA4MjMiEGtMcFVwZGF0ZUFjdGlvbnMiCmFtdEFzc2V0SWQiDHByaWNlQXNzZXRJZCINcG9vbExQQmFsYW5jZSISYWNjQW10QXNzZXRCYWxhbmNlIhRhY2NQcmljZUFzc2V0QmFsYW5jZSIKcHJpY2VzTGlzdCIPbHBBbXRBc3NldFNoYXJlIhFscFByaWNlQXNzZXRTaGFyZSIKcG9vbFdlaWdodCIMY3VyUHJpY2VDYWxjIgxhbUJhbGFuY2VSYXciDHByQmFsYW5jZVJhdyIPYW1CYWxhbmNlUmF3WDE4Ig9wckJhbGFuY2VSYXdYMTgiEHBheW1lbnRMcEFzc2V0SWQiDHBheW1lbnRMcEFtdCICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5IgptYXRjaGVyUHViIg0kdDA2OTQ4NTY5NjAyIgduZXdIYXNoIgthbGxvd2VkSGFzaCILY3VycmVudEhhc2iEAQABYQAIAAFiAIDC1y8AAWMJALYCAQCAwtcvAAFkCQC2AgEAgICQu7rWrfANAAFlCQC2AgEAAAABZgkAtgIBAAAAAWcJALYCAQABAAFoCQC2AgEAAgABaQIFV0FWRVMAAWoCAl9fAAFrAAEAAWwAAgABbQADAAFuAAQAAW8AAQABcAACAAFxAAMAAXIABAABcwAFAAF0AAYAAXUABwABdgAIAAF3AAkAAXgACgABeQABAAF6AAIAAUEAAwABQgABAAFDAAcBAUQCAUUBRgkAvAIDCQC2AgEFAUUFAWQJALYCAQUBRgEBRwIBRQFGCQC8AgMFAUUFAWQFAUYBAUgCAUkBSgkAoAMBCQC8AgMFAUkJALYCAQUBSgUBZAEBSwMBSQFKAUwJAKADAQkAvQIEBQFJCQC2AgEFAUoFAWQFAUwBAU0DAU4BTwFQCQBrAwUBTgUBTwUBUAEBUQEBSQMJAGYCAAAFAUkJAQEtAQUBSQUBSQEBUgEBSQMJAL8CAgUBZQUBSQkAvgIBBQFJBQFJAQFTAAIQJXNfX3N3YXBDb250cmFjdAEBVAACEyVzX19mYWN0b3J5Q29udHJhY3QBAVUAAhQlc19fbWFuYWdlclB1YmxpY0tleQEBVgACFyVzX19tYW5hZ2VyVmF1bHRBZGRyZXNzAQFXAAIRJXMlc19fcHJpY2VfX2xhc3QBAVgCAVkBWgkAuQkCCQDMCAICGCVzJXMlZCVkX19wcmljZV9faGlzdG9yeQkAzAgCCQCkAwEFAVkJAMwIAgkApAMBBQFaBQNuaWwFAWoBAmFhAgJhYgJhYwkArAICCQCsAgIJAKwCAgILJXMlcyVzX19QX18FAmFiAgJfXwUCYWMBAmFkAgJhYgJhYwkArAICCQCsAgIJAKwCAgILJXMlcyVzX19HX18FAmFiAgJfXwUCYWMBAmFlAAIPJXNfX2Ftb3VudEFzc2V0AQJhZgACDiVzX19wcmljZUFzc2V0AAJhZwIHJXNfX2ZlZQACYWgJAGsDAAoFAWIAkE4AAmFpCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmFnBQJhaAACYWoJALkJAgkAzAgCAgIlcwkAzAgCAgNrTHAFA25pbAUBagACYWsJALkJAgkAzAgCAgIlcwkAzAgCAhJrTHBSZWZyZXNoZWRIZWlnaHQFA25pbAUBagACYWwJALkJAgkAzAgCAgIlcwkAzAgCAg9yZWZyZXNoS0xwRGVsYXkFA25pbAUBagACYW0AHgACYW4JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCYWwFAmFtAQJhbwECYXAJALkJAgkAzAgCAgQlcyVzCQDMCAICDXN0YWtlZEJhbGFuY2UJAMwIAgUCYXAFA25pbAUBagECYXEBAmFwCQC5CQIJAMwIAgIEJXMlcwkAzAgCAhFzaGFyZUFzc2V0QmFsYW5jZQkAzAgCBQJhcAUDbmlsBQFqAQJhcgECYXAJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmFvAQUCYXAAAAECYXMBAmFwCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJhcQEFAmFwAAABAmF0AAIRJXNfX2ZhY3RvcnlDb25maWcBAmF1AAIYJXMlc19fbWF0Y2hlcl9fcHVibGljS2V5AQJhdgECYXcJAKwCAgkArAICAgglcyVzJXNfXwUCYXcCIF9fbWFwcGluZ3NfX3Bvb2xDb250cmFjdDJMcEFzc2V0AQJheAICYXkCYXoJAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FAmF5AgJfXwUCYXoCCF9fY29uZmlnAQJhQQECYUIJAKwCAgIoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUCYUIBAmFDAAIMJXNfX3NodXRkb3duAQJhRAECYUUJAKwCAgISJXMlc19fcG9vbFdlaWdodF9fBQJhRQECYUYAAhclc19fYWxsb3dlZExwU2NyaXB0SGFzaAACYUcCFyVzX19mZWVDb2xsZWN0b3JBZGRyZXNzAQJhSAECYUkJAKwCAgIbJXMlc19fc2tpcE9yZGVyVmFsaWRhdGlvbl9fBQJhSQECYUoEAmFLAmFMAmFNAmFOCQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICJG9yZGVyIHZhbGlkYXRpb24gZmFpbGVkOiBvcmRlclZhbGlkPQkApQMBBQJhSwICICgFAmFMAgEpAg0gc2VuZGVyVmFsaWQ9CQClAwEFAmFNAg4gbWF0Y2hlclZhbGlkPQkApQMBBQJhTgECYU8BAmFQBAJhUQkApggBBQJhUAMJAAECBQJhUQIHQWRkcmVzcwQCYVIFAmFRBQJhUgUEdGhpcwECYVMABAJhVAQCYVEJAKIIAQkBAVQAAwkAAQIFAmFRAgZTdHJpbmcEAmFVBQJhUQkBAmFPAQUCYVUFBHRoaXMEAmFRCQCdCAIFAmFUCQEBVgADCQABAgUCYVECBlN0cmluZwQCYVYFAmFRCQECYU8BBQJhVgUEdGhpcwECYVcCAmFYAmFZCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYVgFAmFZCQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmFYCQDMCAICAS4JAMwIAgUCYVkJAMwIAgIPIGlzIG5vdCBkZWZpbmVkBQNuaWwCAAECYVoCAmFYAmFZCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUCYVgFAmFZCQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmFYCQDMCAICAS4JAMwIAgUCYVkJAMwIAgIPIGlzIG5vdCBkZWZpbmVkBQNuaWwCAAECYmEBAmJiCQACAQkAuQkCCQDMCAICCGxwLnJpZGU6CQDMCAIFAmJiBQNuaWwCASABAmJjAQJiYgkAuQkCCQDMCAICCGxwLnJpZGU6CQDMCAIFAmJiBQNuaWwCASAAAmJkCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYVcCBQR0aGlzCQEBVAAAAmJlCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYVcCBQJiZAUCYUcAAmJmCgACYmcJAPwHBAUCYmQCEGdldEluRmVlUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJiZwIDSW50BQJiZwkAAgEJAKwCAgkAAwEFAmJnAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQAAmJoCgACYmcJAPwHBAUCYmQCEWdldE91dEZlZVJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYmcCA0ludAUCYmcJAAIBCQCsAgIJAAMBBQJiZwIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AQJiaQECYVgJALkJAgkAzAgCAgQlcyVzCQDMCAICC3doaXRlbGlzdGVkCQDMCAIJAKUIAQUCYVgFA25pbAUBagECYmoBAmFYCQELdmFsdWVPckVsc2UCCQCbCAIFAmJkCQECYmkBBQJhWAcBAmJrAAkBC3ZhbHVlT3JFbHNlAgkAmwgCBQJiZAkBAmFDAAcBAmJsAAkA2QQBCQECYVcCBQJiZAkBAmF1AAECYm0ABAJibgkBAmFXAgUEdGhpcwkBAmFlAAQCYm8JAQJhVwIFBHRoaXMJAQJhZgAEAmF6CQECYVoCBQJiZAkBAmFBAQUCYm8EAmF5CQECYVoCBQJiZAkBAmFBAQUCYm4JALUJAgkBAmFXAgUCYmQJAQJheAIJAKQDAQUCYXkJAKQDAQUCYXoFAWoBAmJwAQJicQMJAAACBQJicQUBaQUEdW5pdAkA2QQBBQJicQECYnIBAmJxAwkAAAIFAmJxBQR1bml0BQFpCQDYBAEJAQV2YWx1ZQEFAmJxAQJicwECYnQJAJkKBwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJidAUBbwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJ0BQFwCQDZBAEJAJEDAgUCYnQFAXEJAQJicAEJAJEDAgUCYnQFAXIJAQJicAEJAJEDAgUCYnQFAXMJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJidAUBdAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJ0BQF1AAJidQkBAmJzAQkBAmJtAAACYnYFAmJ1AAJidwgFAmJ2Al8xAAJieAgFAmJ2Al8yAAJieQgFAmJ2Al8zAAJieggFAmJ2Al80AAJiQQgFAmJ2Al81AAJiQggFAmJ2Al82AAJiQwgFAmJ2Al83AQJiRAAJALUJAgkBAmFXAgUCYmQJAQJhdAAFAWoAAmJFCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCCQECYkQABQFCAhlpbmNvcnJlY3Qgc3Rha2luZyBhZGRyZXNzAAJiRgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgkBAmJEAAUBQwIZaW5jb3JyZWN0IHN0YWtpbmcgYWRkcmVzcwECYkcKAmJIAmJJAmJKAmJLAmJMAmJNAmJOAmJPAmJQAmJRCQC5CQIJAMwIAgIUJWQlZCVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJiSAkAzAgCCQCkAwEFAmJJCQDMCAIJAKQDAQUCYkoJAMwIAgkApAMBBQJiSwkAzAgCCQCkAwEFAmJMCQDMCAIJAKQDAQUCYk0JAMwIAgkApAMBBQJiTgkAzAgCCQCkAwEFAmJPCQDMCAIJAKQDAQUCYlAJAMwIAgkApAMBBQJiUQUDbmlsBQFqAQJiUgYCYlMCYlQCYlUCYksCYk4CYk8JALkJAgkAzAgCAgwlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJiUwkAzAgCCQCkAwEFAmJUCQDMCAIJAKQDAQUCYlUJAMwIAgkApAMBBQJiSwkAzAgCCQCkAwEFAmJOCQDMCAIJAKQDAQUCYk8FA25pbAUBagECYlYBAmFwBAJiVwMJAAACBQJhcAIFV0FWRVMICQDvBwEFBHRoaXMJYXZhaWxhYmxlCQDwBwIFBHRoaXMJANkEAQUCYXAEAmJYCQBlAgkAZAIFAmJXCQECYXIBBQJhcAkBAmFzAQUCYXAJAJYDAQkAzAgCAAAJAMwIAgUCYlgFA25pbAECYlkCAmJaAmNhCQC8AgMFAmJaBQFkBQJjYQECY2IDAmJaAmNhAUwJAL0CBAUCYloFAWQFAmNhBQFMAQJjYwECY2QEAmNlCQD8BwQFAmNkAgdnZXRSYXRlBQNuaWwFA25pbAMJAAACBQJjZQUCY2UEAmFRBQJjZQMJAAECBQJhUQIDSW50BAJjZgUCYVEFAmNmCQECYmEBAiBwcm94eS5nZXRSYXRlKCkgdW5leHBlY3RlZCB2YWx1ZQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECY2cEAmFwAmNoAmNpAmNkBAJjagkBAmFyAQUCYXADCQAAAgUCY2oFAmNqBAJjawkBAmFzAQUCY2kDCQAAAgUCY2sFAmNrBAJjbAkBAmJwAQUCYXADCQBmAgUCY2gAAAQCY20JAPwHBAUCY2QCB2RlcG9zaXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCY2wFAmNoBQNuaWwDCQAAAgUCY20FAmNtBAJhUQUCY20DCQABAgUCYVECA0ludAQCY24FAmFRBAJjbwkAZAIFAmNqBQJjaAQCY3AJAGQCBQJjawUCY24JAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhbwEFAmFwBQJjbwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFxAQUCY2kFAmNwBQNuaWwFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJjcQYCYXACY2gCY2kCY2QCY3ICY3MEAmNqCQECYXIBBQJhcAMJAAACBQJjagUCY2oEAmNrCQECYXMBBQJjaQMJAAACBQJjawUCY2sEAmN0CQECY2MBBQJjZAMJAAACBQJjdAUCY3QEAmN1CQBrAwUCY3IFAmNqBQJjawQCY3YJAQJicAEFAmNpBAJjdwkAawMFAmNyBQJjaAUCY3UEAmN4CQBrAwUCY3IFAmNoBQJjdAQCY3kJAJYDAQkAzAgCAAAJAMwIAgkAZQIFAmN3BQJjeAUDbmlsAwkAZgIFAmN4AAAEAmN6CQD8BwQFAmNkAgh3aXRoZHJhdwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJjdgUCY3gFA25pbAMJAAACBQJjegUCY3oEAmFRBQJjegMJAAECBQJhUQIDSW50BAJjQQUCYVEEAmNvCQBlAgUCY2oFAmNBBAJjcAkAZQIJAGUCBQJjawUCY3gFAmN5CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYW8BBQJhcAUCY28JAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhcQEFAmNpBQJjcAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJjcwUCY3kJAQJicAEFAmNpBQNuaWwFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJjQgECYXAEAmFRCQD8BwQFAmJkAhpnZXRQb29sTGVhc2VDb25maWdSRUFET05MWQkAzAgCCQClCAEFBHRoaXMJAMwIAgUCYXAFA25pbAUDbmlsAwkAAQIFAmFRAjAoQm9vbGVhbiwgSW50LCBJbnQsIFN0cmluZywgU3RyaW5nLCBJbnQsIFN0cmluZykEAmFSBQJhUQUCYVIJAQJiYQEJAKwCAgkArAICAgFbBQJhcAIdXSBnZXRMZWFzZVByb3h5Q29uZmlnKCkgZXJyb3IBAmNDBwJjRAJhcAJjaQJjRQJjZAJjcgJjcwQCY2sJAQJhcwEFAmNpAwkAAAIFAmNrBQJjawQCY2oDCQECIT0CBQJjawAACQECYXIBBQJhcAAAAwkAAAIFAmNqBQJjagQCY0YJAJYDAQkAzAgCAAAJAMwIAgkAZQIJAQJiVgEFAmFwBQJjRQUDbmlsBAJjRwkAawMFAmNEBQJjRgBkBAJjSAkAZQIFAmNqBQJjRwMJAAACBQJjSAAABQNuaWwDCQBmAgAABQJjSAQCY0kJAQEtAQUCY0gJAQJjZwQFAmFwBQJjSQUCY2kFAmNkBAJjSgUCY0gJAQJjcQYFAmFwBQJjSgUCY2kFAmNkBQJjcgUCY3MJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmNLAQJhcAQCY0wJAQJjQgEFAmFwBAJjTQgFAmNMAl8xBAJjTggFAmNMAl8yBAJjRQgFAmNMAl8zBAJjTwgFAmNMAl80BAJjUAgFAmNMAl81BAJjcggFAmNMAl82BAJjUQgFAmNMAl83AwUCY00JAQJjQwcFAmNOBQJhcAUCY1AFAmNFCQERQGV4dHJOYXRpdmUoMTA2MikBBQJjTwUCY3IJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmNRBQNuaWwBAmNSAgJhcAJjUwQCY1QJAQJjQgEFAmFwBAJjTQgFAmNUAl8xBAJjTggFAmNUAl8yBAJjRQgFAmNUAl8zBAJjTwgFAmNUAl80BAJjUAgFAmNUAl81BAJjcggFAmNUAl82BAJjUQgFAmNUAl83AwUCY00EAmNrCQECYXMBBQJjUAMJAAACBQJjawUCY2sEAmNqAwkBAiE9AgUCY2sAAAkBAmFyAQUCYXAAAAMJAAACBQJjagUCY2oEAmNVCQCWAwEJAMwIAgAACQDMCAIJAGUCCQBlAgkBAmJWAQUCYXAFAmNTBQJjRQUDbmlsAwkAAAIFAmNVBQJjVQQCY28JAGsDBQJjTgUCY1UAZAMJAAACBQJjbwUCY28EAmNWCQBlAgUCY2oFAmNvAwkAAAIFAmNWBQJjVgMJAAACBQJjVgAABQNuaWwDCQBmAgAABQJjVgkBAmNnBAUCYXAJAQEtAQUCY1YFAmNQCQERQGV4dHJOYXRpdmUoMTA2MikBBQJjTwkBAmNxBgUCYXAFAmNWBQJjUAkBEUBleHRyTmF0aXZlKDEwNjIpAQUCY08FAmNyCQERQGV4dHJOYXRpdmUoMTA2MikBBQJjUQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgUDbmlsAQJjVwICY1gCY1kEAmNaCQECY1ICCQECYVcCBQR0aGlzCQECYWUABQJjWAQCZGEJAQJjUgIJAQJhVwIFBHRoaXMJAQJhZgAFAmNZCQDOCAIFAmNaBQJkYQECZGIEAmRjAmRkAmRlAmRmBAJkZwkBAUQCBQJkZQUCZGMEAmRoCQEBRAIFAmRmBQJkZAkBAmJZAgUCZGgFAmRnAQJkaQMCZGUCZGYCZGoEAmRrCQECYm0ABAJkbAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRrBQF0BAJkbQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRrBQF1BAJkbgkBAmRiBAUCZGwFAmRtBQJkZQUCZGYEAmNhCQEBRAIFAmRlBQJkbAQCYloJAQFEAgUCZGYFAmRtBAJkbwkBAUQCBQJkagUBYgQCZHAJAQJiWQIFAmNhBQJkbwQCZHEJAQJiWQIFAmJaBQJkbwkAzAgCBQJkbgkAzAgCBQJkcAkAzAgCBQJkcQUDbmlsAQJkcgMCZGUCZGYCZGoEAmRzCQECZGkDBQJkZQUCZGYFAmRqCQDMCAIJAQFIAgkAkQMCBQJkcwAABQFiCQDMCAIJAQFIAgkAkQMCBQJkcwABBQFiCQDMCAIJAQFIAgkAkQMCBQJkcwACBQFiBQNuaWwBAmR0BAJkdQJkdgJkdwJhYgQCZGsJAQJibQAEAmR4CQCRAwIFAmRrBQFxBAJkeQkAkQMCBQJkawUBcgQCZHoJAJEDAgUCZGsFAXMEAmRjCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGsFAXQEAmRkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGsFAXUEAmRBCQCRAwIFAmRrBQFwBAJkQggJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBCQDZBAEFAmR4CQCsAgIJAKwCAgIGQXNzZXQgBQJkeAIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkDCQECIT0CBQJkeAUCZHYJAAIBAhVJbnZhbGlkIGFzc2V0IHBhc3NlZC4EAmRDCQECYlYBBQJkeQQCZEQJAQFEAgUCZEMFAmRjBAJkRQkBAmJWAQUCZHoEAmRGCQEBRAIFAmRFBQJkZAQCZEcJAQJiWQIFAmRGBQJkRAQCZEgJAQFIAgUCZEcFAWIEAmRJCQEBRAIFAmR3BQFiBAJkSgkBAUQCBQJkQgUBYgQCZEsJALwCAwUCZEQFAmRJBQJkSgQCZEwJALwCAwUCZEYFAmRJBQJkSgQCZE0JAQFLAwUCZEsFAmRjBQVGTE9PUgQCZE4JAQFLAwUCZEwFAmRkBQVGTE9PUgQCZE8DCQAAAgUCZHUCAAUDbmlsCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFiBQJkTQMJAAACBQJkeQIFV0FWRVMFBHVuaXQJANkEAQUCZHkJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYWIFAmROAwkAAAIFAmR6AgVXQVZFUwUEdW5pdAkA2QQBBQJkegkAzAgCCQELU3RyaW5nRW50cnkCCQECYWQCCQClCAEFAmFiBQJkdQkBAmJSBgUCZE0FAmROBQJkdwUCZEgFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFXAAUCZEgJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFYAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZEgFA25pbAkAnAoKBQJkTQUCZE4FAmR5BQJkegUCZEMFAmRFBQJkQgUCZEcFAmRBBQJkTwECZFAJAmR1AmRRAmRSAmRTAmRUAmRVAmFiAmRWAmRXBAJkawkBAmJtAAQCZHgJANkEAQkAkQMCBQJkawUBcQQCZFgJAJEDAgUCZGsFAXIEAmRZCQCRAwIFAmRrBQFzBAJkWgkAkQMCBQJkawUBdgQCZWEJAJEDAgUCZGsFAXcEAmRsCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGsFAXQEAmRtCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGsFAXUEAmRBCQCRAwIFAmRrBQFwBAJkQggJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJkeAkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJkeAIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmViCQDYBAEJAQt2YWx1ZU9yRWxzZQIFAmRTCQDZBAECBVdBVkVTBAJlYwkA2AQBCQELdmFsdWVPckVsc2UCBQJkVQkA2QQBAgVXQVZFUwMDCQECIT0CBQJkWAUCZWIGCQECIT0CBQJkWQUCZWMJAAIBAiJJbnZhbGlkIGFtdCBvciBwcmljZSBhc3NldCBwYXNzZWQuBAJkQwMFAmRWCQECYlYBBQJkWAkAZQIJAQJiVgEFAmRYBQJkUgQCZEUDBQJkVgkBAmJWAQUCZFkJAGUCCQECYlYBBQJkWQUCZFQEAmVkCQEBRAIFAmRSBQJkbAQCZWUJAQFEAgUCZFQFAmRtBAJlZgkBAmJZAgUCZWUFAmVkBAJkRAkBAUQCBQJkQwUCZGwEAmRGCQEBRAIFAmRFBQJkbQQCZWcDCQAAAgUCZEIAAAQCZEcFAWUEAmVoBQFlBAJkbwkAdgYJALkCAgUCZWQFAmVlAAAJALYCAQAFAAEAAAUERE9XTgkAlwoFCQEBSAIFAmRvBQFiCQEBSAIFAmVkBQJkbAkBAUgCBQJlZQUCZG0JAQJiWQIJALcCAgUCZEYFAmVlCQC3AgIFAmREBQJlZAUCZWgEAmRHCQECYlkCBQJkRgUCZEQEAmVoCQC8AgMJAQFSAQkAuAICBQJkRwUCZWYFAWQFAmRHBAJlaQkBAUQCBQJkUQUBYgMDCQECIT0CBQJkRwUBZQkAvwICBQJlaAUCZWkHCQACAQkArAICCQCsAgIJAKwCAgIPUHJpY2Ugc2xpcHBhZ2UgCQCmAwEFAmVoAh4gZXhjZWVkZWQgdGhlIHBhc3NlZCBsaW1pdCBvZiAJAKYDAQUCZWkEAmRKCQEBRAIFAmRCBQFiBAJlagkAvQIEBQJlZAkBAmNiAwUCZEYFAmREBQdDRUlMSU5HBQFkBQdDRUlMSU5HBAJlawkAvQIEBQJlZQUBZAkBAmNiAwUCZEYFAmREBQVGTE9PUgUHQ0VJTElORwQCZWwDCQC/AgIFAmVqBQJlZQkAlAoCBQJlawUCZWUJAJQKAgUCZWQFAmVqBAJlbQgFAmVsAl8xBAJlbggFAmVsAl8yBAJkbwkAvQIEBQJkSgUCZW4FAmRGBQVGTE9PUgkAlwoFCQEBSwMFAmRvBQFiBQVGTE9PUgkBAUsDBQJlbQUCZGwFB0NFSUxJTkcJAQFLAwUCZW4FAmRtBQdDRUlMSU5HBQJkRwUCZWgEAmVvCAUCZWcCXzEEAmVwCAUCZWcCXzIEAmVxCAUCZWcCXzMEAmRICQEBSAIIBQJlZwJfNAUBYgQCZXIJAQFIAggFAmVnAl81BQFiAwkAZwIAAAUCZW8JAAIBAjZJbnZhbGlkIGNhbGN1bGF0aW9ucy4gTFAgY2FsY3VsYXRlZCBpcyBsZXNzIHRoYW4gemVyby4EAmVzAwkBASEBBQJkVwAABQJlbwQCZXQJAGUCBQJkUgUCZXAEAmV1CQBlAgUCZFQFAmVxBAJldgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVcABQJkSAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVgCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJkSAkAzAgCCQELU3RyaW5nRW50cnkCCQECYWECBQJhYgUCZHUJAQJiRwoFAmVwBQJlcQUCZXMFAmRIBQJkUQUCZXIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmV0BQJldQUDbmlsCQCfCg0FAmVvBQJlcwUCZEgFAmRDBQJkRQUCZEIFAmR4BQJkQQUCZXYFAmV0BQJldQUCZFMFAmRVAQJldwMCZXgCZXkCZEIEAmV6CQEBRwIFAmV4CQC2AgEFAmJCBAJlQQkBAUcCBQJleQkAtgIBBQJiQwQCZUIJALwCAwkAdgYJALkCAgUCZXoFAmVBAAAJALYCAQAFAAEAEgUERE9XTgUBZwUCZEIDCQAAAgUCZEIFAWYFAWYFAmVCAQJlQwMCZUQCZUUCZUYEAmVHCQC4AgIJALYCAQkBAmJWAQkBAmJyAQUCYnoFAmVEBAJlSAkAuAICCQC2AgEJAQJiVgEJAQJicgEFAmJBBQJlRQQCZUkJALgCAgkAtgIBCAkBBXZhbHVlAQkA7AcBBQJieQhxdWFudGl0eQUCZUYEAmVKCQECZXcDBQJlRwUCZUgFAmVJBQJlSgECZUsDAmVMAmVNAmVGBAJlRwkAZAIJAQJiVgEJAQJicgEFAmJ6BQJlTAQCZUgJAGQCCQECYlYBCQECYnIBBQJiQQUCZU0EAmVJCQBkAggJAQV2YWx1ZQEJAOwHAQUCYnkIcXVhbnRpdHkFAmVGBAJlQgkBAmV3AwkAtgIBBQJlRwkAtgIBBQJlSAkAtgIBBQJlSQQCZU4JAMwIAgkBDEludGVnZXJFbnRyeQIFAmFrBQZoZWlnaHQJAMwIAgkBC1N0cmluZ0VudHJ5AgUCYWoJAKYDAQUCZUIFA25pbAkAlAoCBQJlTgUCZUIBAmVPAAkBC3ZhbHVlT3JFbHNlAgkAmwgCBQJiZAkBAmFIAQkApQgBBQR0aGlzBwECZVACAmVRAmVCAwkAwAICBQJlQgUCZVEGCQECYmEBCQC5CQIJAMwIAgIidXBkYXRlZCBLTHAgbG93ZXIgdGhhbiBjdXJyZW50IEtMcAkAzAgCCQCmAwEFAmVRCQDMCAIJAKYDAQUCZUIFA25pbAIBIAECZVIBAmVTBAJlRwkBAmJWAQkBAmJyAQUCYnoEAmVICQECYlYBCQECYnIBBQJiQQQCZVQIBQJlUwZhbW91bnQEAmVVCQBuBAgFAmVTBmFtb3VudAgFAmVTBXByaWNlBQFiBQVGTE9PUgQCZVYDCQAAAggFAmVTCW9yZGVyVHlwZQUDQnV5CQCUCgIFAmVUCQEBLQEFAmVVCQCUCgIJAQEtAQUCZVQFAmVVBAJlTAgFAmVWAl8xBAJlTQgFAmVWAl8yAwMDCQECYmsABgkAAAIFAmJ4BQFtBgkAAAIFAmJ4BQFuCQACAQIcRXhjaGFuZ2Ugb3BlcmF0aW9ucyBkaXNhYmxlZAMDCQECIT0CCAgFAmVTCWFzc2V0UGFpcgthbW91bnRBc3NldAUCYnoGCQECIT0CCAgFAmVTCWFzc2V0UGFpcgpwcmljZUFzc2V0BQJiQQkAAgECE1dyb25nIG9yZGVyIGFzc2V0cy4EAmVXCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKgDAQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQJhagIBMAkBAmJjAQILaW52YWxpZCBrTHAEAmVYCQECZUsDBQJlTAUCZU0AAAQCZVkIBQJlWAJfMQQCZVoIBQJlWAJfMgQCZmEJAMACAgUCZVoFAmVXBAJmYgkAuQkCCQDMCAICBGtMcD0JAMwIAgkApgMBBQJlVwkAzAgCAggga0xwTmV3PQkAzAgCCQCmAwEFAmVaCQDMCAICFCBhbW91bnRBc3NldEJhbGFuY2U9CQDMCAIJAKQDAQUCZUcJAMwIAgITIHByaWNlQXNzZXRCYWxhbmNlPQkAzAgCCQCkAwEFAmVICQDMCAICGSBhbW91bnRBc3NldEJhbGFuY2VEZWx0YT0JAMwIAgkApAMBBQJlTAkAzAgCAhggcHJpY2VBc3NldEJhbGFuY2VEZWx0YT0JAMwIAgkApAMBBQJlTQkAzAgCAgggaGVpZ2h0PQkAzAgCCQCkAwEFBmhlaWdodAUDbmlsAgAJAJQKAgUCZmEFAmZiAQJmYwECZmQDCQECIT0CCQCQAwEIBQJmZAhwYXltZW50cwABCQACAQIdZXhhY3RseSAxIHBheW1lbnQgaXMgZXhwZWN0ZWQEAmZlCQEFdmFsdWUBCQCRAwIIBQJmZAhwYXltZW50cwAABAJkdgkBBXZhbHVlAQgFAmZlB2Fzc2V0SWQEAmZmCAUCZmUGYW1vdW50BAJlZwkBAmR0BAkA2AQBCAUCZmQNdHJhbnNhY3Rpb25JZAkA2AQBBQJkdgUCZmYIBQJmZAZjYWxsZXIEAmRNCAUCZWcCXzEEAmROCAUCZWcCXzIEAmRPCAUCZWcDXzEwBAJmZwMJAQEhAQkBAmJqAQgFAmZkBmNhbGxlcgMJAQJiawAGCQAAAgUCYngFAW4HAwUCZmcJAAIBCQCsAgICLEdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbi4gU3RhdHVzID0gCQCkAwEFAmJ4CQCXCgUFAmRNBQJkTgUCZmYFAmR2BQJkTwECZmgDAmZkAmRRAmRXAwkBAiE9AgkAkAMBCAUCZmQIcGF5bWVudHMAAgkAAgECH2V4YWN0bHkgMiBwYXltZW50cyBhcmUgZXhwZWN0ZWQEAmZpCQEFdmFsdWUBCQCRAwIIBQJmZAhwYXltZW50cwAABAJmagkBBXZhbHVlAQkAkQMCCAUCZmQIcGF5bWVudHMAAQQCZmsJAQJkUAkJANgEAQgFAmZkDXRyYW5zYWN0aW9uSWQFAmRRCAUCZmkGYW1vdW50CAUCZmkHYXNzZXRJZAgFAmZqBmFtb3VudAgFAmZqB2Fzc2V0SWQJAKUIAQgFAmZkBmNhbGxlcgcFAmRXBAJmbAMJAQEhAQkBAmJqAQgFAmZkBmNhbGxlcgMDCQECYmsABgkAAAIFAmJ4BQFsBgkAAAIFAmJ4BQFuBwMFAmZsCQACAQkArAICAixQdXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4uIFN0YXR1cyA9IAkApAMBBQJieAUCZmsBAmZtAQJjaAQCZm4JAPwHBAUCYmQCBGVtaXQJAMwIAgUCY2gFA25pbAUDbmlsAwkAAAIFAmZuBQJmbgQCZm8EAmFRBQJmbgMJAAECBQJhUQIHQWRkcmVzcwQCZnAFAmFRCQD8BwQFAmZwAgRlbWl0CQDMCAIFAmNoBQNuaWwFA25pbAUEdW5pdAMJAAACBQJmbwUCZm8FAmNoCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJmcQICY2gCYWkEAmZyAwkAAAIFAmFpAAAAAAkAawMFAmNoBQJhaQUBYgkAlAoCCQBlAgUCY2gFAmZyBQJmcgECZnMEAmZ0AmZ1AmFiAmFjBAJmdgkAAAIFAmFjBQR1bml0BAJmdwkBAmJWAQkBAmJyAQUCYnoEAmZ4CQECYlYBCQECYnIBBQJiQQQCZnkDCQAAAgUCZnUFAmJ6BgMJAAACBQJmdQUCYkEHCQECYmEBAg1pbnZhbGlkIGFzc2V0BAJmegMFAmZ2CQCUCgIFAmZ3BQJmeAMFAmZ5CQCUCgIJAGUCBQJmdwUCZnQFAmZ4CQCUCgIFAmZ3CQBlAgUCZngFAmZ0BAJmQQgFAmZ6Al8xBAJmQggFAmZ6Al8yBAJmQwMFAmZ5CQCUCgIFAmZ0AAAJAJQKAgAABQJmdAQCZkQIBQJmQwJfMQQCZkUIBQJmQwJfMgQCZVQICQECZnECBQJmRAUCYmYCXzEEAmVVCAkBAmZxAgUCZkUFAmJmAl8xBAJmRgkBAmZxAgUCZnQFAmJmBAJmRwgFAmZGAl8xBAJmcggFAmZGAl8yBAJmSAkAZAIFAmZBBQJlVAQCZkkJAGQCBQJmQgUCZVUEAmZKCQECYlkCCQEBRAIFAmZJBQJiQwkBAUQCBQJmSAUCYkIEAmZLCQEBSAIFAmZKBQFiBAJmTAMFAmZ5BQJmQQUCZkIEAmZNCQC2AgEFAmZMBAJmTgkAtgIBCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmJ5CQCsAgIJAKwCAgIGYXNzZXQgCQDYBAEFAmJ5Ag4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCZk8DCQC/AgIFAmZOBQFmBgkBAmJhAQIiaW5pdGlhbCBkZXBvc2l0IHJlcXVpcmVzIGFsbCBjb2lucwMJAAACBQJmTwUCZk8EAmZQCQC2AgEFAmZHBAJmUQkAlgMBCQDMCAIAAAkAzAgCCQCgAwEJALoCAgkAuQICBQJmTgkAuAICCQEKc3FydEJpZ0ludAQJALcCAgUBZAkAugICCQC5AgIFAmZQBQFkBQJmTQASABIFBERPV04FAWQFAWQFA25pbAQCZXYDBQJmdgUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVwAFAmZLCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBWAIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmZLCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhYQIJAKUIAQkBBXZhbHVlAQUCYWIJANgEAQkBBXZhbHVlAQUCYWMJAQJiRwoFAmZEBQJmRQUCZlEFAmZLAAAAAAUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAAAAAAFA25pbAQCZlIJAQJiWQIJAQFEAgUCZkIFAmJDCQEBRAIFAmZBBQJiQgQCZlMJAQFIAgUCZlIFAWIEAmZUBAJmVQMFAmZ5CQCUCgIFAmZEBQJmQQkAlAoCBQJmRQUCZkIEAmNoCAUCZlUCXzEEAmZWCAUCZlUCXzIEAmZXCQCgAwEJALwCAwUCZk4JALYCAQkAaQIFAmNoAAIJALYCAQUCZlYJAGsDCQBlAgUCZlEFAmZXBQFiBQJmVwkAlwoFBQJmUQUCZXYFAmZyBQJmVAUCZnkJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmZYBQJmWQJmRwJmdQJhYgJhYwQCZnYJAAACBQJhYwUEdW5pdAQCZGsJAQJibQAEAmRsCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGsFAXQEAmRtCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGsFAXUEAmZaCQDMCAIDCQAAAgUCZnUFAmJ5BgkBAmJhAQIQaW52YWxpZCBscCBhc3NldAUDbmlsAwkAAAIFAmZaBQJmWgQCZ2EDCQAAAgUCZlkFAmJ6BgMJAAACBQJmWQUCYkEHCQECYmEBAg1pbnZhbGlkIGFzc2V0BAJnYgMFAmdhCQC2AgEJAQJiVgEJAQJicgEFAmJ6CQC2AgEJAQJiVgEJAQJicgEFAmJBBAJnYwMFAmdhBQJkbAUCZG0EAmdkCQECYlYBCQECYnIBBQJiegQCZ2UJAQJiVgEJAQJicgEFAmJBBAJnZgMFAmdhBQJnZAUCZ2UEAmdnCQC2AgEFAmdmBAJmTgkAtgIBCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmJ5CQCsAgIJAKwCAgIGYXNzZXQgCQDYBAEFAmJ5Ag4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCZ2gJALYCAQUCZkcEAmdpCQCWAwEJAMwIAgAACQDMCAIJAKADAQkAugICCQC5AgIFAmdiCQC4AgIFAWQJAHYGCQC4AgIFAWQJALoCAgkAuQICBQJnaAUBZAUCZk4AEgUBaAAAABIFBERPV04FAWQFA25pbAQCZ2oJAQJmcQIFAmdpBQJiaAQCZ2sIBQJnagJfMQQCZnIIBQJnagJfMgQCZ2wDBQJnYQkAlgoEBQJnawAACQBlAgUCZ2QFAmdpBQJnZQkAlgoEAAAFAmdrBQJnZAkAZQIFAmdlBQJnaQQCZ20IBQJnbAJfMQQCZ24IBQJnbAJfMgQCZ28IBQJnbAJfMwQCZ3AIBQJnbAJfNAQCZkoJAQJiWQIJAQFEAgUCZ3AFAmJDCQEBRAIFAmdvBQJiQgQCZksJAQFIAgUCZkoFAWIEAmV2AwUCZnYFA25pbAkAzAgCCQELU3RyaW5nRW50cnkCCQECYWQCCQClCAEJAQV2YWx1ZQEFAmFiCQDYBAEJAQV2YWx1ZQEFAmFjCQECYlIGBQJnbQUCZ24FAmZHBQJmSwUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVcABQJmSwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVgCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJmSwUDbmlsBAJmUgkBAmJZAgkBAUQCBQJnZQUCYkMJAQFEAgUCZ2QFAmJCBAJmUwkBAUgCBQJmUgUBYgQCZlQEAmdxCQBoAgkAoAMBCQC8AgMFAmdiBQJnaAUCZk4AAgkAawMJAGUCBQJnawUCZ3EFAWIFAmdxCQCXCgUFAmdrBQJldgUCZnIFAmZUBQJnYQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZ3IABAJncwkBAmFTAAQCYVEJAJ0IAgUCZ3MJAQFVAAMJAAECBQJhUQIGU3RyaW5nBAJhVgUCYVEJANkEAQUCYVYDCQABAgUCYVECBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECZ3QBAmZkBAJhUQkBAmdyAAMJAAECBQJhUQIKQnl0ZVZlY3RvcgQCZ3UFAmFRCQAAAggFAmZkD2NhbGxlclB1YmxpY0tleQUCZ3UDCQABAgUCYVECBFVuaXQJAAACCAUCZmQGY2FsbGVyBQR0aGlzCQACAQILTWF0Y2ggZXJyb3IBAmd2AQJmZAQCZ3cJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAQCYVEJAQJncgADCQABAgUCYVECCkJ5dGVWZWN0b3IEAmd1BQJhUQMJAAACCAUCZmQPY2FsbGVyUHVibGljS2V5BQJndQYFAmd3AwkAAQIFAmFRAgRVbml0AwkAAAIIBQJmZAZjYWxsZXIFBHRoaXMGBQJndwkAAgECC01hdGNoIGVycm9yHAJmZAEJcmViYWxhbmNlAAkAzggCCQECY0sBCQECYVcCBQR0aGlzCQECYWUACQECY0sBCQECYVcCBQR0aGlzCQECYWYAAmZkASFjYWxjdWxhdGVBbW91bnRPdXRGb3JTd2FwUkVBRE9OTFkDAmd4Amd5Amd6BAJnQQMJAAACBQJneQcEAmdCCQECYVcCBQR0aGlzCQECYWYABAJnQwkBAmFXAgUEdGhpcwkBAmFlAAkAlAoCBQJnQgUCZ0MEAmdCCQECYVcCBQR0aGlzCQECYWUABAJnQwkBAmFXAgUEdGhpcwkBAmFmAAkAlAoCBQJnQgUCZ0MEAmdCCAUCZ0ECXzEEAmdDCAUCZ0ECXzIEAmdECQECYlYBBQJnQwQCZ0UJAQJiVgEFAmdCBAJnRgkAawMFAmdFBQJneAkAZAIFAmdEBQJneAQCZ0cJALkCAgkAtgIBBQJnRAkAtgIBBQJnRQQCZ0gJALkCAgkAtwICCQC3AgIJALYCAQkBAmJWAQUCZ0MJALYCAQUCZ3gJALYCAQUCZ3oJALgCAgkAtgIBCQECYlYBBQJnQgkAtgIBBQJnRgQCZ0kDCQDAAgIFAmdIBQJnRwYJAAIBAhRuZXcgSyBpcyBmZXdlciBlcnJvcgMJAAACBQJnSQUCZ0kJAJQKAgUDbmlsBQJnRgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJmZAEmY2FsY3VsYXRlQW1vdW50T3V0Rm9yU3dhcEFuZFNlbmRUb2tlbnMFAmd4Amd5AmdKAmdLAmd6BAJnTAoAAmJnCQD8BwQFAmJkAhdnZXRTd2FwQ29udHJhY3RSRUFET05MWQUDbmlsBQNuaWwDCQABAgUCYmcCBlN0cmluZwUCYmcJAAIBCQCsAgIJAAMBBQJiZwIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nBAJnTQoAAmJnCQD8BwQFAmJkAhppc1Bvb2xTd2FwRGlzYWJsZWRSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmJnAgdCb29sZWFuBQJiZwkAAgEJAKwCAgkAAwEFAmJnAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJnTgMJAQEhAQkBAmJqAQgFAmZkBmNhbGxlcgMDCQECYmsABgkAAAIFAmJ4BQFuBgUCZ00HBAJmWgkAzAgCAwMJAQEhAQUCZ04GCQECZ3QBBQJmZAYJAQJiYQECInN3YXAgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAGcCCAkBBXZhbHVlAQkAkQMCCAUCZmQIcGF5bWVudHMAAAZhbW91bnQFAmd4BgkBAmJhAQIMV3JvbmcgYW1vdW50CQDMCAIDCQAAAggFAmZkBmNhbGxlcgkBEUBleHRyTmF0aXZlKDEwNjIpAQUCZ0wGCQECYmEBAhFQZXJtaXNzaW9uIGRlbmllZAUDbmlsAwkAAAIFAmZaBQJmWgQCZmUJAQV2YWx1ZQEJAJEDAggFAmZkCHBheW1lbnRzAAAEAmdDCQECYnIBCAUCZmUHYXNzZXRJZAQCZ0IDCQAAAgUCZ3kHCQECYVcCBQR0aGlzCQECYWYACQECYVcCBQR0aGlzCQECYWUABAJnRAkAZQIJAGUCCQECYlYBBQJnQwgJAQV2YWx1ZQEJAJEDAggFAmZkCHBheW1lbnRzAAAGYW1vdW50BQJnegQCZ0UJAQJiVgEFAmdCBAJnRgkAawMFAmdFBQJneAkAZAIFAmdEBQJneAQCZ0cJALkCAgkAtgIBBQJnRAkAtgIBBQJnRQQCZ0gJALkCAgkAtwICCQC2AgEJAQJiVgEFAmdDCQC2AgEFAmd6CQC4AgIJALYCAQkBAmJWAQUCZ0IJALYCAQUCZ0YEAmdJAwkAwAICBQJnSAUCZ0cGCQACAQIUbmV3IEsgaXMgZmV3ZXIgZXJyb3IDCQAAAgUCZ0kFAmdJBAJnTwMJAGcCBQJnRgUCZ0oGCQACAQIsRXhjaGFuZ2UgcmVzdWx0IGlzIGZld2VyIGNvaW5zIHRoYW4gZXhwZWN0ZWQDCQAAAgUCZ08FAmdPBAJlTAMFAmd5CQEBLQEFAmdGBQJnegQCZU0DBQJneQUCZ3oJAQEtAQUCZ0YEAmdQCAkBAmVLAwUCZUwFAmVNAAACXzEDCQAAAgUCZ1AFAmdQBAJnUQkBAmNLAQUCZ0MDCQAAAgUCZ1EFAmdRBAJnUgkBAmNSAgUCZ0IFAmdGAwkAAAIFAmdSBQJnUgkAlAoCCQDOCAIJAM4IAgUCZ1IFAmdRCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmdLBQJnRgkBAmJwAQUCZ0IFA25pbAUCZ0YJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZmQBA3B1dAICZFECZ1MDCQBmAgAABQJkUQkAAgECIEludmFsaWQgc2xpcHBhZ2VUb2xlcmFuY2UgcGFzc2VkBAJmawkBAmZoAwUCZmQFAmRRBgQCZXMIBQJmawJfMgQCZHgIBQJmawJfNwQCZE8IBQJmawJfOQQCZXQIBQJmawNfMTAEAmV1CAUCZmsDXzExBAJnVAgFAmZrA18xMgQCZ1UIBQJmawNfMTMEAmZpCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJmZAhwYXltZW50cwAABmFtb3VudAQCZmoJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmZkCHBheW1lbnRzAAEGYW1vdW50BAJlSgkBAmVDAwUCZmkFAmZqCQC2AgEAAAMJAAACBQJlSgUCZUoEAmZuCQD8BwQFAmJkAgRlbWl0CQDMCAIFAmVzBQNuaWwFA25pbAMJAAACBQJmbgUCZm4EAmZvBAJhUQUCZm4DCQABAgUCYVECB0FkZHJlc3MEAmZwBQJhUQkA/AcEBQJmcAIEZW1pdAkAzAgCBQJlcwUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCZm8FAmZvBAJnVgMJAGYCBQJldAAACQD8BwQFAmJGAgNwdXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZ1QFAmV0BQNuaWwFA25pbAMJAAACBQJnVgUCZ1YEAmdXAwkAZgIFAmV1AAAJAPwHBAUCYkYCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJnVQUCZXUFA25pbAUDbmlsAwkAAAIFAmdXBQJnVwQCZ1gDBQJnUwQCZ1kJAPwHBAUCYkUCBXN0YWtlBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmR4BQJlcwUDbmlsAwkAAAIFAmdZBQJnWQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJmZAZjYWxsZXIFAmVzBQJkeAUDbmlsBAJnWgkBAmVLAwAAAAAAAAMJAAACBQJnWgUCZ1oEAmVCCAUCZ1oCXzIEAmdQCAUCZ1oCXzEEAmhhCQECZVACBQJlSgUCZUIDCQAAAgUCaGEFAmhhBAJoYgkA/AcEBQR0aGlzAglyZWJhbGFuY2UFA25pbAUDbmlsAwkAAAIFAmhiBQJoYgkAzggCCQDOCAIFAmRPBQJnWAUCZ1AJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZmQBCnB1dEZvckZyZWUBAmhjAwkAZgIAAAUCaGMJAAIBAhRJbnZhbGlkIHZhbHVlIHBhc3NlZAQCZmsJAQJmaAMFAmZkBQJoYwcEAmRPCAUCZmsCXzkEAmZpCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJmZAhwYXltZW50cwAABmFtb3VudAQCZmoJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmZkCHBheW1lbnRzAAEGYW1vdW50BAJlSgkBAmVDAwUCZmkFAmZqCQC2AgEAAAMJAAACBQJlSgUCZUoEAmhkCQECZUsDAAAAAAAABAJnUAgFAmhkAl8xBAJlQggFAmhkAl8yBAJoYQkBAmVQAgUCZUoFAmVCAwkAAAIFAmhhBQJoYQkAzggCBQJkTwUCZ1AJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZmQBCXB1dE9uZVRrbgICaGUCaGYEAmhnCgACYmcJAPwHBAUCYmQCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJiZwIHQm9vbGVhbgUCYmcJAAIBCQCsAgIJAAMBBQJiZwIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCZmwDCQEBIQEJAQJiagEIBQJmZAZjYWxsZXIDAwMJAQJiawAGCQAAAgUCYngFAWwGCQAAAgUCYngFAW4GBQJoZwcEAmZaCQDMCAIDAwkBASEBBQJmbAYJAQJndAEFAmZkBgkBAmJhAQIhcHV0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCZmQIcGF5bWVudHMAAQYJAQJiYQECHmV4YWN0bHkgMSBwYXltZW50IGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmZaBQJmWgQCaGgJAJEDAggFAmZkCHBheW1lbnRzAAAEAmZ1CAUCaGgHYXNzZXRJZAQCZnQIBQJoaAZhbW91bnQEAmVKAwkAAAIFAmZ1BQJiegkBAmVDAwkAtgIBBQJmdAkAtgIBAAAJALYCAQAAAwkAAAIFAmZ1BQJiQQkBAmVDAwkAtgIBAAAJALYCAQUCZnQJALYCAQAACQECYmEBAh5wYXltZW50IGFzc2V0IGlzIG5vdCBzdXBwb3J0ZWQDCQAAAgUCZUoFAmVKBAJhYggFAmZkBmNhbGxlcgQCYWMIBQJmZA10cmFuc2FjdGlvbklkBAJoaQkBAmZzBAUCZnQFAmZ1BQJhYgUCYWMDCQAAAgUCaGkFAmhpBAJmeQgFAmhpAl81BAJoaggFAmhpAl80BAJmcggFAmhpAl8zBAJldggFAmhpAl8yBAJoawgFAmhpAl8xBAJobAMDCQBmAgUCaGUAAAkAZgIFAmhlBQJoawcJAQJiYQEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCaGUFA25pbAIABQJoawQCZm4JAQJmbQEFAmhsAwkAAAIFAmZuBQJmbgQCZ1gDBQJoZgQCaG0JAPwHBAUCYkUCBXN0YWtlBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJ5BQJobAUDbmlsAwkAAAIFAmhtBQJobQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJmZAZjYWxsZXIFAmhsBQJieQUDbmlsBAJobgMJAGYCBQJmcgAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmJlBQJmcgUCZnUFA25pbAUDbmlsBAJobwMJAAACBQR0aGlzBQJiZQkAlAoCAAAAAAMFAmZ5CQCUCgIJAQEtAQUCZnIAAAkAlAoCAAAJAQEtAQUCZnIEAmVMCAUCaG8CXzEEAmVNCAUCaG8CXzIEAmhwCQECZUsDBQJlTAUCZU0AAAQCZ1AIBQJocAJfMQQCZUIIBQJocAJfMgQCZVcJAQV2YWx1ZQEJAKIIAQUCYWoEAmhhCQECZVACBQJlSgUCZUIDCQAAAgUCaGEFAmhhBAJoYgkA/AcEBQR0aGlzAglyZWJhbGFuY2UFA25pbAUDbmlsAwkAAAIFAmhiBQJoYgkAlAoCCQDOCAIJAM4IAgkAzggCBQJldgUCZ1gFAmhuBQJnUAUCaGwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZmQBEXB1dE9uZVRrblJFQURPTkxZAgJmdQJmdAQCaHEJAQJmcwQFAmZ0CQECYnABBQJmdQUEdW5pdAUEdW5pdAQCaGsIBQJocQJfMQQCZXYIBQJocQJfMgQCZnIIBQJocQJfMwQCaGoIBQJocQJfNAQCZnkIBQJocQJfNQkAlAoCBQNuaWwJAJUKAwUCaGsFAmZyBQJoagJmZAEJZ2V0T25lVGtuAgJocgJoZQQCaGcKAAJiZwkA/AcEBQJiZAIoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmJnAgdCb29sZWFuBQJiZwkAAgEJAKwCAgkAAwEFAmJnAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJmZwMJAQEhAQkBAmJqAQgFAmZkBmNhbGxlcgMDCQECYmsABgkAAAIFAmJ4BQFuBgUCaGcHBAJmWgkAzAgCAwMJAQEhAQUCZmcGCQECZ3QBBQJmZAYJAQJiYQECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmZkCHBheW1lbnRzAAEGCQECYmEBAh5leGFjdGx5IDEgcGF5bWVudCBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJmWgUCZloEAmZZCQECYnABBQJocgQCaGgJAJEDAggFAmZkCHBheW1lbnRzAAAEAmZ1CAUCaGgHYXNzZXRJZAQCZkcIBQJoaAZhbW91bnQEAmVKCQECZUMDCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmVKBQJlSgQCYWIIBQJmZAZjYWxsZXIEAmFjCAUCZmQNdHJhbnNhY3Rpb25JZAQCaHMJAQJmWAUFAmZZBQJmRwUCZnUFAmFiBQJhYwMJAAACBQJocwUCaHMEAmdhCAUCaHMCXzUEAmhqCAUCaHMCXzQEAmZyCAUCaHMCXzMEAmV2CAUCaHMCXzIEAmh0CAUCaHMCXzEEAmNoAwMJAGYCBQJoZQAACQBmAgUCaGUFAmh0BwkBAmJhAQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJoZQUDbmlsAgAFAmh0BAJodQkA/AcEBQJiZAIEYnVybgkAzAgCBQJmRwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJmdQUCZkcFA25pbAMJAAACBQJodQUCaHUEAmdSCQECY1ICBQJocgkAZAIFAmNoCQCWAwEJAMwIAgAACQDMCAIFAmZyBQNuaWwEAmh2CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFiBQJjaAUCZlkFA25pbAQCaG4DCQBmAgUCZnIAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJiZQUCZnIFAmZZBQNuaWwFA25pbAQCaHcEAmh4AwkAAAIFBHRoaXMFAmJlAAAFAmZyAwUCZ2EJAJQKAgkBAS0BCQBkAgUCY2gFAmh4AAAJAJQKAgAACQEBLQEJAGQCBQJjaAUCaHgEAmVMCAUCaHcCXzEEAmVNCAUCaHcCXzIEAmh5CQECZUsDBQJlTAUCZU0AAAQCZ1AIBQJoeQJfMQQCZUIIBQJoeQJfMgQCaGEJAQJlUAIFAmVKBQJlQgMJAAACBQJoYQUCaGEJAJQKAgkAzggCCQDOCAIJAM4IAgkAzggCBQJldgUCZ1IFAmh2BQJobgUCZ1AFAmNoCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmZkARFnZXRPbmVUa25SRUFET05MWQICZlkCZkcEAmh6CQECZlgFCQECYnABBQJmWQUCZkcFAmJ5BQR1bml0BQR1bml0BAJodAgFAmh6Al8xBAJldggFAmh6Al8yBAJmcggFAmh6Al8zBAJoaggFAmh6Al80BAJnYQgFAmh6Al81CQCUCgIFA25pbAkAlQoDBQJodAUCZnIFAmhqAmZkARN1bnN0YWtlQW5kR2V0T25lVGtuAwJoQQJocgJoZQQCaGcKAAJiZwkA/AcEBQJiZAIoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmJnAgdCb29sZWFuBQJiZwkAAgEJAKwCAgkAAwEFAmJnAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJmZwMJAQEhAQkBAmJqAQgFAmZkBmNhbGxlcgMDCQECYmsABgkAAAIFAmJ4BQFuBgUCaGcHBAJmWgkAzAgCAwMJAQEhAQUCZmcGCQECZ3QBBQJmZAYJAQJiYQECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmZkCHBheW1lbnRzAAAGCQECYmEBAhhubyBwYXltZW50cyBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJmWgUCZloEAmZZCQECYnABBQJocgQCYWIIBQJmZAZjYWxsZXIEAmFjCAUCZmQNdHJhbnNhY3Rpb25JZAQCZUoJAQJlQwMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZUoFAmVKBAJoQgkA/AcEBQJiRQIHdW5zdGFrZQkAzAgCCQDYBAEFAmJ5CQDMCAIFAmhBBQNuaWwFA25pbAMJAAACBQJoQgUCaEIEAmhDCQECZlgFBQJmWQUCaEEFAmJ5BQJhYgUCYWMDCQAAAgUCaEMFAmhDBAJnYQgFAmhDAl81BAJoaggFAmhDAl80BAJmcggFAmhDAl8zBAJldggFAmhDAl8yBAJodAgFAmhDAl8xBAJjaAMDCQBmAgUCaGUAAAkAZgIFAmhlBQJodAcJAQJiYQEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCaGUFA25pbAIABQJodAQCaHUJAPwHBAUCYmQCBGJ1cm4JAMwIAgUCaEEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYnkFAmhBBQNuaWwDCQAAAgUCaHUFAmh1BAJnUgkBAmNSAgUCaHIJAGQCBQJjaAkAlgMBCQDMCAIAAAkAzAgCBQJmcgUDbmlsBAJodgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCZmQGY2FsbGVyBQJjaAUCZlkFA25pbAQCaG4DCQBmAgUCZnIAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJiZQUCZnIFAmZZBQNuaWwFA25pbAQCaEQEAmh4AwkAAAIFBHRoaXMFAmJlAAAFAmZyAwUCZ2EJAJQKAgkBAS0BCQBkAgUCY2gFAmh4AAAJAJQKAgAACQEBLQEJAGQCBQJjaAUCaHgEAmVMCAUCaEQCXzEEAmVNCAUCaEQCXzIEAmhFCQECZUsDBQJlTAUCZU0AAAQCZ1AIBQJoRQJfMQQCZUIIBQJoRQJfMgQCaGEJAQJlUAIFAmVKBQJlQgMJAAACBQJoYQUCaGEJAJQKAgkAzggCCQDOCAIJAM4IAgkAzggCBQJldgUCZ1IFAmh2BQJobgUCZ1AFAmNoCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmZkAQNnZXQABAJlZwkBAmZjAQUCZmQEAmRNCAUCZWcCXzEEAmROCAUCZWcCXzIEAmZmCAUCZWcCXzMEAmR2CAUCZWcCXzQEAmRPCAUCZWcCXzUEAmdSCQECY1cCBQJkTQUCZE4EAmVKCQECZUMDCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmVKBQJlSgQCaEYJAPwHBAUCYmQCBGJ1cm4JAMwIAgUCZmYFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZHYFAmZmBQNuaWwDCQAAAgUCaEYFAmhGBAJoRwkBAmVLAwkBAS0BBQJkTQkBAS0BBQJkTgAABAJnUAgFAmhHAl8xBAJlQggFAmhHAl8yBAJoYQkBAmVQAgUCZUoFAmVCAwkAAAIFAmhhBQJoYQkAzggCCQDOCAIFAmdSBQJkTwUCZ1AJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZmQBCWdldE5vTGVzcwICaEgCaEkEAmVnCQECZmMBBQJmZAQCZE0IBQJlZwJfMQQCZE4IBQJlZwJfMgQCZmYIBQJlZwJfMwQCZHYIBQJlZwJfNAQCZE8IBQJlZwJfNQMJAGYCBQJoSAUCZE0JAAIBCQCsAgIJAKwCAgkArAICAhxub0xlc3NUaGVuQW10QXNzZXQgZmFpbGVkOiAgCQCkAwEFAmRNAgMgPCAJAKQDAQUCaEgDCQBmAgUCaEkFAmROCQACAQkArAICCQCsAgIJAKwCAgIdbm9MZXNzVGhlblByaWNlQXNzZXQgZmFpbGVkOiAJAKQDAQUCZE4CAyA8IAkApAMBBQJoSQQCZ1IJAQJjVwIFAmRNBQJkTgQCZUoJAQJlQwMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZUoFAmVKBAJoRgkA/AcEBQJiZAIEYnVybgkAzAgCBQJmZgUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJkdgUCZmYFA25pbAMJAAACBQJoRgUCaEYEAmhKCQECZUsDCQEBLQEFAmRNCQEBLQEFAmROAAAEAmdQCAUCaEoCXzEEAmVCCAUCaEoCXzIEAmhhCQECZVACBQJlSgUCZUIDCQAAAgUCaGEFAmhhCQDOCAIJAM4IAgUCZ1IFAmRPBQJnUAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJmZAENdW5zdGFrZUFuZEdldAECY2gEAmhLAwkBAiE9AgkAkAMBCAUCZmQIcGF5bWVudHMAAAkAAgECGE5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAYDCQAAAgUCaEsFAmhLBAJkawkBAmJtAAQCZHgJANkEAQkAkQMCBQJkawUBcQQCZUoJAQJlQwMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZUoFAmVKBAJoQgkA/AcEBQJiRQIHdW5zdGFrZQkAzAgCCQDYBAEFAmR4CQDMCAIFAmNoBQNuaWwFA25pbAMJAAACBQJoQgUCaEIEAmVnCQECZHQECQDYBAEIBQJmZA10cmFuc2FjdGlvbklkCQDYBAEFAmR4BQJjaAgFAmZkBmNhbGxlcgQCZE0IBQJlZwJfMQQCZE4IBQJlZwJfMgQCZEEJAQ1wYXJzZUludFZhbHVlAQgFAmVnAl85BAJkTwgFAmVnA18xMAQCZ1IJAQJjVwIFAmRNBQJkTgQCZmcDCQEBIQEJAQJiagEIBQJmZAZjYWxsZXIDCQECYmsABgkAAAIFAmJ4BQFuBwQCaEwDBQJmZwkAAgEJAKwCAgIsR2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluLiBTdGF0dXMgPSAJAKQDAQUCZEEGAwkAAAIFAmhMBQJoTAQCaEYJAPwHBAUCYmQCBGJ1cm4JAMwIAgUCY2gFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZHgFAmNoBQNuaWwDCQAAAgUCaEYFAmhGBAJoTQkBAmVLAwkBAS0BBQJkTQkBAS0BBQJkTgAABAJnUAgFAmhNAl8xBAJlQggFAmhNAl8yBAJoYQkBAmVQAgUCZUoFAmVCAwkAAAIFAmhhBQJoYQkAzggCCQDOCAIFAmdSBQJkTwUCZ1AJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZmQBE3Vuc3Rha2VBbmRHZXROb0xlc3MDAmhBAmhOAmhJBAJmZwMJAQEhAQkBAmJqAQgFAmZkBmNhbGxlcgMJAQJiawAGCQAAAgUCYngFAW4HBAJmWgkAzAgCAwkBASEBBQJmZwYJAAIBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJmZAhwYXltZW50cwAABgkAAgECGG5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmZaBQJmWgQCZUoJAQJlQwMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZUoFAmVKBAJoQgkA/AcEBQJiRQIHdW5zdGFrZQkAzAgCCQDYBAEFAmJ5CQDMCAIFAmhBBQNuaWwFA25pbAMJAAACBQJoQgUCaEIEAmVnCQECZHQECQDYBAEIBQJmZA10cmFuc2FjdGlvbklkCQDYBAEFAmJ5BQJoQQgFAmZkBmNhbGxlcgQCZE0IBQJlZwJfMQQCZE4IBQJlZwJfMgQCZE8IBQJlZwNfMTAEAmdSCQECY1cCBQJkTQUCZE4EAmhPCQDMCAIDCQBnAgUCZE0FAmhOBgkAAgEJALkJAgkAzAgCAixhbW91bnQgYXNzZXQgYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmhOBQNuaWwCAAkAzAgCAwkAZwIFAmROBQJoSQYJAAIBCQC5CQIJAMwIAgIrcHJpY2UgYXNzZXQgYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmhJBQNuaWwCAAUDbmlsAwkAAAIFAmhPBQJoTwQCaEYJAPwHBAUCYmQCBGJ1cm4JAMwIAgUCaEEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYnkFAmhBBQNuaWwDCQAAAgUCaEYFAmhGBAJoUAkBAmVLAwkBAS0BBQJkTQkBAS0BBQJkTgAABAJnUAgFAmhQAl8xBAJlQggFAmhQAl8yBAJoYQkBAmVQAgUCZUoFAmVCAwkAAAIFAmhhBQJoYQkAzggCCQDOCAIFAmdSBQJkTwUCZ1AJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZmQBCGFjdGl2YXRlAgJoUQJoUgMJAQIhPQIJAKUIAQgFAmZkBmNhbGxlcgkApQgBBQJiZAkAAgECEnBlcm1pc3Npb25zIGRlbmllZAkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhZQAFAmhRCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhZgAFAmhSBQNuaWwCB3N1Y2Nlc3MCZmQBCnJlZnJlc2hLTHAABAJoUwkBC3ZhbHVlT3JFbHNlAgkAnwgBBQJhawAABAJoVAMJAGcCCQBlAgUGaGVpZ2h0BQJoUwUCYW4FBHVuaXQJAQJiYQEJALkJAgkAzAgCCQCkAwEFAmFuCQDMCAICLyBibG9ja3MgaGF2ZSBub3QgcGFzc2VkIHNpbmNlIHRoZSBwcmV2aW91cyBjYWxsBQNuaWwCAAMJAAACBQJoVAUCaFQEAmVXCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKgDAQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQJhagIBMAkBAmJjAQILaW52YWxpZCBrTHAEAmhVCQECZUsDAAAAAAAABAJoVggFAmhVAl8xBAJlQggFAmhVAl8yBAJlTgMJAQIhPQIFAmVXBQJlQgUCaFYJAQJiYQECEm5vdGhpbmcgdG8gcmVmcmVzaAkAlAoCBQJlTgkApgMBBQJlQgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJmZAEcZ2V0UG9vbENvbmZpZ1dyYXBwZXJSRUFET05MWQAJAJQKAgUDbmlsCQECYm0AAmZkARxnZXRBY2NCYWxhbmNlV3JhcHBlclJFQURPTkxZAQJhcAkAlAoCBQNuaWwJAQJiVgEFAmFwAmZkARljYWxjUHJpY2VzV3JhcHBlclJFQURPTkxZAwJkZQJkZgJkagQCZHMJAQJkaQMFAmRlBQJkZgUCZGoJAJQKAgUDbmlsCQDMCAIJAKYDAQkAkQMCBQJkcwAACQDMCAIJAKYDAQkAkQMCBQJkcwABCQDMCAIJAKYDAQkAkQMCBQJkcwACBQNuaWwCZmQBFHRvWDE4V3JhcHBlclJFQURPTkxZAgFFAUYJAJQKAgUDbmlsCQCmAwEJAQFEAgUBRQUBRgJmZAEWZnJvbVgxOFdyYXBwZXJSRUFET05MWQIBSQFKCQCUCgIFA25pbAkBAUgCCQCnAwEFAUkFAUoCZmQBHmNhbGNQcmljZUJpZ0ludFdyYXBwZXJSRUFET05MWQICYloCY2EJAJQKAgUDbmlsCQCmAwEJAQJiWQIJAKcDAQUCYloJAKcDAQUCY2ECZmQBI2VzdGltYXRlUHV0T3BlcmF0aW9uV3JhcHBlclJFQURPTkxZCQJkdQJkUQJkUgJkUwJkVAJkVQJhYgJkVgJkVwkAlAoCBQNuaWwJAQJkUAkFAmR1BQJkUQUCZFIFAmRTBQJkVAUCZFUFAmFiBQJkVgUCZFcCZmQBI2VzdGltYXRlR2V0T3BlcmF0aW9uV3JhcHBlclJFQURPTkxZBAJkdQJkdgJkdwJhYgQCZWcJAQJkdAQFAmR1BQJkdgUCZHcJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmFiCQCUCgIFA25pbAkAnAoKCAUCZWcCXzEIBQJlZwJfMggFAmVnAl8zCAUCZWcCXzQIBQJlZwJfNQgFAmVnAl82CAUCZWcCXzcJAKYDAQgFAmVnAl84CAUCZWcCXzkIBQJlZwNfMTACZmQBDXN0YXRzUkVBRE9OTFkABAJkawkBAmJtAAQCZHgJANkEAQkAkQMCBQJkawUBcQQCaFcJAJEDAgUCZGsFAXIEAmhYCQCRAwIFAmRrBQFzBAJkWgkAkQMCBQJkawUBdgQCZWEJAJEDAgUCZGsFAXcEAmRsCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGsFAXQEAmRtCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGsFAXUEAmhZCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmR4CQCsAgIJAKwCAgIGQXNzZXQgCQDYBAEFAmR4Ag4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCaFoJAQJiVgEFAmhXBAJpYQkBAmJWAQUCaFgEAmliAwkAAAIFAmhZAAAJAMwIAgUBZQkAzAgCBQFlCQDMCAIFAWUFA25pbAkBAmRpAwUCaFoFAmlhBQJoWQQCZEgAAAQCaWMJAQFIAgkAkQMCBQJpYgABBQFiBAJpZAkBAUgCCQCRAwIFAmliAAIFAWIEAmllCQEFdmFsdWUBCQCaCAIFAmJkCQECYUQBCQClCAEFBHRoaXMJAJQKAgUDbmlsCQC5CQIJAMwIAgIOJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJoWgkAzAgCCQCkAwEFAmlhCQDMCAIJAKQDAQUCaFkJAMwIAgkApAMBBQJkSAkAzAgCCQCkAwEFAmljCQDMCAIJAKQDAQUCaWQJAMwIAgkApAMBBQJpZQUDbmlsBQFqAmZkASBldmFsdWF0ZVB1dEJ5QW1vdW50QXNzZXRSRUFET05MWQECZFIEAmRrCQECYm0ABAJkeAkA2QQBCQCRAwIFAmRrBQFxBAJkWAkAkQMCBQJkawUBcgQCZHkJANkEAQUCZFgEAmRZCQCRAwIFAmRrBQFzBAJkegkA2QQBBQJkWQQCZGwJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkawUBdAQCZG0JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkawUBdQQCZEEJAJEDAgUCZGsFAXAEAmhZCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmR4CQCsAgIJAKwCAgIGQXNzZXQgCQDYBAEFAmR4Ag4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCaFoJAQJiVgEFAmRYBAJpYQkBAmJWAQUCZFkEAmRnCQEBRAIFAmhaBQJkbAQCZGgJAQFEAgUCaWEFAmRtBAJkRwMJAAACBQJoWQAABQFlCQECYlkCBQJkaAUCZGcEAmVkCQEBRAIFAmRSBQJkbAQCZWUJALwCAwUCZWQFAmRHBQFkBAJkVAkBAUgCBQJlZQUCZG0EAmZrCQECZFAJAgAAoMIeBQJkUgUCZHkFAmRUBQJkegIABgcEAmVvCAUCZmsCXzEEAmlmCAUCZmsCXzMEAmRDCAUCZmsCXzQEAmRFCAUCZmsCXzUEAmRCCAUCZmsCXzYJAJQKAgUDbmlsCQC5CQIJAMwIAgIQJWQlZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmVvCQDMCAIJAKQDAQkBAUgCBQJkRwUBYgkAzAgCCQCkAwEFAmRDCQDMCAIJAKQDAQUCZEUJAMwIAgkApAMBBQJkQgkAzAgCBQJkQQkAzAgCCQCkAwEFAmRSCQDMCAIJAKQDAQUCZFQFA25pbAUBagJmZAEfZXZhbHVhdGVQdXRCeVByaWNlQXNzZXRSRUFET05MWQECZFQEAmRrCQECYm0ABAJkeAkA2QQBCQCRAwIFAmRrBQFxBAJkWAkAkQMCBQJkawUBcgQCZHkJANkEAQUCZFgEAmRZCQCRAwIFAmRrBQFzBAJkegkA2QQBBQJkWQQCZGwJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkawUBdAQCZG0JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkawUBdQQCZEEJAJEDAgUCZGsFAXAEAmhZCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmR4CQCsAgIJAKwCAgIGQXNzZXQgCQDYBAEFAmR4Ag4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCaWcJAQJiVgEFAmRYBAJpaAkBAmJWAQUCZFkEAmlpCQEBRAIFAmlnBQJkbAQCaWoJAQFEAgUCaWgFAmRtBAJkRwMJAAACBQJoWQAABQFlCQECYlkCBQJpagUCaWkEAmVlCQEBRAIFAmRUBQJkbQQCZWQJALwCAwUCZWUFAWQFAmRHBAJkUgkBAUgCBQJlZAUCZGwEAmZrCQECZFAJAgAAoMIeBQJkUgUCZHkFAmRUBQJkegIABgcEAmVvCAUCZmsCXzEEAmlmCAUCZmsCXzMEAmRDCAUCZmsCXzQEAmRFCAUCZmsCXzUEAmRCCAUCZmsCXzYJAJQKAgUDbmlsCQC5CQIJAMwIAgIQJWQlZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmVvCQDMCAIJAKQDAQkBAUgCBQJkRwUBYgkAzAgCCQCkAwEFAmRDCQDMCAIJAKQDAQUCZEUJAMwIAgkApAMBBQJkQgkAzAgCBQJkQQkAzAgCCQCkAwEFAmRSCQDMCAIJAKQDAQUCZFQFA25pbAUBagJmZAETZXZhbHVhdGVHZXRSRUFET05MWQICaWsCaWwEAmVnCQECZHQEAgAFAmlrBQJpbAUEdGhpcwQCZE0IBQJlZwJfMQQCZE4IBQJlZwJfMgQCZEMIBQJlZwJfNQQCZEUIBQJlZwJfNgQCZEIIBQJlZwJfNwQCZEgIBQJlZwJfOAQCZEEJAQ1wYXJzZUludFZhbHVlAQgFAmVnAl85CQCUCgIFA25pbAkAuQkCCQDMCAICDiVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCZE0JAMwIAgkApAMBBQJkTgkAzAgCCQCkAwEFAmRDCQDMCAIJAKQDAQUCZEUJAMwIAgkApAMBBQJkQgkAzAgCCQCmAwEFAmRICQDMCAIJAKQDAQUCZEEFA25pbAUBagECaW0BAmluAAQCaW8EAmFRCQECZ3IAAwkAAQIFAmFRAgpCeXRlVmVjdG9yBAJndQUCYVEFAmd1AwkAAQIFAmFRAgRVbml0CAUCaW0Pc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IEAmFRBQJpbQMJAAECBQJhUQIFT3JkZXIEAmVTBQJhUQQCaXAJAQJibAAEAmlxAwkBAmVPAAkAlAoCBgIACQECZVIBBQJlUwQCYUsIBQJpcQJfMQQCYUwIBQJpcQJfMgQCYU0JAPQDAwgFAmVTCWJvZHlCeXRlcwkAkQMCCAUCZVMGcHJvb2ZzAAAIBQJlUw9zZW5kZXJQdWJsaWNLZXkEAmFOCQD0AwMIBQJlUwlib2R5Qnl0ZXMJAJEDAggFAmVTBnByb29mcwABBQJpcAMDAwUCYUsFAmFNBwUCYU4HBgkBAmFKBAUCYUsFAmFMBQJhTQUCYU4DCQABAgUCYVECFFNldFNjcmlwdFRyYW5zYWN0aW9uBAJhVgUCYVEDCQD0AwMIBQJpbQlib2R5Qnl0ZXMJAJEDAggFAmltBnByb29mcwAABQJpbwYEAmlyCQD2AwEJAQV2YWx1ZQEIBQJhVgZzY3JpcHQEAmlzCQDbBAEJAQV2YWx1ZQEJAJ0IAgUCYmQJAQJhRgAEAml0CQDxBwEFBHRoaXMDCQAAAgUCaXMFAmlyCQECIT0CBQJpdAUCaXIHCQD0AwMIBQJpbQlib2R5Qnl0ZXMJAJEDAggFAmltBnByb29mcwAABQJpb6uQlhc=", "height": 3066422, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HdhMJ9VtjHvLaYuHqarDSnoVrQvzEaLokQaes4kYE4iA Next: none Diff:
OldNewDifferences
235235 else throw(($getType(bg) + " couldn't be cast to Int"))
236236 }
237237
238-func bi () = valueOrElse(getBoolean(bd, aC()), false)
238+func bi (aX) = makeString(["%s%s", "whitelisted", toString(aX)], j)
239239
240240
241-func bj () = fromBase58String(aW(bd, au()))
241+func bj (aX) = valueOrElse(getBoolean(bd, bi(aX)), false)
242242
243243
244-func bk () = {
245- let bl = aW(this, ae())
246- let bm = aW(this, af())
247- let az = aZ(bd, aA(bm))
248- let ay = aZ(bd, aA(bl))
244+func bk () = valueOrElse(getBoolean(bd, aC()), false)
245+
246+
247+func bl () = fromBase58String(aW(bd, au()))
248+
249+
250+func bm () = {
251+ let bn = aW(this, ae())
252+ let bo = aW(this, af())
253+ let az = aZ(bd, aA(bo))
254+ let ay = aZ(bd, aA(bn))
249255 split(aW(bd, ax(toString(ay), toString(az))), j)
250256 }
251257
252258
253-func bn (bo) = if ((bo == i))
259+func bp (bq) = if ((bq == i))
254260 then unit
255- else fromBase58String(bo)
261+ else fromBase58String(bq)
256262
257263
258-func bp (bo) = if ((bo == unit))
264+func br (bq) = if ((bq == unit))
259265 then i
260- else toBase58String(value(bo))
266+ else toBase58String(value(bq))
261267
262268
263-func bq (br) = $Tuple7(addressFromStringValue(br[o]), parseIntValue(br[p]), fromBase58String(br[q]), bn(br[r]), bn(br[s]), parseIntValue(br[t]), parseIntValue(br[u]))
269+func bs (bt) = $Tuple7(addressFromStringValue(bt[o]), parseIntValue(bt[p]), fromBase58String(bt[q]), bp(bt[r]), bp(bt[s]), parseIntValue(bt[t]), parseIntValue(bt[u]))
264270
265271
266-let bs = bq(bk())
272+let bu = bs(bm())
267273
268-let bt = bs
274+let bv = bu
269275
270-let bu = bt._1
276+let bw = bv._1
271277
272-let bv = bt._2
278+let bx = bv._2
273279
274-let bw = bt._3
280+let by = bv._3
275281
276-let bx = bt._4
282+let bz = bv._4
277283
278-let by = bt._5
284+let bA = bv._5
279285
280-let bz = bt._6
286+let bB = bv._6
281287
282-let bA = bt._7
288+let bC = bv._7
283289
284-func bB () = split(aW(bd, at()), j)
290+func bD () = split(aW(bd, at()), j)
285291
286292
287-let bC = valueOrErrorMessage(addressFromString(bB()[B]), "incorrect staking address")
293+let bE = valueOrErrorMessage(addressFromString(bD()[B]), "incorrect staking address")
288294
289-let bD = valueOrErrorMessage(addressFromString(bB()[C]), "incorrect staking address")
295+let bF = valueOrErrorMessage(addressFromString(bD()[C]), "incorrect staking address")
290296
291-func bE (bF,bG,bH,bI,bJ,bK,bL,bM,bN,bO) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bF), toString(bG), toString(bH), toString(bI), toString(bJ), toString(bK), toString(bL), toString(bM), toString(bN), toString(bO)], j)
297+func bG (bH,bI,bJ,bK,bL,bM,bN,bO,bP,bQ) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bH), toString(bI), toString(bJ), toString(bK), toString(bL), toString(bM), toString(bN), toString(bO), toString(bP), toString(bQ)], j)
292298
293299
294-func bP (bQ,bR,bS,bI,bL,bM) = makeString(["%d%d%d%d%d%d", toString(bQ), toString(bR), toString(bS), toString(bI), toString(bL), toString(bM)], j)
300+func bR (bS,bT,bU,bK,bN,bO) = makeString(["%d%d%d%d%d%d", toString(bS), toString(bT), toString(bU), toString(bK), toString(bN), toString(bO)], j)
295301
296302
297-func bT (ap) = {
298- let bU = if ((ap == "WAVES"))
303+func bV (ap) = {
304+ let bW = if ((ap == "WAVES"))
299305 then wavesBalance(this).available
300306 else assetBalance(this, fromBase58String(ap))
301- let bV = ((bU + ar(ap)) - as(ap))
302- max([0, bV])
307+ let bX = ((bW + ar(ap)) - as(ap))
308+ max([0, bX])
303309 }
304310
305311
306-func bW (bX,bY) = fraction(bX, d, bY)
312+func bY (bZ,ca) = fraction(bZ, d, ca)
307313
308314
309-func bZ (bX,bY,L) = fraction(bX, d, bY, L)
315+func cb (bZ,ca,L) = fraction(bZ, d, ca, L)
310316
311317
312-func ca (cb) = {
313- let cc = invoke(cb, "getRate", nil, nil)
314- if ((cc == cc))
318+func cc (cd) = {
319+ let ce = invoke(cd, "getRate", nil, nil)
320+ if ((ce == ce))
315321 then {
316- let aQ = cc
322+ let aQ = ce
317323 if ($isInstanceOf(aQ, "Int"))
318324 then {
319- let cd = aQ
320- cd
325+ let cf = aQ
326+ cf
321327 }
322328 else ba("proxy.getRate() unexpected value")
323329 }
325331 }
326332
327333
328-func ce (ap,cf,cg,cb) = {
329- let ch = ar(ap)
330- if ((ch == ch))
334+func cg (ap,ch,ci,cd) = {
335+ let cj = ar(ap)
336+ if ((cj == cj))
331337 then {
332- let ci = as(cg)
333- if ((ci == ci))
338+ let ck = as(ci)
339+ if ((ck == ck))
334340 then {
335- let cj = bn(ap)
336- if ((cf > 0))
341+ let cl = bp(ap)
342+ if ((ch > 0))
337343 then {
338- let ck = invoke(cb, "deposit", nil, [AttachedPayment(cj, cf)])
339- if ((ck == ck))
344+ let cm = invoke(cd, "deposit", nil, [AttachedPayment(cl, ch)])
345+ if ((cm == cm))
340346 then {
341- let aQ = ck
347+ let aQ = cm
342348 if ($isInstanceOf(aQ, "Int"))
343349 then {
344- let cl = aQ
345- let cm = (ch + cf)
346- let cn = (ci + cl)
347-[IntegerEntry(ao(ap), cm), IntegerEntry(aq(cg), cn)]
350+ let cn = aQ
351+ let co = (cj + ch)
352+ let cp = (ck + cn)
353+[IntegerEntry(ao(ap), co), IntegerEntry(aq(ci), cp)]
348354 }
349355 else nil
350356 }
358364 }
359365
360366
361-func co (ap,cf,cg,cb,cp,cq) = {
362- let ch = ar(ap)
363- if ((ch == ch))
367+func cq (ap,ch,ci,cd,cr,cs) = {
368+ let cj = ar(ap)
369+ if ((cj == cj))
364370 then {
365- let ci = as(cg)
366- if ((ci == ci))
371+ let ck = as(ci)
372+ if ((ck == ck))
367373 then {
368- let cr = ca(cb)
369- if ((cr == cr))
374+ let ct = cc(cd)
375+ if ((ct == ct))
370376 then {
371- let cs = fraction(cp, ch, ci)
372- let ct = bn(cg)
373- let cu = fraction(cp, cf, cs)
374- let cv = fraction(cp, cf, cr)
375- let cw = max([0, (cu - cv)])
376- if ((cv > 0))
377+ let cu = fraction(cr, cj, ck)
378+ let cv = bp(ci)
379+ let cw = fraction(cr, ch, cu)
380+ let cx = fraction(cr, ch, ct)
381+ let cy = max([0, (cw - cx)])
382+ if ((cx > 0))
377383 then {
378- let cx = invoke(cb, "withdraw", nil, [AttachedPayment(ct, cv)])
379- if ((cx == cx))
384+ let cz = invoke(cd, "withdraw", nil, [AttachedPayment(cv, cx)])
385+ if ((cz == cz))
380386 then {
381- let aQ = cx
387+ let aQ = cz
382388 if ($isInstanceOf(aQ, "Int"))
383389 then {
384- let cy = aQ
385- let cm = (ch - cy)
386- let cn = ((ci - cv) - cw)
387-[IntegerEntry(ao(ap), cm), IntegerEntry(aq(cg), cn), ScriptTransfer(cq, cw, bn(cg))]
390+ let cA = aQ
391+ let co = (cj - cA)
392+ let cp = ((ck - cx) - cy)
393+[IntegerEntry(ao(ap), co), IntegerEntry(aq(ci), cp), ScriptTransfer(cs, cy, bp(ci))]
388394 }
389395 else nil
390396 }
400406 }
401407
402408
403-func cz (ap) = {
409+func cB (ap) = {
404410 let aQ = invoke(bd, "getPoolLeaseConfigREADONLY", [toString(this), ap], nil)
405411 if ($isInstanceOf(aQ, "(Boolean, Int, Int, String, String, Int, String)"))
406412 then {
411417 }
412418
413419
414-func cA (cB,ap,cg,cC,cb,cp,cq) = {
415- let ch = ar(ap)
416- if ((ch == ch))
420+func cC (cD,ap,ci,cE,cd,cr,cs) = {
421+ let ck = as(ci)
422+ if ((ck == ck))
417423 then {
418- let ci = as(cg)
419- if ((ci == ci))
424+ let cj = if ((ck != 0))
425+ then ar(ap)
426+ else 0
427+ if ((cj == cj))
420428 then {
421- let cD = max([0, (bT(ap) - cC)])
422- let cE = fraction(cB, cD, 100)
423- let cF = (ch - cE)
424- if ((cF == 0))
429+ let cF = max([0, (bV(ap) - cE)])
430+ let cG = fraction(cD, cF, 100)
431+ let cH = (cj - cG)
432+ if ((cH == 0))
425433 then nil
426- else if ((0 > cF))
434+ else if ((0 > cH))
427435 then {
428- let cG = -(cF)
429- ce(ap, cG, cg, cb)
436+ let cI = -(cH)
437+ cg(ap, cI, ci, cd)
430438 }
431439 else {
432- let cH = cF
433- co(ap, cH, cg, cb, cp, cq)
440+ let cJ = cH
441+ cq(ap, cJ, ci, cd, cr, cs)
434442 }
435443 }
436444 else throw("Strict value is not equal to itself.")
439447 }
440448
441449
442-func cI (ap) = {
443- let cJ = cz(ap)
444- let cK = cJ._1
445- let cL = cJ._2
446- let cC = cJ._3
447- let cM = cJ._4
448- let cN = cJ._5
449- let cp = cJ._6
450- let cO = cJ._7
451- if (cK)
452- then cA(cL, ap, cN, cC, addressFromStringValue(cM), cp, addressFromStringValue(cO))
450+func cK (ap) = {
451+ let cL = cB(ap)
452+ let cM = cL._1
453+ let cN = cL._2
454+ let cE = cL._3
455+ let cO = cL._4
456+ let cP = cL._5
457+ let cr = cL._6
458+ let cQ = cL._7
459+ if (cM)
460+ then cC(cN, ap, cP, cE, addressFromStringValue(cO), cr, addressFromStringValue(cQ))
453461 else nil
454462 }
455463
456464
457-func cP (ap,cQ) = {
458- let cR = cz(ap)
459- let cK = cR._1
460- let cL = cR._2
461- let cC = cR._3
462- let cM = cR._4
463- let cN = cR._5
464- let cp = cR._6
465- let cO = cR._7
466- if (cK)
465+func cR (ap,cS) = {
466+ let cT = cB(ap)
467+ let cM = cT._1
468+ let cN = cT._2
469+ let cE = cT._3
470+ let cO = cT._4
471+ let cP = cT._5
472+ let cr = cT._6
473+ let cQ = cT._7
474+ if (cM)
467475 then {
468- let cS = max([0, ((bT(ap) - cQ) - cC)])
469- if ((cS == cS))
476+ let ck = as(cP)
477+ if ((ck == ck))
470478 then {
471- let cm = fraction(cL, cS, 100)
472- if ((cm == cm))
479+ let cj = if ((ck != 0))
480+ then ar(ap)
481+ else 0
482+ if ((cj == cj))
473483 then {
474- let cT = (ar(ap) - cm)
475- if ((cT == cT))
476- then if ((0 > cT))
477- then ce(ap, -(cT), cN, addressFromStringValue(cM))
478- else co(ap, cT, cN, addressFromStringValue(cM), cp, addressFromStringValue(cO))
484+ let cU = max([0, ((bV(ap) - cS) - cE)])
485+ if ((cU == cU))
486+ then {
487+ let co = fraction(cN, cU, 100)
488+ if ((co == co))
489+ then {
490+ let cV = (cj - co)
491+ if ((cV == cV))
492+ then if ((cV == 0))
493+ then nil
494+ else if ((0 > cV))
495+ then cg(ap, -(cV), cP, addressFromStringValue(cO))
496+ else cq(ap, cV, cP, addressFromStringValue(cO), cr, addressFromStringValue(cQ))
497+ else throw("Strict value is not equal to itself.")
498+ }
499+ else throw("Strict value is not equal to itself.")
500+ }
479501 else throw("Strict value is not equal to itself.")
480502 }
481503 else throw("Strict value is not equal to itself.")
486508 }
487509
488510
489-func cU (cV,cW) = {
490- let cX = cP(aW(this, ae()), cV)
491- let cY = cP(aW(this, af()), cW)
492- (cX ++ cY)
511+func cW (cX,cY) = {
512+ let cZ = cR(aW(this, ae()), cX)
513+ let da = cR(aW(this, af()), cY)
514+ (cZ ++ da)
493515 }
494516
495517
496-func cZ (da,db,dc,dd) = {
497- let de = D(dc, da)
498- let df = D(dd, db)
499- bW(df, de)
518+func db (dc,dd,de,df) = {
519+ let dg = D(de, dc)
520+ let dh = D(df, dd)
521+ bY(dh, dg)
500522 }
501523
502524
503-func dg (dc,dd,dh) = {
504- let di = bk()
505- let dj = parseIntValue(di[t])
506- let dk = parseIntValue(di[u])
507- let dl = cZ(dj, dk, dc, dd)
508- let bY = D(dc, dj)
509- let bX = D(dd, dk)
510- let dm = D(dh, b)
511- let dn = bW(bY, dm)
512- let do = bW(bX, dm)
513-[dl, dn, do]
525+func di (de,df,dj) = {
526+ let dk = bm()
527+ let dl = parseIntValue(dk[t])
528+ let dm = parseIntValue(dk[u])
529+ let dn = db(dl, dm, de, df)
530+ let ca = D(de, dl)
531+ let bZ = D(df, dm)
532+ let do = D(dj, b)
533+ let dp = bY(ca, do)
534+ let dq = bY(bZ, do)
535+[dn, dp, dq]
514536 }
515537
516538
517-func dp (dc,dd,dh) = {
518- let dq = dg(dc, dd, dh)
519-[H(dq[0], b), H(dq[1], b), H(dq[2], b)]
539+func dr (de,df,dj) = {
540+ let ds = di(de, df, dj)
541+[H(ds[0], b), H(ds[1], b), H(ds[2], b)]
520542 }
521543
522544
523-func dr (ds,dt,du,ab) = {
524- let di = bk()
525- let dv = di[q]
526- let dw = di[r]
527- let dx = di[s]
528- let da = parseIntValue(di[t])
529- let db = parseIntValue(di[u])
530- let dy = di[p]
531- let dz = valueOrErrorMessage(assetInfo(fromBase58String(dv)), (("Asset " + dv) + " doesn't exist")).quantity
532- if ((dv != dt))
545+func dt (du,dv,dw,ab) = {
546+ let dk = bm()
547+ let dx = dk[q]
548+ let dy = dk[r]
549+ let dz = dk[s]
550+ let dc = parseIntValue(dk[t])
551+ let dd = parseIntValue(dk[u])
552+ let dA = dk[p]
553+ let dB = valueOrErrorMessage(assetInfo(fromBase58String(dx)), (("Asset " + dx) + " doesn't exist")).quantity
554+ if ((dx != dv))
533555 then throw("Invalid asset passed.")
534556 else {
535- let dA = bT(dw)
536- let dB = D(dA, da)
537- let dC = bT(dx)
538- let dD = D(dC, db)
539- let dE = bW(dD, dB)
540- let dF = H(dE, b)
541- let dG = D(du, b)
542- let dH = D(dz, b)
543- let dI = fraction(dB, dG, dH)
544- let dJ = fraction(dD, dG, dH)
545- let dK = K(dI, da, FLOOR)
546- let dL = K(dJ, db, FLOOR)
547- let dM = if ((ds == ""))
557+ let dC = bV(dy)
558+ let dD = D(dC, dc)
559+ let dE = bV(dz)
560+ let dF = D(dE, dd)
561+ let dG = bY(dF, dD)
562+ let dH = H(dG, b)
563+ let dI = D(dw, b)
564+ let dJ = D(dB, b)
565+ let dK = fraction(dD, dI, dJ)
566+ let dL = fraction(dF, dI, dJ)
567+ let dM = K(dK, dc, FLOOR)
568+ let dN = K(dL, dd, FLOOR)
569+ let dO = if ((du == ""))
548570 then nil
549- else [ScriptTransfer(ab, dK, if ((dw == "WAVES"))
571+ else [ScriptTransfer(ab, dM, if ((dy == "WAVES"))
550572 then unit
551- else fromBase58String(dw)), ScriptTransfer(ab, dL, if ((dx == "WAVES"))
573+ else fromBase58String(dy)), ScriptTransfer(ab, dN, if ((dz == "WAVES"))
552574 then unit
553- else fromBase58String(dx)), StringEntry(ad(toString(ab), ds), bP(dK, dL, du, dF, height, lastBlock.timestamp)), IntegerEntry(W(), dF), IntegerEntry(X(height, lastBlock.timestamp), dF)]
554- $Tuple10(dK, dL, dw, dx, dA, dC, dz, dE, dy, dM)
575+ else fromBase58String(dz)), StringEntry(ad(toString(ab), du), bR(dM, dN, dw, dH, height, lastBlock.timestamp)), IntegerEntry(W(), dH), IntegerEntry(X(height, lastBlock.timestamp), dH)]
576+ $Tuple10(dM, dN, dy, dz, dC, dE, dB, dG, dA, dO)
555577 }
556578 }
557579
558580
559-func dN (ds,dO,dP,dQ,dR,dS,ab,dT,dU) = {
560- let di = bk()
561- let dv = fromBase58String(di[q])
562- let dV = di[r]
563- let dW = di[s]
564- let dX = di[v]
565- let dY = di[w]
566- let dj = parseIntValue(di[t])
567- let dk = parseIntValue(di[u])
568- let dy = di[p]
569- let dz = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
570- let dZ = toBase58String(valueOrElse(dQ, fromBase58String("WAVES")))
571- let ea = toBase58String(valueOrElse(dS, fromBase58String("WAVES")))
572- if (if ((dV != dZ))
581+func dP (du,dQ,dR,dS,dT,dU,ab,dV,dW) = {
582+ let dk = bm()
583+ let dx = fromBase58String(dk[q])
584+ let dX = dk[r]
585+ let dY = dk[s]
586+ let dZ = dk[v]
587+ let ea = dk[w]
588+ let dl = parseIntValue(dk[t])
589+ let dm = parseIntValue(dk[u])
590+ let dA = dk[p]
591+ let dB = valueOrErrorMessage(assetInfo(dx), (("Asset " + toBase58String(dx)) + " doesn't exist")).quantity
592+ let eb = toBase58String(valueOrElse(dS, fromBase58String("WAVES")))
593+ let ec = toBase58String(valueOrElse(dU, fromBase58String("WAVES")))
594+ if (if ((dX != eb))
573595 then true
574- else (dW != ea))
596+ else (dY != ec))
575597 then throw("Invalid amt or price asset passed.")
576598 else {
577- let dA = if (dT)
578- then bT(dV)
579- else (bT(dV) - dP)
580- let dC = if (dT)
581- then bT(dW)
582- else (bT(dW) - dR)
583- let eb = D(dP, dj)
584- let ec = D(dR, dk)
585- let ed = bW(ec, eb)
586- let dB = D(dA, dj)
587- let dD = D(dC, dk)
588- let ee = if ((dz == 0))
599+ let dC = if (dV)
600+ then bV(dX)
601+ else (bV(dX) - dR)
602+ let dE = if (dV)
603+ then bV(dY)
604+ else (bV(dY) - dT)
605+ let ed = D(dR, dl)
606+ let ee = D(dT, dm)
607+ let ef = bY(ee, ed)
608+ let dD = D(dC, dl)
609+ let dF = D(dE, dm)
610+ let eg = if ((dB == 0))
589611 then {
590- let dE = e
591- let ef = e
592- let dm = pow((eb * ec), 0, toBigInt(5), 1, 0, DOWN)
593- $Tuple5(H(dm, b), H(eb, dj), H(ec, dk), bW((dD + ec), (dB + eb)), ef)
612+ let dG = e
613+ let eh = e
614+ let do = pow((ed * ee), 0, toBigInt(5), 1, 0, DOWN)
615+ $Tuple5(H(do, b), H(ed, dl), H(ee, dm), bY((dF + ee), (dD + ed)), eh)
594616 }
595617 else {
596- let dE = bW(dD, dB)
597- let ef = fraction(R((dE - ed)), d, dE)
598- let eg = D(dO, b)
599- if (if ((dE != e))
600- then (ef > eg)
618+ let dG = bY(dF, dD)
619+ let eh = fraction(R((dG - ef)), d, dG)
620+ let ei = D(dQ, b)
621+ if (if ((dG != e))
622+ then (eh > ei)
601623 else false)
602- then throw(((("Price slippage " + toString(ef)) + " exceeded the passed limit of ") + toString(eg)))
624+ then throw(((("Price slippage " + toString(eh)) + " exceeded the passed limit of ") + toString(ei)))
603625 else {
604- let dH = D(dz, b)
605- let eh = fraction(eb, bZ(dD, dB, CEILING), d, CEILING)
606- let ei = fraction(ec, d, bZ(dD, dB, FLOOR), CEILING)
607- let ej = if ((eh > ec))
608- then $Tuple2(ei, ec)
609- else $Tuple2(eb, eh)
610- let ek = ej._1
611- let el = ej._2
612- let dm = fraction(dH, el, dD, FLOOR)
613- $Tuple5(K(dm, b, FLOOR), K(ek, dj, CEILING), K(el, dk, CEILING), dE, ef)
626+ let dJ = D(dB, b)
627+ let ej = fraction(ed, cb(dF, dD, CEILING), d, CEILING)
628+ let ek = fraction(ee, d, cb(dF, dD, FLOOR), CEILING)
629+ let el = if ((ej > ee))
630+ then $Tuple2(ek, ee)
631+ else $Tuple2(ed, ej)
632+ let em = el._1
633+ let en = el._2
634+ let do = fraction(dJ, en, dF, FLOOR)
635+ $Tuple5(K(do, b, FLOOR), K(em, dl, CEILING), K(en, dm, CEILING), dG, eh)
614636 }
615637 }
616- let em = ee._1
617- let en = ee._2
618- let eo = ee._3
619- let dF = H(ee._4, b)
620- let ep = H(ee._5, b)
621- if ((0 >= em))
638+ let eo = eg._1
639+ let ep = eg._2
640+ let eq = eg._3
641+ let dH = H(eg._4, b)
642+ let er = H(eg._5, b)
643+ if ((0 >= eo))
622644 then throw("Invalid calculations. LP calculated is less than zero.")
623645 else {
624- let eq = if (!(dU))
646+ let es = if (!(dW))
625647 then 0
626- else em
627- let er = (dP - en)
628- let es = (dR - eo)
629- let et = [IntegerEntry(W(), dF), IntegerEntry(X(height, lastBlock.timestamp), dF), StringEntry(aa(ab, ds), bE(en, eo, eq, dF, dO, ep, height, lastBlock.timestamp, er, es))]
630- $Tuple13(em, eq, dF, dA, dC, dz, dv, dy, et, er, es, dQ, dS)
648+ else eo
649+ let et = (dR - ep)
650+ let eu = (dT - eq)
651+ let ev = [IntegerEntry(W(), dH), IntegerEntry(X(height, lastBlock.timestamp), dH), StringEntry(aa(ab, du), bG(ep, eq, es, dH, dQ, er, height, lastBlock.timestamp, et, eu))]
652+ $Tuple13(eo, es, dH, dC, dE, dB, dx, dA, ev, et, eu, dS, dU)
631653 }
632654 }
633655 }
634656
635657
636-func eu (ev,ew,dz) = {
637- let ex = G(ev, toBigInt(bz))
638- let ey = G(ew, toBigInt(bA))
639- let ez = fraction(pow((ex * ey), 0, toBigInt(5), 1, 18, DOWN), g, dz)
640- if ((dz == f))
658+func ew (ex,ey,dB) = {
659+ let ez = G(ex, toBigInt(bB))
660+ let eA = G(ey, toBigInt(bC))
661+ let eB = fraction(pow((ez * eA), 0, toBigInt(5), 1, 18, DOWN), g, dB)
662+ if ((dB == f))
641663 then f
642- else ez
664+ else eB
643665 }
644666
645667
646-func eA (eB,eC,eD) = {
647- let eE = (toBigInt(bT(bp(bx))) - eB)
648- let eF = (toBigInt(bT(bp(by))) - eC)
649- let eG = (toBigInt(value(assetInfo(bw)).quantity) - eD)
650- let eH = eu(eE, eF, eG)
651- eH
668+func eC (eD,eE,eF) = {
669+ let eG = (toBigInt(bV(br(bz))) - eD)
670+ let eH = (toBigInt(bV(br(bA))) - eE)
671+ let eI = (toBigInt(value(assetInfo(by)).quantity) - eF)
672+ let eJ = ew(eG, eH, eI)
673+ eJ
652674 }
653675
654676
655-func eI (eJ,eK,eD) = {
656- let eE = (bT(bp(bx)) + eJ)
657- let eF = (bT(bp(by)) + eK)
658- let eG = (value(assetInfo(bw)).quantity + eD)
659- let ez = eu(toBigInt(eE), toBigInt(eF), toBigInt(eG))
660- let eL = [IntegerEntry(ak, height), StringEntry(aj, toString(ez))]
661- $Tuple2(eL, ez)
677+func eK (eL,eM,eF) = {
678+ let eG = (bV(br(bz)) + eL)
679+ let eH = (bV(br(bA)) + eM)
680+ let eI = (value(assetInfo(by)).quantity + eF)
681+ let eB = ew(toBigInt(eG), toBigInt(eH), toBigInt(eI))
682+ let eN = [IntegerEntry(ak, height), StringEntry(aj, toString(eB))]
683+ $Tuple2(eN, eB)
662684 }
663685
664686
665-func eM () = valueOrElse(getBoolean(bd, aH(toString(this))), false)
687+func eO () = valueOrElse(getBoolean(bd, aH(toString(this))), false)
666688
667689
668-func eN (eO,ez) = if ((ez >= eO))
690+func eP (eQ,eB) = if ((eB >= eQ))
669691 then true
670- else ba(makeString(["updated KLp lower than current KLp", toString(eO), toString(ez)], " "))
692+ else ba(makeString(["updated KLp lower than current KLp", toString(eQ), toString(eB)], " "))
671693
672694
673-func eP (eQ) = {
674- let eE = bT(bp(bx))
675- let eF = bT(bp(by))
676- let eR = eQ.amount
677- let eS = fraction(eQ.amount, eQ.price, b, FLOOR)
678- let eT = if ((eQ.orderType == Buy))
679- then $Tuple2(eR, -(eS))
680- else $Tuple2(-(eR), eS)
681- let eJ = eT._1
682- let eK = eT._2
683- if (if (if (bi())
695+func eR (eS) = {
696+ let eG = bV(br(bz))
697+ let eH = bV(br(bA))
698+ let eT = eS.amount
699+ let eU = fraction(eS.amount, eS.price, b, FLOOR)
700+ let eV = if ((eS.orderType == Buy))
701+ then $Tuple2(eT, -(eU))
702+ else $Tuple2(-(eT), eU)
703+ let eL = eV._1
704+ let eM = eV._2
705+ if (if (if (bk())
684706 then true
685- else (bv == m))
707+ else (bx == m))
686708 then true
687- else (bv == n))
709+ else (bx == n))
688710 then throw("Exchange operations disabled")
689- else if (if ((eQ.assetPair.amountAsset != bx))
711+ else if (if ((eS.assetPair.amountAsset != bz))
690712 then true
691- else (eQ.assetPair.priceAsset != by))
713+ else (eS.assetPair.priceAsset != bA))
692714 then throw("Wrong order assets.")
693715 else {
694- let eU = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), bc("invalid kLp"))
695- let eV = eI(eJ, eK, 0)
696- let eW = eV._1
697- let eX = eV._2
698- let eY = (eX >= eU)
699- let eZ = makeString(["kLp=", toString(eU), " kLpNew=", toString(eX), " amountAssetBalance=", toString(eE), " priceAssetBalance=", toString(eF), " amountAssetBalanceDelta=", toString(eJ), " priceAssetBalanceDelta=", toString(eK), " height=", toString(height)], "")
700- $Tuple2(eY, eZ)
716+ let eW = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), bc("invalid kLp"))
717+ let eX = eK(eL, eM, 0)
718+ let eY = eX._1
719+ let eZ = eX._2
720+ let fa = (eZ >= eW)
721+ let fb = makeString(["kLp=", toString(eW), " kLpNew=", toString(eZ), " amountAssetBalance=", toString(eG), " priceAssetBalance=", toString(eH), " amountAssetBalanceDelta=", toString(eL), " priceAssetBalanceDelta=", toString(eM), " height=", toString(height)], "")
722+ $Tuple2(fa, fb)
701723 }
702724 }
703725
704726
705-func fa (fb) = if ((size(fb.payments) != 1))
727+func fc (fd) = if ((size(fd.payments) != 1))
706728 then throw("exactly 1 payment is expected")
707729 else {
708- let fc = value(fb.payments[0])
709- let dt = value(fc.assetId)
710- let fd = fc.amount
711- let ee = dr(toBase58String(fb.transactionId), toBase58String(dt), fd, fb.caller)
712- let dK = ee._1
713- let dL = ee._2
714- let dy = parseIntValue(ee._9)
715- let dM = ee._10
716- if (if (bi())
717- then true
718- else (dy == n))
719- then throw(("Get operation is blocked by admin. Status = " + toString(dy)))
720- else $Tuple5(dK, dL, fd, dt, dM)
730+ let fe = value(fd.payments[0])
731+ let dv = value(fe.assetId)
732+ let ff = fe.amount
733+ let eg = dt(toBase58String(fd.transactionId), toBase58String(dv), ff, fd.caller)
734+ let dM = eg._1
735+ let dN = eg._2
736+ let dO = eg._10
737+ let fg = if (!(bj(fd.caller)))
738+ then if (bk())
739+ then true
740+ else (bx == n)
741+ else false
742+ if (fg)
743+ then throw(("Get operation is blocked by admin. Status = " + toString(bx)))
744+ else $Tuple5(dM, dN, ff, dv, dO)
721745 }
722746
723747
724-func fe (fb,dO,dU) = if ((size(fb.payments) != 2))
748+func fh (fd,dQ,dW) = if ((size(fd.payments) != 2))
725749 then throw("exactly 2 payments are expected")
726750 else {
727- let ff = value(fb.payments[0])
728- let fg = value(fb.payments[1])
729- let fh = dN(toBase58String(fb.transactionId), dO, ff.amount, ff.assetId, fg.amount, fg.assetId, toString(fb.caller), false, dU)
730- let dy = parseIntValue(fh._8)
731- if (if (if (bi())
732- then true
733- else (dy == l))
734- then true
735- else (dy == n))
736- then throw(("Put operation is blocked by admin. Status = " + toString(dy)))
737- else fh
751+ let fi = value(fd.payments[0])
752+ let fj = value(fd.payments[1])
753+ let fk = dP(toBase58String(fd.transactionId), dQ, fi.amount, fi.assetId, fj.amount, fj.assetId, toString(fd.caller), false, dW)
754+ let fl = if (!(bj(fd.caller)))
755+ then if (if (bk())
756+ then true
757+ else (bx == l))
758+ then true
759+ else (bx == n)
760+ else false
761+ if (fl)
762+ then throw(("Put operation is blocked by admin. Status = " + toString(bx)))
763+ else fk
738764 }
739765
740766
741-func fi (cf) = {
742- let fj = invoke(bd, "emit", [cf], nil)
743- if ((fj == fj))
767+func fm (ch) = {
768+ let fn = invoke(bd, "emit", [ch], nil)
769+ if ((fn == fn))
744770 then {
745- let fk = {
746- let aQ = fj
771+ let fo = {
772+ let aQ = fn
747773 if ($isInstanceOf(aQ, "Address"))
748774 then {
749- let fl = aQ
750- invoke(fl, "emit", [cf], nil)
775+ let fp = aQ
776+ invoke(fp, "emit", [ch], nil)
751777 }
752778 else unit
753779 }
754- if ((fk == fk))
755- then cf
780+ if ((fo == fo))
781+ then ch
756782 else throw("Strict value is not equal to itself.")
757783 }
758784 else throw("Strict value is not equal to itself.")
759785 }
760786
761787
762-func fm (cf,ai) = {
763- let fn = if ((ai == 0))
788+func fq (ch,ai) = {
789+ let fr = if ((ai == 0))
764790 then 0
765- else fraction(cf, ai, b)
766- $Tuple2((cf - fn), fn)
791+ else fraction(ch, ai, b)
792+ $Tuple2((ch - fr), fr)
767793 }
768794
769795
770-func fo (fp,fq,ab,ac) = {
771- let fr = (ac == unit)
772- let fs = bT(bp(bx))
773- let ft = bT(bp(by))
774- let fu = if ((fq == bx))
796+func fs (ft,fu,ab,ac) = {
797+ let fv = (ac == unit)
798+ let fw = bV(br(bz))
799+ let fx = bV(br(bA))
800+ let fy = if ((fu == bz))
775801 then true
776- else if ((fq == by))
802+ else if ((fu == bA))
777803 then false
778804 else ba("invalid asset")
779- let fv = if (fr)
780- then $Tuple2(fs, ft)
781- else if (fu)
782- then $Tuple2((fs - fp), ft)
783- else $Tuple2(fs, (ft - fp))
784- let fw = fv._1
785- let fx = fv._2
786- let fy = if (fu)
787- then $Tuple2(fp, 0)
788- else $Tuple2(0, fp)
789- let fz = fy._1
790- let fA = fy._2
791- let eR = fm(fz, bf)._1
792- let eS = fm(fA, bf)._1
793- let fB = fm(fp, bf)
794- let fC = fB._1
795- let fn = fB._2
796- let fD = (fw + eR)
797- let fE = (fx + eS)
798- let fF = bW(D(fE, bA), D(fD, bz))
799- let fG = H(fF, b)
800- let fH = if (fu)
801- then fw
802- else fx
803- let fI = toBigInt(fH)
804- let fJ = toBigInt(valueOrErrorMessage(assetInfo(bw), (("asset " + toBase58String(bw)) + " doesn't exist")).quantity)
805- let fK = if ((fJ > f))
805+ let fz = if (fv)
806+ then $Tuple2(fw, fx)
807+ else if (fy)
808+ then $Tuple2((fw - ft), fx)
809+ else $Tuple2(fw, (fx - ft))
810+ let fA = fz._1
811+ let fB = fz._2
812+ let fC = if (fy)
813+ then $Tuple2(ft, 0)
814+ else $Tuple2(0, ft)
815+ let fD = fC._1
816+ let fE = fC._2
817+ let eT = fq(fD, bf)._1
818+ let eU = fq(fE, bf)._1
819+ let fF = fq(ft, bf)
820+ let fG = fF._1
821+ let fr = fF._2
822+ let fH = (fA + eT)
823+ let fI = (fB + eU)
824+ let fJ = bY(D(fI, bC), D(fH, bB))
825+ let fK = H(fJ, b)
826+ let fL = if (fy)
827+ then fA
828+ else fB
829+ let fM = toBigInt(fL)
830+ let fN = toBigInt(valueOrErrorMessage(assetInfo(by), (("asset " + toBase58String(by)) + " doesn't exist")).quantity)
831+ let fO = if ((fN > f))
806832 then true
807833 else ba("initial deposit requires all coins")
808- if ((fK == fK))
834+ if ((fO == fO))
809835 then {
810- let fL = toBigInt(fC)
811- let fM = max([0, toInt(((fJ * (sqrtBigInt((d + ((fL * d) / fI)), 18, 18, DOWN) - d)) / d))])
812- let et = if (fr)
836+ let fP = toBigInt(fG)
837+ let fQ = max([0, toInt(((fN * (sqrtBigInt((d + ((fP * d) / fM)), 18, 18, DOWN) - d)) / d))])
838+ let ev = if (fv)
813839 then nil
814- else [IntegerEntry(W(), fG), IntegerEntry(X(height, lastBlock.timestamp), fG), StringEntry(aa(toString(value(ab)), toBase58String(value(ac))), bE(fz, fA, fM, fG, 0, 0, height, lastBlock.timestamp, 0, 0))]
815- let fN = bW(D(fx, bA), D(fw, bz))
816- let fO = H(fN, b)
817- let fP = {
818- let fQ = if (fu)
819- then $Tuple2(fz, fw)
820- else $Tuple2(fA, fx)
821- let cf = fQ._1
822- let fR = fQ._2
823- let fS = toInt(fraction(fJ, toBigInt((cf / 2)), toBigInt(fR)))
824- fraction((fM - fS), b, fS)
840+ else [IntegerEntry(W(), fK), IntegerEntry(X(height, lastBlock.timestamp), fK), StringEntry(aa(toString(value(ab)), toBase58String(value(ac))), bG(fD, fE, fQ, fK, 0, 0, height, lastBlock.timestamp, 0, 0))]
841+ let fR = bY(D(fB, bC), D(fA, bB))
842+ let fS = H(fR, b)
843+ let fT = {
844+ let fU = if (fy)
845+ then $Tuple2(fD, fA)
846+ else $Tuple2(fE, fB)
847+ let ch = fU._1
848+ let fV = fU._2
849+ let fW = toInt(fraction(fN, toBigInt((ch / 2)), toBigInt(fV)))
850+ fraction((fQ - fW), b, fW)
825851 }
826- $Tuple5(fM, et, fn, fP, fu)
852+ $Tuple5(fQ, ev, fr, fT, fy)
827853 }
828854 else throw("Strict value is not equal to itself.")
829855 }
830856
831857
832-func fT (fU,fC,fq,ab,ac) = {
833- let fr = (ac == unit)
834- let di = bk()
835- let dj = parseIntValue(di[t])
836- let dk = parseIntValue(di[u])
837- let fV = [if ((fq == bw))
858+func fX (fY,fG,fu,ab,ac) = {
859+ let fv = (ac == unit)
860+ let dk = bm()
861+ let dl = parseIntValue(dk[t])
862+ let dm = parseIntValue(dk[u])
863+ let fZ = [if ((fu == by))
838864 then true
839865 else ba("invalid lp asset")]
840- if ((fV == fV))
866+ if ((fZ == fZ))
841867 then {
842- let fW = if ((fU == bx))
868+ let ga = if ((fY == bz))
843869 then true
844- else if ((fU == by))
870+ else if ((fY == bA))
845871 then false
846872 else ba("invalid asset")
847- let fX = if (fW)
848- then toBigInt(bT(bp(bx)))
849- else toBigInt(bT(bp(by)))
850- let fY = if (fW)
851- then dj
852- else dk
853- let fZ = bT(bp(bx))
854- let ga = bT(bp(by))
855- let gb = if (fW)
856- then fZ
857- else ga
858- let gc = toBigInt(gb)
859- let fJ = toBigInt(valueOrErrorMessage(assetInfo(bw), (("asset " + toBase58String(bw)) + " doesn't exist")).quantity)
860- let gd = toBigInt(fC)
861- let ge = max([0, toInt(((fX * (d - pow((d - ((gd * d) / fJ)), 18, h, 0, 18, DOWN))) / d))])
862- let gf = fm(ge, bh)
863- let gg = gf._1
864- let fn = gf._2
865- let gh = if (fW)
866- then $Tuple4(gg, 0, (fZ - ge), ga)
867- else $Tuple4(0, gg, fZ, (ga - ge))
868- let gi = gh._1
869- let gj = gh._2
870- let gk = gh._3
871- let gl = gh._4
872- let fF = bW(D(gl, bA), D(gk, bz))
873- let fG = H(fF, b)
874- let et = if (fr)
873+ let gb = if (ga)
874+ then toBigInt(bV(br(bz)))
875+ else toBigInt(bV(br(bA)))
876+ let gc = if (ga)
877+ then dl
878+ else dm
879+ let gd = bV(br(bz))
880+ let ge = bV(br(bA))
881+ let gf = if (ga)
882+ then gd
883+ else ge
884+ let gg = toBigInt(gf)
885+ let fN = toBigInt(valueOrErrorMessage(assetInfo(by), (("asset " + toBase58String(by)) + " doesn't exist")).quantity)
886+ let gh = toBigInt(fG)
887+ let gi = max([0, toInt(((gb * (d - pow((d - ((gh * d) / fN)), 18, h, 0, 18, DOWN))) / d))])
888+ let gj = fq(gi, bh)
889+ let gk = gj._1
890+ let fr = gj._2
891+ let gl = if (ga)
892+ then $Tuple4(gk, 0, (gd - gi), ge)
893+ else $Tuple4(0, gk, gd, (ge - gi))
894+ let gm = gl._1
895+ let gn = gl._2
896+ let go = gl._3
897+ let gp = gl._4
898+ let fJ = bY(D(gp, bC), D(go, bB))
899+ let fK = H(fJ, b)
900+ let ev = if (fv)
875901 then nil
876- else [StringEntry(ad(toString(value(ab)), toBase58String(value(ac))), bP(gi, gj, fC, fG, height, lastBlock.timestamp)), IntegerEntry(W(), fG), IntegerEntry(X(height, lastBlock.timestamp), fG)]
877- let fN = bW(D(ga, bA), D(fZ, bz))
878- let fO = H(fN, b)
879- let fP = {
880- let gm = (toInt(fraction(fX, gd, fJ)) * 2)
881- fraction((gg - gm), b, gm)
902+ else [StringEntry(ad(toString(value(ab)), toBase58String(value(ac))), bR(gm, gn, fG, fK, height, lastBlock.timestamp)), IntegerEntry(W(), fK), IntegerEntry(X(height, lastBlock.timestamp), fK)]
903+ let fR = bY(D(ge, bC), D(gd, bB))
904+ let fS = H(fR, b)
905+ let fT = {
906+ let gq = (toInt(fraction(gb, gh, fN)) * 2)
907+ fraction((gk - gq), b, gq)
882908 }
883- $Tuple5(gg, et, fn, fP, fW)
909+ $Tuple5(gk, ev, fr, fT, ga)
884910 }
885911 else throw("Strict value is not equal to itself.")
886912 }
887913
888914
889-func gn () = {
890- let go = aS()
891- let aQ = getString(go, U())
915+func gr () = {
916+ let gs = aS()
917+ let aQ = getString(gs, U())
892918 if ($isInstanceOf(aQ, "String"))
893919 then {
894920 let aV = aQ
900926 }
901927
902928
903-func gp (fb) = {
904- let aQ = gn()
929+func gt (fd) = {
930+ let aQ = gr()
905931 if ($isInstanceOf(aQ, "ByteVector"))
906932 then {
907- let gq = aQ
908- (fb.callerPublicKey == gq)
933+ let gu = aQ
934+ (fd.callerPublicKey == gu)
909935 }
910936 else if ($isInstanceOf(aQ, "Unit"))
911- then (fb.caller == this)
937+ then (fd.caller == this)
912938 else throw("Match error")
913939 }
914940
915941
916-func gr (fb) = {
917- let gs = throw("Permission denied")
918- let aQ = gn()
942+func gv (fd) = {
943+ let gw = throw("Permission denied")
944+ let aQ = gr()
919945 if ($isInstanceOf(aQ, "ByteVector"))
920946 then {
921- let gq = aQ
922- if ((fb.callerPublicKey == gq))
947+ let gu = aQ
948+ if ((fd.callerPublicKey == gu))
923949 then true
924- else gs
950+ else gw
925951 }
926952 else if ($isInstanceOf(aQ, "Unit"))
927- then if ((fb.caller == this))
953+ then if ((fd.caller == this))
928954 then true
929- else gs
955+ else gw
930956 else throw("Match error")
931957 }
932958
933959
934-@Callable(fb)
935-func rebalance () = (cI(aW(this, ae())) ++ cI(aW(this, af())))
960+@Callable(fd)
961+func rebalance () = (cK(aW(this, ae())) ++ cK(aW(this, af())))
936962
937963
938964
939-@Callable(fb)
940-func calculateAmountOutForSwapREADONLY (gt,gu,gv) = {
941- let gw = if ((gu == false))
965+@Callable(fd)
966+func calculateAmountOutForSwapREADONLY (gx,gy,gz) = {
967+ let gA = if ((gy == false))
942968 then {
943- let gx = aW(this, af())
944- let gy = aW(this, ae())
945- $Tuple2(gx, gy)
969+ let gB = aW(this, af())
970+ let gC = aW(this, ae())
971+ $Tuple2(gB, gC)
946972 }
947973 else {
948- let gx = aW(this, ae())
949- let gy = aW(this, af())
950- $Tuple2(gx, gy)
974+ let gB = aW(this, ae())
975+ let gC = aW(this, af())
976+ $Tuple2(gB, gC)
951977 }
952- let gx = gw._1
953- let gy = gw._2
954- let gz = bT(gy)
955- let gA = bT(gx)
956- let gB = fraction(gA, gt, (gz + gt))
957- let gC = (toBigInt(gz) * toBigInt(gA))
958- let gD = (((toBigInt(bT(gy)) + toBigInt(gt)) + toBigInt(gv)) * (toBigInt(bT(gx)) - toBigInt(gB)))
959- let gE = if ((gD >= gC))
978+ let gB = gA._1
979+ let gC = gA._2
980+ let gD = bV(gC)
981+ let gE = bV(gB)
982+ let gF = fraction(gE, gx, (gD + gx))
983+ let gG = (toBigInt(gD) * toBigInt(gE))
984+ let gH = (((toBigInt(bV(gC)) + toBigInt(gx)) + toBigInt(gz)) * (toBigInt(bV(gB)) - toBigInt(gF)))
985+ let gI = if ((gH >= gG))
960986 then true
961987 else throw("new K is fewer error")
962- if ((gE == gE))
963- then $Tuple2(nil, gB)
988+ if ((gI == gI))
989+ then $Tuple2(nil, gF)
964990 else throw("Strict value is not equal to itself.")
965991 }
966992
967993
968994
969-@Callable(fb)
970-func calculateAmountOutForSwapAndSendTokens (gt,gu,gF,gG,gv) = {
971- let gH = {
995+@Callable(fd)
996+func calculateAmountOutForSwapAndSendTokens (gx,gy,gJ,gK,gz) = {
997+ let gL = {
972998 let bg = invoke(bd, "getSwapContractREADONLY", nil, nil)
973999 if ($isInstanceOf(bg, "String"))
9741000 then bg
9751001 else throw(($getType(bg) + " couldn't be cast to String"))
9761002 }
977- let fV = [if ((value(fb.payments[0]).amount >= gt))
1003+ let gM = {
1004+ let bg = invoke(bd, "isPoolSwapDisabledREADONLY", [toString(this)], nil)
1005+ if ($isInstanceOf(bg, "Boolean"))
1006+ then bg
1007+ else throw(($getType(bg) + " couldn't be cast to Boolean"))
1008+ }
1009+ let gN = if (!(bj(fd.caller)))
1010+ then if (if (bk())
1011+ then true
1012+ else (bx == n))
1013+ then true
1014+ else gM
1015+ else false
1016+ let fZ = [if (if (!(gN))
9781017 then true
979- else ba("Wrong amount"), if ((fb.caller == addressFromStringValue(gH)))
1018+ else gt(fd))
1019+ then true
1020+ else ba("swap operation is blocked by admin"), if ((value(fd.payments[0]).amount >= gx))
1021+ then true
1022+ else ba("Wrong amount"), if ((fd.caller == addressFromStringValue(gL)))
9801023 then true
9811024 else ba("Permission denied")]
982- if ((fV == fV))
1025+ if ((fZ == fZ))
9831026 then {
984- let fc = value(fb.payments[0])
985- let gy = bp(fc.assetId)
986- let gx = if ((gu == false))
1027+ let fe = value(fd.payments[0])
1028+ let gC = br(fe.assetId)
1029+ let gB = if ((gy == false))
9871030 then aW(this, af())
9881031 else aW(this, ae())
989- let gz = ((bT(gy) - value(fb.payments[0]).amount) - gv)
990- let gA = bT(gx)
991- let gB = fraction(gA, gt, (gz + gt))
992- let gC = (toBigInt(gz) * toBigInt(gA))
993- let gD = ((toBigInt(bT(gy)) + toBigInt(gv)) * (toBigInt(bT(gx)) - toBigInt(gB)))
994- let gE = if ((gD >= gC))
1032+ let gD = ((bV(gC) - value(fd.payments[0]).amount) - gz)
1033+ let gE = bV(gB)
1034+ let gF = fraction(gE, gx, (gD + gx))
1035+ let gG = (toBigInt(gD) * toBigInt(gE))
1036+ let gH = ((toBigInt(bV(gC)) + toBigInt(gz)) * (toBigInt(bV(gB)) - toBigInt(gF)))
1037+ let gI = if ((gH >= gG))
9951038 then true
9961039 else throw("new K is fewer error")
997- if ((gE == gE))
1040+ if ((gI == gI))
9981041 then {
999- let gI = if ((gB >= gF))
1042+ let gO = if ((gF >= gJ))
10001043 then true
10011044 else throw("Exchange result is fewer coins than expected")
1002- if ((gI == gI))
1045+ if ((gO == gO))
10031046 then {
1004- let gJ = cI(gy)
1005- if ((gJ == gJ))
1047+ let eL = if (gy)
1048+ then -(gF)
1049+ else gz
1050+ let eM = if (gy)
1051+ then gz
1052+ else -(gF)
1053+ let gP = eK(eL, eM, 0)._1
1054+ if ((gP == gP))
10061055 then {
1007- let gK = cP(gx, gB)
1008- if ((gK == gK))
1009- then $Tuple2(((gK ++ gJ) ++ [ScriptTransfer(addressFromStringValue(gG), gB, bn(gx))]), gB)
1056+ let gQ = cK(gC)
1057+ if ((gQ == gQ))
1058+ then {
1059+ let gR = cR(gB, gF)
1060+ if ((gR == gR))
1061+ then $Tuple2(((gR ++ gQ) ++ [ScriptTransfer(addressFromStringValue(gK), gF, bp(gB))]), gF)
1062+ else throw("Strict value is not equal to itself.")
1063+ }
10101064 else throw("Strict value is not equal to itself.")
10111065 }
10121066 else throw("Strict value is not equal to itself.")
10201074
10211075
10221076
1023-@Callable(fb)
1024-func put (dO,gL) = if ((0 > dO))
1077+@Callable(fd)
1078+func put (dQ,gS) = if ((0 > dQ))
10251079 then throw("Invalid slippageTolerance passed")
10261080 else {
1027- let fh = fe(fb, dO, true)
1028- let eq = fh._2
1029- let dv = fh._7
1030- let dM = fh._9
1031- let er = fh._10
1032- let es = fh._11
1033- let gM = fh._12
1034- let gN = fh._13
1035- let ff = toBigInt(value(fb.payments[0]).amount)
1036- let fg = toBigInt(value(fb.payments[1]).amount)
1037- let eH = eA(ff, fg, toBigInt(0))
1038- if ((eH == eH))
1081+ let fk = fh(fd, dQ, true)
1082+ let es = fk._2
1083+ let dx = fk._7
1084+ let dO = fk._9
1085+ let et = fk._10
1086+ let eu = fk._11
1087+ let gT = fk._12
1088+ let gU = fk._13
1089+ let fi = toBigInt(value(fd.payments[0]).amount)
1090+ let fj = toBigInt(value(fd.payments[1]).amount)
1091+ let eJ = eC(fi, fj, toBigInt(0))
1092+ if ((eJ == eJ))
10391093 then {
1040- let fj = invoke(bd, "emit", [eq], nil)
1041- if ((fj == fj))
1094+ let fn = invoke(bd, "emit", [es], nil)
1095+ if ((fn == fn))
10421096 then {
1043- let fk = {
1044- let aQ = fj
1097+ let fo = {
1098+ let aQ = fn
10451099 if ($isInstanceOf(aQ, "Address"))
10461100 then {
1047- let fl = aQ
1048- invoke(fl, "emit", [eq], nil)
1101+ let fp = aQ
1102+ invoke(fp, "emit", [es], nil)
10491103 }
10501104 else unit
10511105 }
1052- if ((fk == fk))
1106+ if ((fo == fo))
10531107 then {
1054- let gO = if ((er > 0))
1055- then invoke(bD, "put", nil, [AttachedPayment(gM, er)])
1108+ let gV = if ((et > 0))
1109+ then invoke(bF, "put", nil, [AttachedPayment(gT, et)])
10561110 else nil
1057- if ((gO == gO))
1111+ if ((gV == gV))
10581112 then {
1059- let gP = if ((es > 0))
1060- then invoke(bD, "put", nil, [AttachedPayment(gN, es)])
1113+ let gW = if ((eu > 0))
1114+ then invoke(bF, "put", nil, [AttachedPayment(gU, eu)])
10611115 else nil
1062- if ((gP == gP))
1116+ if ((gW == gW))
10631117 then {
1064- let gQ = if (gL)
1118+ let gX = if (gS)
10651119 then {
1066- let gR = invoke(bC, "stake", nil, [AttachedPayment(dv, eq)])
1067- if ((gR == gR))
1120+ let gY = invoke(bE, "stake", nil, [AttachedPayment(dx, es)])
1121+ if ((gY == gY))
10681122 then nil
10691123 else throw("Strict value is not equal to itself.")
10701124 }
1071- else [ScriptTransfer(fb.caller, eq, dv)]
1072- let gS = eI(0, 0, 0)
1073- if ((gS == gS))
1125+ else [ScriptTransfer(fd.caller, es, dx)]
1126+ let gZ = eK(0, 0, 0)
1127+ if ((gZ == gZ))
10741128 then {
1075- let ez = gS._2
1076- let gT = gS._1
1077- let gU = eN(eH, ez)
1078- if ((gU == gU))
1129+ let eB = gZ._2
1130+ let gP = gZ._1
1131+ let ha = eP(eJ, eB)
1132+ if ((ha == ha))
10791133 then {
1080- let gV = invoke(this, "rebalance", nil, nil)
1081- if ((gV == gV))
1082- then ((dM ++ gQ) ++ gT)
1134+ let hb = invoke(this, "rebalance", nil, nil)
1135+ if ((hb == hb))
1136+ then ((dO ++ gX) ++ gP)
10831137 else throw("Strict value is not equal to itself.")
10841138 }
10851139 else throw("Strict value is not equal to itself.")
10991153
11001154
11011155
1102-@Callable(fb)
1103-func putForFree (gW) = if ((0 > gW))
1156+@Callable(fd)
1157+func putForFree (hc) = if ((0 > hc))
11041158 then throw("Invalid value passed")
11051159 else {
1106- let fh = fe(fb, gW, false)
1107- let dM = fh._9
1108- let ff = toBigInt(value(fb.payments[0]).amount)
1109- let fg = toBigInt(value(fb.payments[1]).amount)
1110- let eH = eA(ff, fg, toBigInt(0))
1111- if ((eH == eH))
1160+ let fk = fh(fd, hc, false)
1161+ let dO = fk._9
1162+ let fi = toBigInt(value(fd.payments[0]).amount)
1163+ let fj = toBigInt(value(fd.payments[1]).amount)
1164+ let eJ = eC(fi, fj, toBigInt(0))
1165+ if ((eJ == eJ))
11121166 then {
1113- let gX = eI(0, 0, 0)
1114- let gT = gX._1
1115- let ez = gX._2
1116- let gU = eN(eH, ez)
1117- if ((gU == gU))
1118- then (dM ++ gT)
1167+ let hd = eK(0, 0, 0)
1168+ let gP = hd._1
1169+ let eB = hd._2
1170+ let ha = eP(eJ, eB)
1171+ if ((ha == ha))
1172+ then (dO ++ gP)
11191173 else throw("Strict value is not equal to itself.")
11201174 }
11211175 else throw("Strict value is not equal to itself.")
11231177
11241178
11251179
1126-@Callable(fb)
1127-func putOneTkn (gY,gZ) = {
1128- let ha = {
1180+@Callable(fd)
1181+func putOneTkn (he,hf) = {
1182+ let hg = {
11291183 let bg = invoke(bd, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
11301184 if ($isInstanceOf(bg, "Boolean"))
11311185 then bg
11321186 else throw(($getType(bg) + " couldn't be cast to Boolean"))
11331187 }
1134- let hb = if (if (if (bi())
1188+ let fl = if (!(bj(fd.caller)))
1189+ then if (if (if (bk())
1190+ then true
1191+ else (bx == l))
1192+ then true
1193+ else (bx == n))
1194+ then true
1195+ else hg
1196+ else false
1197+ let fZ = [if (if (!(fl))
11351198 then true
1136- else (bv == l))
1199+ else gt(fd))
11371200 then true
1138- else (bv == n))
1139- then true
1140- else ha
1141- let fV = [if (if (!(hb))
1142- then true
1143- else gp(fb))
1144- then true
1145- else ba("put operation is blocked by admin"), if ((size(fb.payments) == 1))
1201+ else ba("put operation is blocked by admin"), if ((size(fd.payments) == 1))
11461202 then true
11471203 else ba("exactly 1 payment are expected")]
1148- if ((fV == fV))
1204+ if ((fZ == fZ))
11491205 then {
1150- let hc = fb.payments[0]
1151- let fq = hc.assetId
1152- let fp = hc.amount
1153- let eH = if ((fq == bx))
1154- then eA(toBigInt(fp), toBigInt(0), toBigInt(0))
1155- else if ((fq == by))
1156- then eA(toBigInt(0), toBigInt(fp), toBigInt(0))
1206+ let hh = fd.payments[0]
1207+ let fu = hh.assetId
1208+ let ft = hh.amount
1209+ let eJ = if ((fu == bz))
1210+ then eC(toBigInt(ft), toBigInt(0), toBigInt(0))
1211+ else if ((fu == bA))
1212+ then eC(toBigInt(0), toBigInt(ft), toBigInt(0))
11571213 else ba("payment asset is not supported")
1158- if ((eH == eH))
1214+ if ((eJ == eJ))
11591215 then {
1160- let ab = fb.caller
1161- let ac = fb.transactionId
1162- let hd = fo(fp, fq, ab, ac)
1163- if ((hd == hd))
1216+ let ab = fd.caller
1217+ let ac = fd.transactionId
1218+ let hi = fs(ft, fu, ab, ac)
1219+ if ((hi == hi))
11641220 then {
1165- let fu = hd._5
1166- let he = hd._4
1167- let fn = hd._3
1168- let et = hd._2
1169- let hf = hd._1
1170- let hg = if (if ((gY > 0))
1171- then (gY > hf)
1221+ let fy = hi._5
1222+ let hj = hi._4
1223+ let fr = hi._3
1224+ let ev = hi._2
1225+ let hk = hi._1
1226+ let hl = if (if ((he > 0))
1227+ then (he > hk)
11721228 else false)
1173- then ba(makeString(["amount to receive is less than ", toString(gY)], ""))
1174- else hf
1175- let fj = fi(hg)
1176- if ((fj == fj))
1229+ then ba(makeString(["amount to receive is less than ", toString(he)], ""))
1230+ else hk
1231+ let fn = fm(hl)
1232+ if ((fn == fn))
11771233 then {
1178- let gQ = if (gZ)
1234+ let gX = if (hf)
11791235 then {
1180- let hh = invoke(bC, "stake", nil, [AttachedPayment(bw, hg)])
1181- if ((hh == hh))
1236+ let hm = invoke(bE, "stake", nil, [AttachedPayment(by, hl)])
1237+ if ((hm == hm))
11821238 then nil
11831239 else throw("Strict value is not equal to itself.")
11841240 }
1185- else [ScriptTransfer(fb.caller, hg, bw)]
1186- let hi = if ((fn > 0))
1187- then [ScriptTransfer(be, fn, fq)]
1241+ else [ScriptTransfer(fd.caller, hl, by)]
1242+ let hn = if ((fr > 0))
1243+ then [ScriptTransfer(be, fr, fu)]
11881244 else nil
1189- let hj = if ((this == be))
1245+ let ho = if ((this == be))
11901246 then $Tuple2(0, 0)
1191- else if (fu)
1192- then $Tuple2(-(fn), 0)
1193- else $Tuple2(0, -(fn))
1194- let eJ = hj._1
1195- let eK = hj._2
1196- let hk = eI(eJ, eK, 0)
1197- let gT = hk._1
1198- let ez = hk._2
1199- let eU = value(getString(aj))
1200- let gU = eN(eH, ez)
1201- if ((gU == gU))
1247+ else if (fy)
1248+ then $Tuple2(-(fr), 0)
1249+ else $Tuple2(0, -(fr))
1250+ let eL = ho._1
1251+ let eM = ho._2
1252+ let hp = eK(eL, eM, 0)
1253+ let gP = hp._1
1254+ let eB = hp._2
1255+ let eW = value(getString(aj))
1256+ let ha = eP(eJ, eB)
1257+ if ((ha == ha))
12021258 then {
1203- let gV = invoke(this, "rebalance", nil, nil)
1204- if ((gV == gV))
1205- then $Tuple2((((et ++ gQ) ++ hi) ++ gT), hg)
1259+ let hb = invoke(this, "rebalance", nil, nil)
1260+ if ((hb == hb))
1261+ then $Tuple2((((ev ++ gX) ++ hn) ++ gP), hl)
12061262 else throw("Strict value is not equal to itself.")
12071263 }
12081264 else throw("Strict value is not equal to itself.")
12181274
12191275
12201276
1221-@Callable(fb)
1222-func putOneTknREADONLY (fq,fp) = {
1223- let hl = fo(fp, bn(fq), unit, unit)
1224- let hf = hl._1
1225- let et = hl._2
1226- let fn = hl._3
1227- let he = hl._4
1228- let fu = hl._5
1229- $Tuple2(nil, $Tuple3(hf, fn, he))
1277+@Callable(fd)
1278+func putOneTknREADONLY (fu,ft) = {
1279+ let hq = fs(ft, bp(fu), unit, unit)
1280+ let hk = hq._1
1281+ let ev = hq._2
1282+ let fr = hq._3
1283+ let hj = hq._4
1284+ let fy = hq._5
1285+ $Tuple2(nil, $Tuple3(hk, fr, hj))
12301286 }
12311287
12321288
12331289
1234-@Callable(fb)
1235-func getOneTkn (hm,gY) = {
1236- let ha = {
1290+@Callable(fd)
1291+func getOneTkn (hr,he) = {
1292+ let hg = {
12371293 let bg = invoke(bd, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
12381294 if ($isInstanceOf(bg, "Boolean"))
12391295 then bg
12401296 else throw(($getType(bg) + " couldn't be cast to Boolean"))
12411297 }
1242- let hn = if (if (bi())
1298+ let fg = if (!(bj(fd.caller)))
1299+ then if (if (bk())
1300+ then true
1301+ else (bx == n))
1302+ then true
1303+ else hg
1304+ else false
1305+ let fZ = [if (if (!(fg))
12431306 then true
1244- else (bv == n))
1307+ else gt(fd))
12451308 then true
1246- else ha
1247- let fV = [if (if (!(hn))
1248- then true
1249- else gp(fb))
1250- then true
1251- else ba("get operation is blocked by admin"), if ((size(fb.payments) == 1))
1309+ else ba("get operation is blocked by admin"), if ((size(fd.payments) == 1))
12521310 then true
12531311 else ba("exactly 1 payment are expected")]
1254- if ((fV == fV))
1312+ if ((fZ == fZ))
12551313 then {
1256- let fU = bn(hm)
1257- let hc = fb.payments[0]
1258- let fq = hc.assetId
1259- let fC = hc.amount
1260- let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
1261- if ((eH == eH))
1314+ let fY = bp(hr)
1315+ let hh = fd.payments[0]
1316+ let fu = hh.assetId
1317+ let fG = hh.amount
1318+ let eJ = eC(toBigInt(0), toBigInt(0), toBigInt(0))
1319+ if ((eJ == eJ))
12621320 then {
1263- let ab = fb.caller
1264- let ac = fb.transactionId
1265- let ho = fT(fU, fC, fq, ab, ac)
1266- if ((ho == ho))
1321+ let ab = fd.caller
1322+ let ac = fd.transactionId
1323+ let hs = fX(fY, fG, fu, ab, ac)
1324+ if ((hs == hs))
12671325 then {
1268- let fW = ho._5
1269- let he = ho._4
1270- let fn = ho._3
1271- let et = ho._2
1272- let hp = ho._1
1273- let cf = if (if ((gY > 0))
1274- then (gY > hp)
1326+ let ga = hs._5
1327+ let hj = hs._4
1328+ let fr = hs._3
1329+ let ev = hs._2
1330+ let ht = hs._1
1331+ let ch = if (if ((he > 0))
1332+ then (he > ht)
12751333 else false)
1276- then ba(makeString(["amount to receive is less than ", toString(gY)], ""))
1277- else hp
1278- let hq = invoke(bd, "burn", [fC], [AttachedPayment(fq, fC)])
1279- if ((hq == hq))
1334+ then ba(makeString(["amount to receive is less than ", toString(he)], ""))
1335+ else ht
1336+ let hu = invoke(bd, "burn", [fG], [AttachedPayment(fu, fG)])
1337+ if ((hu == hu))
12801338 then {
1281- let gK = cP(hm, (cf + max([0, fn])))
1282- let hr = [ScriptTransfer(ab, cf, fU)]
1283- let hi = if ((fn > 0))
1284- then [ScriptTransfer(be, fn, fU)]
1339+ let gR = cR(hr, (ch + max([0, fr])))
1340+ let hv = [ScriptTransfer(ab, ch, fY)]
1341+ let hn = if ((fr > 0))
1342+ then [ScriptTransfer(be, fr, fY)]
12851343 else nil
1286- let hs = {
1287- let ht = if ((this == be))
1344+ let hw = {
1345+ let hx = if ((this == be))
12881346 then 0
1289- else fn
1290- if (fW)
1291- then $Tuple2(-((cf + ht)), 0)
1292- else $Tuple2(0, -((cf + ht)))
1347+ else fr
1348+ if (ga)
1349+ then $Tuple2(-((ch + hx)), 0)
1350+ else $Tuple2(0, -((ch + hx)))
12931351 }
1294- let eJ = hs._1
1295- let eK = hs._2
1296- let hu = eI(eJ, eK, 0)
1297- let gT = hu._1
1298- let ez = hu._2
1299- let gU = eN(eH, ez)
1300- if ((gU == gU))
1301- then $Tuple2(((((et ++ gK) ++ hr) ++ hi) ++ gT), cf)
1352+ let eL = hw._1
1353+ let eM = hw._2
1354+ let hy = eK(eL, eM, 0)
1355+ let gP = hy._1
1356+ let eB = hy._2
1357+ let ha = eP(eJ, eB)
1358+ if ((ha == ha))
1359+ then $Tuple2(((((ev ++ gR) ++ hv) ++ hn) ++ gP), ch)
13021360 else throw("Strict value is not equal to itself.")
13031361 }
13041362 else throw("Strict value is not equal to itself.")
13121370
13131371
13141372
1315-@Callable(fb)
1316-func getOneTknREADONLY (fU,fC) = {
1317- let hv = fT(bn(fU), fC, bw, unit, unit)
1318- let hp = hv._1
1319- let et = hv._2
1320- let fn = hv._3
1321- let he = hv._4
1322- let fW = hv._5
1323- $Tuple2(nil, $Tuple3(hp, fn, he))
1373+@Callable(fd)
1374+func getOneTknREADONLY (fY,fG) = {
1375+ let hz = fX(bp(fY), fG, by, unit, unit)
1376+ let ht = hz._1
1377+ let ev = hz._2
1378+ let fr = hz._3
1379+ let hj = hz._4
1380+ let ga = hz._5
1381+ $Tuple2(nil, $Tuple3(ht, fr, hj))
13241382 }
13251383
13261384
13271385
1328-@Callable(fb)
1329-func unstakeAndGetOneTkn (hw,hm,gY) = {
1330- let ha = {
1386+@Callable(fd)
1387+func unstakeAndGetOneTkn (hA,hr,he) = {
1388+ let hg = {
13311389 let bg = invoke(bd, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
13321390 if ($isInstanceOf(bg, "Boolean"))
13331391 then bg
13341392 else throw(($getType(bg) + " couldn't be cast to Boolean"))
13351393 }
1336- let hn = if (if (bi())
1394+ let fg = if (!(bj(fd.caller)))
1395+ then if (if (bk())
1396+ then true
1397+ else (bx == n))
1398+ then true
1399+ else hg
1400+ else false
1401+ let fZ = [if (if (!(fg))
13371402 then true
1338- else (bv == n))
1403+ else gt(fd))
13391404 then true
1340- else ha
1341- let fV = [if (if (!(hn))
1342- then true
1343- else gp(fb))
1344- then true
1345- else ba("get operation is blocked by admin"), if ((size(fb.payments) == 0))
1405+ else ba("get operation is blocked by admin"), if ((size(fd.payments) == 0))
13461406 then true
13471407 else ba("no payments are expected")]
1348- if ((fV == fV))
1408+ if ((fZ == fZ))
13491409 then {
1350- let fU = bn(hm)
1351- let ab = fb.caller
1352- let ac = fb.transactionId
1353- let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
1354- if ((eH == eH))
1410+ let fY = bp(hr)
1411+ let ab = fd.caller
1412+ let ac = fd.transactionId
1413+ let eJ = eC(toBigInt(0), toBigInt(0), toBigInt(0))
1414+ if ((eJ == eJ))
13551415 then {
1356- let hx = invoke(bC, "unstake", [toBase58String(bw), hw], nil)
1357- if ((hx == hx))
1416+ let hB = invoke(bE, "unstake", [toBase58String(by), hA], nil)
1417+ if ((hB == hB))
13581418 then {
1359- let hy = fT(fU, hw, bw, ab, ac)
1360- if ((hy == hy))
1419+ let hC = fX(fY, hA, by, ab, ac)
1420+ if ((hC == hC))
13611421 then {
1362- let fW = hy._5
1363- let he = hy._4
1364- let fn = hy._3
1365- let et = hy._2
1366- let hp = hy._1
1367- let cf = if (if ((gY > 0))
1368- then (gY > hp)
1422+ let ga = hC._5
1423+ let hj = hC._4
1424+ let fr = hC._3
1425+ let ev = hC._2
1426+ let ht = hC._1
1427+ let ch = if (if ((he > 0))
1428+ then (he > ht)
13691429 else false)
1370- then ba(makeString(["amount to receive is less than ", toString(gY)], ""))
1371- else hp
1372- let hq = invoke(bd, "burn", [hw], [AttachedPayment(bw, hw)])
1373- if ((hq == hq))
1430+ then ba(makeString(["amount to receive is less than ", toString(he)], ""))
1431+ else ht
1432+ let hu = invoke(bd, "burn", [hA], [AttachedPayment(by, hA)])
1433+ if ((hu == hu))
13741434 then {
1375- let gK = cP(hm, (cf + max([0, fn])))
1376- let hr = [ScriptTransfer(fb.caller, cf, fU)]
1377- let hi = if ((fn > 0))
1378- then [ScriptTransfer(be, fn, fU)]
1435+ let gR = cR(hr, (ch + max([0, fr])))
1436+ let hv = [ScriptTransfer(fd.caller, ch, fY)]
1437+ let hn = if ((fr > 0))
1438+ then [ScriptTransfer(be, fr, fY)]
13791439 else nil
1380- let hz = {
1381- let ht = if ((this == be))
1440+ let hD = {
1441+ let hx = if ((this == be))
13821442 then 0
1383- else fn
1384- if (fW)
1385- then $Tuple2(-((cf + ht)), 0)
1386- else $Tuple2(0, -((cf + ht)))
1443+ else fr
1444+ if (ga)
1445+ then $Tuple2(-((ch + hx)), 0)
1446+ else $Tuple2(0, -((ch + hx)))
13871447 }
1388- let eJ = hz._1
1389- let eK = hz._2
1390- let hA = eI(eJ, eK, 0)
1391- let gT = hA._1
1392- let ez = hA._2
1393- let gU = eN(eH, ez)
1394- if ((gU == gU))
1395- then $Tuple2(((((et ++ gK) ++ hr) ++ hi) ++ gT), cf)
1448+ let eL = hD._1
1449+ let eM = hD._2
1450+ let hE = eK(eL, eM, 0)
1451+ let gP = hE._1
1452+ let eB = hE._2
1453+ let ha = eP(eJ, eB)
1454+ if ((ha == ha))
1455+ then $Tuple2(((((ev ++ gR) ++ hv) ++ hn) ++ gP), ch)
13961456 else throw("Strict value is not equal to itself.")
13971457 }
13981458 else throw("Strict value is not equal to itself.")
14081468
14091469
14101470
1411-@Callable(fb)
1471+@Callable(fd)
14121472 func get () = {
1413- let ee = fa(fb)
1414- let dK = ee._1
1415- let dL = ee._2
1416- let fd = ee._3
1417- let dt = ee._4
1418- let dM = ee._5
1419- let gK = cU(dK, dL)
1420- let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
1421- if ((eH == eH))
1473+ let eg = fc(fd)
1474+ let dM = eg._1
1475+ let dN = eg._2
1476+ let ff = eg._3
1477+ let dv = eg._4
1478+ let dO = eg._5
1479+ let gR = cW(dM, dN)
1480+ let eJ = eC(toBigInt(0), toBigInt(0), toBigInt(0))
1481+ if ((eJ == eJ))
14221482 then {
1423- let hB = invoke(bd, "burn", [fd], [AttachedPayment(dt, fd)])
1424- if ((hB == hB))
1483+ let hF = invoke(bd, "burn", [ff], [AttachedPayment(dv, ff)])
1484+ if ((hF == hF))
14251485 then {
1426- let hC = eI(-(dK), -(dL), 0)
1427- let gT = hC._1
1428- let ez = hC._2
1429- let gU = eN(eH, ez)
1430- if ((gU == gU))
1431- then ((gK ++ dM) ++ gT)
1486+ let hG = eK(-(dM), -(dN), 0)
1487+ let gP = hG._1
1488+ let eB = hG._2
1489+ let ha = eP(eJ, eB)
1490+ if ((ha == ha))
1491+ then ((gR ++ dO) ++ gP)
14321492 else throw("Strict value is not equal to itself.")
14331493 }
14341494 else throw("Strict value is not equal to itself.")
14381498
14391499
14401500
1441-@Callable(fb)
1442-func getNoLess (hD,hE) = {
1443- let ee = fa(fb)
1444- let dK = ee._1
1445- let dL = ee._2
1446- let fd = ee._3
1447- let dt = ee._4
1448- let dM = ee._5
1449- if ((hD > dK))
1450- then throw(((("noLessThenAmtAsset failed: " + toString(dK)) + " < ") + toString(hD)))
1451- else if ((hE > dL))
1452- then throw(((("noLessThenPriceAsset failed: " + toString(dL)) + " < ") + toString(hE)))
1501+@Callable(fd)
1502+func getNoLess (hH,hI) = {
1503+ let eg = fc(fd)
1504+ let dM = eg._1
1505+ let dN = eg._2
1506+ let ff = eg._3
1507+ let dv = eg._4
1508+ let dO = eg._5
1509+ if ((hH > dM))
1510+ then throw(((("noLessThenAmtAsset failed: " + toString(dM)) + " < ") + toString(hH)))
1511+ else if ((hI > dN))
1512+ then throw(((("noLessThenPriceAsset failed: " + toString(dN)) + " < ") + toString(hI)))
14531513 else {
1454- let gK = cU(dK, dL)
1455- let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
1456- if ((eH == eH))
1514+ let gR = cW(dM, dN)
1515+ let eJ = eC(toBigInt(0), toBigInt(0), toBigInt(0))
1516+ if ((eJ == eJ))
14571517 then {
1458- let hB = invoke(bd, "burn", [fd], [AttachedPayment(dt, fd)])
1459- if ((hB == hB))
1518+ let hF = invoke(bd, "burn", [ff], [AttachedPayment(dv, ff)])
1519+ if ((hF == hF))
14601520 then {
1461- let hF = eI(-(dK), -(dL), 0)
1462- let gT = hF._1
1463- let ez = hF._2
1464- let gU = eN(eH, ez)
1465- if ((gU == gU))
1466- then ((gK ++ dM) ++ gT)
1521+ let hJ = eK(-(dM), -(dN), 0)
1522+ let gP = hJ._1
1523+ let eB = hJ._2
1524+ let ha = eP(eJ, eB)
1525+ if ((ha == ha))
1526+ then ((gR ++ dO) ++ gP)
14671527 else throw("Strict value is not equal to itself.")
14681528 }
14691529 else throw("Strict value is not equal to itself.")
14741534
14751535
14761536
1477-@Callable(fb)
1478-func unstakeAndGet (cf) = {
1479- let hG = if ((size(fb.payments) != 0))
1537+@Callable(fd)
1538+func unstakeAndGet (ch) = {
1539+ let hK = if ((size(fd.payments) != 0))
14801540 then throw("No payments are expected")
14811541 else true
1482- if ((hG == hG))
1542+ if ((hK == hK))
14831543 then {
1484- let di = bk()
1485- let dv = fromBase58String(di[q])
1486- let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
1487- if ((eH == eH))
1544+ let dk = bm()
1545+ let dx = fromBase58String(dk[q])
1546+ let eJ = eC(toBigInt(0), toBigInt(0), toBigInt(0))
1547+ if ((eJ == eJ))
14881548 then {
1489- let hx = invoke(bC, "unstake", [toBase58String(dv), cf], nil)
1490- if ((hx == hx))
1549+ let hB = invoke(bE, "unstake", [toBase58String(dx), ch], nil)
1550+ if ((hB == hB))
14911551 then {
1492- let ee = dr(toBase58String(fb.transactionId), toBase58String(dv), cf, fb.caller)
1493- let dK = ee._1
1494- let dL = ee._2
1495- let dy = parseIntValue(ee._9)
1496- let dM = ee._10
1497- let gK = cU(dK, dL)
1498- let hH = if (if (bi())
1499- then true
1500- else (dy == n))
1501- then throw(("Get operation is blocked by admin. Status = " + toString(dy)))
1552+ let eg = dt(toBase58String(fd.transactionId), toBase58String(dx), ch, fd.caller)
1553+ let dM = eg._1
1554+ let dN = eg._2
1555+ let dA = parseIntValue(eg._9)
1556+ let dO = eg._10
1557+ let gR = cW(dM, dN)
1558+ let fg = if (!(bj(fd.caller)))
1559+ then if (bk())
1560+ then true
1561+ else (bx == n)
1562+ else false
1563+ let hL = if (fg)
1564+ then throw(("Get operation is blocked by admin. Status = " + toString(dA)))
15021565 else true
1503- if ((hH == hH))
1566+ if ((hL == hL))
15041567 then {
1505- let hB = invoke(bd, "burn", [cf], [AttachedPayment(dv, cf)])
1506- if ((hB == hB))
1568+ let hF = invoke(bd, "burn", [ch], [AttachedPayment(dx, ch)])
1569+ if ((hF == hF))
15071570 then {
1508- let hI = eI(-(dK), -(dL), 0)
1509- let gT = hI._1
1510- let ez = hI._2
1511- let gU = eN(eH, ez)
1512- if ((gU == gU))
1513- then ((gK ++ dM) ++ gT)
1571+ let hM = eK(-(dM), -(dN), 0)
1572+ let gP = hM._1
1573+ let eB = hM._2
1574+ let ha = eP(eJ, eB)
1575+ if ((ha == ha))
1576+ then ((gR ++ dO) ++ gP)
15141577 else throw("Strict value is not equal to itself.")
15151578 }
15161579 else throw("Strict value is not equal to itself.")
15261589
15271590
15281591
1529-@Callable(fb)
1530-func unstakeAndGetNoLess (hw,hJ,hE) = {
1531- let hn = if (bi())
1592+@Callable(fd)
1593+func unstakeAndGetNoLess (hA,hN,hI) = {
1594+ let fg = if (!(bj(fd.caller)))
1595+ then if (bk())
1596+ then true
1597+ else (bx == n)
1598+ else false
1599+ let fZ = [if (!(fg))
15321600 then true
1533- else (bv == n)
1534- let fV = [if (!(hn))
1535- then true
1536- else throw("get operation is blocked by admin"), if ((size(fb.payments) == 0))
1601+ else throw("get operation is blocked by admin"), if ((size(fd.payments) == 0))
15371602 then true
15381603 else throw("no payments are expected")]
1539- if ((fV == fV))
1604+ if ((fZ == fZ))
15401605 then {
1541- let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
1542- if ((eH == eH))
1606+ let eJ = eC(toBigInt(0), toBigInt(0), toBigInt(0))
1607+ if ((eJ == eJ))
15431608 then {
1544- let hx = invoke(bC, "unstake", [toBase58String(bw), hw], nil)
1545- if ((hx == hx))
1609+ let hB = invoke(bE, "unstake", [toBase58String(by), hA], nil)
1610+ if ((hB == hB))
15461611 then {
1547- let ee = dr(toBase58String(fb.transactionId), toBase58String(bw), hw, fb.caller)
1548- let dK = ee._1
1549- let dL = ee._2
1550- let dM = ee._10
1551- let gK = cU(dK, dL)
1552- let hK = [if ((dK >= hJ))
1612+ let eg = dt(toBase58String(fd.transactionId), toBase58String(by), hA, fd.caller)
1613+ let dM = eg._1
1614+ let dN = eg._2
1615+ let dO = eg._10
1616+ let gR = cW(dM, dN)
1617+ let hO = [if ((dM >= hN))
15531618 then true
1554- else throw(makeString(["amount asset amount to receive is less than ", toString(hJ)], "")), if ((dL >= hE))
1619+ else throw(makeString(["amount asset amount to receive is less than ", toString(hN)], "")), if ((dN >= hI))
15551620 then true
1556- else throw(makeString(["price asset amount to receive is less than ", toString(hE)], ""))]
1557- if ((hK == hK))
1621+ else throw(makeString(["price asset amount to receive is less than ", toString(hI)], ""))]
1622+ if ((hO == hO))
15581623 then {
1559- let hB = invoke(bd, "burn", [hw], [AttachedPayment(bw, hw)])
1560- if ((hB == hB))
1624+ let hF = invoke(bd, "burn", [hA], [AttachedPayment(by, hA)])
1625+ if ((hF == hF))
15611626 then {
1562- let hL = eI(-(dK), -(dL), 0)
1563- let gT = hL._1
1564- let ez = hL._2
1565- let gU = eN(eH, ez)
1566- if ((gU == gU))
1567- then ((gK ++ dM) ++ gT)
1627+ let hP = eK(-(dM), -(dN), 0)
1628+ let gP = hP._1
1629+ let eB = hP._2
1630+ let ha = eP(eJ, eB)
1631+ if ((ha == ha))
1632+ then ((gR ++ dO) ++ gP)
15681633 else throw("Strict value is not equal to itself.")
15691634 }
15701635 else throw("Strict value is not equal to itself.")
15801645
15811646
15821647
1583-@Callable(fb)
1584-func activate (hM,hN) = if ((toString(fb.caller) != toString(bd)))
1648+@Callable(fd)
1649+func activate (hQ,hR) = if ((toString(fd.caller) != toString(bd)))
15851650 then throw("permissions denied")
1586- else $Tuple2([StringEntry(ae(), hM), StringEntry(af(), hN)], "success")
1651+ else $Tuple2([StringEntry(ae(), hQ), StringEntry(af(), hR)], "success")
15871652
15881653
15891654
1590-@Callable(fb)
1655+@Callable(fd)
15911656 func refreshKLp () = {
1592- let hO = valueOrElse(getInteger(ak), 0)
1593- let hP = if (((height - hO) >= an))
1657+ let hS = valueOrElse(getInteger(ak), 0)
1658+ let hT = if (((height - hS) >= an))
15941659 then unit
15951660 else ba(makeString([toString(an), " blocks have not passed since the previous call"], ""))
1596- if ((hP == hP))
1661+ if ((hT == hT))
15971662 then {
1598- let eU = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), bc("invalid kLp"))
1599- let hQ = eI(0, 0, 0)
1600- let hR = hQ._1
1601- let ez = hQ._2
1602- let eL = if ((eU != ez))
1603- then hR
1663+ let eW = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), bc("invalid kLp"))
1664+ let hU = eK(0, 0, 0)
1665+ let hV = hU._1
1666+ let eB = hU._2
1667+ let eN = if ((eW != eB))
1668+ then hV
16041669 else ba("nothing to refresh")
1605- $Tuple2(eL, toString(ez))
1670+ $Tuple2(eN, toString(eB))
16061671 }
16071672 else throw("Strict value is not equal to itself.")
16081673 }
16091674
16101675
16111676
1612-@Callable(fb)
1613-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bk())
1677+@Callable(fd)
1678+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bm())
16141679
16151680
16161681
1617-@Callable(fb)
1618-func getAccBalanceWrapperREADONLY (ap) = $Tuple2(nil, bT(ap))
1682+@Callable(fd)
1683+func getAccBalanceWrapperREADONLY (ap) = $Tuple2(nil, bV(ap))
16191684
16201685
16211686
1622-@Callable(fb)
1623-func calcPricesWrapperREADONLY (dc,dd,dh) = {
1624- let dq = dg(dc, dd, dh)
1625- $Tuple2(nil, [toString(dq[0]), toString(dq[1]), toString(dq[2])])
1687+@Callable(fd)
1688+func calcPricesWrapperREADONLY (de,df,dj) = {
1689+ let ds = di(de, df, dj)
1690+ $Tuple2(nil, [toString(ds[0]), toString(ds[1]), toString(ds[2])])
16261691 }
16271692
16281693
16291694
1630-@Callable(fb)
1695+@Callable(fd)
16311696 func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
16321697
16331698
16341699
1635-@Callable(fb)
1700+@Callable(fd)
16361701 func fromX18WrapperREADONLY (I,J) = $Tuple2(nil, H(parseBigIntValue(I), J))
16371702
16381703
16391704
1640-@Callable(fb)
1641-func calcPriceBigIntWrapperREADONLY (bX,bY) = $Tuple2(nil, toString(bW(parseBigIntValue(bX), parseBigIntValue(bY))))
1705+@Callable(fd)
1706+func calcPriceBigIntWrapperREADONLY (bZ,ca) = $Tuple2(nil, toString(bY(parseBigIntValue(bZ), parseBigIntValue(ca))))
16421707
16431708
16441709
1645-@Callable(fb)
1646-func estimatePutOperationWrapperREADONLY (ds,dO,dP,dQ,dR,dS,ab,dT,dU) = $Tuple2(nil, dN(ds, dO, dP, dQ, dR, dS, ab, dT, dU))
1710+@Callable(fd)
1711+func estimatePutOperationWrapperREADONLY (du,dQ,dR,dS,dT,dU,ab,dV,dW) = $Tuple2(nil, dP(du, dQ, dR, dS, dT, dU, ab, dV, dW))
16471712
16481713
16491714
1650-@Callable(fb)
1651-func estimateGetOperationWrapperREADONLY (ds,dt,du,ab) = {
1652- let ee = dr(ds, dt, du, addressFromStringValue(ab))
1653- $Tuple2(nil, $Tuple10(ee._1, ee._2, ee._3, ee._4, ee._5, ee._6, ee._7, toString(ee._8), ee._9, ee._10))
1715+@Callable(fd)
1716+func estimateGetOperationWrapperREADONLY (du,dv,dw,ab) = {
1717+ let eg = dt(du, dv, dw, addressFromStringValue(ab))
1718+ $Tuple2(nil, $Tuple10(eg._1, eg._2, eg._3, eg._4, eg._5, eg._6, eg._7, toString(eg._8), eg._9, eg._10))
16541719 }
16551720
16561721
16571722
1658-@Callable(fb)
1723+@Callable(fd)
16591724 func statsREADONLY () = {
1660- let di = bk()
1661- let dv = fromBase58String(di[q])
1662- let hS = di[r]
1663- let hT = di[s]
1664- let dX = di[v]
1665- let dY = di[w]
1666- let dj = parseIntValue(di[t])
1667- let dk = parseIntValue(di[u])
1668- let hU = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
1669- let hV = bT(hS)
1670- let hW = bT(hT)
1671- let hX = if ((hU == 0))
1725+ let dk = bm()
1726+ let dx = fromBase58String(dk[q])
1727+ let hW = dk[r]
1728+ let hX = dk[s]
1729+ let dZ = dk[v]
1730+ let ea = dk[w]
1731+ let dl = parseIntValue(dk[t])
1732+ let dm = parseIntValue(dk[u])
1733+ let hY = valueOrErrorMessage(assetInfo(dx), (("Asset " + toBase58String(dx)) + " doesn't exist")).quantity
1734+ let hZ = bV(hW)
1735+ let ia = bV(hX)
1736+ let ib = if ((hY == 0))
16721737 then [e, e, e]
1673- else dg(hV, hW, hU)
1674- let dF = 0
1675- let hY = H(hX[1], b)
1676- let hZ = H(hX[2], b)
1677- let ia = value(getInteger(bd, aD(toString(this))))
1678- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hV), toString(hW), toString(hU), toString(dF), toString(hY), toString(hZ), toString(ia)], j))
1738+ else di(hZ, ia, hY)
1739+ let dH = 0
1740+ let ic = H(ib[1], b)
1741+ let id = H(ib[2], b)
1742+ let ie = value(getInteger(bd, aD(toString(this))))
1743+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hZ), toString(ia), toString(hY), toString(dH), toString(ic), toString(id), toString(ie)], j))
16791744 }
16801745
16811746
16821747
1683-@Callable(fb)
1684-func evaluatePutByAmountAssetREADONLY (dP) = {
1685- let di = bk()
1686- let dv = fromBase58String(di[q])
1687- let dV = di[r]
1688- let dw = fromBase58String(dV)
1689- let dW = di[s]
1690- let dx = fromBase58String(dW)
1691- let dj = parseIntValue(di[t])
1692- let dk = parseIntValue(di[u])
1693- let dy = di[p]
1694- let hU = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
1695- let hV = bT(dV)
1696- let hW = bT(dW)
1697- let de = D(hV, dj)
1698- let df = D(hW, dk)
1699- let dE = if ((hU == 0))
1748+@Callable(fd)
1749+func evaluatePutByAmountAssetREADONLY (dR) = {
1750+ let dk = bm()
1751+ let dx = fromBase58String(dk[q])
1752+ let dX = dk[r]
1753+ let dy = fromBase58String(dX)
1754+ let dY = dk[s]
1755+ let dz = fromBase58String(dY)
1756+ let dl = parseIntValue(dk[t])
1757+ let dm = parseIntValue(dk[u])
1758+ let dA = dk[p]
1759+ let hY = valueOrErrorMessage(assetInfo(dx), (("Asset " + toBase58String(dx)) + " doesn't exist")).quantity
1760+ let hZ = bV(dX)
1761+ let ia = bV(dY)
1762+ let dg = D(hZ, dl)
1763+ let dh = D(ia, dm)
1764+ let dG = if ((hY == 0))
17001765 then e
1701- else bW(df, de)
1702- let eb = D(dP, dj)
1703- let ec = fraction(eb, dE, d)
1704- let dR = H(ec, dk)
1705- let fh = dN("", 500000, dP, dw, dR, dx, "", true, false)
1706- let em = fh._1
1707- let ib = fh._3
1708- let dA = fh._4
1709- let dC = fh._5
1710- let dz = fh._6
1711- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(em), toString(H(dE, b)), toString(dA), toString(dC), toString(dz), dy, toString(dP), toString(dR)], j))
1766+ else bY(dh, dg)
1767+ let ed = D(dR, dl)
1768+ let ee = fraction(ed, dG, d)
1769+ let dT = H(ee, dm)
1770+ let fk = dP("", 500000, dR, dy, dT, dz, "", true, false)
1771+ let eo = fk._1
1772+ let if = fk._3
1773+ let dC = fk._4
1774+ let dE = fk._5
1775+ let dB = fk._6
1776+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(eo), toString(H(dG, b)), toString(dC), toString(dE), toString(dB), dA, toString(dR), toString(dT)], j))
17121777 }
17131778
17141779
17151780
1716-@Callable(fb)
1717-func evaluatePutByPriceAssetREADONLY (dR) = {
1718- let di = bk()
1719- let dv = fromBase58String(di[q])
1720- let dV = di[r]
1721- let dw = fromBase58String(dV)
1722- let dW = di[s]
1723- let dx = fromBase58String(dW)
1724- let dj = parseIntValue(di[t])
1725- let dk = parseIntValue(di[u])
1726- let dy = di[p]
1727- let hU = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
1728- let ic = bT(dV)
1729- let id = bT(dW)
1730- let ie = D(ic, dj)
1731- let if = D(id, dk)
1732- let dE = if ((hU == 0))
1781+@Callable(fd)
1782+func evaluatePutByPriceAssetREADONLY (dT) = {
1783+ let dk = bm()
1784+ let dx = fromBase58String(dk[q])
1785+ let dX = dk[r]
1786+ let dy = fromBase58String(dX)
1787+ let dY = dk[s]
1788+ let dz = fromBase58String(dY)
1789+ let dl = parseIntValue(dk[t])
1790+ let dm = parseIntValue(dk[u])
1791+ let dA = dk[p]
1792+ let hY = valueOrErrorMessage(assetInfo(dx), (("Asset " + toBase58String(dx)) + " doesn't exist")).quantity
1793+ let ig = bV(dX)
1794+ let ih = bV(dY)
1795+ let ii = D(ig, dl)
1796+ let ij = D(ih, dm)
1797+ let dG = if ((hY == 0))
17331798 then e
1734- else bW(if, ie)
1735- let ec = D(dR, dk)
1736- let eb = fraction(ec, d, dE)
1737- let dP = H(eb, dj)
1738- let fh = dN("", 500000, dP, dw, dR, dx, "", true, false)
1739- let em = fh._1
1740- let ib = fh._3
1741- let dA = fh._4
1742- let dC = fh._5
1743- let dz = fh._6
1744- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(em), toString(H(dE, b)), toString(dA), toString(dC), toString(dz), dy, toString(dP), toString(dR)], j))
1799+ else bY(ij, ii)
1800+ let ee = D(dT, dm)
1801+ let ed = fraction(ee, d, dG)
1802+ let dR = H(ed, dl)
1803+ let fk = dP("", 500000, dR, dy, dT, dz, "", true, false)
1804+ let eo = fk._1
1805+ let if = fk._3
1806+ let dC = fk._4
1807+ let dE = fk._5
1808+ let dB = fk._6
1809+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(eo), toString(H(dG, b)), toString(dC), toString(dE), toString(dB), dA, toString(dR), toString(dT)], j))
17451810 }
17461811
17471812
17481813
1749-@Callable(fb)
1750-func evaluateGetREADONLY (ig,ih) = {
1751- let ee = dr("", ig, ih, this)
1752- let dK = ee._1
1753- let dL = ee._2
1754- let dA = ee._5
1755- let dC = ee._6
1756- let dz = ee._7
1757- let dF = ee._8
1758- let dy = parseIntValue(ee._9)
1759- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dK), toString(dL), toString(dA), toString(dC), toString(dz), toString(dF), toString(dy)], j))
1814+@Callable(fd)
1815+func evaluateGetREADONLY (ik,il) = {
1816+ let eg = dt("", ik, il, this)
1817+ let dM = eg._1
1818+ let dN = eg._2
1819+ let dC = eg._5
1820+ let dE = eg._6
1821+ let dB = eg._7
1822+ let dH = eg._8
1823+ let dA = parseIntValue(eg._9)
1824+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dM), toString(dN), toString(dC), toString(dE), toString(dB), toString(dH), toString(dA)], j))
17601825 }
17611826
17621827
1763-@Verifier(ii)
1764-func ij () = {
1765- let ik = {
1766- let aQ = gn()
1828+@Verifier(im)
1829+func in () = {
1830+ let io = {
1831+ let aQ = gr()
17671832 if ($isInstanceOf(aQ, "ByteVector"))
17681833 then {
1769- let gq = aQ
1770- gq
1834+ let gu = aQ
1835+ gu
17711836 }
17721837 else if ($isInstanceOf(aQ, "Unit"))
1773- then ii.senderPublicKey
1838+ then im.senderPublicKey
17741839 else throw("Match error")
17751840 }
1776- let aQ = ii
1841+ let aQ = im
17771842 if ($isInstanceOf(aQ, "Order"))
17781843 then {
1779- let eQ = aQ
1780- let il = bj()
1781- let im = if (eM())
1844+ let eS = aQ
1845+ let ip = bl()
1846+ let iq = if (eO())
17821847 then $Tuple2(true, "")
1783- else eP(eQ)
1784- let aK = im._1
1785- let aL = im._2
1786- let aM = sigVerify(eQ.bodyBytes, eQ.proofs[0], eQ.senderPublicKey)
1787- let aN = sigVerify(eQ.bodyBytes, eQ.proofs[1], il)
1848+ else eR(eS)
1849+ let aK = iq._1
1850+ let aL = iq._2
1851+ let aM = sigVerify(eS.bodyBytes, eS.proofs[0], eS.senderPublicKey)
1852+ let aN = sigVerify(eS.bodyBytes, eS.proofs[1], ip)
17881853 if (if (if (aK)
17891854 then aM
17901855 else false)
17961861 else if ($isInstanceOf(aQ, "SetScriptTransaction"))
17971862 then {
17981863 let aV = aQ
1799- if (sigVerify(ii.bodyBytes, ii.proofs[0], ik))
1864+ if (sigVerify(im.bodyBytes, im.proofs[0], io))
18001865 then true
18011866 else {
1802- let in = blake2b256(value(aV.script))
1803- let io = fromBase64String(value(getString(bd, aF())))
1804- let ip = scriptHash(this)
1805- if ((io == in))
1806- then (ip != in)
1867+ let ir = blake2b256(value(aV.script))
1868+ let is = fromBase64String(value(getString(bd, aF())))
1869+ let it = scriptHash(this)
1870+ if ((is == ir))
1871+ then (it != ir)
18071872 else false
18081873 }
18091874 }
1810- else sigVerify(ii.bodyBytes, ii.proofs[0], ik)
1875+ else sigVerify(im.bodyBytes, im.proofs[0], io)
18111876 }
18121877
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__managerVaultAddress"
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 (ap) = makeString(["%s%s", "stakedBalance", ap], j)
134134
135135
136136 func aq (ap) = makeString(["%s%s", "shareAssetBalance", ap], j)
137137
138138
139139 func ar (ap) = valueOrElse(getInteger(this, ao(ap)), 0)
140140
141141
142142 func as (ap) = valueOrElse(getInteger(this, aq(ap)), 0)
143143
144144
145145 func at () = "%s__factoryConfig"
146146
147147
148148 func au () = "%s%s__matcher__publicKey"
149149
150150
151151 func av (aw) = (("%s%s%s__" + aw) + "__mappings__poolContract2LpAsset")
152152
153153
154154 func ax (ay,az) = (((("%d%d%s__" + ay) + "__") + az) + "__config")
155155
156156
157157 func aA (aB) = ("%s%s%s__mappings__baseAsset2internalId__" + aB)
158158
159159
160160 func aC () = "%s__shutdown"
161161
162162
163163 func aD (aE) = ("%s%s__poolWeight__" + aE)
164164
165165
166166 func aF () = "%s__allowedLpScriptHash"
167167
168168
169169 let aG = "%s__feeCollectorAddress"
170170
171171 func aH (aI) = ("%s%s__skipOrderValidation__" + aI)
172172
173173
174174 func aJ (aK,aL,aM,aN) = throw((((((((("order validation failed: orderValid=" + toString(aK)) + " (") + aL) + ")") + " senderValid=") + toString(aM)) + " matcherValid=") + toString(aN)))
175175
176176
177177 func aO (aP) = {
178178 let aQ = addressFromString(aP)
179179 if ($isInstanceOf(aQ, "Address"))
180180 then {
181181 let aR = aQ
182182 aR
183183 }
184184 else this
185185 }
186186
187187
188188 func aS () = {
189189 let aT = {
190190 let aQ = getString(T())
191191 if ($isInstanceOf(aQ, "String"))
192192 then {
193193 let aU = aQ
194194 aO(aU)
195195 }
196196 else this
197197 }
198198 let aQ = getString(aT, V())
199199 if ($isInstanceOf(aQ, "String"))
200200 then {
201201 let aV = aQ
202202 aO(aV)
203203 }
204204 else this
205205 }
206206
207207
208208 func aW (aX,aY) = valueOrErrorMessage(getString(aX, aY), makeString(["mandatory ", toString(aX), ".", aY, " is not defined"], ""))
209209
210210
211211 func aZ (aX,aY) = valueOrErrorMessage(getInteger(aX, aY), makeString(["mandatory ", toString(aX), ".", aY, " is not defined"], ""))
212212
213213
214214 func ba (bb) = throw(makeString(["lp.ride:", bb], " "))
215215
216216
217217 func bc (bb) = makeString(["lp.ride:", bb], " ")
218218
219219
220220 let bd = addressFromStringValue(aW(this, T()))
221221
222222 let be = addressFromStringValue(aW(bd, aG))
223223
224224 let bf = {
225225 let bg = invoke(bd, "getInFeeREADONLY", [toString(this)], nil)
226226 if ($isInstanceOf(bg, "Int"))
227227 then bg
228228 else throw(($getType(bg) + " couldn't be cast to Int"))
229229 }
230230
231231 let bh = {
232232 let bg = invoke(bd, "getOutFeeREADONLY", [toString(this)], nil)
233233 if ($isInstanceOf(bg, "Int"))
234234 then bg
235235 else throw(($getType(bg) + " couldn't be cast to Int"))
236236 }
237237
238-func bi () = valueOrElse(getBoolean(bd, aC()), false)
238+func bi (aX) = makeString(["%s%s", "whitelisted", toString(aX)], j)
239239
240240
241-func bj () = fromBase58String(aW(bd, au()))
241+func bj (aX) = valueOrElse(getBoolean(bd, bi(aX)), false)
242242
243243
244-func bk () = {
245- let bl = aW(this, ae())
246- let bm = aW(this, af())
247- let az = aZ(bd, aA(bm))
248- let ay = aZ(bd, aA(bl))
244+func bk () = valueOrElse(getBoolean(bd, aC()), false)
245+
246+
247+func bl () = fromBase58String(aW(bd, au()))
248+
249+
250+func bm () = {
251+ let bn = aW(this, ae())
252+ let bo = aW(this, af())
253+ let az = aZ(bd, aA(bo))
254+ let ay = aZ(bd, aA(bn))
249255 split(aW(bd, ax(toString(ay), toString(az))), j)
250256 }
251257
252258
253-func bn (bo) = if ((bo == i))
259+func bp (bq) = if ((bq == i))
254260 then unit
255- else fromBase58String(bo)
261+ else fromBase58String(bq)
256262
257263
258-func bp (bo) = if ((bo == unit))
264+func br (bq) = if ((bq == unit))
259265 then i
260- else toBase58String(value(bo))
266+ else toBase58String(value(bq))
261267
262268
263-func bq (br) = $Tuple7(addressFromStringValue(br[o]), parseIntValue(br[p]), fromBase58String(br[q]), bn(br[r]), bn(br[s]), parseIntValue(br[t]), parseIntValue(br[u]))
269+func bs (bt) = $Tuple7(addressFromStringValue(bt[o]), parseIntValue(bt[p]), fromBase58String(bt[q]), bp(bt[r]), bp(bt[s]), parseIntValue(bt[t]), parseIntValue(bt[u]))
264270
265271
266-let bs = bq(bk())
272+let bu = bs(bm())
267273
268-let bt = bs
274+let bv = bu
269275
270-let bu = bt._1
276+let bw = bv._1
271277
272-let bv = bt._2
278+let bx = bv._2
273279
274-let bw = bt._3
280+let by = bv._3
275281
276-let bx = bt._4
282+let bz = bv._4
277283
278-let by = bt._5
284+let bA = bv._5
279285
280-let bz = bt._6
286+let bB = bv._6
281287
282-let bA = bt._7
288+let bC = bv._7
283289
284-func bB () = split(aW(bd, at()), j)
290+func bD () = split(aW(bd, at()), j)
285291
286292
287-let bC = valueOrErrorMessage(addressFromString(bB()[B]), "incorrect staking address")
293+let bE = valueOrErrorMessage(addressFromString(bD()[B]), "incorrect staking address")
288294
289-let bD = valueOrErrorMessage(addressFromString(bB()[C]), "incorrect staking address")
295+let bF = valueOrErrorMessage(addressFromString(bD()[C]), "incorrect staking address")
290296
291-func bE (bF,bG,bH,bI,bJ,bK,bL,bM,bN,bO) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bF), toString(bG), toString(bH), toString(bI), toString(bJ), toString(bK), toString(bL), toString(bM), toString(bN), toString(bO)], j)
297+func bG (bH,bI,bJ,bK,bL,bM,bN,bO,bP,bQ) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bH), toString(bI), toString(bJ), toString(bK), toString(bL), toString(bM), toString(bN), toString(bO), toString(bP), toString(bQ)], j)
292298
293299
294-func bP (bQ,bR,bS,bI,bL,bM) = makeString(["%d%d%d%d%d%d", toString(bQ), toString(bR), toString(bS), toString(bI), toString(bL), toString(bM)], j)
300+func bR (bS,bT,bU,bK,bN,bO) = makeString(["%d%d%d%d%d%d", toString(bS), toString(bT), toString(bU), toString(bK), toString(bN), toString(bO)], j)
295301
296302
297-func bT (ap) = {
298- let bU = if ((ap == "WAVES"))
303+func bV (ap) = {
304+ let bW = if ((ap == "WAVES"))
299305 then wavesBalance(this).available
300306 else assetBalance(this, fromBase58String(ap))
301- let bV = ((bU + ar(ap)) - as(ap))
302- max([0, bV])
307+ let bX = ((bW + ar(ap)) - as(ap))
308+ max([0, bX])
303309 }
304310
305311
306-func bW (bX,bY) = fraction(bX, d, bY)
312+func bY (bZ,ca) = fraction(bZ, d, ca)
307313
308314
309-func bZ (bX,bY,L) = fraction(bX, d, bY, L)
315+func cb (bZ,ca,L) = fraction(bZ, d, ca, L)
310316
311317
312-func ca (cb) = {
313- let cc = invoke(cb, "getRate", nil, nil)
314- if ((cc == cc))
318+func cc (cd) = {
319+ let ce = invoke(cd, "getRate", nil, nil)
320+ if ((ce == ce))
315321 then {
316- let aQ = cc
322+ let aQ = ce
317323 if ($isInstanceOf(aQ, "Int"))
318324 then {
319- let cd = aQ
320- cd
325+ let cf = aQ
326+ cf
321327 }
322328 else ba("proxy.getRate() unexpected value")
323329 }
324330 else throw("Strict value is not equal to itself.")
325331 }
326332
327333
328-func ce (ap,cf,cg,cb) = {
329- let ch = ar(ap)
330- if ((ch == ch))
334+func cg (ap,ch,ci,cd) = {
335+ let cj = ar(ap)
336+ if ((cj == cj))
331337 then {
332- let ci = as(cg)
333- if ((ci == ci))
338+ let ck = as(ci)
339+ if ((ck == ck))
334340 then {
335- let cj = bn(ap)
336- if ((cf > 0))
341+ let cl = bp(ap)
342+ if ((ch > 0))
337343 then {
338- let ck = invoke(cb, "deposit", nil, [AttachedPayment(cj, cf)])
339- if ((ck == ck))
344+ let cm = invoke(cd, "deposit", nil, [AttachedPayment(cl, ch)])
345+ if ((cm == cm))
340346 then {
341- let aQ = ck
347+ let aQ = cm
342348 if ($isInstanceOf(aQ, "Int"))
343349 then {
344- let cl = aQ
345- let cm = (ch + cf)
346- let cn = (ci + cl)
347-[IntegerEntry(ao(ap), cm), IntegerEntry(aq(cg), cn)]
350+ let cn = aQ
351+ let co = (cj + ch)
352+ let cp = (ck + cn)
353+[IntegerEntry(ao(ap), co), IntegerEntry(aq(ci), cp)]
348354 }
349355 else nil
350356 }
351357 else throw("Strict value is not equal to itself.")
352358 }
353359 else nil
354360 }
355361 else throw("Strict value is not equal to itself.")
356362 }
357363 else throw("Strict value is not equal to itself.")
358364 }
359365
360366
361-func co (ap,cf,cg,cb,cp,cq) = {
362- let ch = ar(ap)
363- if ((ch == ch))
367+func cq (ap,ch,ci,cd,cr,cs) = {
368+ let cj = ar(ap)
369+ if ((cj == cj))
364370 then {
365- let ci = as(cg)
366- if ((ci == ci))
371+ let ck = as(ci)
372+ if ((ck == ck))
367373 then {
368- let cr = ca(cb)
369- if ((cr == cr))
374+ let ct = cc(cd)
375+ if ((ct == ct))
370376 then {
371- let cs = fraction(cp, ch, ci)
372- let ct = bn(cg)
373- let cu = fraction(cp, cf, cs)
374- let cv = fraction(cp, cf, cr)
375- let cw = max([0, (cu - cv)])
376- if ((cv > 0))
377+ let cu = fraction(cr, cj, ck)
378+ let cv = bp(ci)
379+ let cw = fraction(cr, ch, cu)
380+ let cx = fraction(cr, ch, ct)
381+ let cy = max([0, (cw - cx)])
382+ if ((cx > 0))
377383 then {
378- let cx = invoke(cb, "withdraw", nil, [AttachedPayment(ct, cv)])
379- if ((cx == cx))
384+ let cz = invoke(cd, "withdraw", nil, [AttachedPayment(cv, cx)])
385+ if ((cz == cz))
380386 then {
381- let aQ = cx
387+ let aQ = cz
382388 if ($isInstanceOf(aQ, "Int"))
383389 then {
384- let cy = aQ
385- let cm = (ch - cy)
386- let cn = ((ci - cv) - cw)
387-[IntegerEntry(ao(ap), cm), IntegerEntry(aq(cg), cn), ScriptTransfer(cq, cw, bn(cg))]
390+ let cA = aQ
391+ let co = (cj - cA)
392+ let cp = ((ck - cx) - cy)
393+[IntegerEntry(ao(ap), co), IntegerEntry(aq(ci), cp), ScriptTransfer(cs, cy, bp(ci))]
388394 }
389395 else nil
390396 }
391397 else throw("Strict value is not equal to itself.")
392398 }
393399 else nil
394400 }
395401 else throw("Strict value is not equal to itself.")
396402 }
397403 else throw("Strict value is not equal to itself.")
398404 }
399405 else throw("Strict value is not equal to itself.")
400406 }
401407
402408
403-func cz (ap) = {
409+func cB (ap) = {
404410 let aQ = invoke(bd, "getPoolLeaseConfigREADONLY", [toString(this), ap], nil)
405411 if ($isInstanceOf(aQ, "(Boolean, Int, Int, String, String, Int, String)"))
406412 then {
407413 let aR = aQ
408414 aR
409415 }
410416 else ba((("[" + ap) + "] getLeaseProxyConfig() error"))
411417 }
412418
413419
414-func cA (cB,ap,cg,cC,cb,cp,cq) = {
415- let ch = ar(ap)
416- if ((ch == ch))
420+func cC (cD,ap,ci,cE,cd,cr,cs) = {
421+ let ck = as(ci)
422+ if ((ck == ck))
417423 then {
418- let ci = as(cg)
419- if ((ci == ci))
424+ let cj = if ((ck != 0))
425+ then ar(ap)
426+ else 0
427+ if ((cj == cj))
420428 then {
421- let cD = max([0, (bT(ap) - cC)])
422- let cE = fraction(cB, cD, 100)
423- let cF = (ch - cE)
424- if ((cF == 0))
429+ let cF = max([0, (bV(ap) - cE)])
430+ let cG = fraction(cD, cF, 100)
431+ let cH = (cj - cG)
432+ if ((cH == 0))
425433 then nil
426- else if ((0 > cF))
434+ else if ((0 > cH))
427435 then {
428- let cG = -(cF)
429- ce(ap, cG, cg, cb)
436+ let cI = -(cH)
437+ cg(ap, cI, ci, cd)
430438 }
431439 else {
432- let cH = cF
433- co(ap, cH, cg, cb, cp, cq)
440+ let cJ = cH
441+ cq(ap, cJ, ci, cd, cr, cs)
434442 }
435443 }
436444 else throw("Strict value is not equal to itself.")
437445 }
438446 else throw("Strict value is not equal to itself.")
439447 }
440448
441449
442-func cI (ap) = {
443- let cJ = cz(ap)
444- let cK = cJ._1
445- let cL = cJ._2
446- let cC = cJ._3
447- let cM = cJ._4
448- let cN = cJ._5
449- let cp = cJ._6
450- let cO = cJ._7
451- if (cK)
452- then cA(cL, ap, cN, cC, addressFromStringValue(cM), cp, addressFromStringValue(cO))
450+func cK (ap) = {
451+ let cL = cB(ap)
452+ let cM = cL._1
453+ let cN = cL._2
454+ let cE = cL._3
455+ let cO = cL._4
456+ let cP = cL._5
457+ let cr = cL._6
458+ let cQ = cL._7
459+ if (cM)
460+ then cC(cN, ap, cP, cE, addressFromStringValue(cO), cr, addressFromStringValue(cQ))
453461 else nil
454462 }
455463
456464
457-func cP (ap,cQ) = {
458- let cR = cz(ap)
459- let cK = cR._1
460- let cL = cR._2
461- let cC = cR._3
462- let cM = cR._4
463- let cN = cR._5
464- let cp = cR._6
465- let cO = cR._7
466- if (cK)
465+func cR (ap,cS) = {
466+ let cT = cB(ap)
467+ let cM = cT._1
468+ let cN = cT._2
469+ let cE = cT._3
470+ let cO = cT._4
471+ let cP = cT._5
472+ let cr = cT._6
473+ let cQ = cT._7
474+ if (cM)
467475 then {
468- let cS = max([0, ((bT(ap) - cQ) - cC)])
469- if ((cS == cS))
476+ let ck = as(cP)
477+ if ((ck == ck))
470478 then {
471- let cm = fraction(cL, cS, 100)
472- if ((cm == cm))
479+ let cj = if ((ck != 0))
480+ then ar(ap)
481+ else 0
482+ if ((cj == cj))
473483 then {
474- let cT = (ar(ap) - cm)
475- if ((cT == cT))
476- then if ((0 > cT))
477- then ce(ap, -(cT), cN, addressFromStringValue(cM))
478- else co(ap, cT, cN, addressFromStringValue(cM), cp, addressFromStringValue(cO))
484+ let cU = max([0, ((bV(ap) - cS) - cE)])
485+ if ((cU == cU))
486+ then {
487+ let co = fraction(cN, cU, 100)
488+ if ((co == co))
489+ then {
490+ let cV = (cj - co)
491+ if ((cV == cV))
492+ then if ((cV == 0))
493+ then nil
494+ else if ((0 > cV))
495+ then cg(ap, -(cV), cP, addressFromStringValue(cO))
496+ else cq(ap, cV, cP, addressFromStringValue(cO), cr, addressFromStringValue(cQ))
497+ else throw("Strict value is not equal to itself.")
498+ }
499+ else throw("Strict value is not equal to itself.")
500+ }
479501 else throw("Strict value is not equal to itself.")
480502 }
481503 else throw("Strict value is not equal to itself.")
482504 }
483505 else throw("Strict value is not equal to itself.")
484506 }
485507 else nil
486508 }
487509
488510
489-func cU (cV,cW) = {
490- let cX = cP(aW(this, ae()), cV)
491- let cY = cP(aW(this, af()), cW)
492- (cX ++ cY)
511+func cW (cX,cY) = {
512+ let cZ = cR(aW(this, ae()), cX)
513+ let da = cR(aW(this, af()), cY)
514+ (cZ ++ da)
493515 }
494516
495517
496-func cZ (da,db,dc,dd) = {
497- let de = D(dc, da)
498- let df = D(dd, db)
499- bW(df, de)
518+func db (dc,dd,de,df) = {
519+ let dg = D(de, dc)
520+ let dh = D(df, dd)
521+ bY(dh, dg)
500522 }
501523
502524
503-func dg (dc,dd,dh) = {
504- let di = bk()
505- let dj = parseIntValue(di[t])
506- let dk = parseIntValue(di[u])
507- let dl = cZ(dj, dk, dc, dd)
508- let bY = D(dc, dj)
509- let bX = D(dd, dk)
510- let dm = D(dh, b)
511- let dn = bW(bY, dm)
512- let do = bW(bX, dm)
513-[dl, dn, do]
525+func di (de,df,dj) = {
526+ let dk = bm()
527+ let dl = parseIntValue(dk[t])
528+ let dm = parseIntValue(dk[u])
529+ let dn = db(dl, dm, de, df)
530+ let ca = D(de, dl)
531+ let bZ = D(df, dm)
532+ let do = D(dj, b)
533+ let dp = bY(ca, do)
534+ let dq = bY(bZ, do)
535+[dn, dp, dq]
514536 }
515537
516538
517-func dp (dc,dd,dh) = {
518- let dq = dg(dc, dd, dh)
519-[H(dq[0], b), H(dq[1], b), H(dq[2], b)]
539+func dr (de,df,dj) = {
540+ let ds = di(de, df, dj)
541+[H(ds[0], b), H(ds[1], b), H(ds[2], b)]
520542 }
521543
522544
523-func dr (ds,dt,du,ab) = {
524- let di = bk()
525- let dv = di[q]
526- let dw = di[r]
527- let dx = di[s]
528- let da = parseIntValue(di[t])
529- let db = parseIntValue(di[u])
530- let dy = di[p]
531- let dz = valueOrErrorMessage(assetInfo(fromBase58String(dv)), (("Asset " + dv) + " doesn't exist")).quantity
532- if ((dv != dt))
545+func dt (du,dv,dw,ab) = {
546+ let dk = bm()
547+ let dx = dk[q]
548+ let dy = dk[r]
549+ let dz = dk[s]
550+ let dc = parseIntValue(dk[t])
551+ let dd = parseIntValue(dk[u])
552+ let dA = dk[p]
553+ let dB = valueOrErrorMessage(assetInfo(fromBase58String(dx)), (("Asset " + dx) + " doesn't exist")).quantity
554+ if ((dx != dv))
533555 then throw("Invalid asset passed.")
534556 else {
535- let dA = bT(dw)
536- let dB = D(dA, da)
537- let dC = bT(dx)
538- let dD = D(dC, db)
539- let dE = bW(dD, dB)
540- let dF = H(dE, b)
541- let dG = D(du, b)
542- let dH = D(dz, b)
543- let dI = fraction(dB, dG, dH)
544- let dJ = fraction(dD, dG, dH)
545- let dK = K(dI, da, FLOOR)
546- let dL = K(dJ, db, FLOOR)
547- let dM = if ((ds == ""))
557+ let dC = bV(dy)
558+ let dD = D(dC, dc)
559+ let dE = bV(dz)
560+ let dF = D(dE, dd)
561+ let dG = bY(dF, dD)
562+ let dH = H(dG, b)
563+ let dI = D(dw, b)
564+ let dJ = D(dB, b)
565+ let dK = fraction(dD, dI, dJ)
566+ let dL = fraction(dF, dI, dJ)
567+ let dM = K(dK, dc, FLOOR)
568+ let dN = K(dL, dd, FLOOR)
569+ let dO = if ((du == ""))
548570 then nil
549- else [ScriptTransfer(ab, dK, if ((dw == "WAVES"))
571+ else [ScriptTransfer(ab, dM, if ((dy == "WAVES"))
550572 then unit
551- else fromBase58String(dw)), ScriptTransfer(ab, dL, if ((dx == "WAVES"))
573+ else fromBase58String(dy)), ScriptTransfer(ab, dN, if ((dz == "WAVES"))
552574 then unit
553- else fromBase58String(dx)), StringEntry(ad(toString(ab), ds), bP(dK, dL, du, dF, height, lastBlock.timestamp)), IntegerEntry(W(), dF), IntegerEntry(X(height, lastBlock.timestamp), dF)]
554- $Tuple10(dK, dL, dw, dx, dA, dC, dz, dE, dy, dM)
575+ else fromBase58String(dz)), StringEntry(ad(toString(ab), du), bR(dM, dN, dw, dH, height, lastBlock.timestamp)), IntegerEntry(W(), dH), IntegerEntry(X(height, lastBlock.timestamp), dH)]
576+ $Tuple10(dM, dN, dy, dz, dC, dE, dB, dG, dA, dO)
555577 }
556578 }
557579
558580
559-func dN (ds,dO,dP,dQ,dR,dS,ab,dT,dU) = {
560- let di = bk()
561- let dv = fromBase58String(di[q])
562- let dV = di[r]
563- let dW = di[s]
564- let dX = di[v]
565- let dY = di[w]
566- let dj = parseIntValue(di[t])
567- let dk = parseIntValue(di[u])
568- let dy = di[p]
569- let dz = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
570- let dZ = toBase58String(valueOrElse(dQ, fromBase58String("WAVES")))
571- let ea = toBase58String(valueOrElse(dS, fromBase58String("WAVES")))
572- if (if ((dV != dZ))
581+func dP (du,dQ,dR,dS,dT,dU,ab,dV,dW) = {
582+ let dk = bm()
583+ let dx = fromBase58String(dk[q])
584+ let dX = dk[r]
585+ let dY = dk[s]
586+ let dZ = dk[v]
587+ let ea = dk[w]
588+ let dl = parseIntValue(dk[t])
589+ let dm = parseIntValue(dk[u])
590+ let dA = dk[p]
591+ let dB = valueOrErrorMessage(assetInfo(dx), (("Asset " + toBase58String(dx)) + " doesn't exist")).quantity
592+ let eb = toBase58String(valueOrElse(dS, fromBase58String("WAVES")))
593+ let ec = toBase58String(valueOrElse(dU, fromBase58String("WAVES")))
594+ if (if ((dX != eb))
573595 then true
574- else (dW != ea))
596+ else (dY != ec))
575597 then throw("Invalid amt or price asset passed.")
576598 else {
577- let dA = if (dT)
578- then bT(dV)
579- else (bT(dV) - dP)
580- let dC = if (dT)
581- then bT(dW)
582- else (bT(dW) - dR)
583- let eb = D(dP, dj)
584- let ec = D(dR, dk)
585- let ed = bW(ec, eb)
586- let dB = D(dA, dj)
587- let dD = D(dC, dk)
588- let ee = if ((dz == 0))
599+ let dC = if (dV)
600+ then bV(dX)
601+ else (bV(dX) - dR)
602+ let dE = if (dV)
603+ then bV(dY)
604+ else (bV(dY) - dT)
605+ let ed = D(dR, dl)
606+ let ee = D(dT, dm)
607+ let ef = bY(ee, ed)
608+ let dD = D(dC, dl)
609+ let dF = D(dE, dm)
610+ let eg = if ((dB == 0))
589611 then {
590- let dE = e
591- let ef = e
592- let dm = pow((eb * ec), 0, toBigInt(5), 1, 0, DOWN)
593- $Tuple5(H(dm, b), H(eb, dj), H(ec, dk), bW((dD + ec), (dB + eb)), ef)
612+ let dG = e
613+ let eh = e
614+ let do = pow((ed * ee), 0, toBigInt(5), 1, 0, DOWN)
615+ $Tuple5(H(do, b), H(ed, dl), H(ee, dm), bY((dF + ee), (dD + ed)), eh)
594616 }
595617 else {
596- let dE = bW(dD, dB)
597- let ef = fraction(R((dE - ed)), d, dE)
598- let eg = D(dO, b)
599- if (if ((dE != e))
600- then (ef > eg)
618+ let dG = bY(dF, dD)
619+ let eh = fraction(R((dG - ef)), d, dG)
620+ let ei = D(dQ, b)
621+ if (if ((dG != e))
622+ then (eh > ei)
601623 else false)
602- then throw(((("Price slippage " + toString(ef)) + " exceeded the passed limit of ") + toString(eg)))
624+ then throw(((("Price slippage " + toString(eh)) + " exceeded the passed limit of ") + toString(ei)))
603625 else {
604- let dH = D(dz, b)
605- let eh = fraction(eb, bZ(dD, dB, CEILING), d, CEILING)
606- let ei = fraction(ec, d, bZ(dD, dB, FLOOR), CEILING)
607- let ej = if ((eh > ec))
608- then $Tuple2(ei, ec)
609- else $Tuple2(eb, eh)
610- let ek = ej._1
611- let el = ej._2
612- let dm = fraction(dH, el, dD, FLOOR)
613- $Tuple5(K(dm, b, FLOOR), K(ek, dj, CEILING), K(el, dk, CEILING), dE, ef)
626+ let dJ = D(dB, b)
627+ let ej = fraction(ed, cb(dF, dD, CEILING), d, CEILING)
628+ let ek = fraction(ee, d, cb(dF, dD, FLOOR), CEILING)
629+ let el = if ((ej > ee))
630+ then $Tuple2(ek, ee)
631+ else $Tuple2(ed, ej)
632+ let em = el._1
633+ let en = el._2
634+ let do = fraction(dJ, en, dF, FLOOR)
635+ $Tuple5(K(do, b, FLOOR), K(em, dl, CEILING), K(en, dm, CEILING), dG, eh)
614636 }
615637 }
616- let em = ee._1
617- let en = ee._2
618- let eo = ee._3
619- let dF = H(ee._4, b)
620- let ep = H(ee._5, b)
621- if ((0 >= em))
638+ let eo = eg._1
639+ let ep = eg._2
640+ let eq = eg._3
641+ let dH = H(eg._4, b)
642+ let er = H(eg._5, b)
643+ if ((0 >= eo))
622644 then throw("Invalid calculations. LP calculated is less than zero.")
623645 else {
624- let eq = if (!(dU))
646+ let es = if (!(dW))
625647 then 0
626- else em
627- let er = (dP - en)
628- let es = (dR - eo)
629- let et = [IntegerEntry(W(), dF), IntegerEntry(X(height, lastBlock.timestamp), dF), StringEntry(aa(ab, ds), bE(en, eo, eq, dF, dO, ep, height, lastBlock.timestamp, er, es))]
630- $Tuple13(em, eq, dF, dA, dC, dz, dv, dy, et, er, es, dQ, dS)
648+ else eo
649+ let et = (dR - ep)
650+ let eu = (dT - eq)
651+ let ev = [IntegerEntry(W(), dH), IntegerEntry(X(height, lastBlock.timestamp), dH), StringEntry(aa(ab, du), bG(ep, eq, es, dH, dQ, er, height, lastBlock.timestamp, et, eu))]
652+ $Tuple13(eo, es, dH, dC, dE, dB, dx, dA, ev, et, eu, dS, dU)
631653 }
632654 }
633655 }
634656
635657
636-func eu (ev,ew,dz) = {
637- let ex = G(ev, toBigInt(bz))
638- let ey = G(ew, toBigInt(bA))
639- let ez = fraction(pow((ex * ey), 0, toBigInt(5), 1, 18, DOWN), g, dz)
640- if ((dz == f))
658+func ew (ex,ey,dB) = {
659+ let ez = G(ex, toBigInt(bB))
660+ let eA = G(ey, toBigInt(bC))
661+ let eB = fraction(pow((ez * eA), 0, toBigInt(5), 1, 18, DOWN), g, dB)
662+ if ((dB == f))
641663 then f
642- else ez
664+ else eB
643665 }
644666
645667
646-func eA (eB,eC,eD) = {
647- let eE = (toBigInt(bT(bp(bx))) - eB)
648- let eF = (toBigInt(bT(bp(by))) - eC)
649- let eG = (toBigInt(value(assetInfo(bw)).quantity) - eD)
650- let eH = eu(eE, eF, eG)
651- eH
668+func eC (eD,eE,eF) = {
669+ let eG = (toBigInt(bV(br(bz))) - eD)
670+ let eH = (toBigInt(bV(br(bA))) - eE)
671+ let eI = (toBigInt(value(assetInfo(by)).quantity) - eF)
672+ let eJ = ew(eG, eH, eI)
673+ eJ
652674 }
653675
654676
655-func eI (eJ,eK,eD) = {
656- let eE = (bT(bp(bx)) + eJ)
657- let eF = (bT(bp(by)) + eK)
658- let eG = (value(assetInfo(bw)).quantity + eD)
659- let ez = eu(toBigInt(eE), toBigInt(eF), toBigInt(eG))
660- let eL = [IntegerEntry(ak, height), StringEntry(aj, toString(ez))]
661- $Tuple2(eL, ez)
677+func eK (eL,eM,eF) = {
678+ let eG = (bV(br(bz)) + eL)
679+ let eH = (bV(br(bA)) + eM)
680+ let eI = (value(assetInfo(by)).quantity + eF)
681+ let eB = ew(toBigInt(eG), toBigInt(eH), toBigInt(eI))
682+ let eN = [IntegerEntry(ak, height), StringEntry(aj, toString(eB))]
683+ $Tuple2(eN, eB)
662684 }
663685
664686
665-func eM () = valueOrElse(getBoolean(bd, aH(toString(this))), false)
687+func eO () = valueOrElse(getBoolean(bd, aH(toString(this))), false)
666688
667689
668-func eN (eO,ez) = if ((ez >= eO))
690+func eP (eQ,eB) = if ((eB >= eQ))
669691 then true
670- else ba(makeString(["updated KLp lower than current KLp", toString(eO), toString(ez)], " "))
692+ else ba(makeString(["updated KLp lower than current KLp", toString(eQ), toString(eB)], " "))
671693
672694
673-func eP (eQ) = {
674- let eE = bT(bp(bx))
675- let eF = bT(bp(by))
676- let eR = eQ.amount
677- let eS = fraction(eQ.amount, eQ.price, b, FLOOR)
678- let eT = if ((eQ.orderType == Buy))
679- then $Tuple2(eR, -(eS))
680- else $Tuple2(-(eR), eS)
681- let eJ = eT._1
682- let eK = eT._2
683- if (if (if (bi())
695+func eR (eS) = {
696+ let eG = bV(br(bz))
697+ let eH = bV(br(bA))
698+ let eT = eS.amount
699+ let eU = fraction(eS.amount, eS.price, b, FLOOR)
700+ let eV = if ((eS.orderType == Buy))
701+ then $Tuple2(eT, -(eU))
702+ else $Tuple2(-(eT), eU)
703+ let eL = eV._1
704+ let eM = eV._2
705+ if (if (if (bk())
684706 then true
685- else (bv == m))
707+ else (bx == m))
686708 then true
687- else (bv == n))
709+ else (bx == n))
688710 then throw("Exchange operations disabled")
689- else if (if ((eQ.assetPair.amountAsset != bx))
711+ else if (if ((eS.assetPair.amountAsset != bz))
690712 then true
691- else (eQ.assetPair.priceAsset != by))
713+ else (eS.assetPair.priceAsset != bA))
692714 then throw("Wrong order assets.")
693715 else {
694- let eU = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), bc("invalid kLp"))
695- let eV = eI(eJ, eK, 0)
696- let eW = eV._1
697- let eX = eV._2
698- let eY = (eX >= eU)
699- let eZ = makeString(["kLp=", toString(eU), " kLpNew=", toString(eX), " amountAssetBalance=", toString(eE), " priceAssetBalance=", toString(eF), " amountAssetBalanceDelta=", toString(eJ), " priceAssetBalanceDelta=", toString(eK), " height=", toString(height)], "")
700- $Tuple2(eY, eZ)
716+ let eW = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), bc("invalid kLp"))
717+ let eX = eK(eL, eM, 0)
718+ let eY = eX._1
719+ let eZ = eX._2
720+ let fa = (eZ >= eW)
721+ let fb = makeString(["kLp=", toString(eW), " kLpNew=", toString(eZ), " amountAssetBalance=", toString(eG), " priceAssetBalance=", toString(eH), " amountAssetBalanceDelta=", toString(eL), " priceAssetBalanceDelta=", toString(eM), " height=", toString(height)], "")
722+ $Tuple2(fa, fb)
701723 }
702724 }
703725
704726
705-func fa (fb) = if ((size(fb.payments) != 1))
727+func fc (fd) = if ((size(fd.payments) != 1))
706728 then throw("exactly 1 payment is expected")
707729 else {
708- let fc = value(fb.payments[0])
709- let dt = value(fc.assetId)
710- let fd = fc.amount
711- let ee = dr(toBase58String(fb.transactionId), toBase58String(dt), fd, fb.caller)
712- let dK = ee._1
713- let dL = ee._2
714- let dy = parseIntValue(ee._9)
715- let dM = ee._10
716- if (if (bi())
717- then true
718- else (dy == n))
719- then throw(("Get operation is blocked by admin. Status = " + toString(dy)))
720- else $Tuple5(dK, dL, fd, dt, dM)
730+ let fe = value(fd.payments[0])
731+ let dv = value(fe.assetId)
732+ let ff = fe.amount
733+ let eg = dt(toBase58String(fd.transactionId), toBase58String(dv), ff, fd.caller)
734+ let dM = eg._1
735+ let dN = eg._2
736+ let dO = eg._10
737+ let fg = if (!(bj(fd.caller)))
738+ then if (bk())
739+ then true
740+ else (bx == n)
741+ else false
742+ if (fg)
743+ then throw(("Get operation is blocked by admin. Status = " + toString(bx)))
744+ else $Tuple5(dM, dN, ff, dv, dO)
721745 }
722746
723747
724-func fe (fb,dO,dU) = if ((size(fb.payments) != 2))
748+func fh (fd,dQ,dW) = if ((size(fd.payments) != 2))
725749 then throw("exactly 2 payments are expected")
726750 else {
727- let ff = value(fb.payments[0])
728- let fg = value(fb.payments[1])
729- let fh = dN(toBase58String(fb.transactionId), dO, ff.amount, ff.assetId, fg.amount, fg.assetId, toString(fb.caller), false, dU)
730- let dy = parseIntValue(fh._8)
731- if (if (if (bi())
732- then true
733- else (dy == l))
734- then true
735- else (dy == n))
736- then throw(("Put operation is blocked by admin. Status = " + toString(dy)))
737- else fh
751+ let fi = value(fd.payments[0])
752+ let fj = value(fd.payments[1])
753+ let fk = dP(toBase58String(fd.transactionId), dQ, fi.amount, fi.assetId, fj.amount, fj.assetId, toString(fd.caller), false, dW)
754+ let fl = if (!(bj(fd.caller)))
755+ then if (if (bk())
756+ then true
757+ else (bx == l))
758+ then true
759+ else (bx == n)
760+ else false
761+ if (fl)
762+ then throw(("Put operation is blocked by admin. Status = " + toString(bx)))
763+ else fk
738764 }
739765
740766
741-func fi (cf) = {
742- let fj = invoke(bd, "emit", [cf], nil)
743- if ((fj == fj))
767+func fm (ch) = {
768+ let fn = invoke(bd, "emit", [ch], nil)
769+ if ((fn == fn))
744770 then {
745- let fk = {
746- let aQ = fj
771+ let fo = {
772+ let aQ = fn
747773 if ($isInstanceOf(aQ, "Address"))
748774 then {
749- let fl = aQ
750- invoke(fl, "emit", [cf], nil)
775+ let fp = aQ
776+ invoke(fp, "emit", [ch], nil)
751777 }
752778 else unit
753779 }
754- if ((fk == fk))
755- then cf
780+ if ((fo == fo))
781+ then ch
756782 else throw("Strict value is not equal to itself.")
757783 }
758784 else throw("Strict value is not equal to itself.")
759785 }
760786
761787
762-func fm (cf,ai) = {
763- let fn = if ((ai == 0))
788+func fq (ch,ai) = {
789+ let fr = if ((ai == 0))
764790 then 0
765- else fraction(cf, ai, b)
766- $Tuple2((cf - fn), fn)
791+ else fraction(ch, ai, b)
792+ $Tuple2((ch - fr), fr)
767793 }
768794
769795
770-func fo (fp,fq,ab,ac) = {
771- let fr = (ac == unit)
772- let fs = bT(bp(bx))
773- let ft = bT(bp(by))
774- let fu = if ((fq == bx))
796+func fs (ft,fu,ab,ac) = {
797+ let fv = (ac == unit)
798+ let fw = bV(br(bz))
799+ let fx = bV(br(bA))
800+ let fy = if ((fu == bz))
775801 then true
776- else if ((fq == by))
802+ else if ((fu == bA))
777803 then false
778804 else ba("invalid asset")
779- let fv = if (fr)
780- then $Tuple2(fs, ft)
781- else if (fu)
782- then $Tuple2((fs - fp), ft)
783- else $Tuple2(fs, (ft - fp))
784- let fw = fv._1
785- let fx = fv._2
786- let fy = if (fu)
787- then $Tuple2(fp, 0)
788- else $Tuple2(0, fp)
789- let fz = fy._1
790- let fA = fy._2
791- let eR = fm(fz, bf)._1
792- let eS = fm(fA, bf)._1
793- let fB = fm(fp, bf)
794- let fC = fB._1
795- let fn = fB._2
796- let fD = (fw + eR)
797- let fE = (fx + eS)
798- let fF = bW(D(fE, bA), D(fD, bz))
799- let fG = H(fF, b)
800- let fH = if (fu)
801- then fw
802- else fx
803- let fI = toBigInt(fH)
804- let fJ = toBigInt(valueOrErrorMessage(assetInfo(bw), (("asset " + toBase58String(bw)) + " doesn't exist")).quantity)
805- let fK = if ((fJ > f))
805+ let fz = if (fv)
806+ then $Tuple2(fw, fx)
807+ else if (fy)
808+ then $Tuple2((fw - ft), fx)
809+ else $Tuple2(fw, (fx - ft))
810+ let fA = fz._1
811+ let fB = fz._2
812+ let fC = if (fy)
813+ then $Tuple2(ft, 0)
814+ else $Tuple2(0, ft)
815+ let fD = fC._1
816+ let fE = fC._2
817+ let eT = fq(fD, bf)._1
818+ let eU = fq(fE, bf)._1
819+ let fF = fq(ft, bf)
820+ let fG = fF._1
821+ let fr = fF._2
822+ let fH = (fA + eT)
823+ let fI = (fB + eU)
824+ let fJ = bY(D(fI, bC), D(fH, bB))
825+ let fK = H(fJ, b)
826+ let fL = if (fy)
827+ then fA
828+ else fB
829+ let fM = toBigInt(fL)
830+ let fN = toBigInt(valueOrErrorMessage(assetInfo(by), (("asset " + toBase58String(by)) + " doesn't exist")).quantity)
831+ let fO = if ((fN > f))
806832 then true
807833 else ba("initial deposit requires all coins")
808- if ((fK == fK))
834+ if ((fO == fO))
809835 then {
810- let fL = toBigInt(fC)
811- let fM = max([0, toInt(((fJ * (sqrtBigInt((d + ((fL * d) / fI)), 18, 18, DOWN) - d)) / d))])
812- let et = if (fr)
836+ let fP = toBigInt(fG)
837+ let fQ = max([0, toInt(((fN * (sqrtBigInt((d + ((fP * d) / fM)), 18, 18, DOWN) - d)) / d))])
838+ let ev = if (fv)
813839 then nil
814- else [IntegerEntry(W(), fG), IntegerEntry(X(height, lastBlock.timestamp), fG), StringEntry(aa(toString(value(ab)), toBase58String(value(ac))), bE(fz, fA, fM, fG, 0, 0, height, lastBlock.timestamp, 0, 0))]
815- let fN = bW(D(fx, bA), D(fw, bz))
816- let fO = H(fN, b)
817- let fP = {
818- let fQ = if (fu)
819- then $Tuple2(fz, fw)
820- else $Tuple2(fA, fx)
821- let cf = fQ._1
822- let fR = fQ._2
823- let fS = toInt(fraction(fJ, toBigInt((cf / 2)), toBigInt(fR)))
824- fraction((fM - fS), b, fS)
840+ else [IntegerEntry(W(), fK), IntegerEntry(X(height, lastBlock.timestamp), fK), StringEntry(aa(toString(value(ab)), toBase58String(value(ac))), bG(fD, fE, fQ, fK, 0, 0, height, lastBlock.timestamp, 0, 0))]
841+ let fR = bY(D(fB, bC), D(fA, bB))
842+ let fS = H(fR, b)
843+ let fT = {
844+ let fU = if (fy)
845+ then $Tuple2(fD, fA)
846+ else $Tuple2(fE, fB)
847+ let ch = fU._1
848+ let fV = fU._2
849+ let fW = toInt(fraction(fN, toBigInt((ch / 2)), toBigInt(fV)))
850+ fraction((fQ - fW), b, fW)
825851 }
826- $Tuple5(fM, et, fn, fP, fu)
852+ $Tuple5(fQ, ev, fr, fT, fy)
827853 }
828854 else throw("Strict value is not equal to itself.")
829855 }
830856
831857
832-func fT (fU,fC,fq,ab,ac) = {
833- let fr = (ac == unit)
834- let di = bk()
835- let dj = parseIntValue(di[t])
836- let dk = parseIntValue(di[u])
837- let fV = [if ((fq == bw))
858+func fX (fY,fG,fu,ab,ac) = {
859+ let fv = (ac == unit)
860+ let dk = bm()
861+ let dl = parseIntValue(dk[t])
862+ let dm = parseIntValue(dk[u])
863+ let fZ = [if ((fu == by))
838864 then true
839865 else ba("invalid lp asset")]
840- if ((fV == fV))
866+ if ((fZ == fZ))
841867 then {
842- let fW = if ((fU == bx))
868+ let ga = if ((fY == bz))
843869 then true
844- else if ((fU == by))
870+ else if ((fY == bA))
845871 then false
846872 else ba("invalid asset")
847- let fX = if (fW)
848- then toBigInt(bT(bp(bx)))
849- else toBigInt(bT(bp(by)))
850- let fY = if (fW)
851- then dj
852- else dk
853- let fZ = bT(bp(bx))
854- let ga = bT(bp(by))
855- let gb = if (fW)
856- then fZ
857- else ga
858- let gc = toBigInt(gb)
859- let fJ = toBigInt(valueOrErrorMessage(assetInfo(bw), (("asset " + toBase58String(bw)) + " doesn't exist")).quantity)
860- let gd = toBigInt(fC)
861- let ge = max([0, toInt(((fX * (d - pow((d - ((gd * d) / fJ)), 18, h, 0, 18, DOWN))) / d))])
862- let gf = fm(ge, bh)
863- let gg = gf._1
864- let fn = gf._2
865- let gh = if (fW)
866- then $Tuple4(gg, 0, (fZ - ge), ga)
867- else $Tuple4(0, gg, fZ, (ga - ge))
868- let gi = gh._1
869- let gj = gh._2
870- let gk = gh._3
871- let gl = gh._4
872- let fF = bW(D(gl, bA), D(gk, bz))
873- let fG = H(fF, b)
874- let et = if (fr)
873+ let gb = if (ga)
874+ then toBigInt(bV(br(bz)))
875+ else toBigInt(bV(br(bA)))
876+ let gc = if (ga)
877+ then dl
878+ else dm
879+ let gd = bV(br(bz))
880+ let ge = bV(br(bA))
881+ let gf = if (ga)
882+ then gd
883+ else ge
884+ let gg = toBigInt(gf)
885+ let fN = toBigInt(valueOrErrorMessage(assetInfo(by), (("asset " + toBase58String(by)) + " doesn't exist")).quantity)
886+ let gh = toBigInt(fG)
887+ let gi = max([0, toInt(((gb * (d - pow((d - ((gh * d) / fN)), 18, h, 0, 18, DOWN))) / d))])
888+ let gj = fq(gi, bh)
889+ let gk = gj._1
890+ let fr = gj._2
891+ let gl = if (ga)
892+ then $Tuple4(gk, 0, (gd - gi), ge)
893+ else $Tuple4(0, gk, gd, (ge - gi))
894+ let gm = gl._1
895+ let gn = gl._2
896+ let go = gl._3
897+ let gp = gl._4
898+ let fJ = bY(D(gp, bC), D(go, bB))
899+ let fK = H(fJ, b)
900+ let ev = if (fv)
875901 then nil
876- else [StringEntry(ad(toString(value(ab)), toBase58String(value(ac))), bP(gi, gj, fC, fG, height, lastBlock.timestamp)), IntegerEntry(W(), fG), IntegerEntry(X(height, lastBlock.timestamp), fG)]
877- let fN = bW(D(ga, bA), D(fZ, bz))
878- let fO = H(fN, b)
879- let fP = {
880- let gm = (toInt(fraction(fX, gd, fJ)) * 2)
881- fraction((gg - gm), b, gm)
902+ else [StringEntry(ad(toString(value(ab)), toBase58String(value(ac))), bR(gm, gn, fG, fK, height, lastBlock.timestamp)), IntegerEntry(W(), fK), IntegerEntry(X(height, lastBlock.timestamp), fK)]
903+ let fR = bY(D(ge, bC), D(gd, bB))
904+ let fS = H(fR, b)
905+ let fT = {
906+ let gq = (toInt(fraction(gb, gh, fN)) * 2)
907+ fraction((gk - gq), b, gq)
882908 }
883- $Tuple5(gg, et, fn, fP, fW)
909+ $Tuple5(gk, ev, fr, fT, ga)
884910 }
885911 else throw("Strict value is not equal to itself.")
886912 }
887913
888914
889-func gn () = {
890- let go = aS()
891- let aQ = getString(go, U())
915+func gr () = {
916+ let gs = aS()
917+ let aQ = getString(gs, U())
892918 if ($isInstanceOf(aQ, "String"))
893919 then {
894920 let aV = aQ
895921 fromBase58String(aV)
896922 }
897923 else if ($isInstanceOf(aQ, "Unit"))
898924 then unit
899925 else throw("Match error")
900926 }
901927
902928
903-func gp (fb) = {
904- let aQ = gn()
929+func gt (fd) = {
930+ let aQ = gr()
905931 if ($isInstanceOf(aQ, "ByteVector"))
906932 then {
907- let gq = aQ
908- (fb.callerPublicKey == gq)
933+ let gu = aQ
934+ (fd.callerPublicKey == gu)
909935 }
910936 else if ($isInstanceOf(aQ, "Unit"))
911- then (fb.caller == this)
937+ then (fd.caller == this)
912938 else throw("Match error")
913939 }
914940
915941
916-func gr (fb) = {
917- let gs = throw("Permission denied")
918- let aQ = gn()
942+func gv (fd) = {
943+ let gw = throw("Permission denied")
944+ let aQ = gr()
919945 if ($isInstanceOf(aQ, "ByteVector"))
920946 then {
921- let gq = aQ
922- if ((fb.callerPublicKey == gq))
947+ let gu = aQ
948+ if ((fd.callerPublicKey == gu))
923949 then true
924- else gs
950+ else gw
925951 }
926952 else if ($isInstanceOf(aQ, "Unit"))
927- then if ((fb.caller == this))
953+ then if ((fd.caller == this))
928954 then true
929- else gs
955+ else gw
930956 else throw("Match error")
931957 }
932958
933959
934-@Callable(fb)
935-func rebalance () = (cI(aW(this, ae())) ++ cI(aW(this, af())))
960+@Callable(fd)
961+func rebalance () = (cK(aW(this, ae())) ++ cK(aW(this, af())))
936962
937963
938964
939-@Callable(fb)
940-func calculateAmountOutForSwapREADONLY (gt,gu,gv) = {
941- let gw = if ((gu == false))
965+@Callable(fd)
966+func calculateAmountOutForSwapREADONLY (gx,gy,gz) = {
967+ let gA = if ((gy == false))
942968 then {
943- let gx = aW(this, af())
944- let gy = aW(this, ae())
945- $Tuple2(gx, gy)
969+ let gB = aW(this, af())
970+ let gC = aW(this, ae())
971+ $Tuple2(gB, gC)
946972 }
947973 else {
948- let gx = aW(this, ae())
949- let gy = aW(this, af())
950- $Tuple2(gx, gy)
974+ let gB = aW(this, ae())
975+ let gC = aW(this, af())
976+ $Tuple2(gB, gC)
951977 }
952- let gx = gw._1
953- let gy = gw._2
954- let gz = bT(gy)
955- let gA = bT(gx)
956- let gB = fraction(gA, gt, (gz + gt))
957- let gC = (toBigInt(gz) * toBigInt(gA))
958- let gD = (((toBigInt(bT(gy)) + toBigInt(gt)) + toBigInt(gv)) * (toBigInt(bT(gx)) - toBigInt(gB)))
959- let gE = if ((gD >= gC))
978+ let gB = gA._1
979+ let gC = gA._2
980+ let gD = bV(gC)
981+ let gE = bV(gB)
982+ let gF = fraction(gE, gx, (gD + gx))
983+ let gG = (toBigInt(gD) * toBigInt(gE))
984+ let gH = (((toBigInt(bV(gC)) + toBigInt(gx)) + toBigInt(gz)) * (toBigInt(bV(gB)) - toBigInt(gF)))
985+ let gI = if ((gH >= gG))
960986 then true
961987 else throw("new K is fewer error")
962- if ((gE == gE))
963- then $Tuple2(nil, gB)
988+ if ((gI == gI))
989+ then $Tuple2(nil, gF)
964990 else throw("Strict value is not equal to itself.")
965991 }
966992
967993
968994
969-@Callable(fb)
970-func calculateAmountOutForSwapAndSendTokens (gt,gu,gF,gG,gv) = {
971- let gH = {
995+@Callable(fd)
996+func calculateAmountOutForSwapAndSendTokens (gx,gy,gJ,gK,gz) = {
997+ let gL = {
972998 let bg = invoke(bd, "getSwapContractREADONLY", nil, nil)
973999 if ($isInstanceOf(bg, "String"))
9741000 then bg
9751001 else throw(($getType(bg) + " couldn't be cast to String"))
9761002 }
977- let fV = [if ((value(fb.payments[0]).amount >= gt))
1003+ let gM = {
1004+ let bg = invoke(bd, "isPoolSwapDisabledREADONLY", [toString(this)], nil)
1005+ if ($isInstanceOf(bg, "Boolean"))
1006+ then bg
1007+ else throw(($getType(bg) + " couldn't be cast to Boolean"))
1008+ }
1009+ let gN = if (!(bj(fd.caller)))
1010+ then if (if (bk())
1011+ then true
1012+ else (bx == n))
1013+ then true
1014+ else gM
1015+ else false
1016+ let fZ = [if (if (!(gN))
9781017 then true
979- else ba("Wrong amount"), if ((fb.caller == addressFromStringValue(gH)))
1018+ else gt(fd))
1019+ then true
1020+ else ba("swap operation is blocked by admin"), if ((value(fd.payments[0]).amount >= gx))
1021+ then true
1022+ else ba("Wrong amount"), if ((fd.caller == addressFromStringValue(gL)))
9801023 then true
9811024 else ba("Permission denied")]
982- if ((fV == fV))
1025+ if ((fZ == fZ))
9831026 then {
984- let fc = value(fb.payments[0])
985- let gy = bp(fc.assetId)
986- let gx = if ((gu == false))
1027+ let fe = value(fd.payments[0])
1028+ let gC = br(fe.assetId)
1029+ let gB = if ((gy == false))
9871030 then aW(this, af())
9881031 else aW(this, ae())
989- let gz = ((bT(gy) - value(fb.payments[0]).amount) - gv)
990- let gA = bT(gx)
991- let gB = fraction(gA, gt, (gz + gt))
992- let gC = (toBigInt(gz) * toBigInt(gA))
993- let gD = ((toBigInt(bT(gy)) + toBigInt(gv)) * (toBigInt(bT(gx)) - toBigInt(gB)))
994- let gE = if ((gD >= gC))
1032+ let gD = ((bV(gC) - value(fd.payments[0]).amount) - gz)
1033+ let gE = bV(gB)
1034+ let gF = fraction(gE, gx, (gD + gx))
1035+ let gG = (toBigInt(gD) * toBigInt(gE))
1036+ let gH = ((toBigInt(bV(gC)) + toBigInt(gz)) * (toBigInt(bV(gB)) - toBigInt(gF)))
1037+ let gI = if ((gH >= gG))
9951038 then true
9961039 else throw("new K is fewer error")
997- if ((gE == gE))
1040+ if ((gI == gI))
9981041 then {
999- let gI = if ((gB >= gF))
1042+ let gO = if ((gF >= gJ))
10001043 then true
10011044 else throw("Exchange result is fewer coins than expected")
1002- if ((gI == gI))
1045+ if ((gO == gO))
10031046 then {
1004- let gJ = cI(gy)
1005- if ((gJ == gJ))
1047+ let eL = if (gy)
1048+ then -(gF)
1049+ else gz
1050+ let eM = if (gy)
1051+ then gz
1052+ else -(gF)
1053+ let gP = eK(eL, eM, 0)._1
1054+ if ((gP == gP))
10061055 then {
1007- let gK = cP(gx, gB)
1008- if ((gK == gK))
1009- then $Tuple2(((gK ++ gJ) ++ [ScriptTransfer(addressFromStringValue(gG), gB, bn(gx))]), gB)
1056+ let gQ = cK(gC)
1057+ if ((gQ == gQ))
1058+ then {
1059+ let gR = cR(gB, gF)
1060+ if ((gR == gR))
1061+ then $Tuple2(((gR ++ gQ) ++ [ScriptTransfer(addressFromStringValue(gK), gF, bp(gB))]), gF)
1062+ else throw("Strict value is not equal to itself.")
1063+ }
10101064 else throw("Strict value is not equal to itself.")
10111065 }
10121066 else throw("Strict value is not equal to itself.")
10131067 }
10141068 else throw("Strict value is not equal to itself.")
10151069 }
10161070 else throw("Strict value is not equal to itself.")
10171071 }
10181072 else throw("Strict value is not equal to itself.")
10191073 }
10201074
10211075
10221076
1023-@Callable(fb)
1024-func put (dO,gL) = if ((0 > dO))
1077+@Callable(fd)
1078+func put (dQ,gS) = if ((0 > dQ))
10251079 then throw("Invalid slippageTolerance passed")
10261080 else {
1027- let fh = fe(fb, dO, true)
1028- let eq = fh._2
1029- let dv = fh._7
1030- let dM = fh._9
1031- let er = fh._10
1032- let es = fh._11
1033- let gM = fh._12
1034- let gN = fh._13
1035- let ff = toBigInt(value(fb.payments[0]).amount)
1036- let fg = toBigInt(value(fb.payments[1]).amount)
1037- let eH = eA(ff, fg, toBigInt(0))
1038- if ((eH == eH))
1081+ let fk = fh(fd, dQ, true)
1082+ let es = fk._2
1083+ let dx = fk._7
1084+ let dO = fk._9
1085+ let et = fk._10
1086+ let eu = fk._11
1087+ let gT = fk._12
1088+ let gU = fk._13
1089+ let fi = toBigInt(value(fd.payments[0]).amount)
1090+ let fj = toBigInt(value(fd.payments[1]).amount)
1091+ let eJ = eC(fi, fj, toBigInt(0))
1092+ if ((eJ == eJ))
10391093 then {
1040- let fj = invoke(bd, "emit", [eq], nil)
1041- if ((fj == fj))
1094+ let fn = invoke(bd, "emit", [es], nil)
1095+ if ((fn == fn))
10421096 then {
1043- let fk = {
1044- let aQ = fj
1097+ let fo = {
1098+ let aQ = fn
10451099 if ($isInstanceOf(aQ, "Address"))
10461100 then {
1047- let fl = aQ
1048- invoke(fl, "emit", [eq], nil)
1101+ let fp = aQ
1102+ invoke(fp, "emit", [es], nil)
10491103 }
10501104 else unit
10511105 }
1052- if ((fk == fk))
1106+ if ((fo == fo))
10531107 then {
1054- let gO = if ((er > 0))
1055- then invoke(bD, "put", nil, [AttachedPayment(gM, er)])
1108+ let gV = if ((et > 0))
1109+ then invoke(bF, "put", nil, [AttachedPayment(gT, et)])
10561110 else nil
1057- if ((gO == gO))
1111+ if ((gV == gV))
10581112 then {
1059- let gP = if ((es > 0))
1060- then invoke(bD, "put", nil, [AttachedPayment(gN, es)])
1113+ let gW = if ((eu > 0))
1114+ then invoke(bF, "put", nil, [AttachedPayment(gU, eu)])
10611115 else nil
1062- if ((gP == gP))
1116+ if ((gW == gW))
10631117 then {
1064- let gQ = if (gL)
1118+ let gX = if (gS)
10651119 then {
1066- let gR = invoke(bC, "stake", nil, [AttachedPayment(dv, eq)])
1067- if ((gR == gR))
1120+ let gY = invoke(bE, "stake", nil, [AttachedPayment(dx, es)])
1121+ if ((gY == gY))
10681122 then nil
10691123 else throw("Strict value is not equal to itself.")
10701124 }
1071- else [ScriptTransfer(fb.caller, eq, dv)]
1072- let gS = eI(0, 0, 0)
1073- if ((gS == gS))
1125+ else [ScriptTransfer(fd.caller, es, dx)]
1126+ let gZ = eK(0, 0, 0)
1127+ if ((gZ == gZ))
10741128 then {
1075- let ez = gS._2
1076- let gT = gS._1
1077- let gU = eN(eH, ez)
1078- if ((gU == gU))
1129+ let eB = gZ._2
1130+ let gP = gZ._1
1131+ let ha = eP(eJ, eB)
1132+ if ((ha == ha))
10791133 then {
1080- let gV = invoke(this, "rebalance", nil, nil)
1081- if ((gV == gV))
1082- then ((dM ++ gQ) ++ gT)
1134+ let hb = invoke(this, "rebalance", nil, nil)
1135+ if ((hb == hb))
1136+ then ((dO ++ gX) ++ gP)
10831137 else throw("Strict value is not equal to itself.")
10841138 }
10851139 else throw("Strict value is not equal to itself.")
10861140 }
10871141 else throw("Strict value is not equal to itself.")
10881142 }
10891143 else throw("Strict value is not equal to itself.")
10901144 }
10911145 else throw("Strict value is not equal to itself.")
10921146 }
10931147 else throw("Strict value is not equal to itself.")
10941148 }
10951149 else throw("Strict value is not equal to itself.")
10961150 }
10971151 else throw("Strict value is not equal to itself.")
10981152 }
10991153
11001154
11011155
1102-@Callable(fb)
1103-func putForFree (gW) = if ((0 > gW))
1156+@Callable(fd)
1157+func putForFree (hc) = if ((0 > hc))
11041158 then throw("Invalid value passed")
11051159 else {
1106- let fh = fe(fb, gW, false)
1107- let dM = fh._9
1108- let ff = toBigInt(value(fb.payments[0]).amount)
1109- let fg = toBigInt(value(fb.payments[1]).amount)
1110- let eH = eA(ff, fg, toBigInt(0))
1111- if ((eH == eH))
1160+ let fk = fh(fd, hc, false)
1161+ let dO = fk._9
1162+ let fi = toBigInt(value(fd.payments[0]).amount)
1163+ let fj = toBigInt(value(fd.payments[1]).amount)
1164+ let eJ = eC(fi, fj, toBigInt(0))
1165+ if ((eJ == eJ))
11121166 then {
1113- let gX = eI(0, 0, 0)
1114- let gT = gX._1
1115- let ez = gX._2
1116- let gU = eN(eH, ez)
1117- if ((gU == gU))
1118- then (dM ++ gT)
1167+ let hd = eK(0, 0, 0)
1168+ let gP = hd._1
1169+ let eB = hd._2
1170+ let ha = eP(eJ, eB)
1171+ if ((ha == ha))
1172+ then (dO ++ gP)
11191173 else throw("Strict value is not equal to itself.")
11201174 }
11211175 else throw("Strict value is not equal to itself.")
11221176 }
11231177
11241178
11251179
1126-@Callable(fb)
1127-func putOneTkn (gY,gZ) = {
1128- let ha = {
1180+@Callable(fd)
1181+func putOneTkn (he,hf) = {
1182+ let hg = {
11291183 let bg = invoke(bd, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
11301184 if ($isInstanceOf(bg, "Boolean"))
11311185 then bg
11321186 else throw(($getType(bg) + " couldn't be cast to Boolean"))
11331187 }
1134- let hb = if (if (if (bi())
1188+ let fl = if (!(bj(fd.caller)))
1189+ then if (if (if (bk())
1190+ then true
1191+ else (bx == l))
1192+ then true
1193+ else (bx == n))
1194+ then true
1195+ else hg
1196+ else false
1197+ let fZ = [if (if (!(fl))
11351198 then true
1136- else (bv == l))
1199+ else gt(fd))
11371200 then true
1138- else (bv == n))
1139- then true
1140- else ha
1141- let fV = [if (if (!(hb))
1142- then true
1143- else gp(fb))
1144- then true
1145- else ba("put operation is blocked by admin"), if ((size(fb.payments) == 1))
1201+ else ba("put operation is blocked by admin"), if ((size(fd.payments) == 1))
11461202 then true
11471203 else ba("exactly 1 payment are expected")]
1148- if ((fV == fV))
1204+ if ((fZ == fZ))
11491205 then {
1150- let hc = fb.payments[0]
1151- let fq = hc.assetId
1152- let fp = hc.amount
1153- let eH = if ((fq == bx))
1154- then eA(toBigInt(fp), toBigInt(0), toBigInt(0))
1155- else if ((fq == by))
1156- then eA(toBigInt(0), toBigInt(fp), toBigInt(0))
1206+ let hh = fd.payments[0]
1207+ let fu = hh.assetId
1208+ let ft = hh.amount
1209+ let eJ = if ((fu == bz))
1210+ then eC(toBigInt(ft), toBigInt(0), toBigInt(0))
1211+ else if ((fu == bA))
1212+ then eC(toBigInt(0), toBigInt(ft), toBigInt(0))
11571213 else ba("payment asset is not supported")
1158- if ((eH == eH))
1214+ if ((eJ == eJ))
11591215 then {
1160- let ab = fb.caller
1161- let ac = fb.transactionId
1162- let hd = fo(fp, fq, ab, ac)
1163- if ((hd == hd))
1216+ let ab = fd.caller
1217+ let ac = fd.transactionId
1218+ let hi = fs(ft, fu, ab, ac)
1219+ if ((hi == hi))
11641220 then {
1165- let fu = hd._5
1166- let he = hd._4
1167- let fn = hd._3
1168- let et = hd._2
1169- let hf = hd._1
1170- let hg = if (if ((gY > 0))
1171- then (gY > hf)
1221+ let fy = hi._5
1222+ let hj = hi._4
1223+ let fr = hi._3
1224+ let ev = hi._2
1225+ let hk = hi._1
1226+ let hl = if (if ((he > 0))
1227+ then (he > hk)
11721228 else false)
1173- then ba(makeString(["amount to receive is less than ", toString(gY)], ""))
1174- else hf
1175- let fj = fi(hg)
1176- if ((fj == fj))
1229+ then ba(makeString(["amount to receive is less than ", toString(he)], ""))
1230+ else hk
1231+ let fn = fm(hl)
1232+ if ((fn == fn))
11771233 then {
1178- let gQ = if (gZ)
1234+ let gX = if (hf)
11791235 then {
1180- let hh = invoke(bC, "stake", nil, [AttachedPayment(bw, hg)])
1181- if ((hh == hh))
1236+ let hm = invoke(bE, "stake", nil, [AttachedPayment(by, hl)])
1237+ if ((hm == hm))
11821238 then nil
11831239 else throw("Strict value is not equal to itself.")
11841240 }
1185- else [ScriptTransfer(fb.caller, hg, bw)]
1186- let hi = if ((fn > 0))
1187- then [ScriptTransfer(be, fn, fq)]
1241+ else [ScriptTransfer(fd.caller, hl, by)]
1242+ let hn = if ((fr > 0))
1243+ then [ScriptTransfer(be, fr, fu)]
11881244 else nil
1189- let hj = if ((this == be))
1245+ let ho = if ((this == be))
11901246 then $Tuple2(0, 0)
1191- else if (fu)
1192- then $Tuple2(-(fn), 0)
1193- else $Tuple2(0, -(fn))
1194- let eJ = hj._1
1195- let eK = hj._2
1196- let hk = eI(eJ, eK, 0)
1197- let gT = hk._1
1198- let ez = hk._2
1199- let eU = value(getString(aj))
1200- let gU = eN(eH, ez)
1201- if ((gU == gU))
1247+ else if (fy)
1248+ then $Tuple2(-(fr), 0)
1249+ else $Tuple2(0, -(fr))
1250+ let eL = ho._1
1251+ let eM = ho._2
1252+ let hp = eK(eL, eM, 0)
1253+ let gP = hp._1
1254+ let eB = hp._2
1255+ let eW = value(getString(aj))
1256+ let ha = eP(eJ, eB)
1257+ if ((ha == ha))
12021258 then {
1203- let gV = invoke(this, "rebalance", nil, nil)
1204- if ((gV == gV))
1205- then $Tuple2((((et ++ gQ) ++ hi) ++ gT), hg)
1259+ let hb = invoke(this, "rebalance", nil, nil)
1260+ if ((hb == hb))
1261+ then $Tuple2((((ev ++ gX) ++ hn) ++ gP), hl)
12061262 else throw("Strict value is not equal to itself.")
12071263 }
12081264 else throw("Strict value is not equal to itself.")
12091265 }
12101266 else throw("Strict value is not equal to itself.")
12111267 }
12121268 else throw("Strict value is not equal to itself.")
12131269 }
12141270 else throw("Strict value is not equal to itself.")
12151271 }
12161272 else throw("Strict value is not equal to itself.")
12171273 }
12181274
12191275
12201276
1221-@Callable(fb)
1222-func putOneTknREADONLY (fq,fp) = {
1223- let hl = fo(fp, bn(fq), unit, unit)
1224- let hf = hl._1
1225- let et = hl._2
1226- let fn = hl._3
1227- let he = hl._4
1228- let fu = hl._5
1229- $Tuple2(nil, $Tuple3(hf, fn, he))
1277+@Callable(fd)
1278+func putOneTknREADONLY (fu,ft) = {
1279+ let hq = fs(ft, bp(fu), unit, unit)
1280+ let hk = hq._1
1281+ let ev = hq._2
1282+ let fr = hq._3
1283+ let hj = hq._4
1284+ let fy = hq._5
1285+ $Tuple2(nil, $Tuple3(hk, fr, hj))
12301286 }
12311287
12321288
12331289
1234-@Callable(fb)
1235-func getOneTkn (hm,gY) = {
1236- let ha = {
1290+@Callable(fd)
1291+func getOneTkn (hr,he) = {
1292+ let hg = {
12371293 let bg = invoke(bd, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
12381294 if ($isInstanceOf(bg, "Boolean"))
12391295 then bg
12401296 else throw(($getType(bg) + " couldn't be cast to Boolean"))
12411297 }
1242- let hn = if (if (bi())
1298+ let fg = if (!(bj(fd.caller)))
1299+ then if (if (bk())
1300+ then true
1301+ else (bx == n))
1302+ then true
1303+ else hg
1304+ else false
1305+ let fZ = [if (if (!(fg))
12431306 then true
1244- else (bv == n))
1307+ else gt(fd))
12451308 then true
1246- else ha
1247- let fV = [if (if (!(hn))
1248- then true
1249- else gp(fb))
1250- then true
1251- else ba("get operation is blocked by admin"), if ((size(fb.payments) == 1))
1309+ else ba("get operation is blocked by admin"), if ((size(fd.payments) == 1))
12521310 then true
12531311 else ba("exactly 1 payment are expected")]
1254- if ((fV == fV))
1312+ if ((fZ == fZ))
12551313 then {
1256- let fU = bn(hm)
1257- let hc = fb.payments[0]
1258- let fq = hc.assetId
1259- let fC = hc.amount
1260- let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
1261- if ((eH == eH))
1314+ let fY = bp(hr)
1315+ let hh = fd.payments[0]
1316+ let fu = hh.assetId
1317+ let fG = hh.amount
1318+ let eJ = eC(toBigInt(0), toBigInt(0), toBigInt(0))
1319+ if ((eJ == eJ))
12621320 then {
1263- let ab = fb.caller
1264- let ac = fb.transactionId
1265- let ho = fT(fU, fC, fq, ab, ac)
1266- if ((ho == ho))
1321+ let ab = fd.caller
1322+ let ac = fd.transactionId
1323+ let hs = fX(fY, fG, fu, ab, ac)
1324+ if ((hs == hs))
12671325 then {
1268- let fW = ho._5
1269- let he = ho._4
1270- let fn = ho._3
1271- let et = ho._2
1272- let hp = ho._1
1273- let cf = if (if ((gY > 0))
1274- then (gY > hp)
1326+ let ga = hs._5
1327+ let hj = hs._4
1328+ let fr = hs._3
1329+ let ev = hs._2
1330+ let ht = hs._1
1331+ let ch = if (if ((he > 0))
1332+ then (he > ht)
12751333 else false)
1276- then ba(makeString(["amount to receive is less than ", toString(gY)], ""))
1277- else hp
1278- let hq = invoke(bd, "burn", [fC], [AttachedPayment(fq, fC)])
1279- if ((hq == hq))
1334+ then ba(makeString(["amount to receive is less than ", toString(he)], ""))
1335+ else ht
1336+ let hu = invoke(bd, "burn", [fG], [AttachedPayment(fu, fG)])
1337+ if ((hu == hu))
12801338 then {
1281- let gK = cP(hm, (cf + max([0, fn])))
1282- let hr = [ScriptTransfer(ab, cf, fU)]
1283- let hi = if ((fn > 0))
1284- then [ScriptTransfer(be, fn, fU)]
1339+ let gR = cR(hr, (ch + max([0, fr])))
1340+ let hv = [ScriptTransfer(ab, ch, fY)]
1341+ let hn = if ((fr > 0))
1342+ then [ScriptTransfer(be, fr, fY)]
12851343 else nil
1286- let hs = {
1287- let ht = if ((this == be))
1344+ let hw = {
1345+ let hx = if ((this == be))
12881346 then 0
1289- else fn
1290- if (fW)
1291- then $Tuple2(-((cf + ht)), 0)
1292- else $Tuple2(0, -((cf + ht)))
1347+ else fr
1348+ if (ga)
1349+ then $Tuple2(-((ch + hx)), 0)
1350+ else $Tuple2(0, -((ch + hx)))
12931351 }
1294- let eJ = hs._1
1295- let eK = hs._2
1296- let hu = eI(eJ, eK, 0)
1297- let gT = hu._1
1298- let ez = hu._2
1299- let gU = eN(eH, ez)
1300- if ((gU == gU))
1301- then $Tuple2(((((et ++ gK) ++ hr) ++ hi) ++ gT), cf)
1352+ let eL = hw._1
1353+ let eM = hw._2
1354+ let hy = eK(eL, eM, 0)
1355+ let gP = hy._1
1356+ let eB = hy._2
1357+ let ha = eP(eJ, eB)
1358+ if ((ha == ha))
1359+ then $Tuple2(((((ev ++ gR) ++ hv) ++ hn) ++ gP), ch)
13021360 else throw("Strict value is not equal to itself.")
13031361 }
13041362 else throw("Strict value is not equal to itself.")
13051363 }
13061364 else throw("Strict value is not equal to itself.")
13071365 }
13081366 else throw("Strict value is not equal to itself.")
13091367 }
13101368 else throw("Strict value is not equal to itself.")
13111369 }
13121370
13131371
13141372
1315-@Callable(fb)
1316-func getOneTknREADONLY (fU,fC) = {
1317- let hv = fT(bn(fU), fC, bw, unit, unit)
1318- let hp = hv._1
1319- let et = hv._2
1320- let fn = hv._3
1321- let he = hv._4
1322- let fW = hv._5
1323- $Tuple2(nil, $Tuple3(hp, fn, he))
1373+@Callable(fd)
1374+func getOneTknREADONLY (fY,fG) = {
1375+ let hz = fX(bp(fY), fG, by, unit, unit)
1376+ let ht = hz._1
1377+ let ev = hz._2
1378+ let fr = hz._3
1379+ let hj = hz._4
1380+ let ga = hz._5
1381+ $Tuple2(nil, $Tuple3(ht, fr, hj))
13241382 }
13251383
13261384
13271385
1328-@Callable(fb)
1329-func unstakeAndGetOneTkn (hw,hm,gY) = {
1330- let ha = {
1386+@Callable(fd)
1387+func unstakeAndGetOneTkn (hA,hr,he) = {
1388+ let hg = {
13311389 let bg = invoke(bd, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
13321390 if ($isInstanceOf(bg, "Boolean"))
13331391 then bg
13341392 else throw(($getType(bg) + " couldn't be cast to Boolean"))
13351393 }
1336- let hn = if (if (bi())
1394+ let fg = if (!(bj(fd.caller)))
1395+ then if (if (bk())
1396+ then true
1397+ else (bx == n))
1398+ then true
1399+ else hg
1400+ else false
1401+ let fZ = [if (if (!(fg))
13371402 then true
1338- else (bv == n))
1403+ else gt(fd))
13391404 then true
1340- else ha
1341- let fV = [if (if (!(hn))
1342- then true
1343- else gp(fb))
1344- then true
1345- else ba("get operation is blocked by admin"), if ((size(fb.payments) == 0))
1405+ else ba("get operation is blocked by admin"), if ((size(fd.payments) == 0))
13461406 then true
13471407 else ba("no payments are expected")]
1348- if ((fV == fV))
1408+ if ((fZ == fZ))
13491409 then {
1350- let fU = bn(hm)
1351- let ab = fb.caller
1352- let ac = fb.transactionId
1353- let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
1354- if ((eH == eH))
1410+ let fY = bp(hr)
1411+ let ab = fd.caller
1412+ let ac = fd.transactionId
1413+ let eJ = eC(toBigInt(0), toBigInt(0), toBigInt(0))
1414+ if ((eJ == eJ))
13551415 then {
1356- let hx = invoke(bC, "unstake", [toBase58String(bw), hw], nil)
1357- if ((hx == hx))
1416+ let hB = invoke(bE, "unstake", [toBase58String(by), hA], nil)
1417+ if ((hB == hB))
13581418 then {
1359- let hy = fT(fU, hw, bw, ab, ac)
1360- if ((hy == hy))
1419+ let hC = fX(fY, hA, by, ab, ac)
1420+ if ((hC == hC))
13611421 then {
1362- let fW = hy._5
1363- let he = hy._4
1364- let fn = hy._3
1365- let et = hy._2
1366- let hp = hy._1
1367- let cf = if (if ((gY > 0))
1368- then (gY > hp)
1422+ let ga = hC._5
1423+ let hj = hC._4
1424+ let fr = hC._3
1425+ let ev = hC._2
1426+ let ht = hC._1
1427+ let ch = if (if ((he > 0))
1428+ then (he > ht)
13691429 else false)
1370- then ba(makeString(["amount to receive is less than ", toString(gY)], ""))
1371- else hp
1372- let hq = invoke(bd, "burn", [hw], [AttachedPayment(bw, hw)])
1373- if ((hq == hq))
1430+ then ba(makeString(["amount to receive is less than ", toString(he)], ""))
1431+ else ht
1432+ let hu = invoke(bd, "burn", [hA], [AttachedPayment(by, hA)])
1433+ if ((hu == hu))
13741434 then {
1375- let gK = cP(hm, (cf + max([0, fn])))
1376- let hr = [ScriptTransfer(fb.caller, cf, fU)]
1377- let hi = if ((fn > 0))
1378- then [ScriptTransfer(be, fn, fU)]
1435+ let gR = cR(hr, (ch + max([0, fr])))
1436+ let hv = [ScriptTransfer(fd.caller, ch, fY)]
1437+ let hn = if ((fr > 0))
1438+ then [ScriptTransfer(be, fr, fY)]
13791439 else nil
1380- let hz = {
1381- let ht = if ((this == be))
1440+ let hD = {
1441+ let hx = if ((this == be))
13821442 then 0
1383- else fn
1384- if (fW)
1385- then $Tuple2(-((cf + ht)), 0)
1386- else $Tuple2(0, -((cf + ht)))
1443+ else fr
1444+ if (ga)
1445+ then $Tuple2(-((ch + hx)), 0)
1446+ else $Tuple2(0, -((ch + hx)))
13871447 }
1388- let eJ = hz._1
1389- let eK = hz._2
1390- let hA = eI(eJ, eK, 0)
1391- let gT = hA._1
1392- let ez = hA._2
1393- let gU = eN(eH, ez)
1394- if ((gU == gU))
1395- then $Tuple2(((((et ++ gK) ++ hr) ++ hi) ++ gT), cf)
1448+ let eL = hD._1
1449+ let eM = hD._2
1450+ let hE = eK(eL, eM, 0)
1451+ let gP = hE._1
1452+ let eB = hE._2
1453+ let ha = eP(eJ, eB)
1454+ if ((ha == ha))
1455+ then $Tuple2(((((ev ++ gR) ++ hv) ++ hn) ++ gP), ch)
13961456 else throw("Strict value is not equal to itself.")
13971457 }
13981458 else throw("Strict value is not equal to itself.")
13991459 }
14001460 else throw("Strict value is not equal to itself.")
14011461 }
14021462 else throw("Strict value is not equal to itself.")
14031463 }
14041464 else throw("Strict value is not equal to itself.")
14051465 }
14061466 else throw("Strict value is not equal to itself.")
14071467 }
14081468
14091469
14101470
1411-@Callable(fb)
1471+@Callable(fd)
14121472 func get () = {
1413- let ee = fa(fb)
1414- let dK = ee._1
1415- let dL = ee._2
1416- let fd = ee._3
1417- let dt = ee._4
1418- let dM = ee._5
1419- let gK = cU(dK, dL)
1420- let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
1421- if ((eH == eH))
1473+ let eg = fc(fd)
1474+ let dM = eg._1
1475+ let dN = eg._2
1476+ let ff = eg._3
1477+ let dv = eg._4
1478+ let dO = eg._5
1479+ let gR = cW(dM, dN)
1480+ let eJ = eC(toBigInt(0), toBigInt(0), toBigInt(0))
1481+ if ((eJ == eJ))
14221482 then {
1423- let hB = invoke(bd, "burn", [fd], [AttachedPayment(dt, fd)])
1424- if ((hB == hB))
1483+ let hF = invoke(bd, "burn", [ff], [AttachedPayment(dv, ff)])
1484+ if ((hF == hF))
14251485 then {
1426- let hC = eI(-(dK), -(dL), 0)
1427- let gT = hC._1
1428- let ez = hC._2
1429- let gU = eN(eH, ez)
1430- if ((gU == gU))
1431- then ((gK ++ dM) ++ gT)
1486+ let hG = eK(-(dM), -(dN), 0)
1487+ let gP = hG._1
1488+ let eB = hG._2
1489+ let ha = eP(eJ, eB)
1490+ if ((ha == ha))
1491+ then ((gR ++ dO) ++ gP)
14321492 else throw("Strict value is not equal to itself.")
14331493 }
14341494 else throw("Strict value is not equal to itself.")
14351495 }
14361496 else throw("Strict value is not equal to itself.")
14371497 }
14381498
14391499
14401500
1441-@Callable(fb)
1442-func getNoLess (hD,hE) = {
1443- let ee = fa(fb)
1444- let dK = ee._1
1445- let dL = ee._2
1446- let fd = ee._3
1447- let dt = ee._4
1448- let dM = ee._5
1449- if ((hD > dK))
1450- then throw(((("noLessThenAmtAsset failed: " + toString(dK)) + " < ") + toString(hD)))
1451- else if ((hE > dL))
1452- then throw(((("noLessThenPriceAsset failed: " + toString(dL)) + " < ") + toString(hE)))
1501+@Callable(fd)
1502+func getNoLess (hH,hI) = {
1503+ let eg = fc(fd)
1504+ let dM = eg._1
1505+ let dN = eg._2
1506+ let ff = eg._3
1507+ let dv = eg._4
1508+ let dO = eg._5
1509+ if ((hH > dM))
1510+ then throw(((("noLessThenAmtAsset failed: " + toString(dM)) + " < ") + toString(hH)))
1511+ else if ((hI > dN))
1512+ then throw(((("noLessThenPriceAsset failed: " + toString(dN)) + " < ") + toString(hI)))
14531513 else {
1454- let gK = cU(dK, dL)
1455- let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
1456- if ((eH == eH))
1514+ let gR = cW(dM, dN)
1515+ let eJ = eC(toBigInt(0), toBigInt(0), toBigInt(0))
1516+ if ((eJ == eJ))
14571517 then {
1458- let hB = invoke(bd, "burn", [fd], [AttachedPayment(dt, fd)])
1459- if ((hB == hB))
1518+ let hF = invoke(bd, "burn", [ff], [AttachedPayment(dv, ff)])
1519+ if ((hF == hF))
14601520 then {
1461- let hF = eI(-(dK), -(dL), 0)
1462- let gT = hF._1
1463- let ez = hF._2
1464- let gU = eN(eH, ez)
1465- if ((gU == gU))
1466- then ((gK ++ dM) ++ gT)
1521+ let hJ = eK(-(dM), -(dN), 0)
1522+ let gP = hJ._1
1523+ let eB = hJ._2
1524+ let ha = eP(eJ, eB)
1525+ if ((ha == ha))
1526+ then ((gR ++ dO) ++ gP)
14671527 else throw("Strict value is not equal to itself.")
14681528 }
14691529 else throw("Strict value is not equal to itself.")
14701530 }
14711531 else throw("Strict value is not equal to itself.")
14721532 }
14731533 }
14741534
14751535
14761536
1477-@Callable(fb)
1478-func unstakeAndGet (cf) = {
1479- let hG = if ((size(fb.payments) != 0))
1537+@Callable(fd)
1538+func unstakeAndGet (ch) = {
1539+ let hK = if ((size(fd.payments) != 0))
14801540 then throw("No payments are expected")
14811541 else true
1482- if ((hG == hG))
1542+ if ((hK == hK))
14831543 then {
1484- let di = bk()
1485- let dv = fromBase58String(di[q])
1486- let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
1487- if ((eH == eH))
1544+ let dk = bm()
1545+ let dx = fromBase58String(dk[q])
1546+ let eJ = eC(toBigInt(0), toBigInt(0), toBigInt(0))
1547+ if ((eJ == eJ))
14881548 then {
1489- let hx = invoke(bC, "unstake", [toBase58String(dv), cf], nil)
1490- if ((hx == hx))
1549+ let hB = invoke(bE, "unstake", [toBase58String(dx), ch], nil)
1550+ if ((hB == hB))
14911551 then {
1492- let ee = dr(toBase58String(fb.transactionId), toBase58String(dv), cf, fb.caller)
1493- let dK = ee._1
1494- let dL = ee._2
1495- let dy = parseIntValue(ee._9)
1496- let dM = ee._10
1497- let gK = cU(dK, dL)
1498- let hH = if (if (bi())
1499- then true
1500- else (dy == n))
1501- then throw(("Get operation is blocked by admin. Status = " + toString(dy)))
1552+ let eg = dt(toBase58String(fd.transactionId), toBase58String(dx), ch, fd.caller)
1553+ let dM = eg._1
1554+ let dN = eg._2
1555+ let dA = parseIntValue(eg._9)
1556+ let dO = eg._10
1557+ let gR = cW(dM, dN)
1558+ let fg = if (!(bj(fd.caller)))
1559+ then if (bk())
1560+ then true
1561+ else (bx == n)
1562+ else false
1563+ let hL = if (fg)
1564+ then throw(("Get operation is blocked by admin. Status = " + toString(dA)))
15021565 else true
1503- if ((hH == hH))
1566+ if ((hL == hL))
15041567 then {
1505- let hB = invoke(bd, "burn", [cf], [AttachedPayment(dv, cf)])
1506- if ((hB == hB))
1568+ let hF = invoke(bd, "burn", [ch], [AttachedPayment(dx, ch)])
1569+ if ((hF == hF))
15071570 then {
1508- let hI = eI(-(dK), -(dL), 0)
1509- let gT = hI._1
1510- let ez = hI._2
1511- let gU = eN(eH, ez)
1512- if ((gU == gU))
1513- then ((gK ++ dM) ++ gT)
1571+ let hM = eK(-(dM), -(dN), 0)
1572+ let gP = hM._1
1573+ let eB = hM._2
1574+ let ha = eP(eJ, eB)
1575+ if ((ha == ha))
1576+ then ((gR ++ dO) ++ gP)
15141577 else throw("Strict value is not equal to itself.")
15151578 }
15161579 else throw("Strict value is not equal to itself.")
15171580 }
15181581 else throw("Strict value is not equal to itself.")
15191582 }
15201583 else throw("Strict value is not equal to itself.")
15211584 }
15221585 else throw("Strict value is not equal to itself.")
15231586 }
15241587 else throw("Strict value is not equal to itself.")
15251588 }
15261589
15271590
15281591
1529-@Callable(fb)
1530-func unstakeAndGetNoLess (hw,hJ,hE) = {
1531- let hn = if (bi())
1592+@Callable(fd)
1593+func unstakeAndGetNoLess (hA,hN,hI) = {
1594+ let fg = if (!(bj(fd.caller)))
1595+ then if (bk())
1596+ then true
1597+ else (bx == n)
1598+ else false
1599+ let fZ = [if (!(fg))
15321600 then true
1533- else (bv == n)
1534- let fV = [if (!(hn))
1535- then true
1536- else throw("get operation is blocked by admin"), if ((size(fb.payments) == 0))
1601+ else throw("get operation is blocked by admin"), if ((size(fd.payments) == 0))
15371602 then true
15381603 else throw("no payments are expected")]
1539- if ((fV == fV))
1604+ if ((fZ == fZ))
15401605 then {
1541- let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
1542- if ((eH == eH))
1606+ let eJ = eC(toBigInt(0), toBigInt(0), toBigInt(0))
1607+ if ((eJ == eJ))
15431608 then {
1544- let hx = invoke(bC, "unstake", [toBase58String(bw), hw], nil)
1545- if ((hx == hx))
1609+ let hB = invoke(bE, "unstake", [toBase58String(by), hA], nil)
1610+ if ((hB == hB))
15461611 then {
1547- let ee = dr(toBase58String(fb.transactionId), toBase58String(bw), hw, fb.caller)
1548- let dK = ee._1
1549- let dL = ee._2
1550- let dM = ee._10
1551- let gK = cU(dK, dL)
1552- let hK = [if ((dK >= hJ))
1612+ let eg = dt(toBase58String(fd.transactionId), toBase58String(by), hA, fd.caller)
1613+ let dM = eg._1
1614+ let dN = eg._2
1615+ let dO = eg._10
1616+ let gR = cW(dM, dN)
1617+ let hO = [if ((dM >= hN))
15531618 then true
1554- else throw(makeString(["amount asset amount to receive is less than ", toString(hJ)], "")), if ((dL >= hE))
1619+ else throw(makeString(["amount asset amount to receive is less than ", toString(hN)], "")), if ((dN >= hI))
15551620 then true
1556- else throw(makeString(["price asset amount to receive is less than ", toString(hE)], ""))]
1557- if ((hK == hK))
1621+ else throw(makeString(["price asset amount to receive is less than ", toString(hI)], ""))]
1622+ if ((hO == hO))
15581623 then {
1559- let hB = invoke(bd, "burn", [hw], [AttachedPayment(bw, hw)])
1560- if ((hB == hB))
1624+ let hF = invoke(bd, "burn", [hA], [AttachedPayment(by, hA)])
1625+ if ((hF == hF))
15611626 then {
1562- let hL = eI(-(dK), -(dL), 0)
1563- let gT = hL._1
1564- let ez = hL._2
1565- let gU = eN(eH, ez)
1566- if ((gU == gU))
1567- then ((gK ++ dM) ++ gT)
1627+ let hP = eK(-(dM), -(dN), 0)
1628+ let gP = hP._1
1629+ let eB = hP._2
1630+ let ha = eP(eJ, eB)
1631+ if ((ha == ha))
1632+ then ((gR ++ dO) ++ gP)
15681633 else throw("Strict value is not equal to itself.")
15691634 }
15701635 else throw("Strict value is not equal to itself.")
15711636 }
15721637 else throw("Strict value is not equal to itself.")
15731638 }
15741639 else throw("Strict value is not equal to itself.")
15751640 }
15761641 else throw("Strict value is not equal to itself.")
15771642 }
15781643 else throw("Strict value is not equal to itself.")
15791644 }
15801645
15811646
15821647
1583-@Callable(fb)
1584-func activate (hM,hN) = if ((toString(fb.caller) != toString(bd)))
1648+@Callable(fd)
1649+func activate (hQ,hR) = if ((toString(fd.caller) != toString(bd)))
15851650 then throw("permissions denied")
1586- else $Tuple2([StringEntry(ae(), hM), StringEntry(af(), hN)], "success")
1651+ else $Tuple2([StringEntry(ae(), hQ), StringEntry(af(), hR)], "success")
15871652
15881653
15891654
1590-@Callable(fb)
1655+@Callable(fd)
15911656 func refreshKLp () = {
1592- let hO = valueOrElse(getInteger(ak), 0)
1593- let hP = if (((height - hO) >= an))
1657+ let hS = valueOrElse(getInteger(ak), 0)
1658+ let hT = if (((height - hS) >= an))
15941659 then unit
15951660 else ba(makeString([toString(an), " blocks have not passed since the previous call"], ""))
1596- if ((hP == hP))
1661+ if ((hT == hT))
15971662 then {
1598- let eU = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), bc("invalid kLp"))
1599- let hQ = eI(0, 0, 0)
1600- let hR = hQ._1
1601- let ez = hQ._2
1602- let eL = if ((eU != ez))
1603- then hR
1663+ let eW = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), bc("invalid kLp"))
1664+ let hU = eK(0, 0, 0)
1665+ let hV = hU._1
1666+ let eB = hU._2
1667+ let eN = if ((eW != eB))
1668+ then hV
16041669 else ba("nothing to refresh")
1605- $Tuple2(eL, toString(ez))
1670+ $Tuple2(eN, toString(eB))
16061671 }
16071672 else throw("Strict value is not equal to itself.")
16081673 }
16091674
16101675
16111676
1612-@Callable(fb)
1613-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bk())
1677+@Callable(fd)
1678+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bm())
16141679
16151680
16161681
1617-@Callable(fb)
1618-func getAccBalanceWrapperREADONLY (ap) = $Tuple2(nil, bT(ap))
1682+@Callable(fd)
1683+func getAccBalanceWrapperREADONLY (ap) = $Tuple2(nil, bV(ap))
16191684
16201685
16211686
1622-@Callable(fb)
1623-func calcPricesWrapperREADONLY (dc,dd,dh) = {
1624- let dq = dg(dc, dd, dh)
1625- $Tuple2(nil, [toString(dq[0]), toString(dq[1]), toString(dq[2])])
1687+@Callable(fd)
1688+func calcPricesWrapperREADONLY (de,df,dj) = {
1689+ let ds = di(de, df, dj)
1690+ $Tuple2(nil, [toString(ds[0]), toString(ds[1]), toString(ds[2])])
16261691 }
16271692
16281693
16291694
1630-@Callable(fb)
1695+@Callable(fd)
16311696 func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
16321697
16331698
16341699
1635-@Callable(fb)
1700+@Callable(fd)
16361701 func fromX18WrapperREADONLY (I,J) = $Tuple2(nil, H(parseBigIntValue(I), J))
16371702
16381703
16391704
1640-@Callable(fb)
1641-func calcPriceBigIntWrapperREADONLY (bX,bY) = $Tuple2(nil, toString(bW(parseBigIntValue(bX), parseBigIntValue(bY))))
1705+@Callable(fd)
1706+func calcPriceBigIntWrapperREADONLY (bZ,ca) = $Tuple2(nil, toString(bY(parseBigIntValue(bZ), parseBigIntValue(ca))))
16421707
16431708
16441709
1645-@Callable(fb)
1646-func estimatePutOperationWrapperREADONLY (ds,dO,dP,dQ,dR,dS,ab,dT,dU) = $Tuple2(nil, dN(ds, dO, dP, dQ, dR, dS, ab, dT, dU))
1710+@Callable(fd)
1711+func estimatePutOperationWrapperREADONLY (du,dQ,dR,dS,dT,dU,ab,dV,dW) = $Tuple2(nil, dP(du, dQ, dR, dS, dT, dU, ab, dV, dW))
16471712
16481713
16491714
1650-@Callable(fb)
1651-func estimateGetOperationWrapperREADONLY (ds,dt,du,ab) = {
1652- let ee = dr(ds, dt, du, addressFromStringValue(ab))
1653- $Tuple2(nil, $Tuple10(ee._1, ee._2, ee._3, ee._4, ee._5, ee._6, ee._7, toString(ee._8), ee._9, ee._10))
1715+@Callable(fd)
1716+func estimateGetOperationWrapperREADONLY (du,dv,dw,ab) = {
1717+ let eg = dt(du, dv, dw, addressFromStringValue(ab))
1718+ $Tuple2(nil, $Tuple10(eg._1, eg._2, eg._3, eg._4, eg._5, eg._6, eg._7, toString(eg._8), eg._9, eg._10))
16541719 }
16551720
16561721
16571722
1658-@Callable(fb)
1723+@Callable(fd)
16591724 func statsREADONLY () = {
1660- let di = bk()
1661- let dv = fromBase58String(di[q])
1662- let hS = di[r]
1663- let hT = di[s]
1664- let dX = di[v]
1665- let dY = di[w]
1666- let dj = parseIntValue(di[t])
1667- let dk = parseIntValue(di[u])
1668- let hU = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
1669- let hV = bT(hS)
1670- let hW = bT(hT)
1671- let hX = if ((hU == 0))
1725+ let dk = bm()
1726+ let dx = fromBase58String(dk[q])
1727+ let hW = dk[r]
1728+ let hX = dk[s]
1729+ let dZ = dk[v]
1730+ let ea = dk[w]
1731+ let dl = parseIntValue(dk[t])
1732+ let dm = parseIntValue(dk[u])
1733+ let hY = valueOrErrorMessage(assetInfo(dx), (("Asset " + toBase58String(dx)) + " doesn't exist")).quantity
1734+ let hZ = bV(hW)
1735+ let ia = bV(hX)
1736+ let ib = if ((hY == 0))
16721737 then [e, e, e]
1673- else dg(hV, hW, hU)
1674- let dF = 0
1675- let hY = H(hX[1], b)
1676- let hZ = H(hX[2], b)
1677- let ia = value(getInteger(bd, aD(toString(this))))
1678- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hV), toString(hW), toString(hU), toString(dF), toString(hY), toString(hZ), toString(ia)], j))
1738+ else di(hZ, ia, hY)
1739+ let dH = 0
1740+ let ic = H(ib[1], b)
1741+ let id = H(ib[2], b)
1742+ let ie = value(getInteger(bd, aD(toString(this))))
1743+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hZ), toString(ia), toString(hY), toString(dH), toString(ic), toString(id), toString(ie)], j))
16791744 }
16801745
16811746
16821747
1683-@Callable(fb)
1684-func evaluatePutByAmountAssetREADONLY (dP) = {
1685- let di = bk()
1686- let dv = fromBase58String(di[q])
1687- let dV = di[r]
1688- let dw = fromBase58String(dV)
1689- let dW = di[s]
1690- let dx = fromBase58String(dW)
1691- let dj = parseIntValue(di[t])
1692- let dk = parseIntValue(di[u])
1693- let dy = di[p]
1694- let hU = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
1695- let hV = bT(dV)
1696- let hW = bT(dW)
1697- let de = D(hV, dj)
1698- let df = D(hW, dk)
1699- let dE = if ((hU == 0))
1748+@Callable(fd)
1749+func evaluatePutByAmountAssetREADONLY (dR) = {
1750+ let dk = bm()
1751+ let dx = fromBase58String(dk[q])
1752+ let dX = dk[r]
1753+ let dy = fromBase58String(dX)
1754+ let dY = dk[s]
1755+ let dz = fromBase58String(dY)
1756+ let dl = parseIntValue(dk[t])
1757+ let dm = parseIntValue(dk[u])
1758+ let dA = dk[p]
1759+ let hY = valueOrErrorMessage(assetInfo(dx), (("Asset " + toBase58String(dx)) + " doesn't exist")).quantity
1760+ let hZ = bV(dX)
1761+ let ia = bV(dY)
1762+ let dg = D(hZ, dl)
1763+ let dh = D(ia, dm)
1764+ let dG = if ((hY == 0))
17001765 then e
1701- else bW(df, de)
1702- let eb = D(dP, dj)
1703- let ec = fraction(eb, dE, d)
1704- let dR = H(ec, dk)
1705- let fh = dN("", 500000, dP, dw, dR, dx, "", true, false)
1706- let em = fh._1
1707- let ib = fh._3
1708- let dA = fh._4
1709- let dC = fh._5
1710- let dz = fh._6
1711- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(em), toString(H(dE, b)), toString(dA), toString(dC), toString(dz), dy, toString(dP), toString(dR)], j))
1766+ else bY(dh, dg)
1767+ let ed = D(dR, dl)
1768+ let ee = fraction(ed, dG, d)
1769+ let dT = H(ee, dm)
1770+ let fk = dP("", 500000, dR, dy, dT, dz, "", true, false)
1771+ let eo = fk._1
1772+ let if = fk._3
1773+ let dC = fk._4
1774+ let dE = fk._5
1775+ let dB = fk._6
1776+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(eo), toString(H(dG, b)), toString(dC), toString(dE), toString(dB), dA, toString(dR), toString(dT)], j))
17121777 }
17131778
17141779
17151780
1716-@Callable(fb)
1717-func evaluatePutByPriceAssetREADONLY (dR) = {
1718- let di = bk()
1719- let dv = fromBase58String(di[q])
1720- let dV = di[r]
1721- let dw = fromBase58String(dV)
1722- let dW = di[s]
1723- let dx = fromBase58String(dW)
1724- let dj = parseIntValue(di[t])
1725- let dk = parseIntValue(di[u])
1726- let dy = di[p]
1727- let hU = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
1728- let ic = bT(dV)
1729- let id = bT(dW)
1730- let ie = D(ic, dj)
1731- let if = D(id, dk)
1732- let dE = if ((hU == 0))
1781+@Callable(fd)
1782+func evaluatePutByPriceAssetREADONLY (dT) = {
1783+ let dk = bm()
1784+ let dx = fromBase58String(dk[q])
1785+ let dX = dk[r]
1786+ let dy = fromBase58String(dX)
1787+ let dY = dk[s]
1788+ let dz = fromBase58String(dY)
1789+ let dl = parseIntValue(dk[t])
1790+ let dm = parseIntValue(dk[u])
1791+ let dA = dk[p]
1792+ let hY = valueOrErrorMessage(assetInfo(dx), (("Asset " + toBase58String(dx)) + " doesn't exist")).quantity
1793+ let ig = bV(dX)
1794+ let ih = bV(dY)
1795+ let ii = D(ig, dl)
1796+ let ij = D(ih, dm)
1797+ let dG = if ((hY == 0))
17331798 then e
1734- else bW(if, ie)
1735- let ec = D(dR, dk)
1736- let eb = fraction(ec, d, dE)
1737- let dP = H(eb, dj)
1738- let fh = dN("", 500000, dP, dw, dR, dx, "", true, false)
1739- let em = fh._1
1740- let ib = fh._3
1741- let dA = fh._4
1742- let dC = fh._5
1743- let dz = fh._6
1744- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(em), toString(H(dE, b)), toString(dA), toString(dC), toString(dz), dy, toString(dP), toString(dR)], j))
1799+ else bY(ij, ii)
1800+ let ee = D(dT, dm)
1801+ let ed = fraction(ee, d, dG)
1802+ let dR = H(ed, dl)
1803+ let fk = dP("", 500000, dR, dy, dT, dz, "", true, false)
1804+ let eo = fk._1
1805+ let if = fk._3
1806+ let dC = fk._4
1807+ let dE = fk._5
1808+ let dB = fk._6
1809+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(eo), toString(H(dG, b)), toString(dC), toString(dE), toString(dB), dA, toString(dR), toString(dT)], j))
17451810 }
17461811
17471812
17481813
1749-@Callable(fb)
1750-func evaluateGetREADONLY (ig,ih) = {
1751- let ee = dr("", ig, ih, this)
1752- let dK = ee._1
1753- let dL = ee._2
1754- let dA = ee._5
1755- let dC = ee._6
1756- let dz = ee._7
1757- let dF = ee._8
1758- let dy = parseIntValue(ee._9)
1759- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dK), toString(dL), toString(dA), toString(dC), toString(dz), toString(dF), toString(dy)], j))
1814+@Callable(fd)
1815+func evaluateGetREADONLY (ik,il) = {
1816+ let eg = dt("", ik, il, this)
1817+ let dM = eg._1
1818+ let dN = eg._2
1819+ let dC = eg._5
1820+ let dE = eg._6
1821+ let dB = eg._7
1822+ let dH = eg._8
1823+ let dA = parseIntValue(eg._9)
1824+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dM), toString(dN), toString(dC), toString(dE), toString(dB), toString(dH), toString(dA)], j))
17601825 }
17611826
17621827
1763-@Verifier(ii)
1764-func ij () = {
1765- let ik = {
1766- let aQ = gn()
1828+@Verifier(im)
1829+func in () = {
1830+ let io = {
1831+ let aQ = gr()
17671832 if ($isInstanceOf(aQ, "ByteVector"))
17681833 then {
1769- let gq = aQ
1770- gq
1834+ let gu = aQ
1835+ gu
17711836 }
17721837 else if ($isInstanceOf(aQ, "Unit"))
1773- then ii.senderPublicKey
1838+ then im.senderPublicKey
17741839 else throw("Match error")
17751840 }
1776- let aQ = ii
1841+ let aQ = im
17771842 if ($isInstanceOf(aQ, "Order"))
17781843 then {
1779- let eQ = aQ
1780- let il = bj()
1781- let im = if (eM())
1844+ let eS = aQ
1845+ let ip = bl()
1846+ let iq = if (eO())
17821847 then $Tuple2(true, "")
1783- else eP(eQ)
1784- let aK = im._1
1785- let aL = im._2
1786- let aM = sigVerify(eQ.bodyBytes, eQ.proofs[0], eQ.senderPublicKey)
1787- let aN = sigVerify(eQ.bodyBytes, eQ.proofs[1], il)
1848+ else eR(eS)
1849+ let aK = iq._1
1850+ let aL = iq._2
1851+ let aM = sigVerify(eS.bodyBytes, eS.proofs[0], eS.senderPublicKey)
1852+ let aN = sigVerify(eS.bodyBytes, eS.proofs[1], ip)
17881853 if (if (if (aK)
17891854 then aM
17901855 else false)
17911856 then aN
17921857 else false)
17931858 then true
17941859 else aJ(aK, aL, aM, aN)
17951860 }
17961861 else if ($isInstanceOf(aQ, "SetScriptTransaction"))
17971862 then {
17981863 let aV = aQ
1799- if (sigVerify(ii.bodyBytes, ii.proofs[0], ik))
1864+ if (sigVerify(im.bodyBytes, im.proofs[0], io))
18001865 then true
18011866 else {
1802- let in = blake2b256(value(aV.script))
1803- let io = fromBase64String(value(getString(bd, aF())))
1804- let ip = scriptHash(this)
1805- if ((io == in))
1806- then (ip != in)
1867+ let ir = blake2b256(value(aV.script))
1868+ let is = fromBase64String(value(getString(bd, aF())))
1869+ let it = scriptHash(this)
1870+ if ((is == ir))
1871+ then (it != ir)
18071872 else false
18081873 }
18091874 }
1810- else sigVerify(ii.bodyBytes, ii.proofs[0], ik)
1875+ else sigVerify(im.bodyBytes, im.proofs[0], io)
18111876 }
18121877

github/deemru/w8io/6500d08 
849.36 ms