tx · 7wXQx9mHF7gVGG8uaTCAQa1ERj3jvRhoVbTPf7MiHuzH

3N7b3kPunHUXhZp1vMG9NhPMARNEprCMWxT:  -0.03600000 Waves

2023.01.20 14:23 [2413225] smart account 3N7b3kPunHUXhZp1vMG9NhPMARNEprCMWxT > SELF 0.00000000 Waves

{ "type": 13, "id": "7wXQx9mHF7gVGG8uaTCAQa1ERj3jvRhoVbTPf7MiHuzH", "fee": 3600000, "feeAssetId": null, "timestamp": 1674213863084, "version": 1, "sender": "3N7b3kPunHUXhZp1vMG9NhPMARNEprCMWxT", "senderPublicKey": "AYbpHveq7zviKTDV7SGTB1pZGFbkumgfq3jSwVv6BznT", "proofs": [ "2JFj6zJy9abYJFjvDPZqhhHHHoLtZ1EzFeYJ1U84sg571jL5Agpq3expvD2RduuQCFs8j31yAhmQBEK9jApG2c2f" ], "script": "base64:BgKBLggCEgMKAQgSABIECgIBBBIDCgEBEgQKAgEEEgQKAggBEgQKAggBEgQKAggBEgUKAwEIARIAEgQKAgEBEgMKAQESBQoDAQEBEgQKAggIEgASABIDCgEIEgUKAwEBARIECgIBARIECgIIARIECgIICBILCgkIAQECAQIIBAQSBgoECAgBCBIAEgMKAQESAwoBARIECgIIASIKbFBkZWNpbWFscyIGc2NhbGU4IgxzY2FsZThCaWdJbnQiB3NjYWxlMTgiCnplcm9CaWdJbnQiBGJpZzAiBGJpZzEiBGJpZzIiC3dhdmVzU3RyaW5nIgNTRVAiClBvb2xBY3RpdmUiD1Bvb2xQdXREaXNhYmxlZCITUG9vbE1hdGNoZXJEaXNhYmxlZCIMUG9vbFNodXRkb3duIg5pZHhQb29sQWRkcmVzcyINaWR4UG9vbFN0YXR1cyIQaWR4UG9vbExQQXNzZXRJZCINaWR4QW10QXNzZXRJZCIPaWR4UHJpY2VBc3NldElkIg5pZHhBbXRBc3NldERjbSIQaWR4UHJpY2VBc3NldERjbSIOaWR4SUFtdEFzc2V0SWQiEGlkeElQcmljZUFzc2V0SWQiDWlkeExQQXNzZXREY20iEmlkeFBvb2xBbXRBc3NldEFtdCIUaWR4UG9vbFByaWNlQXNzZXRBbXQiEWlkeFBvb2xMUEFzc2V0QW10IhlpZHhGYWN0b3J5U3Rha2luZ0NvbnRyYWN0IhppZHhGYWN0b3J5U2xpcHBhZ2VDb250cmFjdCIFdG9YMTgiB29yaWdWYWwiDW9yaWdTY2FsZU11bHQiC3RvWDE4QmlnSW50Igdmcm9tWDE4IgN2YWwiD3Jlc3VsdFNjYWxlTXVsdCIMZnJvbVgxOFJvdW5kIgVyb3VuZCIHdG9TY2FsZSIDYW10IghyZXNTY2FsZSIIY3VyU2NhbGUiA2FicyIJYWJzQmlnSW50IgJmYyIDbXBrIgRwbXBrIgJwbCICcGgiAWgiCXRpbWVzdGFtcCIDcGF1Igt1c2VyQWRkcmVzcyIEdHhJZCIDZ2F1IgJhYSICcGEiBmtleUZlZSIKZmVlRGVmYXVsdCIDZmVlIgZrZXlLTHAiFWtleUtMcFJlZnJlc2hlZEhlaWdodCISa2V5S0xwUmVmcmVzaERlbGF5IhZrTHBSZWZyZXNoRGVsYXlEZWZhdWx0Ig9rTHBSZWZyZXNoRGVsYXkiEGtleUZhY3RvcnlDb25maWciDWtleU1hdGNoZXJQdWIiKWtleU1hcHBpbmdQb29sQ29udHJhY3RBZGRyZXNzVG9Qb29sQXNzZXRzIhNwb29sQ29udHJhY3RBZGRyZXNzIg1rZXlQb29sQ29uZmlnIglpQW10QXNzZXQiC2lQcmljZUFzc2V0Ih9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkIgxiYXNlQXNzZXRTdHIiE2tleUFsbFBvb2xzU2h1dGRvd24iDWtleVBvb2xXZWlnaHQiD2NvbnRyYWN0QWRkcmVzcyIWa2V5QWxsb3dlZExwU2NyaXB0SGFzaCIWa2V5RmVlQ29sbGVjdG9yQWRkcmVzcyIPdGhyb3dPcmRlckVycm9yIgpvcmRlclZhbGlkIg5vcmRlclZhbGlkSW5mbyILc2VuZGVyVmFsaWQiDG1hdGNoZXJWYWxpZCIPZ2V0U3RyaW5nT3JGYWlsIgdhZGRyZXNzIgNrZXkiDGdldEludE9yRmFpbCIIdGhyb3dFcnIiA21zZyIGZm10RXJyIg9mYWN0b3J5Q29udHJhY3QiE2ZlZUNvbGxlY3RvckFkZHJlc3MiBWluRmVlIgFAIgZvdXRGZWUiEGlzR2xvYmFsU2h1dGRvd24iE2dldE1hdGNoZXJQdWJPckZhaWwiDWdldFBvb2xDb25maWciCGFtdEFzc2V0IgpwcmljZUFzc2V0IgxwYXJzZUFzc2V0SWQiBWlucHV0Ig9hc3NldElkVG9TdHJpbmciD3BhcnNlUG9vbENvbmZpZyIKcG9vbENvbmZpZyIQcG9vbENvbmZpZ1BhcnNlZCILJHQwODQwODg1NzQiDmNmZ1Bvb2xBZGRyZXNzIg1jZmdQb29sU3RhdHVzIgxjZmdMcEFzc2V0SWQiEGNmZ0Ftb3VudEFzc2V0SWQiD2NmZ1ByaWNlQXNzZXRJZCIWY2ZnQW1vdW50QXNzZXREZWNpbWFscyIVY2ZnUHJpY2VBc3NldERlY2ltYWxzIhBnZXRGYWN0b3J5Q29uZmlnIg9zdGFraW5nQ29udHJhY3QiEHNsaXBwYWdlQ29udHJhY3QiEWRhdGFQdXRBY3Rpb25JbmZvIg1pbkFtdEFzc2V0QW10Ig9pblByaWNlQXNzZXRBbXQiCG91dExwQW10IgVwcmljZSIdc2xpcHBhZ2VUb2xlcmFuY2VQYXNzZWRCeVVzZXIiFXNsaXBwYWdlVG9sZXJhbmNlUmVhbCIIdHhIZWlnaHQiC3R4VGltZXN0YW1wIhJzbGlwYWdlQW10QXNzZXRBbXQiFHNsaXBhZ2VQcmljZUFzc2V0QW10IhFkYXRhR2V0QWN0aW9uSW5mbyIOb3V0QW10QXNzZXRBbXQiEG91dFByaWNlQXNzZXRBbXQiB2luTHBBbXQiDWdldEFjY0JhbGFuY2UiB2Fzc2V0SWQiD2NhbGNQcmljZUJpZ0ludCIIcHJBbXRYMTgiCGFtQW10WDE4IhRjYWxjUHJpY2VCaWdJbnRSb3VuZCIQcHJpdmF0ZUNhbGNQcmljZSIKYW1Bc3NldERjbSIKcHJBc3NldERjbSIFYW1BbXQiBXByQW10Ig5hbXRBc3NldEFtdFgxOCIQcHJpY2VBc3NldEFtdFgxOCIKY2FsY1ByaWNlcyIFbHBBbXQiA2NmZyILYW10QXNzZXREY20iDXByaWNlQXNzZXREY20iCHByaWNlWDE4IghscEFtdFgxOCITbHBQcmljZUluQW1Bc3NldFgxOCITbHBQcmljZUluUHJBc3NldFgxOCIPY2FsY3VsYXRlUHJpY2VzIgZwcmljZXMiFGVzdGltYXRlR2V0T3BlcmF0aW9uIgZ0eElkNTgiCnBtdEFzc2V0SWQiCHBtdExwQW10IglscEFzc2V0SWQiCWFtQXNzZXRJZCIJcHJBc3NldElkIgpwb29sU3RhdHVzIgpscEVtaXNzaW9uIglhbUJhbGFuY2UiDGFtQmFsYW5jZVgxOCIJcHJCYWxhbmNlIgxwckJhbGFuY2VYMTgiC2N1clByaWNlWDE4IghjdXJQcmljZSILcG10THBBbXRYMTgiDWxwRW1pc3Npb25YMTgiC291dEFtQW10WDE4IgtvdXRQckFtdFgxOCIIb3V0QW1BbXQiCG91dFByQW10IgVzdGF0ZSIUZXN0aW1hdGVQdXRPcGVyYXRpb24iEXNsaXBwYWdlVG9sZXJhbmNlIgxpbkFtQXNzZXRBbXQiC2luQW1Bc3NldElkIgxpblByQXNzZXRBbXQiC2luUHJBc3NldElkIgppc0V2YWx1YXRlIgZlbWl0THAiDGFtQXNzZXRJZFN0ciIMcHJBc3NldElkU3RyIgtpQW10QXNzZXRJZCINaVByaWNlQXNzZXRJZCIOaW5BbUFzc2V0SWRTdHIiDmluUHJBc3NldElkU3RyIg9pbkFtQXNzZXRBbXRYMTgiD2luUHJBc3NldEFtdFgxOCIMdXNlclByaWNlWDE4IgNyZXMiC3NsaXBwYWdlWDE4IhRzbGlwcGFnZVRvbGVyYW5jZVgxOCIKcHJWaWFBbVgxOCIKYW1WaWFQclgxOCIMZXhwZWN0ZWRBbXRzIhFleHBBbXRBc3NldEFtdFgxOCITZXhwUHJpY2VBc3NldEFtdFgxOCIJY2FsY0xwQW10Ig5jYWxjQW1Bc3NldFBtdCIOY2FsY1ByQXNzZXRQbXQiDHNsaXBwYWdlQ2FsYyIJZW1pdExwQW10IgZhbURpZmYiBnByRGlmZiILY29tbW9uU3RhdGUiB2NhbGNLTHAiDWFtb3VudEJhbGFuY2UiDHByaWNlQmFsYW5jZSIQYW1vdW50QmFsYW5jZVgxOCIPcHJpY2VCYWxhbmNlWDE4Igp1cGRhdGVkS0xwIg5jYWxjQ3VycmVudEtMcCIQYW1vdW50QXNzZXREZWx0YSIPcHJpY2VBc3NldERlbHRhIhRscEFzc2V0RW1pc3Npb25EZWx0YSISYW1vdW50QXNzZXRCYWxhbmNlIhFwcmljZUFzc2V0QmFsYW5jZSIPbHBBc3NldEVtaXNzaW9uIgpjdXJyZW50S0xwIhJyZWZyZXNoS0xwSW50ZXJuYWwiF2Ftb3VudEFzc2V0QmFsYW5jZURlbHRhIhZwcmljZUFzc2V0QmFsYW5jZURlbHRhIgdhY3Rpb25zIhJ2YWxpZGF0ZVVwZGF0ZWRLTHAiBm9sZEtMcCIbdmFsaWRhdGVNYXRjaGVyT3JkZXJBbGxvd2VkIgVvcmRlciIRYW1vdW50QXNzZXRBbW91bnQiEHByaWNlQXNzZXRBbW91bnQiDSR0MDIxMzI2MjE1MzgiA2tMcCINJHQwMjIwMDkyMjEwOSINdW51c2VkQWN0aW9ucyIGa0xwTmV3Igxpc09yZGVyVmFsaWQiBGluZm8iCWNvbW1vbkdldCIBaSIDcG10IgZwbXRBbXQiCWNvbW1vblB1dCIKYW1Bc3NldFBtdCIKcHJBc3NldFBtdCIGZXN0UHV0IgRlbWl0IgZhbW91bnQiB2VtaXRJbnYiDWVtaXRJbnZMZWdhY3kiByRtYXRjaDAiFWxlZ2FjeUZhY3RvcnlDb250cmFjdCIHdGFrZUZlZSIJZmVlQW1vdW50Ig9jYWxjUHV0T25lVG9rZW4iEHBheW1lbnRBbW91bnRSYXciDnBheW1lbnRBc3NldElkIgZpc0V2YWwiEGFtb3VudEJhbGFuY2VSYXciD3ByaWNlQmFsYW5jZVJhdyIUcGF5bWVudEluQW1vdW50QXNzZXQiDSR0MDI0OTE2MjUyMDkiEGFtb3VudEJhbGFuY2VPbGQiD3ByaWNlQmFsYW5jZU9sZCINJHQwMjUyMTMyNTM2MiIUYW1vdW50QXNzZXRBbW91bnRSYXciE3ByaWNlQXNzZXRBbW91bnRSYXciDSR0MDI1NDk0MjU1NTgiDXBheW1lbnRBbW91bnQiEGFtb3VudEJhbGFuY2VOZXciD3ByaWNlQmFsYW5jZU5ldyILcHJpY2VOZXdYMTgiCHByaWNlTmV3Ig5wYXltZW50QmFsYW5jZSIUcGF5bWVudEJhbGFuY2VCaWdJbnQiDHN1cHBseUJpZ0ludCILY2hlY2hTdXBwbHkiDWRlcG9zaXRCaWdJbnQiC2lzc3VlQW1vdW50IgtwcmljZU9sZFgxOCIIcHJpY2VPbGQiBGxvc3MiDSR0MDI3MjM5Mjc0MDYiB2JhbGFuY2UiD2lzc3VlQW1vdW50Qm90aCIPY2FsY0dldE9uZVRva2VuIgpvdXRBc3NldElkIgZjaGVja3MiEG91dEluQW1vdW50QXNzZXQiDWJhbGFuY2VCaWdJbnQiGG91dEluQW1vdW50QXNzZXREZWNpbWFscyIMYW1CYWxhbmNlT2xkIgxwckJhbGFuY2VPbGQiCm91dEJhbGFuY2UiEG91dEJhbGFuY2VCaWdJbnQiDnJlZGVlbWVkQmlnSW50IglhbW91bnRSYXciDSR0MDI5NDg0Mjk1NDAiC3RvdGFsQW1vdW50Ig0kdDAyOTU0NDI5NzcwIgtvdXRBbUFtb3VudCILb3V0UHJBbW91bnQiDGFtQmFsYW5jZU5ldyIMcHJCYWxhbmNlTmV3IhhhbW91bnRCb3RoSW5QYXltZW50QXNzZXQiFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiAXMiHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0Iglpc01hbmFnZXIiAnBrIgttdXN0TWFuYWdlciICcGQiF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5IgtjaGVja0NhbGxlciIVY2hlY2tNYW5hZ2VyUHVibGljS2V5IgJwbSIFaGFzUE0iB2NoZWNrUE0iD3Nob3VsZEF1dG9TdGFrZSIEYW1JZCIEcHJJZCIMc2xpcHBhZ2VBSW52IgxzbGlwcGFnZVBJbnYiCmxwVHJhbnNmZXIiC3NscFN0YWtlSW52Ig0kdDAzNDI5ODM0NzYwIhFyZWZyZXNoS0xwQWN0aW9ucyIRaXNVcGRhdGVkS0xwVmFsaWQiC21heFNsaXBwYWdlIg0kdDAzNTMyMjM1Mzg3IgxtaW5PdXRBbW91bnQiCWF1dG9TdGFrZSIgaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiDWlzUHV0RGlzYWJsZWQiB3BheW1lbnQiDSR0MDM2NTc1MzY3MjciBWJvbnVzIhNlbWl0QW1vdW50RXN0aW1hdGVkIgplbWl0QW1vdW50IghzdGFrZUludiIHc2VuZEZlZSINJHQwMzczMTMzNzUxMCINJHQwMzc1MTMzNzYyMSINJHQwMzc5MjczODA4NCINb3V0QXNzZXRJZFN0ciINaXNHZXREaXNhYmxlZCINJHQwMzg5NjkzOTEyMiIPYW1vdW50RXN0aW1hdGVkIgdidXJuSW52Ig1hc3NldFRyYW5zZmVyIg0kdDAzOTYyMjM5ODY5IhBmZWVBbW91bnRGb3JDYWxjIg0kdDAzOTg3MjM5OTgwIg0kdDA0MDIzNzQwMzkzIg11bnN0YWtlQW1vdW50Igp1bnN0YWtlSW52Ig0kdDA0MTI5ODQxNDQ5Ig0kdDA0MTk0NDQyMTkxIg0kdDA0MjE5NDQyMzAyIglvdXRBbXRBbXQiFGJ1cm5MUEFzc2V0T25GYWN0b3J5Ig0kdDA0MzI0ODQzMzMwIhJub0xlc3NUaGVuQW10QXNzZXQiFG5vTGVzc1RoZW5QcmljZUFzc2V0Ig0kdDA0NDI3OTQ0MzYwIg1jaGVja1BheW1lbnRzIg9jaGVja1Bvb2xTdGF0dXMiDSR0MDQ1NDg2NDU1NjciFW5vTGVzc1RoZW5BbW91bnRBc3NldCIMY2hlY2tBbW91bnRzIg0kdDA0Njg2MjQ2OTQzIgthbXRBc3NldFN0ciINcHJpY2VBc3NldFN0ciIYbGFzdFJlZnJlc2hlZEJsb2NrSGVpZ2h0Ih1jaGVja0xhc3RSZWZyZXNoZWRCbG9ja0hlaWdodCINJHQwNDgxMzA0ODE5NCIQa0xwVXBkYXRlQWN0aW9ucyIKYW10QXNzZXRJZCIMcHJpY2VBc3NldElkIg1wb29sTFBCYWxhbmNlIhJhY2NBbXRBc3NldEJhbGFuY2UiFGFjY1ByaWNlQXNzZXRCYWxhbmNlIgpwcmljZXNMaXN0Ig9scEFtdEFzc2V0U2hhcmUiEWxwUHJpY2VBc3NldFNoYXJlIgpwb29sV2VpZ2h0IgxjdXJQcmljZUNhbGMiDGFtQmFsYW5jZVJhdyIMcHJCYWxhbmNlUmF3Ig9hbUJhbGFuY2VSYXdYMTgiD3ByQmFsYW5jZVJhd1gxOCIQcGF5bWVudExwQXNzZXRJZCIMcGF5bWVudExwQW10IgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXkiCm1hdGNoZXJQdWIiDSR0MDU2ODU2NTY5MjUiB25ld0hhc2giC2FsbG93ZWRIYXNoIgtjdXJyZW50SGFzaHIAAWEACAABYgCAwtcvAAFjCQC2AgEAgMLXLwABZAkAtgIBAICAkLu61q3wDQABZQkAtgIBAAAAAWYJALYCAQAAAAFnCQC2AgEAAQABaAkAtgIBAAIAAWkCBVdBVkVTAAFqAgJfXwABawABAAFsAAIAAW0AAwABbgAEAAFvAAEAAXAAAgABcQADAAFyAAQAAXMABQABdAAGAAF1AAcAAXYACAABdwAJAAF4AAoAAXkAAQABegACAAFBAAMAAUIAAQABQwAHAQFEAgFFAUYJALwCAwkAtgIBBQFFBQFkCQC2AgEFAUYBAUcCAUUBRgkAvAIDBQFFBQFkBQFGAQFIAgFJAUoJAKADAQkAvAIDBQFJCQC2AgEFAUoFAWQBAUsDAUkBSgFMCQCgAwEJAL0CBAUBSQkAtgIBBQFKBQFkBQFMAQFNAwFOAU8BUAkAawMFAU4FAU8FAVABAVEBAUkDCQBmAgAABQFJCQEBLQEFAUkFAUkBAVIBAUkDCQC/AgIFAWUFAUkJAL4CAQUBSQUBSQEBUwACEyVzX19mYWN0b3J5Q29udHJhY3QBAVQAAhQlc19fbWFuYWdlclB1YmxpY0tleQEBVQACGyVzX19wZW5kaW5nTWFuYWdlclB1YmxpY0tleQEBVgACESVzJXNfX3ByaWNlX19sYXN0AQFXAgFYAVkJALkJAgkAzAgCAhglcyVzJWQlZF9fcHJpY2VfX2hpc3RvcnkJAMwIAgkApAMBBQFYCQDMCAIJAKQDAQUBWQUDbmlsBQFqAQFaAgJhYQJhYgkArAICCQCsAgIJAKwCAgILJXMlcyVzX19QX18FAmFhAgJfXwUCYWIBAmFjAgJhYQJhYgkArAICCQCsAgIJAKwCAgILJXMlcyVzX19HX18FAmFhAgJfXwUCYWIBAmFkAAIPJXNfX2Ftb3VudEFzc2V0AQJhZQACDiVzX19wcmljZUFzc2V0AAJhZgIHJXNfX2ZlZQACYWcJAGsDAAoFAWIAkE4AAmFoCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmFmBQJhZwACYWkJALkJAgkAzAgCAgIlcwkAzAgCAgNrTHAFA25pbAUBagACYWoJALkJAgkAzAgCAgIlcwkAzAgCAhJrTHBSZWZyZXNoZWRIZWlnaHQFA25pbAUBagACYWsJALkJAgkAzAgCAgIlcwkAzAgCAg9yZWZyZXNoS0xwRGVsYXkFA25pbAUBagACYWwAHgACYW0JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCYWsFAmFsAQJhbgACESVzX19mYWN0b3J5Q29uZmlnAQJhbwACGCVzJXNfX21hdGNoZXJfX3B1YmxpY0tleQECYXABAmFxCQCsAgIJAKwCAgIIJXMlcyVzX18FAmFxAiBfX21hcHBpbmdzX19wb29sQ29udHJhY3QyTHBBc3NldAECYXICAmFzAmF0CQCsAgIJAKwCAgkArAICCQCsAgICCCVkJWQlc19fBQJhcwICX18FAmF0AghfX2NvbmZpZwECYXUBAmF2CQCsAgICKCVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJpbnRlcm5hbElkX18FAmF2AQJhdwACDCVzX19zaHV0ZG93bgECYXgBAmF5CQCsAgICEiVzJXNfX3Bvb2xXZWlnaHRfXwUCYXkBAmF6AAIXJXNfX2FsbG93ZWRMcFNjcmlwdEhhc2gAAmFBAhclc19fZmVlQ29sbGVjdG9yQWRkcmVzcwECYUIEAmFDAmFEAmFFAmFGCQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICJG9yZGVyIHZhbGlkYXRpb24gZmFpbGVkOiBvcmRlclZhbGlkPQkApQMBBQJhQwICICgFAmFEAgEpAg0gc2VuZGVyVmFsaWQ9CQClAwEFAmFFAg4gbWF0Y2hlclZhbGlkPQkApQMBBQJhRgECYUcCAmFIAmFJCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYUgFAmFJCQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmFICQDMCAICAS4JAMwIAgUCYUkJAMwIAgIPIGlzIG5vdCBkZWZpbmVkBQNuaWwCAAECYUoCAmFIAmFJCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUCYUgFAmFJCQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmFICQDMCAICAS4JAMwIAgUCYUkJAMwIAgIPIGlzIG5vdCBkZWZpbmVkBQNuaWwCAAECYUsBAmFMCQACAQkAuQkCCQDMCAICCGxwLnJpZGU6CQDMCAIFAmFMBQNuaWwCASABAmFNAQJhTAkAuQkCCQDMCAICCGxwLnJpZGU6CQDMCAIFAmFMBQNuaWwCASAAAmFOCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYUcCBQR0aGlzCQEBUwAAAmFPCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYUcCBQJhTgUCYUEAAmFQCgACYVEJAPwHBAUCYU4CEGdldEluRmVlUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJhUQIDSW50BQJhUQkAAgEJAKwCAgkAAwEFAmFRAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQAAmFSCgACYVEJAPwHBAUCYU4CEWdldE91dEZlZVJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYVECA0ludAUCYVEJAAIBCQCsAgIJAAMBBQJhUQIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AQJhUwAJAQt2YWx1ZU9yRWxzZQIJAJsIAgUCYU4JAQJhdwAHAQJhVAAJANkEAQkBAmFHAgUCYU4JAQJhbwABAmFVAAQCYVYJAQJhRwIFBHRoaXMJAQJhZAAEAmFXCQECYUcCBQR0aGlzCQECYWUABAJhdAkBAmFKAgUCYU4JAQJhdQEFAmFXBAJhcwkBAmFKAgUCYU4JAQJhdQEFAmFWCQC1CQIJAQJhRwIFAmFOCQECYXICCQCkAwEFAmFzCQCkAwEFAmF0BQFqAQJhWAECYVkDCQAAAgUCYVkFAWkFBHVuaXQJANkEAQUCYVkBAmFaAQJhWQMJAAACBQJhWQUEdW5pdAUBaQkA2AQBCQEFdmFsdWUBBQJhWQECYmEBAmJiCQCZCgcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYmIFAW8JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiYgUBcAkA2QQBCQCRAwIFAmJiBQFxCQECYVgBCQCRAwIFAmJiBQFyCQECYVgBCQCRAwIFAmJiBQFzCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYmIFAXQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiYgUBdQACYmMJAQJiYQEJAQJhVQAAAmJkBQJiYwACYmUIBQJiZAJfMQACYmYIBQJiZAJfMgACYmcIBQJiZAJfMwACYmgIBQJiZAJfNAACYmkIBQJiZAJfNQACYmoIBQJiZAJfNgACYmsIBQJiZAJfNwECYmwACQC1CQIJAQJhRwIFAmFOCQECYW4ABQFqAAJibQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgkBAmJsAAUBQgIZaW5jb3JyZWN0IHN0YWtpbmcgYWRkcmVzcwACYm4JARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIJAQJibAAFAUMCGWluY29ycmVjdCBzdGFraW5nIGFkZHJlc3MBAmJvCgJicAJicQJicgJicwJidAJidQJidgJidwJieAJieQkAuQkCCQDMCAICFCVkJWQlZCVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCYnAJAMwIAgkApAMBBQJicQkAzAgCCQCkAwEFAmJyCQDMCAIJAKQDAQUCYnMJAMwIAgkApAMBBQJidAkAzAgCCQCkAwEFAmJ1CQDMCAIJAKQDAQUCYnYJAMwIAgkApAMBBQJidwkAzAgCCQCkAwEFAmJ4CQDMCAIJAKQDAQUCYnkFA25pbAUBagECYnoGAmJBAmJCAmJDAmJzAmJ2AmJ3CQC5CQIJAMwIAgIMJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCYkEJAMwIAgkApAMBBQJiQgkAzAgCCQCkAwEFAmJDCQDMCAIJAKQDAQUCYnMJAMwIAgkApAMBBQJidgkAzAgCCQCkAwEFAmJ3BQNuaWwFAWoBAmJEAQJiRQMJAAACBQJiRQIFV0FWRVMICQDvBwEFBHRoaXMJYXZhaWxhYmxlCQDwBwIFBHRoaXMJANkEAQUCYkUBAmJGAgJiRwJiSAkAvAIDBQJiRwUBZAUCYkgBAmJJAwJiRwJiSAFMCQC9AgQFAmJHBQFkBQJiSAUBTAECYkoEAmJLAmJMAmJNAmJOBAJiTwkBAUQCBQJiTQUCYksEAmJQCQEBRAIFAmJOBQJiTAkBAmJGAgUCYlAFAmJPAQJiUQMCYk0CYk4CYlIEAmJTCQECYVUABAJiVAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJTBQF0BAJiVQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJTBQF1BAJiVgkBAmJKBAUCYlQFAmJVBQJiTQUCYk4EAmJICQEBRAIFAmJNBQJiVAQCYkcJAQFEAgUCYk4FAmJVBAJiVwkBAUQCBQJiUgUBYgQCYlgJAQJiRgIFAmJIBQJiVwQCYlkJAQJiRgIFAmJHBQJiVwkAzAgCBQJiVgkAzAgCBQJiWAkAzAgCBQJiWQUDbmlsAQJiWgMCYk0CYk4CYlIEAmNhCQECYlEDBQJiTQUCYk4FAmJSCQDMCAIJAQFIAgkAkQMCBQJjYQAABQFiCQDMCAIJAQFIAgkAkQMCBQJjYQABBQFiCQDMCAIJAQFIAgkAkQMCBQJjYQACBQFiBQNuaWwBAmNiBAJjYwJjZAJjZQJhYQQCYlMJAQJhVQAEAmNmCQCRAwIFAmJTBQFxBAJjZwkAkQMCBQJiUwUBcgQCY2gJAJEDAgUCYlMFAXMEAmJLCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYlMFAXQEAmJMCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYlMFAXUEAmNpCQCRAwIFAmJTBQFwBAJjaggJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBCQDZBAEFAmNmCQCsAgIJAKwCAgIGQXNzZXQgBQJjZgIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkDCQECIT0CBQJjZgUCY2QJAAIBAhVJbnZhbGlkIGFzc2V0IHBhc3NlZC4EAmNrCQECYkQBBQJjZwQCY2wJAQFEAgUCY2sFAmJLBAJjbQkBAmJEAQUCY2gEAmNuCQEBRAIFAmNtBQJiTAQCY28JAQJiRgIFAmNuBQJjbAQCY3AJAQFIAgUCY28FAWIEAmNxCQEBRAIFAmNlBQFiBAJjcgkBAUQCBQJjagUBYgQCY3MJALwCAwUCY2wFAmNxBQJjcgQCY3QJALwCAwUCY24FAmNxBQJjcgQCY3UJAQFLAwUCY3MFAmJLBQVGTE9PUgQCY3YJAQFLAwUCY3QFAmJMBQVGTE9PUgQCY3cDCQAAAgUCY2MCAAUDbmlsCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFhBQJjdQMJAAACBQJjZwIFV0FWRVMFBHVuaXQJANkEAQUCY2cJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYWEFAmN2AwkAAAIFAmNoAgVXQVZFUwUEdW5pdAkA2QQBBQJjaAkAzAgCCQELU3RyaW5nRW50cnkCCQECYWMCCQClCAEFAmFhBQJjYwkBAmJ6BgUCY3UFAmN2BQJjZQUCY3AFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFWAAUCY3AJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFXAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCY3AFA25pbAkAnAoKBQJjdQUCY3YFAmNnBQJjaAUCY2sFAmNtBQJjagUCY28FAmNpBQJjdwECY3gJAmNjAmN5AmN6AmNBAmNCAmNDAmFhAmNEAmNFBAJiUwkBAmFVAAQCY2YJANkEAQkAkQMCBQJiUwUBcQQCY0YJAJEDAgUCYlMFAXIEAmNHCQCRAwIFAmJTBQFzBAJjSAkAkQMCBQJiUwUBdgQCY0kJAJEDAgUCYlMFAXcEAmJUCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYlMFAXQEAmJVCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYlMFAXUEAmNpCQCRAwIFAmJTBQFwBAJjaggJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJjZgkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJjZgIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmNKCQDYBAEJAQt2YWx1ZU9yRWxzZQIFAmNBCQDZBAECBVdBVkVTBAJjSwkA2AQBCQELdmFsdWVPckVsc2UCBQJjQwkA2QQBAgVXQVZFUwMDCQECIT0CBQJjRgUCY0oGCQECIT0CBQJjRwUCY0sJAAIBAiJJbnZhbGlkIGFtdCBvciBwcmljZSBhc3NldCBwYXNzZWQuBAJjawMFAmNECQECYkQBBQJjRgkAZQIJAQJiRAEFAmNGBQJjegQCY20DBQJjRAkBAmJEAQUCY0cJAGUCCQECYkQBBQJjRwUCY0IEAmNMCQEBRAIFAmN6BQJiVAQCY00JAQFEAgUCY0IFAmJVBAJjTgkBAmJGAgUCY00FAmNMBAJjbAkBAUQCBQJjawUCYlQEAmNuCQEBRAIFAmNtBQJiVQQCY08DCQAAAgUCY2oAAAQCY28FAWUEAmNQBQFlBAJiVwkAdgYJALkCAgUCY0wFAmNNAAAJALYCAQAFAAEAAAUERE9XTgkAlwoFCQEBSAIFAmJXBQFiCQEBSAIFAmNMBQJiVAkBAUgCBQJjTQUCYlUJAQJiRgIJALcCAgUCY24FAmNNCQC3AgIFAmNsBQJjTAUCY1AEAmNvCQECYkYCBQJjbgUCY2wEAmNQCQC8AgMJAQFSAQkAuAICBQJjbwUCY04FAWQFAmNvBAJjUQkBAUQCBQJjeQUBYgMDCQECIT0CBQJjbwUBZQkAvwICBQJjUAUCY1EHCQACAQkArAICCQCsAgIJAKwCAgIPUHJpY2Ugc2xpcHBhZ2UgCQCmAwEFAmNQAh4gZXhjZWVkZWQgdGhlIHBhc3NlZCBsaW1pdCBvZiAJAKYDAQUCY1EEAmNyCQEBRAIFAmNqBQFiBAJjUgkAvQIEBQJjTAkBAmJJAwUCY24FAmNsBQdDRUlMSU5HBQFkBQdDRUlMSU5HBAJjUwkAvQIEBQJjTQUBZAkBAmJJAwUCY24FAmNsBQVGTE9PUgUHQ0VJTElORwQCY1QDCQC/AgIFAmNSBQJjTQkAlAoCBQJjUwUCY00JAJQKAgUCY0wFAmNSBAJjVQgFAmNUAl8xBAJjVggFAmNUAl8yBAJiVwkAvQIEBQJjcgUCY1YFAmNuBQVGTE9PUgkAlwoFCQEBSwMFAmJXBQFiBQVGTE9PUgkBAUsDBQJjVQUCYlQFB0NFSUxJTkcJAQFLAwUCY1YFAmJVBQdDRUlMSU5HBQJjbwUCY1AEAmNXCAUCY08CXzEEAmNYCAUCY08CXzIEAmNZCAUCY08CXzMEAmNwCQEBSAIIBQJjTwJfNAUBYgQCY1oJAQFIAggFAmNPAl81BQFiAwkAZwIAAAUCY1cJAAIBAjZJbnZhbGlkIGNhbGN1bGF0aW9ucy4gTFAgY2FsY3VsYXRlZCBpcyBsZXNzIHRoYW4gemVyby4EAmRhAwkBASEBBQJjRQAABQJjVwQCZGIJAGUCBQJjegUCY1gEAmRjCQBlAgUCY0IFAmNZBAJkZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVYABQJjcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVcCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjcAkAzAgCCQELU3RyaW5nRW50cnkCCQEBWgIFAmFhBQJjYwkBAmJvCgUCY1gFAmNZBQJkYQUCY3AFAmN5BQJjWgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZGIFAmRjBQNuaWwJAJ8KDQUCY1cFAmRhBQJjcAUCY2sFAmNtBQJjagUCY2YFAmNpBQJkZAUCZGIFAmRjBQJjQQUCY0MBAmRlAwJkZgJkZwJjagQCZGgJAQFHAgUCZGYJALYCAQUCYmoEAmRpCQEBRwIFAmRnCQC2AgEFAmJrBAJkagkAvAIDCQB2BgkAuQICBQJkaAUCZGkAAAkAtgIBAAUAAQASBQRET1dOBQFnBQJjagMJAAACBQJjagUBZgUBZgUCZGoBAmRrAwJkbAJkbQJkbgQCZG8JALgCAgkAtgIBCQECYkQBCQECYVoBBQJiaAUCZGwEAmRwCQC4AgIJALYCAQkBAmJEAQkBAmFaAQUCYmkFAmRtBAJkcQkAuAICCQC2AgEICQEFdmFsdWUBCQDsBwEFAmJnCHF1YW50aXR5BQJkbgQCZHIJAQJkZQMFAmRvBQJkcAUCZHEFAmRyAQJkcwMCZHQCZHUCZG4EAmRvCQBkAgkBAmJEAQkBAmFaAQUCYmgFAmR0BAJkcAkAZAIJAQJiRAEJAQJhWgEFAmJpBQJkdQQCZHEJAGQCCAkBBXZhbHVlAQkA7AcBBQJiZwhxdWFudGl0eQUCZG4EAmRqCQECZGUDCQC2AgEFAmRvCQC2AgEFAmRwCQC2AgEFAmRxBAJkdgkAzAgCCQEMSW50ZWdlckVudHJ5AgUCYWoFBmhlaWdodAkAzAgCCQELU3RyaW5nRW50cnkCBQJhaQkApgMBBQJkagUDbmlsCQCUCgIFAmR2BQJkagECZHcCAmR4AmRqAwkAwAICBQJkagUCZHgGCQECYUsBCQC5CQIJAMwIAgIidXBkYXRlZCBLTHAgbG93ZXIgdGhhbiBjdXJyZW50IEtMcAkAzAgCCQCmAwEFAmR4CQDMCAIJAKYDAQUCZGoFA25pbAIBIAECZHkBAmR6BAJkQQgFAmR6BmFtb3VudAQCZEIJAG4ECAUCZHoGYW1vdW50CAUCZHoFcHJpY2UFAWIFBUZMT09SBAJkQwMJAAACCAUCZHoJb3JkZXJUeXBlBQNCdXkJAJQKAgUCZEEJAQEtAQUCZEIJAJQKAgkBAS0BBQJkQQUCZEIEAmR0CAUCZEMCXzEEAmR1CAUCZEMCXzIDAwMJAQJhUwAGCQAAAgUCYmYFAW0GCQAAAgUCYmYFAW4JAAIBAhxFeGNoYW5nZSBvcGVyYXRpb25zIGRpc2FibGVkAwMJAQIhPQIICAUCZHoJYXNzZXRQYWlyC2Ftb3VudEFzc2V0BQJiaAYJAQIhPQIICAUCZHoJYXNzZXRQYWlyCnByaWNlQXNzZXQFAmJpCQACAQITV3Jvbmcgb3JkZXIgYXNzZXRzLgQCZEQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAqAMBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUCYWkJAQJhTQECD2tMcCBpcyByZXF1aXJlZAkBAmFNAQILaW52YWxpZCBrTHAEAmRFCQECZHMDBQJkdAUCZHUAAAQCZEYIBQJkRQJfMQQCZEcIBQJkRQJfMgQCZEgJAMACAgUCZEcFAmREBAJkSQkAuQkCCQDMCAIJAKYDAQUCZEQJAMwIAgkApgMBBQJkRwUDbmlsAgEgCQCUCgIFAmRIBQJkSQECZEoBAmRLAwkBAiE9AgkAkAMBCAUCZEsIcGF5bWVudHMAAQkAAgECHWV4YWN0bHkgMSBwYXltZW50IGlzIGV4cGVjdGVkBAJkTAkBBXZhbHVlAQkAkQMCCAUCZEsIcGF5bWVudHMAAAQCY2QJAQV2YWx1ZQEIBQJkTAdhc3NldElkBAJkTQgFAmRMBmFtb3VudAQCY08JAQJjYgQJANgEAQgFAmRLDXRyYW5zYWN0aW9uSWQJANgEAQUCY2QFAmRNCAUCZEsGY2FsbGVyBAJjdQgFAmNPAl8xBAJjdggFAmNPAl8yBAJjaQkBDXBhcnNlSW50VmFsdWUBCAUCY08CXzkEAmN3CAUCY08DXzEwAwMJAQJhUwAGCQAAAgUCY2kFAW4JAAIBCQCsAgICLEdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbi4gU3RhdHVzID0gCQCkAwEFAmNpCQCXCgUFAmN1BQJjdgUCZE0FAmNkBQJjdwECZE4DAmRLAmN5AmNFAwkBAiE9AgkAkAMBCAUCZEsIcGF5bWVudHMAAgkAAgECH2V4YWN0bHkgMiBwYXltZW50cyBhcmUgZXhwZWN0ZWQEAmRPCQEFdmFsdWUBCQCRAwIIBQJkSwhwYXltZW50cwAABAJkUAkBBXZhbHVlAQkAkQMCCAUCZEsIcGF5bWVudHMAAQQCZFEJAQJjeAkJANgEAQgFAmRLDXRyYW5zYWN0aW9uSWQFAmN5CAUCZE8GYW1vdW50CAUCZE8HYXNzZXRJZAgFAmRQBmFtb3VudAgFAmRQB2Fzc2V0SWQJAKUIAQgFAmRLBmNhbGxlcgcFAmNFBAJjaQkBDXBhcnNlSW50VmFsdWUBCAUCZFECXzgDAwMJAQJhUwAGCQAAAgUCY2kFAWwGCQAAAgUCY2kFAW4JAAIBCQCsAgICLFB1dCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbi4gU3RhdHVzID0gCQCkAwEFAmNpBQJkUQECZFIBAmRTBAJkVAkA/AcEBQJhTgIEZW1pdAkAzAgCBQJkUwUDbmlsBQNuaWwDCQAAAgUCZFQFAmRUBAJkVQQCZFYFAmRUAwkAAQIFAmRWAgdBZGRyZXNzBAJkVwUCZFYJAPwHBAUCZFcCBGVtaXQJAMwIAgUCZFMFA25pbAUDbmlsBQR1bml0AwkAAAIFAmRVBQJkVQUCZFMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmRYAgJkUwJhaAQCZFkDCQAAAgUCYWgAAAAACQBrAwUCZFMFAmFoBQFiCQCUCgIJAGUCBQJkUwUCZFkFAmRZAQJkWgQCZWECZWICYWECYWIEAmVjCQAAAgUCYWIFBHVuaXQEAmVkCQECYkQBCQECYVoBBQJiaAQCZWUJAQJiRAEJAQJhWgEFAmJpBAJlZgMJAAACBQJlYgUCYmgGAwkAAAIFAmViBQJiaQcJAQJhSwECDWludmFsaWQgYXNzZXQEAmVnAwUCZWMJAJQKAgUCZWQFAmVlAwUCZWYJAJQKAgkAZQIFAmVkBQJlYQUCZWUJAJQKAgUCZWQJAGUCBQJlZQUCZWEEAmVoCAUCZWcCXzEEAmVpCAUCZWcCXzIEAmVqAwUCZWYJAJQKAgUCZWEAAAkAlAoCAAAFAmVhBAJlawgFAmVqAl8xBAJlbAgFAmVqAl8yBAJkQQgJAQJkWAIFAmVrBQJhUAJfMQQCZEIICQECZFgCBQJlbAUCYVACXzEEAmVtCQECZFgCBQJlYQUCYVAEAmVuCAUCZW0CXzEEAmRZCAUCZW0CXzIEAmVvCQBkAgUCZWgFAmRBBAJlcAkAZAIFAmVpBQJkQgQCZXEJAQJiRgIJAQFEAgUCZXAFAmJrCQEBRAIFAmVvBQJiagQCZXIJAQFIAgUCZXEFAWIEAmVzAwUCZWYFAmVoBQJlaQQCZXQJALYCAQUCZXMEAmV1CQC2AgEICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYmcJAKwCAgkArAICAgZhc3NldCAJANgEAQUCYmcCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJldgMJAL8CAgUCZXUFAWYGCQECYUsBAiJpbml0aWFsIGRlcG9zaXQgcmVxdWlyZXMgYWxsIGNvaW5zAwkAAAIFAmV2BQJldgQCZXcJALYCAQUCZW4EAmV4CQCWAwEJAMwIAgAACQDMCAIJAKADAQkAugICCQC5AgIFAmV1CQC4AgIJAQpzcXJ0QmlnSW50BAkAtwICBQFkCQC6AgIJALkCAgUCZXcFAWQFAmV0ABIAEgUERE9XTgUBZAUBZAUDbmlsBAJkZAMFAmVjBQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFWAAUCZXIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFXAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVoCCQClCAEJAQV2YWx1ZQEFAmFhCQDYBAEJAQV2YWx1ZQEFAmFiCQECYm8KBQJlawUCZWwFAmV4BQJlcgAAAAAFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAAAAAABQNuaWwEAmV5CQECYkYCCQEBRAIFAmVpBQJiawkBAUQCBQJlaAUCYmoEAmV6CQEBSAIFAmV5BQFiBAJlQQQCZUIDBQJlZgkAlAoCBQJlawUCZWgJAJQKAgUCZWwFAmVpBAJkUwgFAmVCAl8xBAJlQwgFAmVCAl8yBAJlRAkAoAMBCQC8AgMFAmV1CQC2AgEJAGkCBQJkUwACCQC2AgEFAmVDCQBrAwkAZQIFAmV4BQJlRAUBYgUCZUQJAJcKBQUCZXgFAmRkBQJkWQUCZUEFAmVmCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJlRQUCZUYCZW4CZWICYWECYWIEAmVjCQAAAgUCYWIFBHVuaXQEAmJTCQECYVUABAJiVAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJTBQF0BAJiVQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJTBQF1BAJlRwkAzAgCAwkAAAIFAmViBQJiZwYJAQJhSwECEGludmFsaWQgbHAgYXNzZXQFA25pbAMJAAACBQJlRwUCZUcEAmVIAwkAAAIFAmVGBQJiaAYDCQAAAgUCZUYFAmJpBwkBAmFLAQINaW52YWxpZCBhc3NldAQCZUkDBQJlSAkAtgIBCQECYkQBCQECYVoBBQJiaAkAtgIBCQECYkQBCQECYVoBBQJiaQQCZUoDBQJlSAUCYlQFAmJVBAJlSwkBAmJEAQkBAmFaAQUCYmgEAmVMCQECYkQBCQECYVoBBQJiaQQCZU0DBQJlSAUCZUsFAmVMBAJlTgkAtgIBBQJlTQQCZXUJALYCAQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJiZwkArAICCQCsAgICBmFzc2V0IAkA2AQBBQJiZwIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmVPCQC2AgEFAmVuBAJlUAkAlgMBCQDMCAIAAAkAzAgCCQCgAwEJALoCAgkAuQICBQJlSQkAuAICBQFkCQB2BgkAuAICBQFkCQC6AgIJALkCAgUCZU8FAWQFAmV1ABIFAWgAAAASBQRET1dOBQFkBQNuaWwEAmVRCQECZFgCBQJlUAUCYVIEAmVSCAUCZVECXzEEAmRZCAUCZVECXzIEAmVTAwUCZUgJAJYKBAUCZVIAAAkAZQIFAmVLBQJlUAUCZUwJAJYKBAAABQJlUgUCZUsJAGUCBQJlTAUCZVAEAmVUCAUCZVMCXzEEAmVVCAUCZVMCXzIEAmVWCAUCZVMCXzMEAmVXCAUCZVMCXzQEAmVxCQECYkYCCQEBRAIFAmVXBQJiawkBAUQCBQJlVgUCYmoEAmVyCQEBSAIFAmVxBQFiBAJkZAMFAmVjBQNuaWwJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFjAgkApQgBCQEFdmFsdWUBBQJhYQkA2AQBCQEFdmFsdWUBBQJhYgkBAmJ6BgUCZVQFAmVVBQJlbgUCZXIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFWAAUCZXIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFXAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZXIFA25pbAQCZXkJAQJiRgIJAQFEAgUCZUwFAmJrCQEBRAIFAmVLBQJiagQCZXoJAQFIAgUCZXkFAWIEAmVBBAJlWAkAaAIJAKADAQkAvAIDBQJlSQUCZU8FAmV1AAIJAGsDCQBlAgUCZVIFAmVYBQFiBQJlWAkAlwoFBQJlUgUCZGQFAmRZBQJlQQUCZUgJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmVZAAQCZFYJAKIIAQkBAVQAAwkAAQIFAmRWAgZTdHJpbmcEAmVaBQJkVgkA2QQBBQJlWgMJAAECBQJkVgIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJmYQAEAmRWCQCiCAEJAQFVAAMJAAECBQJkVgIGU3RyaW5nBAJlWgUCZFYJANkEAQUCZVoDCQABAgUCZFYCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECZmIBAmRLBAJkVgkBAmVZAAMJAAECBQJkVgIKQnl0ZVZlY3RvcgQCZmMFAmRWCQAAAggFAmRLD2NhbGxlclB1YmxpY0tleQUCZmMDCQABAgUCZFYCBFVuaXQJAAACCAUCZEsGY2FsbGVyBQR0aGlzCQACAQILTWF0Y2ggZXJyb3IBAmZkAQJkSwQCZmUJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAQCZFYJAQJlWQADCQABAgUCZFYCCkJ5dGVWZWN0b3IEAmZjBQJkVgMJAAACCAUCZEsPY2FsbGVyUHVibGljS2V5BQJmYwYFAmZlAwkAAQIFAmRWAgRVbml0AwkAAAIIBQJkSwZjYWxsZXIFBHRoaXMGBQJmZQkAAgECC01hdGNoIGVycm9yGwJkSwEKc2V0TWFuYWdlcgECZmYEAmZnCQECZmQBBQJkSwMJAAACBQJmZwUCZmcEAmZoCQDZBAEFAmZmAwkAAAIFAmZoBQJmaAkAzAgCCQELU3RyaW5nRW50cnkCCQEBVQAFAmZmBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZEsBDmNvbmZpcm1NYW5hZ2VyAAQCZmkJAQJmYQAEAmZqAwkBCWlzRGVmaW5lZAEFAmZpBgkAAgECEk5vIHBlbmRpbmcgbWFuYWdlcgMJAAACBQJmagUCZmoEAmZrAwkAAAIIBQJkSw9jYWxsZXJQdWJsaWNLZXkJAQV2YWx1ZQEFAmZpBgkAAgECG1lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAACBQJmawUCZmsJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVQACQDYBAEJAQV2YWx1ZQEFAmZpCQDMCAIJAQtEZWxldGVFbnRyeQEJAQFVAAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRLAQNwdXQCAmN5AmZsAwkAZgIAAAUCY3kJAAIBAiBJbnZhbGlkIHNsaXBwYWdlVG9sZXJhbmNlIHBhc3NlZAQCZFEJAQJkTgMFAmRLBQJjeQYEAmRhCAUCZFECXzIEAmNmCAUCZFECXzcEAmN3CAUCZFECXzkEAmRiCAUCZFEDXzEwBAJkYwgFAmRRA18xMQQCZm0IBQJkUQNfMTIEAmZuCAUCZFEDXzEzBAJkTwkAtgIBCAkBBXZhbHVlAQkAkQMCCAUCZEsIcGF5bWVudHMAAAZhbW91bnQEAmRQCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJkSwhwYXltZW50cwABBmFtb3VudAQCZHIJAQJkawMFAmRPBQJkUAkAtgIBAAADCQAAAgUCZHIFAmRyBAJkVAkA/AcEBQJhTgIEZW1pdAkAzAgCBQJkYQUDbmlsBQNuaWwDCQAAAgUCZFQFAmRUBAJkVQQCZFYFAmRUAwkAAQIFAmRWAgdBZGRyZXNzBAJkVwUCZFYJAPwHBAUCZFcCBGVtaXQJAMwIAgUCZGEFA25pbAUDbmlsBQR1bml0AwkAAAIFAmRVBQJkVQQCZm8DCQBmAgUCZGIAAAkA/AcEBQJibgIDcHV0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmZtBQJkYgUDbmlsBQNuaWwDCQAAAgUCZm8FAmZvBAJmcAMJAGYCBQJkYwAACQD8BwQFAmJuAgNwdXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZm4FAmRjBQNuaWwFA25pbAMJAAACBQJmcAUCZnAEAmZxAwUCZmwEAmZyCQD8BwQFAmJtAgVzdGFrZQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJjZgUCZGEFA25pbAMJAAACBQJmcgUCZnIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCZEsGY2FsbGVyBQJkYQUCY2YFA25pbAQCZnMJAQJkcwMAAAAAAAADCQAAAgUCZnMFAmZzBAJkaggFAmZzAl8yBAJmdAgFAmZzAl8xBAJmdQkBAmR3AgUCZHIFAmRqAwkAAAIFAmZ1BQJmdQkAzggCCQDOCAIFAmN3BQJmcQUCZnQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZEsBCnB1dEZvckZyZWUBAmZ2AwkAZgIAAAUCZnYJAAIBAhRJbnZhbGlkIHZhbHVlIHBhc3NlZAQCZFEJAQJkTgMFAmRLBQJmdgcEAmN3CAUCZFECXzkEAmRPCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJkSwhwYXltZW50cwAABmFtb3VudAQCZFAJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmRLCHBheW1lbnRzAAEGYW1vdW50BAJkcgkBAmRrAwUCZE8FAmRQCQC2AgEAAAMJAAACBQJkcgUCZHIEAmZ3CQECZHMDAAAAAAAABAJmdAgFAmZ3Al8xBAJkaggFAmZ3Al8yBAJmdQkBAmR3AgUCZHIFAmRqAwkAAAIFAmZ1BQJmdQkAzggCBQJjdwUCZnQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZEsBCXB1dE9uZVRrbgICZngCZnkEAmZ6CgACYVEJAPwHBAUCYU4CKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJhUQIHQm9vbGVhbgUCYVEJAAIBCQCsAgIJAAMBBQJhUQIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCZkEDAwMJAQJhUwAGCQAAAgUCYmYFAWwGCQAAAgUCYmYFAW4GBQJmegQCZUcJAMwIAgMDCQEBIQEFAmZBBgkBAmZiAQUCZEsGCQECYUsBAiFwdXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJkSwhwYXltZW50cwABBgkBAmFLAQIeZXhhY3RseSAxIHBheW1lbnQgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZUcFAmVHBAJmQgkAkQMCCAUCZEsIcGF5bWVudHMAAAQCZWIIBQJmQgdhc3NldElkBAJlYQgFAmZCBmFtb3VudAQCZHIDCQAAAgUCZWIFAmJoCQECZGsDCQC2AgEFAmVhCQC2AgEAAAkAtgIBAAADCQAAAgUCZWIFAmJpCQECZGsDCQC2AgEAAAkAtgIBBQJlYQkAtgIBAAAJAQJhSwECHnBheW1lbnQgYXNzZXQgaXMgbm90IHN1cHBvcnRlZAMJAAACBQJkcgUCZHIEAmFhCAUCZEsGY2FsbGVyBAJhYggFAmRLDXRyYW5zYWN0aW9uSWQEAmZDCQECZFoEBQJlYQUCZWIFAmFhBQJhYgMJAAACBQJmQwUCZkMEAmVmCAUCZkMCXzUEAmZECAUCZkMCXzQEAmRZCAUCZkMCXzMEAmRkCAUCZkMCXzIEAmZFCAUCZkMCXzEEAmZGAwMJAGYCBQJmeAAACQBmAgUCZngFAmZFBwkBAmFLAQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJmeAUDbmlsAgAFAmZFBAJkVAkBAmRSAQUCZkYDCQAAAgUCZFQFAmRUBAJmcQMFAmZ5BAJmRwkA/AcEBQJibQIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYmcFAmZGBQNuaWwDCQAAAgUCZkcFAmZHBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmRLBmNhbGxlcgUCZkYFAmJnBQNuaWwEAmZIAwkAZgIFAmRZAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYU8FAmRZBQJlYgUDbmlsBQNuaWwEAmZJAwkAAAIFBHRoaXMFAmFPCQCUCgIAAAAAAwUCZWYJAJQKAgkBAS0BBQJkWQAACQCUCgIAAAkBAS0BBQJkWQQCZHQIBQJmSQJfMQQCZHUIBQJmSQJfMgQCZkoJAQJkcwMFAmR0BQJkdQAABAJmdAgFAmZKAl8xBAJkaggFAmZKAl8yBAJkRAkBBXZhbHVlAQkAoggBBQJhaQQCZnUJAQJkdwIFAmRyBQJkagMJAAACBQJmdQUCZnUJAJQKAgkAzggCCQDOCAIJAM4IAgUCZGQFAmZxBQJmSAUCZnQFAmZGCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRLARFwdXRPbmVUa25SRUFET05MWQICZWICZWEEAmZLCQECZFoEBQJlYQkBAmFYAQUCZWIFBHVuaXQFBHVuaXQEAmZFCAUCZksCXzEEAmRkCAUCZksCXzIEAmRZCAUCZksCXzMEAmZECAUCZksCXzQEAmVmCAUCZksCXzUJAJQKAgUDbmlsCQCVCgMFAmZFBQJkWQUCZkQCZEsBCWdldE9uZVRrbgICZkwCZngEAmZ6CgACYVEJAPwHBAUCYU4CKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJhUQIHQm9vbGVhbgUCYVEJAAIBCQCsAgIJAAMBBQJhUQIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCZk0DAwkBAmFTAAYJAAACBQJiZgUBbgYFAmZ6BAJlRwkAzAgCAwMJAQEhAQUCZk0GCQECZmIBBQJkSwYJAQJhSwECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmRLCHBheW1lbnRzAAEGCQECYUsBAh5leGFjdGx5IDEgcGF5bWVudCBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJlRwUCZUcEAmVGCQECYVgBBQJmTAQCZkIJAJEDAggFAmRLCHBheW1lbnRzAAAEAmViCAUCZkIHYXNzZXRJZAQCZW4IBQJmQgZhbW91bnQEAmRyCQECZGsDCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmRyBQJkcgQCYWEIBQJkSwZjYWxsZXIEAmFiCAUCZEsNdHJhbnNhY3Rpb25JZAQCZk4JAQJlRQUFAmVGBQJlbgUCZWIFAmFhBQJhYgMJAAACBQJmTgUCZk4EAmVICAUCZk4CXzUEAmZECAUCZk4CXzQEAmRZCAUCZk4CXzMEAmRkCAUCZk4CXzIEAmZPCAUCZk4CXzEEAmRTAwMJAGYCBQJmeAAACQBmAgUCZngFAmZPBwkBAmFLAQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJmeAUDbmlsAgAFAmZPBAJmUAkA/AcEBQJhTgIEYnVybgkAzAgCBQJlbgUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJlYgUCZW4FA25pbAMJAAACBQJmUAUCZlAEAmZRCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFhBQJkUwUCZUYFA25pbAQCZkgDCQBmAgUCZFkAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhTwUCZFkFAmVGBQNuaWwFA25pbAQCZlIEAmZTAwkAAAIFBHRoaXMFAmFPAAAFAmRZAwUCZUgJAJQKAgkBAS0BCQBkAgUCZFMFAmZTAAAJAJQKAgAACQEBLQEJAGQCBQJkUwUCZlMEAmR0CAUCZlICXzEEAmR1CAUCZlICXzIEAmZUCQECZHMDBQJkdAUCZHUAAAQCZnQIBQJmVAJfMQQCZGoIBQJmVAJfMgQCZnUJAQJkdwIFAmRyBQJkagMJAAACBQJmdQUCZnUJAJQKAgkAzggCCQDOCAIJAM4IAgUCZGQFAmZRBQJmSAUCZnQFAmRTCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRLARFnZXRPbmVUa25SRUFET05MWQICZUYCZW4EAmZVCQECZUUFCQECYVgBBQJlRgUCZW4FAmJnBQR1bml0BQR1bml0BAJmTwgFAmZVAl8xBAJkZAgFAmZVAl8yBAJkWQgFAmZVAl8zBAJmRAgFAmZVAl80BAJlSAgFAmZVAl81CQCUCgIFA25pbAkAlQoDBQJmTwUCZFkFAmZEAmRLARN1bnN0YWtlQW5kR2V0T25lVGtuAwJmVgJmTAJmeAQCZnoKAAJhUQkA/AcEBQJhTgIoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmFRAgdCb29sZWFuBQJhUQkAAgEJAKwCAgkAAwEFAmFRAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJmTQMDCQECYVMABgkAAAIFAmJmBQFuBgUCZnoEAmVHCQDMCAIDAwkBASEBBQJmTQYJAQJmYgEFAmRLBgkBAmFLAQIhZ2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCZEsIcGF5bWVudHMAAAYJAQJhSwECGG5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmVHBQJlRwQCZUYJAQJhWAEFAmZMBAJhYQgFAmRLBmNhbGxlcgQCYWIIBQJkSw10cmFuc2FjdGlvbklkBAJkcgkBAmRrAwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJkcgUCZHIEAmZXCQD8BwQFAmJtAgd1bnN0YWtlCQDMCAIJANgEAQUCYmcJAMwIAgUCZlYFA25pbAUDbmlsAwkAAAIFAmZXBQJmVwQCZlgJAQJlRQUFAmVGBQJmVgUCYmcFAmFhBQJhYgMJAAACBQJmWAUCZlgEAmVICAUCZlgCXzUEAmZECAUCZlgCXzQEAmRZCAUCZlgCXzMEAmRkCAUCZlgCXzIEAmZPCAUCZlgCXzEEAmRTAwMJAGYCBQJmeAAACQBmAgUCZngFAmZPBwkBAmFLAQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJmeAUDbmlsAgAFAmZPBAJmUAkA/AcEBQJhTgIEYnVybgkAzAgCBQJmVgUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJiZwUCZlYFA25pbAMJAAACBQJmUAUCZlAEAmZRCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJkSwZjYWxsZXIFAmRTBQJlRgUDbmlsBAJmSAMJAGYCBQJkWQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFPBQJkWQUCZUYFA25pbAUDbmlsBAJmWQQCZlMDCQAAAgUEdGhpcwUCYU8AAAUCZFkDBQJlSAkAlAoCCQEBLQEJAGQCBQJkUwUCZlMAAAkAlAoCAAAJAQEtAQkAZAIFAmRTBQJmUwQCZHQIBQJmWQJfMQQCZHUIBQJmWQJfMgQCZloJAQJkcwMFAmR0BQJkdQAABAJmdAgFAmZaAl8xBAJkaggFAmZaAl8yBAJmdQkBAmR3AgUCZHIFAmRqAwkAAAIFAmZ1BQJmdQkAlAoCCQDOCAIJAM4IAgkAzggCBQJkZAUCZlEFAmZIBQJmdAUCZFMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZEsBA2dldAAEAmNPCQECZEoBBQJkSwQCZ2EIBQJjTwJfMQQCY3YIBQJjTwJfMgQCZE0IBQJjTwJfMwQCY2QIBQJjTwJfNAQCY3cIBQJjTwJfNQQCZHIJAQJkawMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZHIFAmRyBAJnYgkA/AcEBQJhTgIEYnVybgkAzAgCBQJkTQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJjZAUCZE0FA25pbAMJAAACBQJnYgUCZ2IEAmdjCQECZHMDCQEBLQEFAmdhCQEBLQEFAmN2AAAEAmZ0CAUCZ2MCXzEEAmRqCAUCZ2MCXzIEAmZ1CQECZHcCBQJkcgUCZGoDCQAAAgUCZnUFAmZ1CQDOCAIFAmN3BQJmdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkSwEJZ2V0Tm9MZXNzAgJnZAJnZQQCY08JAQJkSgEFAmRLBAJjdQgFAmNPAl8xBAJjdggFAmNPAl8yBAJkTQgFAmNPAl8zBAJjZAgFAmNPAl80BAJjdwgFAmNPAl81AwkAZgIFAmdkBQJjdQkAAgEJAKwCAgkArAICCQCsAgICHG5vTGVzc1RoZW5BbXRBc3NldCBmYWlsZWQ6ICAJAKQDAQUCY3UCAyA8IAkApAMBBQJnZAMJAGYCBQJnZQUCY3YJAAIBCQCsAgIJAKwCAgkArAICAh1ub0xlc3NUaGVuUHJpY2VBc3NldCBmYWlsZWQ6IAkApAMBBQJjdgIDIDwgCQCkAwEFAmdlBAJkcgkBAmRrAwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJkcgUCZHIEAmdiCQD8BwQFAmFOAgRidXJuCQDMCAIFAmRNBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmNkBQJkTQUDbmlsAwkAAAIFAmdiBQJnYgQCZ2YJAQJkcwMJAQEtAQUCY3UJAQEtAQUCY3YAAAQCZnQIBQJnZgJfMQQCZGoIBQJnZgJfMgQCZnUJAQJkdwIFAmRyBQJkagMJAAACBQJmdQUCZnUJAM4IAgUCY3cFAmZ0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRLAQ11bnN0YWtlQW5kR2V0AQJkUwQCZ2cDCQECIT0CCQCQAwEIBQJkSwhwYXltZW50cwAACQACAQIYTm8gcGF5bWVudHMgYXJlIGV4cGVjdGVkBgMJAAACBQJnZwUCZ2cEAmJTCQECYVUABAJjZgkA2QQBCQCRAwIFAmJTBQFxBAJkcgkBAmRrAwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJkcgUCZHIEAmZXCQD8BwQFAmJtAgd1bnN0YWtlCQDMCAIJANgEAQUCY2YJAMwIAgUCZFMFA25pbAUDbmlsAwkAAAIFAmZXBQJmVwQCY08JAQJjYgQJANgEAQgFAmRLDXRyYW5zYWN0aW9uSWQJANgEAQUCY2YFAmRTCAUCZEsGY2FsbGVyBAJjdQgFAmNPAl8xBAJjdggFAmNPAl8yBAJjaQkBDXBhcnNlSW50VmFsdWUBCAUCY08CXzkEAmN3CAUCY08DXzEwBAJnaAMDCQECYVMABgkAAAIFAmNpBQFuCQACAQkArAICAixHZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4uIFN0YXR1cyA9IAkApAMBBQJjaQYDCQAAAgUCZ2gFAmdoBAJnYgkA/AcEBQJhTgIEYnVybgkAzAgCBQJkUwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJjZgUCZFMFA25pbAMJAAACBQJnYgUCZ2IEAmdpCQECZHMDCQEBLQEFAmN1CQEBLQEFAmN2AAAEAmZ0CAUCZ2kCXzEEAmRqCAUCZ2kCXzIEAmZ1CQECZHcCBQJkcgUCZGoDCQAAAgUCZnUFAmZ1CQDOCAIFAmN3BQJmdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkSwETdW5zdGFrZUFuZEdldE5vTGVzcwMCZlYCZ2oCZ2UEAmZNAwkBAmFTAAYJAAACBQJiZgUBbgQCZUcJAMwIAgMJAQEhAQUCZk0GCQACAQIhZ2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCZEsIcGF5bWVudHMAAAYJAAIBAhhubyBwYXltZW50cyBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJlRwUCZUcEAmRyCQECZGsDCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmRyBQJkcgQCZlcJAPwHBAUCYm0CB3Vuc3Rha2UJAMwIAgkA2AQBBQJiZwkAzAgCBQJmVgUDbmlsBQNuaWwDCQAAAgUCZlcFAmZXBAJjTwkBAmNiBAkA2AQBCAUCZEsNdHJhbnNhY3Rpb25JZAkA2AQBBQJiZwUCZlYIBQJkSwZjYWxsZXIEAmN1CAUCY08CXzEEAmN2CAUCY08CXzIEAmN3CAUCY08DXzEwBAJnawkAzAgCAwkAZwIFAmN1BQJnagYJAAIBCQC5CQIJAMwIAgIsYW1vdW50IGFzc2V0IGFtb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJnagUDbmlsAgAJAMwIAgMJAGcCBQJjdgUCZ2UGCQACAQkAuQkCCQDMCAICK3ByaWNlIGFzc2V0IGFtb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJnZQUDbmlsAgAFA25pbAMJAAACBQJnawUCZ2sEAmdiCQD8BwQFAmFOAgRidXJuCQDMCAIFAmZWBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJnBQJmVgUDbmlsAwkAAAIFAmdiBQJnYgQCZ2wJAQJkcwMJAQEtAQUCY3UJAQEtAQUCY3YAAAQCZnQIBQJnbAJfMQQCZGoIBQJnbAJfMgQCZnUJAQJkdwIFAmRyBQJkagMJAAACBQJmdQUCZnUJAM4IAgUCY3cFAmZ0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRLAQhhY3RpdmF0ZQICZ20CZ24DCQECIT0CCQClCAEIBQJkSwZjYWxsZXIJAKUIAQUCYU4JAAIBAhJwZXJtaXNzaW9ucyBkZW5pZWQJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCCQECYWQABQJnbQkAzAgCCQELU3RyaW5nRW50cnkCCQECYWUABQJnbgUDbmlsAgdzdWNjZXNzAmRLAQpyZWZyZXNoS0xwAAQCZ28JAQt2YWx1ZU9yRWxzZQIJAJ8IAQUCYWoAAAQCZ3ADCQBnAgkAZQIFBmhlaWdodAUCZ28FAmFtBQR1bml0CQECYUsBCQC5CQIJAMwIAgkApAMBBQJhbQkAzAgCAi8gYmxvY2tzIGhhdmUgbm90IHBhc3NlZCBzaW5jZSB0aGUgcHJldmlvdXMgY2FsbAUDbmlsAgADCQAAAgUCZ3AFAmdwBAJkRAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCoAwEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUCYWkCATAJAQJhTQECC2ludmFsaWQga0xwBAJncQkBAmRzAwAAAAAAAAQCZ3IIBQJncQJfMQQCZGoIBQJncQJfMgQCZHYDCQECIT0CBQJkRAUCZGoFAmdyCQECYUsBAhJub3RoaW5nIHRvIHJlZnJlc2gJAJQKAgUCZHYJAKYDAQUCZGoJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZEsBHGdldFBvb2xDb25maWdXcmFwcGVyUkVBRE9OTFkACQCUCgIFA25pbAkBAmFVAAJkSwEcZ2V0QWNjQmFsYW5jZVdyYXBwZXJSRUFET05MWQECYkUJAJQKAgUDbmlsCQECYkQBBQJiRQJkSwEZY2FsY1ByaWNlc1dyYXBwZXJSRUFET05MWQMCYk0CYk4CYlIEAmNhCQECYlEDBQJiTQUCYk4FAmJSCQCUCgIFA25pbAkAzAgCCQCmAwEJAJEDAgUCY2EAAAkAzAgCCQCmAwEJAJEDAgUCY2EAAQkAzAgCCQCmAwEJAJEDAgUCY2EAAgUDbmlsAmRLARR0b1gxOFdyYXBwZXJSRUFET05MWQIBRQFGCQCUCgIFA25pbAkApgMBCQEBRAIFAUUFAUYCZEsBFmZyb21YMThXcmFwcGVyUkVBRE9OTFkCAUkBSgkAlAoCBQNuaWwJAQFIAgkApwMBBQFJBQFKAmRLAR5jYWxjUHJpY2VCaWdJbnRXcmFwcGVyUkVBRE9OTFkCAmJHAmJICQCUCgIFA25pbAkApgMBCQECYkYCCQCnAwEFAmJHCQCnAwEFAmJIAmRLASNlc3RpbWF0ZVB1dE9wZXJhdGlvbldyYXBwZXJSRUFET05MWQkCY2MCY3kCY3oCY0ECY0ICY0MCYWECY0QCY0UJAJQKAgUDbmlsCQECY3gJBQJjYwUCY3kFAmN6BQJjQQUCY0IFAmNDBQJhYQUCY0QFAmNFAmRLASNlc3RpbWF0ZUdldE9wZXJhdGlvbldyYXBwZXJSRUFET05MWQQCY2MCY2QCY2UCYWEEAmNPCQECY2IEBQJjYwUCY2QFAmNlCQERQGV4dHJOYXRpdmUoMTA2MikBBQJhYQkAlAoCBQNuaWwJAJwKCggFAmNPAl8xCAUCY08CXzIIBQJjTwJfMwgFAmNPAl80CAUCY08CXzUIBQJjTwJfNggFAmNPAl83CQCmAwEIBQJjTwJfOAgFAmNPAl85CAUCY08DXzEwAmRLAQ1zdGF0c1JFQURPTkxZAAQCYlMJAQJhVQAEAmNmCQDZBAEJAJEDAgUCYlMFAXEEAmdzCQCRAwIFAmJTBQFyBAJndAkAkQMCBQJiUwUBcwQCY0gJAJEDAgUCYlMFAXYEAmNJCQCRAwIFAmJTBQF3BAJiVAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJTBQF0BAJiVQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJTBQF1BAJndQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJjZgkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJjZgIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmd2CQECYkQBBQJncwQCZ3cJAQJiRAEFAmd0BAJneAMJAAACBQJndQAACQDMCAIFAWUJAMwIAgUBZQkAzAgCBQFlBQNuaWwJAQJiUQMFAmd2BQJndwUCZ3UEAmNwAAAEAmd5CQEBSAIJAJEDAgUCZ3gAAQUBYgQCZ3oJAQFIAgkAkQMCBQJneAACBQFiBAJnQQkBBXZhbHVlAQkAmggCBQJhTgkBAmF4AQkApQgBBQR0aGlzCQCUCgIFA25pbAkAuQkCCQDMCAICDiVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCZ3YJAMwIAgkApAMBBQJndwkAzAgCCQCkAwEFAmd1CQDMCAIJAKQDAQUCY3AJAMwIAgkApAMBBQJneQkAzAgCCQCkAwEFAmd6CQDMCAIJAKQDAQUCZ0EFA25pbAUBagJkSwEgZXZhbHVhdGVQdXRCeUFtb3VudEFzc2V0UkVBRE9OTFkBAmN6BAJiUwkBAmFVAAQCY2YJANkEAQkAkQMCBQJiUwUBcQQCY0YJAJEDAgUCYlMFAXIEAmNnCQDZBAEFAmNGBAJjRwkAkQMCBQJiUwUBcwQCY2gJANkEAQUCY0cEAmJUCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYlMFAXQEAmJVCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYlMFAXUEAmNpCQCRAwIFAmJTBQFwBAJndQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJjZgkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJjZgIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmd2CQECYkQBBQJjRgQCZ3cJAQJiRAEFAmNHBAJiTwkBAUQCBQJndgUCYlQEAmJQCQEBRAIFAmd3BQJiVQQCY28DCQAAAgUCZ3UAAAUBZQkBAmJGAgUCYlAFAmJPBAJjTAkBAUQCBQJjegUCYlQEAmNNCQC8AgMFAmNMBQJjbwUBZAQCY0IJAQFIAgUCY00FAmJVBAJkUQkBAmN4CQIAAKDCHgUCY3oFAmNnBQJjQgUCY2gCAAYHBAJjVwgFAmRRAl8xBAJnQggFAmRRAl8zBAJjawgFAmRRAl80BAJjbQgFAmRRAl81BAJjaggFAmRRAl82CQCUCgIFA25pbAkAuQkCCQDMCAICECVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJjVwkAzAgCCQCkAwEJAQFIAgUCY28FAWIJAMwIAgkApAMBBQJjawkAzAgCCQCkAwEFAmNtCQDMCAIJAKQDAQUCY2oJAMwIAgUCY2kJAMwIAgkApAMBBQJjegkAzAgCCQCkAwEFAmNCBQNuaWwFAWoCZEsBH2V2YWx1YXRlUHV0QnlQcmljZUFzc2V0UkVBRE9OTFkBAmNCBAJiUwkBAmFVAAQCY2YJANkEAQkAkQMCBQJiUwUBcQQCY0YJAJEDAgUCYlMFAXIEAmNnCQDZBAEFAmNGBAJjRwkAkQMCBQJiUwUBcwQCY2gJANkEAQUCY0cEAmJUCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYlMFAXQEAmJVCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYlMFAXUEAmNpCQCRAwIFAmJTBQFwBAJndQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJjZgkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJjZgIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmdDCQECYkQBBQJjRgQCZ0QJAQJiRAEFAmNHBAJnRQkBAUQCBQJnQwUCYlQEAmdGCQEBRAIFAmdEBQJiVQQCY28DCQAAAgUCZ3UAAAUBZQkBAmJGAgUCZ0YFAmdFBAJjTQkBAUQCBQJjQgUCYlUEAmNMCQC8AgMFAmNNBQFkBQJjbwQCY3oJAQFIAgUCY0wFAmJUBAJkUQkBAmN4CQIAAKDCHgUCY3oFAmNnBQJjQgUCY2gCAAYHBAJjVwgFAmRRAl8xBAJnQggFAmRRAl8zBAJjawgFAmRRAl80BAJjbQgFAmRRAl81BAJjaggFAmRRAl82CQCUCgIFA25pbAkAuQkCCQDMCAICECVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJjVwkAzAgCCQCkAwEJAQFIAgUCY28FAWIJAMwIAgkApAMBBQJjawkAzAgCCQCkAwEFAmNtCQDMCAIJAKQDAQUCY2oJAMwIAgUCY2kJAMwIAgkApAMBBQJjegkAzAgCCQCkAwEFAmNCBQNuaWwFAWoCZEsBE2V2YWx1YXRlR2V0UkVBRE9OTFkCAmdHAmdIBAJjTwkBAmNiBAIABQJnRwUCZ0gFBHRoaXMEAmN1CAUCY08CXzEEAmN2CAUCY08CXzIEAmNrCAUCY08CXzUEAmNtCAUCY08CXzYEAmNqCAUCY08CXzcEAmNwCAUCY08CXzgEAmNpCQENcGFyc2VJbnRWYWx1ZQEIBQJjTwJfOQkAlAoCBQNuaWwJALkJAgkAzAgCAg4lZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmN1CQDMCAIJAKQDAQUCY3YJAMwIAgkApAMBBQJjawkAzAgCCQCkAwEFAmNtCQDMCAIJAKQDAQUCY2oJAMwIAgkApgMBBQJjcAkAzAgCCQCkAwEFAmNpBQNuaWwFAWoBAmdJAQJnSgAEAmdLBAJkVgkBAmVZAAMJAAECBQJkVgIKQnl0ZVZlY3RvcgQCZmMFAmRWBQJmYwMJAAECBQJkVgIEVW5pdAgFAmdJD3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yBAJkVgUCZ0kDCQABAgUCZFYCBU9yZGVyBAJkegUCZFYEAmdMCQECYVQABAJnTQkBAmR5AQUCZHoEAmFDCAUCZ00CXzEEAmFECAUCZ00CXzIEAmFFCQD0AwMIBQJkeglib2R5Qnl0ZXMJAJEDAggFAmR6BnByb29mcwAACAUCZHoPc2VuZGVyUHVibGljS2V5BAJhRgkA9AMDCAUCZHoJYm9keUJ5dGVzCQCRAwIIBQJkegZwcm9vZnMAAQUCZ0wDAwMFAmFDBQJhRQcFAmFGBwYJAQJhQgQFAmFDBQJhRAUCYUUFAmFGAwkAAQIFAmRWAhRTZXRTY3JpcHRUcmFuc2FjdGlvbgQCZVoFAmRWBAJnTgkA9gMBCQEFdmFsdWUBCAUCZVoGc2NyaXB0BAJnTwkA2wQBCQEFdmFsdWUBCQCdCAIFAmFOCQECYXoABAJnUAkA8QcBBQR0aGlzAwMJAAACBQJnTwUCZ04JAQIhPQIFAmdQBQJnTgcGCQD0AwMIBQJnSQlib2R5Qnl0ZXMJAJEDAggFAmdJBnByb29mcwAABQJnSwkA9AMDCAUCZ0kJYm9keUJ5dGVzCQCRAwIIBQJnSQZwcm9vZnMAAAUCZ0vE64GK", "chainId": 84, "height": 2413225, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6ybzmt66DPDiEwu2CChng5bbe46KEdSnzYPa5bicC63G Next: 3HzS5zWaowaTuXXM1UgzeTbZ81r8E2LGQWsoqGBe6F7k Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = 100000000
4+let a = 8
55
6-let b = toBigInt(1000000000000000000)
6+let b = 100000000
77
8-let c = toBigInt(0)
8+let c = toBigInt(100000000)
99
10-let d = toBigInt(0)
10+let d = toBigInt(1000000000000000000)
1111
12-let e = toBigInt(1)
12+let e = toBigInt(0)
1313
14-let f = toBigInt(2)
14+let f = toBigInt(0)
1515
16-let g = "WAVES"
16+let g = toBigInt(1)
1717
18-let h = "__"
18+let h = toBigInt(2)
1919
20-let i = 2
20+let i = "WAVES"
2121
22-let j = 3
22+let j = "__"
2323
24-let k = 4
24+let k = 1
2525
26-let l = 1
26+let l = 2
2727
28-let m = 2
28+let m = 3
2929
30-let n = 3
30+let n = 4
3131
32-let o = 4
32+let o = 1
3333
34-let p = 5
34+let p = 2
3535
36-let q = 6
36+let q = 3
3737
38-let r = 7
38+let r = 4
3939
40-let s = 8
40+let s = 5
4141
42-let t = 9
42+let t = 6
4343
44-let u = 1
44+let u = 7
4545
46-let v = 7
46+let v = 8
4747
48-func w (x,y) = fraction(toBigInt(x), b, toBigInt(y))
48+let w = 9
49+
50+let x = 10
51+
52+let y = 1
53+
54+let z = 2
55+
56+let A = 3
57+
58+let B = 1
59+
60+let C = 7
61+
62+func D (E,F) = fraction(toBigInt(E), d, toBigInt(F))
4963
5064
51-func z (x,y) = fraction(x, b, y)
65+func G (E,F) = fraction(E, d, F)
5266
5367
54-func A (B,C) = toInt(fraction(B, toBigInt(C), b))
68+func H (I,J) = toInt(fraction(I, toBigInt(J), d))
5569
5670
57-func D (B,C,E) = toInt(fraction(B, toBigInt(C), b, E))
71+func K (I,J,L) = toInt(fraction(I, toBigInt(J), d, L))
5872
5973
60-func F (B) = if ((c > B))
61- then -(B)
62- else B
74+func M (N,O,P) = fraction(N, O, P)
6375
6476
65-func G () = "%s__factoryContract"
77+func Q (I) = if ((0 > I))
78+ then -(I)
79+ else I
6680
6781
68-func H () = "%s__managerPublicKey"
82+func R (I) = if ((e > I))
83+ then -(I)
84+ else I
6985
7086
71-func I () = "%s__pendingManagerPublicKey"
87+func S () = "%s__factoryContract"
7288
7389
74-func J () = "%s%s__price__last"
90+func T () = "%s__managerPublicKey"
7591
7692
77-func K (L,M) = makeString(["%s%s%d%d__price__history", toString(L), toString(M)], h)
93+func U () = "%s__pendingManagerPublicKey"
7894
7995
80-func N (O,P) = ((("%s%s%s__P__" + O) + "__") + P)
96+func V () = "%s%s__price__last"
8197
8298
83-func Q (O,P) = ((("%s%s%s__G__" + O) + "__") + P)
99+func W (X,Y) = makeString(["%s%s%d%d__price__history", toString(X), toString(Y)], j)
84100
85101
86-func R () = "%s__amountAsset"
102+func Z (aa,ab) = ((("%s%s%s__P__" + aa) + "__") + ab)
87103
88104
89-func S () = "%s__priceAsset"
105+func ac (aa,ab) = ((("%s%s%s__G__" + aa) + "__") + ab)
90106
91107
92-let T = "%s__fee"
93-
94-let U = fraction(10, a, 10000)
95-
96-let V = valueOrElse(getInteger(this, T), U)
97-
98-let W = makeString(["%s", "kLp"], h)
99-
100-let X = makeString(["%s", "kLpRefreshedHeight"], h)
101-
102-let Y = makeString(["%s", "refreshKLpDelay"], h)
103-
104-let Z = 30
105-
106-let aa = valueOrElse(getInteger(this, Y), Z)
107-
108-func ab () = "%s__factoryConfig"
108+func ad () = "%s__amountAsset"
109109
110110
111-func ac () = "%s%s__matcher__publicKey"
111+func ae () = "%s__priceAsset"
112112
113113
114-func ad (ae,af) = (((("%d%d%s__" + ae) + "__") + af) + "__config")
114+let af = "%s__fee"
115+
116+let ag = fraction(10, b, 10000)
117+
118+let ah = valueOrElse(getInteger(this, af), ag)
119+
120+let ai = makeString(["%s", "kLp"], j)
121+
122+let aj = makeString(["%s", "kLpRefreshedHeight"], j)
123+
124+let ak = makeString(["%s", "refreshKLpDelay"], j)
125+
126+let al = 30
127+
128+let am = valueOrElse(getInteger(this, ak), al)
129+
130+func an () = "%s__factoryConfig"
115131
116132
117-func ag (ah) = ("%s%s%s__mappings__baseAsset2internalId__" + ah)
133+func ao () = "%s%s__matcher__publicKey"
118134
119135
120-func ai () = "%s__shutdown"
136+func ap (aq) = (("%s%s%s__" + aq) + "__mappings__poolContract2LpAsset")
121137
122138
123-func aj (ak) = ("%s%s__poolWeight__" + ak)
139+func ar (as,at) = (((("%d%d%s__" + as) + "__") + at) + "__config")
124140
125141
126-func al () = "%s__allowedLpScriptHash"
142+func au (av) = ("%s%s%s__mappings__baseAsset2internalId__" + av)
127143
128144
129-let am = "%s__feeCollectorAddress"
130-
131-func an (ao,ap,aq,ar) = throw((((((((("order validation failed: orderValid=" + toString(ao)) + " (") + ap) + ")") + " senderValid=") + toString(aq)) + " matcherValid=") + toString(ar)))
145+func aw () = "%s__shutdown"
132146
133147
134-func as (at,au) = valueOrErrorMessage(getString(at, au), makeString(["mandatory ", toString(at), ".", au, " is not defined"], ""))
148+func ax (ay) = ("%s%s__poolWeight__" + ay)
135149
136150
137-func av (at,au) = valueOrErrorMessage(getInteger(at, au), makeString(["mandatory ", toString(at), ".", au, " is not defined"], ""))
151+func az () = "%s__allowedLpScriptHash"
138152
139153
140-func aw (ax) = throw(makeString(["lp.ride:", ax], " "))
154+let aA = "%s__feeCollectorAddress"
155+
156+func aB (aC,aD,aE,aF) = throw((((((((("order validation failed: orderValid=" + toString(aC)) + " (") + aD) + ")") + " senderValid=") + toString(aE)) + " matcherValid=") + toString(aF)))
141157
142158
143-func ay (ax) = makeString(["lp.ride:", ax], " ")
159+func aG (aH,aI) = valueOrErrorMessage(getString(aH, aI), makeString(["mandatory ", toString(aH), ".", aI, " is not defined"], ""))
144160
145161
146-let az = addressFromStringValue(as(this, G()))
162+func aJ (aH,aI) = valueOrErrorMessage(getInteger(aH, aI), makeString(["mandatory ", toString(aH), ".", aI, " is not defined"], ""))
147163
148-let aA = addressFromStringValue(as(az, am))
149164
150-let aB = {
151- let aC = invoke(az, "getInFeeREADONLY", [toString(this)], nil)
152- if ($isInstanceOf(aC, "Int"))
153- then aC
154- else throw(($getType(aC) + " couldn't be cast to Int"))
165+func aK (aL) = throw(makeString(["lp.ride:", aL], " "))
166+
167+
168+func aM (aL) = makeString(["lp.ride:", aL], " ")
169+
170+
171+let aN = addressFromStringValue(aG(this, S()))
172+
173+let aO = addressFromStringValue(aG(aN, aA))
174+
175+let aP = {
176+ let aQ = invoke(aN, "getInFeeREADONLY", [toString(this)], nil)
177+ if ($isInstanceOf(aQ, "Int"))
178+ then aQ
179+ else throw(($getType(aQ) + " couldn't be cast to Int"))
155180 }
156181
157-let aD = {
158- let aC = invoke(az, "getOutFeeREADONLY", [toString(this)], nil)
159- if ($isInstanceOf(aC, "Int"))
160- then aC
161- else throw(($getType(aC) + " couldn't be cast to Int"))
182+let aR = {
183+ let aQ = invoke(aN, "getOutFeeREADONLY", [toString(this)], nil)
184+ if ($isInstanceOf(aQ, "Int"))
185+ then aQ
186+ else throw(($getType(aQ) + " couldn't be cast to Int"))
162187 }
163188
164-func aE () = valueOrElse(getBoolean(az, ai()), false)
189+func aS () = valueOrElse(getBoolean(aN, aw()), false)
165190
166191
167-func aF () = fromBase58String(as(az, ac()))
192+func aT () = fromBase58String(aG(aN, ao()))
168193
169194
170-func aG () = {
171- let aH = as(this, R())
172- let aI = as(this, S())
173- let af = av(az, ag(aI))
174- let ae = av(az, ag(aH))
175- split(as(az, ad(toString(ae), toString(af))), h)
195+func aU () = {
196+ let aV = aG(this, ad())
197+ let aW = aG(this, ae())
198+ let at = aJ(aN, au(aW))
199+ let as = aJ(aN, au(aV))
200+ split(aG(aN, ar(toString(as), toString(at))), j)
176201 }
177202
178203
179-func aJ (aK) = if ((aK == g))
204+func aX (aY) = if ((aY == i))
180205 then unit
181- else fromBase58String(aK)
206+ else fromBase58String(aY)
182207
183208
184-func aL (aK) = if ((aK == unit))
185- then g
186- else toBase58String(value(aK))
209+func aZ (aY) = if ((aY == unit))
210+ then i
211+ else toBase58String(value(aY))
187212
188213
189-func aM (aN) = $Tuple7(addressFromStringValue(aN[l]), parseIntValue(aN[m]), fromBase58String(aN[n]), aJ(aN[o]), aJ(aN[p]), parseIntValue(aN[q]), parseIntValue(aN[r]))
214+func ba (bb) = $Tuple7(addressFromStringValue(bb[o]), parseIntValue(bb[p]), fromBase58String(bb[q]), aX(bb[r]), aX(bb[s]), parseIntValue(bb[t]), parseIntValue(bb[u]))
190215
191216
192-let aO = aM(aG())
217+let bc = ba(aU())
193218
194-let aP = aO
219+let bd = bc
195220
196-let aQ = aP._2
221+let be = bd._1
197222
198-let aR = aP._3
223+let bf = bd._2
199224
200-let aS = aP._4
225+let bg = bd._3
201226
202-let aT = aP._5
227+let bh = bd._4
203228
204-let aU = aP._6
229+let bi = bd._5
205230
206-let aV = aP._7
231+let bj = bd._6
207232
208-func aW () = split(as(az, ab()), h)
233+let bk = bd._7
234+
235+func bl () = split(aG(aN, an()), j)
209236
210237
211-let aX = valueOrErrorMessage(addressFromString(aW()[u]), "incorrect staking address")
238+let bm = valueOrErrorMessage(addressFromString(bl()[B]), "incorrect staking address")
212239
213-let aY = valueOrErrorMessage(addressFromString(aW()[v]), "incorrect staking address")
240+let bn = valueOrErrorMessage(addressFromString(bl()[C]), "incorrect staking address")
214241
215-func aZ (ba,bb,bc,bd,be,bf,bg,bh,bi,bj) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(ba), toString(bb), toString(bc), toString(bd), toString(be), toString(bf), toString(bg), toString(bh), toString(bi), toString(bj)], h)
242+func bo (bp,bq,br,bs,bt,bu,bv,bw,bx,by) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bp), toString(bq), toString(br), toString(bs), toString(bt), toString(bu), toString(bv), toString(bw), toString(bx), toString(by)], j)
216243
217244
218-func bk (bl,bm,bn,bd,bg,bh) = makeString(["%d%d%d%d%d%d", toString(bl), toString(bm), toString(bn), toString(bd), toString(bg), toString(bh)], h)
245+func bz (bA,bB,bC,bs,bv,bw) = makeString(["%d%d%d%d%d%d", toString(bA), toString(bB), toString(bC), toString(bs), toString(bv), toString(bw)], j)
219246
220247
221-func bo (bp) = if ((bp == "WAVES"))
248+func bD (bE) = if ((bE == "WAVES"))
222249 then wavesBalance(this).available
223- else assetBalance(this, fromBase58String(bp))
250+ else assetBalance(this, fromBase58String(bE))
224251
225252
226-func bq (br,bs) = fraction(br, b, bs)
253+func bF (bG,bH) = fraction(bG, d, bH)
227254
228255
229-func bt (br,bs,E) = fraction(br, b, bs, E)
256+func bI (bG,bH,L) = fraction(bG, d, bH, L)
230257
231258
232-func bu (bv,bw,bx,by) = {
233- let bz = w(bx, bv)
234- let bA = w(by, bw)
235- bq(bA, bz)
259+func bJ (bK,bL,bM,bN) = {
260+ let bO = D(bM, bK)
261+ let bP = D(bN, bL)
262+ bF(bP, bO)
236263 }
237264
238265
239-func bB (bx,by,bC) = {
240- let bD = aG()
241- let bE = parseIntValue(bD[q])
242- let bF = parseIntValue(bD[r])
243- let bG = bu(bE, bF, bx, by)
244- let bs = w(bx, bE)
245- let br = w(by, bF)
246- let bH = w(bC, a)
247- let bI = bq(bs, bH)
248- let bJ = bq(br, bH)
249-[bG, bI, bJ]
266+func bQ (bM,bN,bR) = {
267+ let bS = aU()
268+ let bT = parseIntValue(bS[t])
269+ let bU = parseIntValue(bS[u])
270+ let bV = bJ(bT, bU, bM, bN)
271+ let bH = D(bM, bT)
272+ let bG = D(bN, bU)
273+ let bW = D(bR, b)
274+ let bX = bF(bH, bW)
275+ let bY = bF(bG, bW)
276+[bV, bX, bY]
250277 }
251278
252279
253-func bK (bL,bM,bN,O) = {
254- let bD = aG()
255- let bO = bD[n]
256- let bP = bD[o]
257- let bQ = bD[p]
258- let bv = parseIntValue(bD[q])
259- let bw = parseIntValue(bD[r])
260- let bR = bD[m]
261- let bS = valueOrErrorMessage(assetInfo(fromBase58String(bO)), (("Asset " + bO) + " doesn't exist")).quantity
262- if ((bO != bM))
280+func bZ (bM,bN,bR) = {
281+ let ca = bQ(bM, bN, bR)
282+[H(ca[0], b), H(ca[1], b), H(ca[2], b)]
283+ }
284+
285+
286+func cb (cc,cd,ce,aa) = {
287+ let bS = aU()
288+ let cf = bS[q]
289+ let cg = bS[r]
290+ let ch = bS[s]
291+ let bK = parseIntValue(bS[t])
292+ let bL = parseIntValue(bS[u])
293+ let ci = bS[p]
294+ let cj = valueOrErrorMessage(assetInfo(fromBase58String(cf)), (("Asset " + cf) + " doesn't exist")).quantity
295+ if ((cf != cd))
263296 then throw("Invalid asset passed.")
264297 else {
265- let bT = bo(bP)
266- let bU = w(bT, bv)
267- let bV = bo(bQ)
268- let bW = w(bV, bw)
269- let bX = bq(bW, bU)
270- let bY = A(bX, a)
271- let bZ = w(bN, a)
272- let ca = w(bS, a)
273- let cb = fraction(bU, bZ, ca)
274- let cc = fraction(bW, bZ, ca)
275- let cd = D(cb, bv, FLOOR)
276- let ce = D(cc, bw, FLOOR)
277- let cf = if ((bL == ""))
298+ let ck = bD(cg)
299+ let cl = D(ck, bK)
300+ let cm = bD(ch)
301+ let cn = D(cm, bL)
302+ let co = bF(cn, cl)
303+ let cp = H(co, b)
304+ let cq = D(ce, b)
305+ let cr = D(cj, b)
306+ let cs = fraction(cl, cq, cr)
307+ let ct = fraction(cn, cq, cr)
308+ let cu = K(cs, bK, FLOOR)
309+ let cv = K(ct, bL, FLOOR)
310+ let cw = if ((cc == ""))
278311 then nil
279- else [ScriptTransfer(O, cd, if ((bP == "WAVES"))
312+ else [ScriptTransfer(aa, cu, if ((cg == "WAVES"))
280313 then unit
281- else fromBase58String(bP)), ScriptTransfer(O, ce, if ((bQ == "WAVES"))
314+ else fromBase58String(cg)), ScriptTransfer(aa, cv, if ((ch == "WAVES"))
282315 then unit
283- else fromBase58String(bQ)), StringEntry(Q(toString(O), bL), bk(cd, ce, bN, bY, height, lastBlock.timestamp)), IntegerEntry(J(), bY), IntegerEntry(K(height, lastBlock.timestamp), bY)]
284- $Tuple10(cd, ce, bP, bQ, bT, bV, bS, bX, bR, cf)
316+ else fromBase58String(ch)), StringEntry(ac(toString(aa), cc), bz(cu, cv, ce, cp, height, lastBlock.timestamp)), IntegerEntry(V(), cp), IntegerEntry(W(height, lastBlock.timestamp), cp)]
317+ $Tuple10(cu, cv, cg, ch, ck, cm, cj, co, ci, cw)
285318 }
286319 }
287320
288321
289-func cg (bL,ch,ci,cj,ck,cl,O,cm,cn) = {
290- let bD = aG()
291- let bO = fromBase58String(bD[n])
292- let co = bD[o]
293- let cp = bD[p]
294- let cq = bD[s]
295- let cr = bD[t]
296- let bE = parseIntValue(bD[q])
297- let bF = parseIntValue(bD[r])
298- let bR = bD[m]
299- let bS = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
300- let cs = toBase58String(valueOrElse(cj, fromBase58String("WAVES")))
301- let ct = toBase58String(valueOrElse(cl, fromBase58String("WAVES")))
302- if (if ((co != cs))
322+func cx (cc,cy,cz,cA,cB,cC,aa,cD,cE) = {
323+ let bS = aU()
324+ let cf = fromBase58String(bS[q])
325+ let cF = bS[r]
326+ let cG = bS[s]
327+ let cH = bS[v]
328+ let cI = bS[w]
329+ let bT = parseIntValue(bS[t])
330+ let bU = parseIntValue(bS[u])
331+ let ci = bS[p]
332+ let cj = valueOrErrorMessage(assetInfo(cf), (("Asset " + toBase58String(cf)) + " doesn't exist")).quantity
333+ let cJ = toBase58String(valueOrElse(cA, fromBase58String("WAVES")))
334+ let cK = toBase58String(valueOrElse(cC, fromBase58String("WAVES")))
335+ if (if ((cF != cJ))
303336 then true
304- else (cp != ct))
337+ else (cG != cK))
305338 then throw("Invalid amt or price asset passed.")
306339 else {
307- let bT = if (cm)
308- then bo(co)
309- else (bo(co) - ci)
310- let bV = if (cm)
311- then bo(cp)
312- else (bo(cp) - ck)
313- let cu = w(ci, bE)
314- let cv = w(ck, bF)
315- let cw = bq(cv, cu)
316- let bU = w(bT, bE)
317- let bW = w(bV, bF)
318- let cx = if ((bS == 0))
340+ let ck = if (cD)
341+ then bD(cF)
342+ else (bD(cF) - cz)
343+ let cm = if (cD)
344+ then bD(cG)
345+ else (bD(cG) - cB)
346+ let cL = D(cz, bT)
347+ let cM = D(cB, bU)
348+ let cN = bF(cM, cL)
349+ let cl = D(ck, bT)
350+ let cn = D(cm, bU)
351+ let cO = if ((cj == 0))
319352 then {
320- let bX = c
321- let cy = c
322- let bH = pow((cu * cv), 0, toBigInt(5), 1, 0, DOWN)
323- $Tuple5(A(bH, a), A(cu, bE), A(cv, bF), bq((bW + cv), (bU + cu)), cy)
353+ let co = e
354+ let cP = e
355+ let bW = pow((cL * cM), 0, toBigInt(5), 1, 0, DOWN)
356+ $Tuple5(H(bW, b), H(cL, bT), H(cM, bU), bF((cn + cM), (cl + cL)), cP)
324357 }
325358 else {
326- let bX = bq(bW, bU)
327- let cy = fraction(F((bX - cw)), b, bX)
328- let cz = w(ch, a)
329- if (if ((bX != c))
330- then (cy > cz)
359+ let co = bF(cn, cl)
360+ let cP = fraction(R((co - cN)), d, co)
361+ let cQ = D(cy, b)
362+ if (if ((co != e))
363+ then (cP > cQ)
331364 else false)
332- then throw(((("Price slippage " + toString(cy)) + " exceeded the passed limit of ") + toString(cz)))
365+ then throw(((("Price slippage " + toString(cP)) + " exceeded the passed limit of ") + toString(cQ)))
333366 else {
334- let ca = w(bS, a)
335- let cA = fraction(cu, bt(bW, bU, CEILING), b, CEILING)
336- let cB = fraction(cv, b, bt(bW, bU, FLOOR), CEILING)
337- let cC = if ((cA > cv))
338- then $Tuple2(cB, cv)
339- else $Tuple2(cu, cA)
340- let cD = cC._1
341- let cE = cC._2
342- let bH = fraction(ca, cE, bW, FLOOR)
343- $Tuple5(D(bH, a, FLOOR), D(cD, bE, CEILING), D(cE, bF, CEILING), bX, cy)
367+ let cr = D(cj, b)
368+ let cR = fraction(cL, bI(cn, cl, CEILING), d, CEILING)
369+ let cS = fraction(cM, d, bI(cn, cl, FLOOR), CEILING)
370+ let cT = if ((cR > cM))
371+ then $Tuple2(cS, cM)
372+ else $Tuple2(cL, cR)
373+ let cU = cT._1
374+ let cV = cT._2
375+ let bW = fraction(cr, cV, cn, FLOOR)
376+ $Tuple5(K(bW, b, FLOOR), K(cU, bT, CEILING), K(cV, bU, CEILING), co, cP)
344377 }
345378 }
346- let cF = cx._1
347- let cG = cx._2
348- let cH = cx._3
349- let bY = A(cx._4, a)
350- let cI = A(cx._5, a)
351- if ((0 >= cF))
379+ let cW = cO._1
380+ let cX = cO._2
381+ let cY = cO._3
382+ let cp = H(cO._4, b)
383+ let cZ = H(cO._5, b)
384+ if ((0 >= cW))
352385 then throw("Invalid calculations. LP calculated is less than zero.")
353386 else {
354- let cJ = if (!(cn))
387+ let da = if (!(cE))
355388 then 0
356- else cF
357- let cK = (ci - cG)
358- let cL = (ck - cH)
359- let cM = [IntegerEntry(J(), bY), IntegerEntry(K(height, lastBlock.timestamp), bY), StringEntry(N(O, bL), aZ(cG, cH, cJ, bY, ch, cI, height, lastBlock.timestamp, cK, cL))]
360- $Tuple13(cF, cJ, bY, bT, bV, bS, bO, bR, cM, cK, cL, cj, cl)
389+ else cW
390+ let db = (cz - cX)
391+ let dc = (cB - cY)
392+ let dd = [IntegerEntry(V(), cp), IntegerEntry(W(height, lastBlock.timestamp), cp), StringEntry(Z(aa, cc), bo(cX, cY, da, cp, cy, cZ, height, lastBlock.timestamp, db, dc))]
393+ $Tuple13(cW, da, cp, ck, cm, cj, cf, ci, dd, db, dc, cA, cC)
361394 }
362395 }
363396 }
364397
365398
366-func cN (cO,cP,bS) = {
367- let cQ = z(cO, toBigInt(aU))
368- let cR = z(cP, toBigInt(aV))
369- let cS = fraction(pow((cQ * cR), 0, toBigInt(5), 1, 18, DOWN), e, bS)
370- if ((bS == d))
371- then d
372- else cS
399+func de (df,dg,cj) = {
400+ let dh = G(df, toBigInt(bj))
401+ let di = G(dg, toBigInt(bk))
402+ let dj = fraction(pow((dh * di), 0, toBigInt(5), 1, 18, DOWN), g, cj)
403+ if ((cj == f))
404+ then f
405+ else dj
373406 }
374407
375408
376-func cT (cU,cV,cW) = {
377- let cX = (toBigInt(bo(aL(aS))) - cU)
378- let cY = (toBigInt(bo(aL(aT))) - cV)
379- let cZ = (toBigInt(value(assetInfo(aR)).quantity) - cW)
380- let da = cN(cX, cY, cZ)
381- da
409+func dk (dl,dm,dn) = {
410+ let do = (toBigInt(bD(aZ(bh))) - dl)
411+ let dp = (toBigInt(bD(aZ(bi))) - dm)
412+ let dq = (toBigInt(value(assetInfo(bg)).quantity) - dn)
413+ let dr = de(do, dp, dq)
414+ dr
382415 }
383416
384417
385-func db (dc,dd,cW) = {
386- let cX = (bo(aL(aS)) + dc)
387- let cY = (bo(aL(aT)) + dd)
388- let cZ = (value(assetInfo(aR)).quantity + cW)
389- let cS = cN(toBigInt(cX), toBigInt(cY), toBigInt(cZ))
390- let de = [IntegerEntry(X, height), StringEntry(W, toString(cS))]
391- $Tuple2(de, cS)
418+func ds (dt,du,dn) = {
419+ let do = (bD(aZ(bh)) + dt)
420+ let dp = (bD(aZ(bi)) + du)
421+ let dq = (value(assetInfo(bg)).quantity + dn)
422+ let dj = de(toBigInt(do), toBigInt(dp), toBigInt(dq))
423+ let dv = [IntegerEntry(aj, height), StringEntry(ai, toString(dj))]
424+ $Tuple2(dv, dj)
392425 }
393426
394427
395-func df (dg,cS) = if ((cS >= dg))
428+func dw (dx,dj) = if ((dj >= dx))
396429 then true
397- else aw(makeString(["updated KLp lower than current KLp", toString(dg), toString(cS)], " "))
430+ else aK(makeString(["updated KLp lower than current KLp", toString(dx), toString(dj)], " "))
398431
399432
400-func dh (di) = {
401- let dj = di.amount
402- let dk = fraction(di.amount, di.price, a, FLOOR)
403- let dl = if ((di.orderType == Buy))
404- then $Tuple2(dj, -(dk))
405- else $Tuple2(-(dj), dk)
406- let dc = dl._1
407- let dd = dl._2
408- if (if (if (aE())
433+func dy (dz) = {
434+ let dA = dz.amount
435+ let dB = fraction(dz.amount, dz.price, b, FLOOR)
436+ let dC = if ((dz.orderType == Buy))
437+ then $Tuple2(dA, -(dB))
438+ else $Tuple2(-(dA), dB)
439+ let dt = dC._1
440+ let du = dC._2
441+ if (if (if (aS())
409442 then true
410- else (aQ == j))
443+ else (bf == m))
411444 then true
412- else (aQ == k))
445+ else (bf == n))
413446 then throw("Exchange operations disabled")
414- else if (if ((di.assetPair.amountAsset != aS))
447+ else if (if ((dz.assetPair.amountAsset != bh))
415448 then true
416- else (di.assetPair.priceAsset != aT))
449+ else (dz.assetPair.priceAsset != bi))
417450 then throw("Wrong order assets.")
418451 else {
419- let dm = valueOrErrorMessage(parseBigInt(valueOrErrorMessage(getString(this, W), ay("kLp is required"))), ay("invalid kLp"))
420- let dn = db(dc, dd, 0)
421- let do = dn._1
422- let dp = dn._2
423- let dq = db(0, 0, 0)
424- let dr = dq._1
425- let ds = dq._2
426- let dt = (dp >= dm)
427- let cO = bo(aL(aS))
428- let cP = bo(aL(aT))
429- let cQ = w(cO, aU)
430- let du = (cQ + w(dc, aU))
431- let cR = w(cP, aV)
432- let dv = (cR + w(dd, aV))
433- let dw = pow((cQ * cR), 0, toBigInt(5), 1, 18, DOWN)
434- let dx = pow((du * dv), 0, toBigInt(5), 1, 18, DOWN)
435- let dy = makeString([toString(dm), toString(dp), toString(dw), toString(dx)], " ")
436- $Tuple2(dt, dy)
452+ let dD = valueOrErrorMessage(parseBigInt(valueOrErrorMessage(getString(this, ai), aM("kLp is required"))), aM("invalid kLp"))
453+ let dE = ds(dt, du, 0)
454+ let dF = dE._1
455+ let dG = dE._2
456+ let dH = (dG >= dD)
457+ let dI = makeString([toString(dD), toString(dG)], " ")
458+ $Tuple2(dH, dI)
437459 }
438460 }
439461
440462
441-func dz (dA) = if ((size(dA.payments) != 1))
463+func dJ (dK) = if ((size(dK.payments) != 1))
442464 then throw("exactly 1 payment is expected")
443465 else {
444- let dB = value(dA.payments[0])
445- let bM = value(dB.assetId)
446- let dC = dB.amount
447- let cx = bK(toBase58String(dA.transactionId), toBase58String(bM), dC, dA.caller)
448- let cd = cx._1
449- let ce = cx._2
450- let bR = parseIntValue(cx._9)
451- let cf = cx._10
452- if (if (aE())
466+ let dL = value(dK.payments[0])
467+ let cd = value(dL.assetId)
468+ let dM = dL.amount
469+ let cO = cb(toBase58String(dK.transactionId), toBase58String(cd), dM, dK.caller)
470+ let cu = cO._1
471+ let cv = cO._2
472+ let ci = parseIntValue(cO._9)
473+ let cw = cO._10
474+ if (if (aS())
453475 then true
454- else (bR == k))
455- then throw(("Get operation is blocked by admin. Status = " + toString(bR)))
456- else $Tuple5(cd, ce, dC, bM, cf)
476+ else (ci == n))
477+ then throw(("Get operation is blocked by admin. Status = " + toString(ci)))
478+ else $Tuple5(cu, cv, dM, cd, cw)
457479 }
458480
459481
460-func dD (dA,ch,cn) = if ((size(dA.payments) != 2))
482+func dN (dK,cy,cE) = if ((size(dK.payments) != 2))
461483 then throw("exactly 2 payments are expected")
462484 else {
463- let dE = value(dA.payments[0])
464- let dF = value(dA.payments[1])
465- let dG = cg(toBase58String(dA.transactionId), ch, dE.amount, dE.assetId, dF.amount, dF.assetId, toString(dA.caller), false, cn)
466- let bR = parseIntValue(dG._8)
467- if (if (if (aE())
485+ let dO = value(dK.payments[0])
486+ let dP = value(dK.payments[1])
487+ let dQ = cx(toBase58String(dK.transactionId), cy, dO.amount, dO.assetId, dP.amount, dP.assetId, toString(dK.caller), false, cE)
488+ let ci = parseIntValue(dQ._8)
489+ if (if (if (aS())
468490 then true
469- else (bR == i))
491+ else (ci == l))
470492 then true
471- else (bR == k))
472- then throw(("Put operation is blocked by admin. Status = " + toString(bR)))
473- else dG
493+ else (ci == n))
494+ then throw(("Put operation is blocked by admin. Status = " + toString(ci)))
495+ else dQ
474496 }
475497
476498
477-func dH (dI) = {
478- let dJ = invoke(az, "emit", [dI], nil)
479- if ((dJ == dJ))
499+func dR (dS) = {
500+ let dT = invoke(aN, "emit", [dS], nil)
501+ if ((dT == dT))
480502 then {
481- let dK = {
482- let dL = dJ
483- if ($isInstanceOf(dL, "Address"))
503+ let dU = {
504+ let dV = dT
505+ if ($isInstanceOf(dV, "Address"))
484506 then {
485- let dM = dL
486- invoke(dM, "emit", [dI], nil)
507+ let dW = dV
508+ invoke(dW, "emit", [dS], nil)
487509 }
488510 else unit
489511 }
490- if ((dK == dK))
491- then dI
512+ if ((dU == dU))
513+ then dS
492514 else throw("Strict value is not equal to itself.")
493515 }
494516 else throw("Strict value is not equal to itself.")
495517 }
496518
497519
498-func dN (dI,V) = {
499- let dO = if ((V == 0))
520+func dX (dS,ah) = {
521+ let dY = if ((ah == 0))
500522 then 0
501- else fraction(dI, V, a)
502- $Tuple2((dI - dO), dO)
523+ else fraction(dS, ah, b)
524+ $Tuple2((dS - dY), dY)
503525 }
504526
505527
506-func dP (dQ,dR,O,P) = {
507- let dS = (P == unit)
508- let dT = bo(aL(aS))
509- let dU = bo(aL(aT))
510- let dV = if ((dR == aS))
528+func dZ (ea,eb,aa,ab) = {
529+ let ec = (ab == unit)
530+ let ed = bD(aZ(bh))
531+ let ee = bD(aZ(bi))
532+ let ef = if ((eb == bh))
511533 then true
512- else if ((dR == aT))
534+ else if ((eb == bi))
513535 then false
514- else aw("invalid asset")
515- let dW = if (dS)
516- then $Tuple2(dT, dU)
517- else if (dV)
518- then $Tuple2((dT - dQ), dU)
519- else $Tuple2(dT, (dU - dQ))
520- let dX = dW._1
521- let dY = dW._2
522- let dZ = if (dV)
523- then $Tuple2(dQ, 0)
524- else $Tuple2(0, dQ)
525- let ea = dZ._1
526- let eb = dZ._2
527- let dj = dN(ea, aB)._1
528- let dk = dN(eb, aB)._1
529- let ec = dN(dQ, aB)
530- let ed = ec._1
531- let dO = ec._2
532- let ee = (dX + dj)
533- let ef = (dY + dk)
534- let eg = bq(w(ef, aV), w(ee, aU))
535- let eh = A(eg, a)
536- let ei = if (dV)
537- then dX
538- else dY
539- let ej = toBigInt(ei)
540- let ek = toBigInt(valueOrErrorMessage(assetInfo(aR), (("asset " + toBase58String(aR)) + " doesn't exist")).quantity)
541- let el = if ((ek > d))
536+ else aK("invalid asset")
537+ let eg = if (ec)
538+ then $Tuple2(ed, ee)
539+ else if (ef)
540+ then $Tuple2((ed - ea), ee)
541+ else $Tuple2(ed, (ee - ea))
542+ let eh = eg._1
543+ let ei = eg._2
544+ let ej = if (ef)
545+ then $Tuple2(ea, 0)
546+ else $Tuple2(0, ea)
547+ let ek = ej._1
548+ let el = ej._2
549+ let dA = dX(ek, aP)._1
550+ let dB = dX(el, aP)._1
551+ let em = dX(ea, aP)
552+ let en = em._1
553+ let dY = em._2
554+ let eo = (eh + dA)
555+ let ep = (ei + dB)
556+ let eq = bF(D(ep, bk), D(eo, bj))
557+ let er = H(eq, b)
558+ let es = if (ef)
559+ then eh
560+ else ei
561+ let et = toBigInt(es)
562+ let eu = toBigInt(valueOrErrorMessage(assetInfo(bg), (("asset " + toBase58String(bg)) + " doesn't exist")).quantity)
563+ let ev = if ((eu > f))
542564 then true
543- else aw("initial deposit requires all coins")
544- if ((el == el))
565+ else aK("initial deposit requires all coins")
566+ if ((ev == ev))
545567 then {
546- let em = toBigInt(ed)
547- let en = max([0, toInt(((ek * (sqrtBigInt((b + ((em * b) / ej)), 18, 18, DOWN) - b)) / b))])
548- let cM = if (dS)
568+ let ew = toBigInt(en)
569+ let ex = max([0, toInt(((eu * (sqrtBigInt((d + ((ew * d) / et)), 18, 18, DOWN) - d)) / d))])
570+ let dd = if (ec)
549571 then nil
550- else [IntegerEntry(J(), eh), IntegerEntry(K(height, lastBlock.timestamp), eh), StringEntry(N(toString(value(O)), toBase58String(value(P))), aZ(ea, eb, en, eh, 0, 0, height, lastBlock.timestamp, 0, 0))]
551- let eo = bq(w(dY, aV), w(dX, aU))
552- let ep = A(eo, a)
553- let eq = {
554- let er = if (dV)
555- then $Tuple2(ea, dX)
556- else $Tuple2(eb, dY)
557- let dI = er._1
558- let es = er._2
559- let et = toInt(fraction(ek, toBigInt((dI / 2)), toBigInt(es)))
560- fraction((en - et), a, et)
572+ else [IntegerEntry(V(), er), IntegerEntry(W(height, lastBlock.timestamp), er), StringEntry(Z(toString(value(aa)), toBase58String(value(ab))), bo(ek, el, ex, er, 0, 0, height, lastBlock.timestamp, 0, 0))]
573+ let ey = bF(D(ei, bk), D(eh, bj))
574+ let ez = H(ey, b)
575+ let eA = {
576+ let eB = if (ef)
577+ then $Tuple2(ek, eh)
578+ else $Tuple2(el, ei)
579+ let dS = eB._1
580+ let eC = eB._2
581+ let eD = toInt(fraction(eu, toBigInt((dS / 2)), toBigInt(eC)))
582+ fraction((ex - eD), b, eD)
561583 }
562- $Tuple5(en, cM, dO, eq, dV)
584+ $Tuple5(ex, dd, dY, eA, ef)
563585 }
564586 else throw("Strict value is not equal to itself.")
565587 }
566588
567589
568-func eu (ev,ed,dR,O,P) = {
569- let dS = (P == unit)
570- let bD = aG()
571- let bE = parseIntValue(bD[q])
572- let bF = parseIntValue(bD[r])
573- let ew = [if ((dR == aR))
590+func eE (eF,en,eb,aa,ab) = {
591+ let ec = (ab == unit)
592+ let bS = aU()
593+ let bT = parseIntValue(bS[t])
594+ let bU = parseIntValue(bS[u])
595+ let eG = [if ((eb == bg))
574596 then true
575- else aw("invalid lp asset")]
576- if ((ew == ew))
597+ else aK("invalid lp asset")]
598+ if ((eG == eG))
577599 then {
578- let ex = if ((ev == aS))
600+ let eH = if ((eF == bh))
579601 then true
580- else if ((ev == aT))
602+ else if ((eF == bi))
581603 then false
582- else aw("invalid asset")
583- let ey = if (ex)
584- then toBigInt(bo(aL(aS)))
585- else toBigInt(bo(aL(aT)))
586- let ez = if (ex)
587- then bE
588- else bF
589- let eA = bo(aL(aS))
590- let eB = bo(aL(aT))
591- let eC = if (ex)
592- then eA
593- else eB
594- let eD = toBigInt(eC)
595- let ek = toBigInt(valueOrErrorMessage(assetInfo(aR), (("asset " + toBase58String(aR)) + " doesn't exist")).quantity)
596- let eE = toBigInt(ed)
597- let eF = max([0, toInt(((ey * (b - pow((b - ((eE * b) / ek)), 18, f, 0, 18, DOWN))) / b))])
598- let eG = dN(eF, aD)
599- let eH = eG._1
600- let dO = eG._2
601- let eI = if (ex)
602- then $Tuple4(eH, 0, (eA - eF), eB)
603- else $Tuple4(0, eH, eA, (eB - eF))
604- let eJ = eI._1
605- let eK = eI._2
606- let eL = eI._3
607- let eM = eI._4
608- let eg = bq(w(eM, aV), w(eL, aU))
609- let eh = A(eg, a)
610- let cM = if (dS)
604+ else aK("invalid asset")
605+ let eI = if (eH)
606+ then toBigInt(bD(aZ(bh)))
607+ else toBigInt(bD(aZ(bi)))
608+ let eJ = if (eH)
609+ then bT
610+ else bU
611+ let eK = bD(aZ(bh))
612+ let eL = bD(aZ(bi))
613+ let eM = if (eH)
614+ then eK
615+ else eL
616+ let eN = toBigInt(eM)
617+ let eu = toBigInt(valueOrErrorMessage(assetInfo(bg), (("asset " + toBase58String(bg)) + " doesn't exist")).quantity)
618+ let eO = toBigInt(en)
619+ let eP = max([0, toInt(((eI * (d - pow((d - ((eO * d) / eu)), 18, h, 0, 18, DOWN))) / d))])
620+ let eQ = dX(eP, aR)
621+ let eR = eQ._1
622+ let dY = eQ._2
623+ let eS = if (eH)
624+ then $Tuple4(eR, 0, (eK - eP), eL)
625+ else $Tuple4(0, eR, eK, (eL - eP))
626+ let eT = eS._1
627+ let eU = eS._2
628+ let eV = eS._3
629+ let eW = eS._4
630+ let eq = bF(D(eW, bk), D(eV, bj))
631+ let er = H(eq, b)
632+ let dd = if (ec)
611633 then nil
612- else [StringEntry(Q(toString(value(O)), toBase58String(value(P))), bk(eJ, eK, ed, eh, height, lastBlock.timestamp)), IntegerEntry(J(), eh), IntegerEntry(K(height, lastBlock.timestamp), eh)]
613- let eo = bq(w(eB, aV), w(eA, aU))
614- let ep = A(eo, a)
615- let eq = {
616- let eN = (toInt(fraction(ey, eE, ek)) * 2)
617- fraction((eH - eN), a, eN)
634+ else [StringEntry(ac(toString(value(aa)), toBase58String(value(ab))), bz(eT, eU, en, er, height, lastBlock.timestamp)), IntegerEntry(V(), er), IntegerEntry(W(height, lastBlock.timestamp), er)]
635+ let ey = bF(D(eL, bk), D(eK, bj))
636+ let ez = H(ey, b)
637+ let eA = {
638+ let eX = (toInt(fraction(eI, eO, eu)) * 2)
639+ fraction((eR - eX), b, eX)
618640 }
619- $Tuple5(eH, cM, dO, eq, ex)
641+ $Tuple5(eR, dd, dY, eA, eH)
620642 }
621643 else throw("Strict value is not equal to itself.")
622644 }
623645
624646
625-func eO () = {
626- let dL = getString(H())
627- if ($isInstanceOf(dL, "String"))
647+func eY () = {
648+ let dV = getString(T())
649+ if ($isInstanceOf(dV, "String"))
628650 then {
629- let eP = dL
630- fromBase58String(eP)
651+ let eZ = dV
652+ fromBase58String(eZ)
631653 }
632- else if ($isInstanceOf(dL, "Unit"))
654+ else if ($isInstanceOf(dV, "Unit"))
633655 then unit
634656 else throw("Match error")
635657 }
636658
637659
638-func eQ () = {
639- let dL = getString(I())
640- if ($isInstanceOf(dL, "String"))
660+func fa () = {
661+ let dV = getString(U())
662+ if ($isInstanceOf(dV, "String"))
641663 then {
642- let eP = dL
643- fromBase58String(eP)
664+ let eZ = dV
665+ fromBase58String(eZ)
644666 }
645- else if ($isInstanceOf(dL, "Unit"))
667+ else if ($isInstanceOf(dV, "Unit"))
646668 then unit
647669 else throw("Match error")
648670 }
649671
650672
651-func eR (dA) = {
652- let dL = eO()
653- if ($isInstanceOf(dL, "ByteVector"))
673+func fb (dK) = {
674+ let dV = eY()
675+ if ($isInstanceOf(dV, "ByteVector"))
654676 then {
655- let eS = dL
656- (dA.callerPublicKey == eS)
677+ let fc = dV
678+ (dK.callerPublicKey == fc)
657679 }
658- else if ($isInstanceOf(dL, "Unit"))
659- then (dA.caller == this)
680+ else if ($isInstanceOf(dV, "Unit"))
681+ then (dK.caller == this)
660682 else throw("Match error")
661683 }
662684
663685
664-func eT (dA) = {
665- let eU = throw("Permission denied")
666- let dL = eO()
667- if ($isInstanceOf(dL, "ByteVector"))
686+func fd (dK) = {
687+ let fe = throw("Permission denied")
688+ let dV = eY()
689+ if ($isInstanceOf(dV, "ByteVector"))
668690 then {
669- let eS = dL
670- if ((dA.callerPublicKey == eS))
691+ let fc = dV
692+ if ((dK.callerPublicKey == fc))
671693 then true
672- else eU
694+ else fe
673695 }
674- else if ($isInstanceOf(dL, "Unit"))
675- then if ((dA.caller == this))
696+ else if ($isInstanceOf(dV, "Unit"))
697+ then if ((dK.caller == this))
676698 then true
677- else eU
699+ else fe
678700 else throw("Match error")
679701 }
680702
681703
682-@Callable(dA)
683-func setManager (eV) = {
684- let eW = eT(dA)
685- if ((eW == eW))
704+@Callable(dK)
705+func setManager (ff) = {
706+ let fg = fd(dK)
707+ if ((fg == fg))
686708 then {
687- let eX = fromBase58String(eV)
688- if ((eX == eX))
689- then [StringEntry(I(), eV)]
709+ let fh = fromBase58String(ff)
710+ if ((fh == fh))
711+ then [StringEntry(U(), ff)]
690712 else throw("Strict value is not equal to itself.")
691713 }
692714 else throw("Strict value is not equal to itself.")
694716
695717
696718
697-@Callable(dA)
719+@Callable(dK)
698720 func confirmManager () = {
699- let eY = eQ()
700- let eZ = if (isDefined(eY))
721+ let fi = fa()
722+ let fj = if (isDefined(fi))
701723 then true
702724 else throw("No pending manager")
703- if ((eZ == eZ))
725+ if ((fj == fj))
704726 then {
705- let fa = if ((dA.callerPublicKey == value(eY)))
727+ let fk = if ((dK.callerPublicKey == value(fi)))
706728 then true
707729 else throw("You are not pending manager")
708- if ((fa == fa))
709- then [StringEntry(H(), toBase58String(value(eY))), DeleteEntry(I())]
730+ if ((fk == fk))
731+ then [StringEntry(T(), toBase58String(value(fi))), DeleteEntry(U())]
710732 else throw("Strict value is not equal to itself.")
711733 }
712734 else throw("Strict value is not equal to itself.")
714736
715737
716738
717-@Callable(dA)
718-func put (ch,fb) = if ((0 > ch))
739+@Callable(dK)
740+func put (cy,fl) = if ((0 > cy))
719741 then throw("Invalid slippageTolerance passed")
720742 else {
721- let dG = dD(dA, ch, true)
722- let cJ = dG._2
723- let bO = dG._7
724- let cf = dG._9
725- let cK = dG._10
726- let cL = dG._11
727- let fc = dG._12
728- let fd = dG._13
729- let dE = toBigInt(value(dA.payments[0]).amount)
730- let dF = toBigInt(value(dA.payments[1]).amount)
731- let da = cT(dE, dF, toBigInt(0))
732- if ((da == da))
743+ let dQ = dN(dK, cy, true)
744+ let da = dQ._2
745+ let cf = dQ._7
746+ let cw = dQ._9
747+ let db = dQ._10
748+ let dc = dQ._11
749+ let fm = dQ._12
750+ let fn = dQ._13
751+ let dO = toBigInt(value(dK.payments[0]).amount)
752+ let dP = toBigInt(value(dK.payments[1]).amount)
753+ let dr = dk(dO, dP, toBigInt(0))
754+ if ((dr == dr))
733755 then {
734- let dJ = invoke(az, "emit", [cJ], nil)
735- if ((dJ == dJ))
756+ let dT = invoke(aN, "emit", [da], nil)
757+ if ((dT == dT))
736758 then {
737- let dK = {
738- let dL = dJ
739- if ($isInstanceOf(dL, "Address"))
759+ let dU = {
760+ let dV = dT
761+ if ($isInstanceOf(dV, "Address"))
740762 then {
741- let dM = dL
742- invoke(dM, "emit", [cJ], nil)
763+ let dW = dV
764+ invoke(dW, "emit", [da], nil)
743765 }
744766 else unit
745767 }
746- if ((dK == dK))
768+ if ((dU == dU))
747769 then {
748- let fe = if ((cK > 0))
749- then invoke(aY, "put", nil, [AttachedPayment(fc, cK)])
770+ let fo = if ((db > 0))
771+ then invoke(bn, "put", nil, [AttachedPayment(fm, db)])
750772 else nil
751- if ((fe == fe))
773+ if ((fo == fo))
752774 then {
753- let ff = if ((cL > 0))
754- then invoke(aY, "put", nil, [AttachedPayment(fd, cL)])
775+ let fp = if ((dc > 0))
776+ then invoke(bn, "put", nil, [AttachedPayment(fn, dc)])
755777 else nil
756- if ((ff == ff))
778+ if ((fp == fp))
757779 then {
758- let fg = if (fb)
780+ let fq = if (fl)
759781 then {
760- let fh = invoke(aX, "stake", nil, [AttachedPayment(bO, cJ)])
761- if ((fh == fh))
782+ let fr = invoke(bm, "stake", nil, [AttachedPayment(cf, da)])
783+ if ((fr == fr))
762784 then nil
763785 else throw("Strict value is not equal to itself.")
764786 }
765- else [ScriptTransfer(dA.caller, cJ, bO)]
766- let fi = db(0, 0, 0)
767- if ((fi == fi))
787+ else [ScriptTransfer(dK.caller, da, cf)]
788+ let fs = ds(0, 0, 0)
789+ if ((fs == fs))
768790 then {
769- let cS = fi._2
770- let fj = fi._1
771- let fk = df(da, cS)
772- if ((fk == fk))
773- then ((cf ++ fg) ++ fj)
791+ let dj = fs._2
792+ let ft = fs._1
793+ let fu = dw(dr, dj)
794+ if ((fu == fu))
795+ then ((cw ++ fq) ++ ft)
774796 else throw("Strict value is not equal to itself.")
775797 }
776798 else throw("Strict value is not equal to itself.")
788810
789811
790812
791-@Callable(dA)
792-func putForFree (fl) = if ((0 > fl))
813+@Callable(dK)
814+func putForFree (fv) = if ((0 > fv))
793815 then throw("Invalid value passed")
794816 else {
795- let dG = dD(dA, fl, false)
796- let cf = dG._9
797- let dE = toBigInt(value(dA.payments[0]).amount)
798- let dF = toBigInt(value(dA.payments[1]).amount)
799- let da = cT(dE, dF, toBigInt(0))
800- if ((da == da))
817+ let dQ = dN(dK, fv, false)
818+ let cw = dQ._9
819+ let dO = toBigInt(value(dK.payments[0]).amount)
820+ let dP = toBigInt(value(dK.payments[1]).amount)
821+ let dr = dk(dO, dP, toBigInt(0))
822+ if ((dr == dr))
801823 then {
802- let fm = db(0, 0, 0)
803- let fj = fm._1
804- let cS = fm._2
805- let fk = df(da, cS)
806- if ((fk == fk))
807- then (cf ++ fj)
824+ let fw = ds(0, 0, 0)
825+ let ft = fw._1
826+ let dj = fw._2
827+ let fu = dw(dr, dj)
828+ if ((fu == fu))
829+ then (cw ++ ft)
808830 else throw("Strict value is not equal to itself.")
809831 }
810832 else throw("Strict value is not equal to itself.")
812834
813835
814836
815-@Callable(dA)
816-func putOneTkn (fn,fo) = {
817- let fp = {
818- let aC = invoke(az, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
819- if ($isInstanceOf(aC, "Boolean"))
820- then aC
821- else throw(($getType(aC) + " couldn't be cast to Boolean"))
837+@Callable(dK)
838+func putOneTkn (fx,fy) = {
839+ let fz = {
840+ let aQ = invoke(aN, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
841+ if ($isInstanceOf(aQ, "Boolean"))
842+ then aQ
843+ else throw(($getType(aQ) + " couldn't be cast to Boolean"))
822844 }
823- let fq = if (if (if (aE())
845+ let fA = if (if (if (aS())
824846 then true
825- else (aQ == i))
847+ else (bf == l))
826848 then true
827- else (aQ == k))
849+ else (bf == n))
828850 then true
829- else fp
830- let ew = [if (if (!(fq))
851+ else fz
852+ let eG = [if (if (!(fA))
831853 then true
832- else eR(dA))
854+ else fb(dK))
833855 then true
834- else aw("put operation is blocked by admin"), if ((size(dA.payments) == 1))
856+ else aK("put operation is blocked by admin"), if ((size(dK.payments) == 1))
835857 then true
836- else aw("exactly 1 payment are expected")]
837- if ((ew == ew))
858+ else aK("exactly 1 payment are expected")]
859+ if ((eG == eG))
838860 then {
839- let fr = dA.payments[0]
840- let dR = fr.assetId
841- let dQ = fr.amount
842- let da = if ((dR == aS))
843- then cT(toBigInt(dQ), toBigInt(0), toBigInt(0))
844- else if ((dR == aT))
845- then cT(toBigInt(0), toBigInt(dQ), toBigInt(0))
846- else aw("payment asset is not supported")
847- if ((da == da))
861+ let fB = dK.payments[0]
862+ let eb = fB.assetId
863+ let ea = fB.amount
864+ let dr = if ((eb == bh))
865+ then dk(toBigInt(ea), toBigInt(0), toBigInt(0))
866+ else if ((eb == bi))
867+ then dk(toBigInt(0), toBigInt(ea), toBigInt(0))
868+ else aK("payment asset is not supported")
869+ if ((dr == dr))
848870 then {
849- let O = dA.caller
850- let P = dA.transactionId
851- let fs = dP(dQ, dR, O, P)
852- if ((fs == fs))
871+ let aa = dK.caller
872+ let ab = dK.transactionId
873+ let fC = dZ(ea, eb, aa, ab)
874+ if ((fC == fC))
853875 then {
854- let dV = fs._5
855- let ft = fs._4
856- let dO = fs._3
857- let cM = fs._2
858- let fu = fs._1
859- let fv = if (if ((fn > 0))
860- then (fn > fu)
876+ let ef = fC._5
877+ let fD = fC._4
878+ let dY = fC._3
879+ let dd = fC._2
880+ let fE = fC._1
881+ let fF = if (if ((fx > 0))
882+ then (fx > fE)
861883 else false)
862- then aw(makeString(["amount to receive is less than ", toString(fn)], ""))
863- else fu
864- let dJ = dH(fv)
865- if ((dJ == dJ))
884+ then aK(makeString(["amount to receive is less than ", toString(fx)], ""))
885+ else fE
886+ let dT = dR(fF)
887+ if ((dT == dT))
866888 then {
867- let fg = if (fo)
889+ let fq = if (fy)
868890 then {
869- let fw = invoke(aX, "stake", nil, [AttachedPayment(aR, fv)])
870- if ((fw == fw))
891+ let fG = invoke(bm, "stake", nil, [AttachedPayment(bg, fF)])
892+ if ((fG == fG))
871893 then nil
872894 else throw("Strict value is not equal to itself.")
873895 }
874- else [ScriptTransfer(dA.caller, fv, aR)]
875- let fx = if ((dO > 0))
876- then [ScriptTransfer(aA, dO, dR)]
896+ else [ScriptTransfer(dK.caller, fF, bg)]
897+ let fH = if ((dY > 0))
898+ then [ScriptTransfer(aO, dY, eb)]
877899 else nil
878- let fy = if ((this == aA))
900+ let fI = if ((this == aO))
879901 then $Tuple2(0, 0)
880- else if (dV)
881- then $Tuple2(-(dO), 0)
882- else $Tuple2(0, -(dO))
883- let dc = fy._1
884- let dd = fy._2
885- let fz = db(dc, dd, 0)
886- let fj = fz._1
887- let cS = fz._2
888- let dm = value(getString(W))
889- let fk = df(da, cS)
890- if ((fk == fk))
891- then $Tuple2((((cM ++ fg) ++ fx) ++ fj), fv)
902+ else if (ef)
903+ then $Tuple2(-(dY), 0)
904+ else $Tuple2(0, -(dY))
905+ let dt = fI._1
906+ let du = fI._2
907+ let fJ = ds(dt, du, 0)
908+ let ft = fJ._1
909+ let dj = fJ._2
910+ let dD = value(getString(ai))
911+ let fu = dw(dr, dj)
912+ if ((fu == fu))
913+ then $Tuple2((((dd ++ fq) ++ fH) ++ ft), fF)
892914 else throw("Strict value is not equal to itself.")
893915 }
894916 else throw("Strict value is not equal to itself.")
902924
903925
904926
905-@Callable(dA)
906-func putOneTknREADONLY (dR,dQ) = {
907- let fA = dP(dQ, aJ(dR), unit, unit)
908- let fu = fA._1
909- let cM = fA._2
910- let dO = fA._3
911- let ft = fA._4
912- let dV = fA._5
913- $Tuple2(nil, $Tuple3(fu, dO, ft))
927+@Callable(dK)
928+func putOneTknREADONLY (eb,ea) = {
929+ let fK = dZ(ea, aX(eb), unit, unit)
930+ let fE = fK._1
931+ let dd = fK._2
932+ let dY = fK._3
933+ let fD = fK._4
934+ let ef = fK._5
935+ $Tuple2(nil, $Tuple3(fE, dY, fD))
914936 }
915937
916938
917939
918-@Callable(dA)
919-func getOneTkn (fB,fn) = {
920- let fp = {
921- let aC = invoke(az, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
922- if ($isInstanceOf(aC, "Boolean"))
923- then aC
924- else throw(($getType(aC) + " couldn't be cast to Boolean"))
940+@Callable(dK)
941+func getOneTkn (fL,fx) = {
942+ let fz = {
943+ let aQ = invoke(aN, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
944+ if ($isInstanceOf(aQ, "Boolean"))
945+ then aQ
946+ else throw(($getType(aQ) + " couldn't be cast to Boolean"))
925947 }
926- let fC = if (if (aE())
948+ let fM = if (if (aS())
927949 then true
928- else (aQ == k))
950+ else (bf == n))
929951 then true
930- else fp
931- let ew = [if (if (!(fC))
952+ else fz
953+ let eG = [if (if (!(fM))
932954 then true
933- else eR(dA))
955+ else fb(dK))
934956 then true
935- else aw("get operation is blocked by admin"), if ((size(dA.payments) == 1))
957+ else aK("get operation is blocked by admin"), if ((size(dK.payments) == 1))
936958 then true
937- else aw("exactly 1 payment are expected")]
938- if ((ew == ew))
959+ else aK("exactly 1 payment are expected")]
960+ if ((eG == eG))
939961 then {
940- let ev = aJ(fB)
941- let fr = dA.payments[0]
942- let dR = fr.assetId
943- let ed = fr.amount
944- let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
945- if ((da == da))
962+ let eF = aX(fL)
963+ let fB = dK.payments[0]
964+ let eb = fB.assetId
965+ let en = fB.amount
966+ let dr = dk(toBigInt(0), toBigInt(0), toBigInt(0))
967+ if ((dr == dr))
946968 then {
947- let O = dA.caller
948- let P = dA.transactionId
949- let fD = eu(ev, ed, dR, O, P)
950- if ((fD == fD))
969+ let aa = dK.caller
970+ let ab = dK.transactionId
971+ let fN = eE(eF, en, eb, aa, ab)
972+ if ((fN == fN))
951973 then {
952- let ex = fD._5
953- let ft = fD._4
954- let dO = fD._3
955- let cM = fD._2
956- let fE = fD._1
957- let dI = if (if ((fn > 0))
958- then (fn > fE)
974+ let eH = fN._5
975+ let fD = fN._4
976+ let dY = fN._3
977+ let dd = fN._2
978+ let fO = fN._1
979+ let dS = if (if ((fx > 0))
980+ then (fx > fO)
959981 else false)
960- then aw(makeString(["amount to receive is less than ", toString(fn)], ""))
961- else fE
962- let fF = invoke(az, "burn", [ed], [AttachedPayment(dR, ed)])
963- if ((fF == fF))
982+ then aK(makeString(["amount to receive is less than ", toString(fx)], ""))
983+ else fO
984+ let fP = invoke(aN, "burn", [en], [AttachedPayment(eb, en)])
985+ if ((fP == fP))
964986 then {
965- let fG = [ScriptTransfer(O, dI, ev)]
966- let fx = if ((dO > 0))
967- then [ScriptTransfer(aA, dO, ev)]
987+ let fQ = [ScriptTransfer(aa, dS, eF)]
988+ let fH = if ((dY > 0))
989+ then [ScriptTransfer(aO, dY, eF)]
968990 else nil
969- let fH = {
970- let fI = if ((this == aA))
991+ let fR = {
992+ let fS = if ((this == aO))
971993 then 0
972- else dO
973- if (ex)
974- then $Tuple2(-((dI + fI)), 0)
975- else $Tuple2(0, -((dI + fI)))
994+ else dY
995+ if (eH)
996+ then $Tuple2(-((dS + fS)), 0)
997+ else $Tuple2(0, -((dS + fS)))
976998 }
977- let dc = fH._1
978- let dd = fH._2
979- let fJ = db(dc, dd, 0)
980- let fj = fJ._1
981- let cS = fJ._2
982- let fk = df(da, cS)
983- if ((fk == fk))
984- then $Tuple2((((cM ++ fG) ++ fx) ++ fj), dI)
999+ let dt = fR._1
1000+ let du = fR._2
1001+ let fT = ds(dt, du, 0)
1002+ let ft = fT._1
1003+ let dj = fT._2
1004+ let fu = dw(dr, dj)
1005+ if ((fu == fu))
1006+ then $Tuple2((((dd ++ fQ) ++ fH) ++ ft), dS)
9851007 else throw("Strict value is not equal to itself.")
9861008 }
9871009 else throw("Strict value is not equal to itself.")
9951017
9961018
9971019
998-@Callable(dA)
999-func getOneTknREADONLY (ev,ed) = {
1000- let fK = eu(aJ(ev), ed, aR, unit, unit)
1001- let fE = fK._1
1002- let cM = fK._2
1003- let dO = fK._3
1004- let ft = fK._4
1005- let ex = fK._5
1006- $Tuple2(nil, $Tuple3(fE, dO, ft))
1020+@Callable(dK)
1021+func getOneTknREADONLY (eF,en) = {
1022+ let fU = eE(aX(eF), en, bg, unit, unit)
1023+ let fO = fU._1
1024+ let dd = fU._2
1025+ let dY = fU._3
1026+ let fD = fU._4
1027+ let eH = fU._5
1028+ $Tuple2(nil, $Tuple3(fO, dY, fD))
10071029 }
10081030
10091031
10101032
1011-@Callable(dA)
1012-func unstakeAndGetOneTkn (fL,fB,fn) = {
1013- let fp = {
1014- let aC = invoke(az, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1015- if ($isInstanceOf(aC, "Boolean"))
1016- then aC
1017- else throw(($getType(aC) + " couldn't be cast to Boolean"))
1033+@Callable(dK)
1034+func unstakeAndGetOneTkn (fV,fL,fx) = {
1035+ let fz = {
1036+ let aQ = invoke(aN, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1037+ if ($isInstanceOf(aQ, "Boolean"))
1038+ then aQ
1039+ else throw(($getType(aQ) + " couldn't be cast to Boolean"))
10181040 }
1019- let fC = if (if (aE())
1041+ let fM = if (if (aS())
10201042 then true
1021- else (aQ == k))
1043+ else (bf == n))
10221044 then true
1023- else fp
1024- let ew = [if (if (!(fC))
1045+ else fz
1046+ let eG = [if (if (!(fM))
10251047 then true
1026- else eR(dA))
1048+ else fb(dK))
10271049 then true
1028- else aw("get operation is blocked by admin"), if ((size(dA.payments) == 0))
1050+ else aK("get operation is blocked by admin"), if ((size(dK.payments) == 0))
10291051 then true
1030- else aw("no payments are expected")]
1031- if ((ew == ew))
1052+ else aK("no payments are expected")]
1053+ if ((eG == eG))
10321054 then {
1033- let ev = aJ(fB)
1034- let O = dA.caller
1035- let P = dA.transactionId
1036- let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
1037- if ((da == da))
1055+ let eF = aX(fL)
1056+ let aa = dK.caller
1057+ let ab = dK.transactionId
1058+ let dr = dk(toBigInt(0), toBigInt(0), toBigInt(0))
1059+ if ((dr == dr))
10381060 then {
1039- let fM = invoke(aX, "unstake", [toBase58String(aR), fL], nil)
1040- if ((fM == fM))
1061+ let fW = invoke(bm, "unstake", [toBase58String(bg), fV], nil)
1062+ if ((fW == fW))
10411063 then {
1042- let fN = eu(ev, fL, aR, O, P)
1043- if ((fN == fN))
1064+ let fX = eE(eF, fV, bg, aa, ab)
1065+ if ((fX == fX))
10441066 then {
1045- let ex = fN._5
1046- let ft = fN._4
1047- let dO = fN._3
1048- let cM = fN._2
1049- let fE = fN._1
1050- let dI = if (if ((fn > 0))
1051- then (fn > fE)
1067+ let eH = fX._5
1068+ let fD = fX._4
1069+ let dY = fX._3
1070+ let dd = fX._2
1071+ let fO = fX._1
1072+ let dS = if (if ((fx > 0))
1073+ then (fx > fO)
10521074 else false)
1053- then aw(makeString(["amount to receive is less than ", toString(fn)], ""))
1054- else fE
1055- let fF = invoke(az, "burn", [fL], [AttachedPayment(aR, fL)])
1056- if ((fF == fF))
1075+ then aK(makeString(["amount to receive is less than ", toString(fx)], ""))
1076+ else fO
1077+ let fP = invoke(aN, "burn", [fV], [AttachedPayment(bg, fV)])
1078+ if ((fP == fP))
10571079 then {
1058- let fG = [ScriptTransfer(dA.caller, dI, ev)]
1059- let fx = if ((dO > 0))
1060- then [ScriptTransfer(aA, dO, ev)]
1080+ let fQ = [ScriptTransfer(dK.caller, dS, eF)]
1081+ let fH = if ((dY > 0))
1082+ then [ScriptTransfer(aO, dY, eF)]
10611083 else nil
1062- let fO = {
1063- let fI = if ((this == aA))
1084+ let fY = {
1085+ let fS = if ((this == aO))
10641086 then 0
1065- else dO
1066- if (ex)
1067- then $Tuple2(-((dI + fI)), 0)
1068- else $Tuple2(0, -((dI + fI)))
1087+ else dY
1088+ if (eH)
1089+ then $Tuple2(-((dS + fS)), 0)
1090+ else $Tuple2(0, -((dS + fS)))
10691091 }
1070- let dc = fO._1
1071- let dd = fO._2
1072- let fP = db(dc, dd, 0)
1073- let fj = fP._1
1074- let cS = fP._2
1075- let fk = df(da, cS)
1076- if ((fk == fk))
1077- then $Tuple2((((cM ++ fG) ++ fx) ++ fj), dI)
1092+ let dt = fY._1
1093+ let du = fY._2
1094+ let fZ = ds(dt, du, 0)
1095+ let ft = fZ._1
1096+ let dj = fZ._2
1097+ let fu = dw(dr, dj)
1098+ if ((fu == fu))
1099+ then $Tuple2((((dd ++ fQ) ++ fH) ++ ft), dS)
10781100 else throw("Strict value is not equal to itself.")
10791101 }
10801102 else throw("Strict value is not equal to itself.")
10901112
10911113
10921114
1093-@Callable(dA)
1115+@Callable(dK)
10941116 func get () = {
1095- let cx = dz(dA)
1096- let fQ = cx._1
1097- let ce = cx._2
1098- let dC = cx._3
1099- let bM = cx._4
1100- let cf = cx._5
1101- let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
1102- if ((da == da))
1117+ let cO = dJ(dK)
1118+ let ga = cO._1
1119+ let cv = cO._2
1120+ let dM = cO._3
1121+ let cd = cO._4
1122+ let cw = cO._5
1123+ let dr = dk(toBigInt(0), toBigInt(0), toBigInt(0))
1124+ if ((dr == dr))
11031125 then {
1104- let fR = invoke(az, "burn", [dC], [AttachedPayment(bM, dC)])
1105- if ((fR == fR))
1126+ let gb = invoke(aN, "burn", [dM], [AttachedPayment(cd, dM)])
1127+ if ((gb == gb))
11061128 then {
1107- let fS = db(-(fQ), -(ce), 0)
1108- let fj = fS._1
1109- let cS = fS._2
1110- let fk = df(da, cS)
1111- if ((fk == fk))
1112- then (cf ++ fj)
1129+ let gc = ds(-(ga), -(cv), 0)
1130+ let ft = gc._1
1131+ let dj = gc._2
1132+ let fu = dw(dr, dj)
1133+ if ((fu == fu))
1134+ then (cw ++ ft)
11131135 else throw("Strict value is not equal to itself.")
11141136 }
11151137 else throw("Strict value is not equal to itself.")
11191141
11201142
11211143
1122-@Callable(dA)
1123-func getNoLess (fT,fU) = {
1124- let cx = dz(dA)
1125- let cd = cx._1
1126- let ce = cx._2
1127- let dC = cx._3
1128- let bM = cx._4
1129- let cf = cx._5
1130- if ((fT > cd))
1131- then throw(((("noLessThenAmtAsset failed: " + toString(cd)) + " < ") + toString(fT)))
1132- else if ((fU > ce))
1133- then throw(((("noLessThenPriceAsset failed: " + toString(ce)) + " < ") + toString(fU)))
1144+@Callable(dK)
1145+func getNoLess (gd,ge) = {
1146+ let cO = dJ(dK)
1147+ let cu = cO._1
1148+ let cv = cO._2
1149+ let dM = cO._3
1150+ let cd = cO._4
1151+ let cw = cO._5
1152+ if ((gd > cu))
1153+ then throw(((("noLessThenAmtAsset failed: " + toString(cu)) + " < ") + toString(gd)))
1154+ else if ((ge > cv))
1155+ then throw(((("noLessThenPriceAsset failed: " + toString(cv)) + " < ") + toString(ge)))
11341156 else {
1135- let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
1136- if ((da == da))
1157+ let dr = dk(toBigInt(0), toBigInt(0), toBigInt(0))
1158+ if ((dr == dr))
11371159 then {
1138- let fR = invoke(az, "burn", [dC], [AttachedPayment(bM, dC)])
1139- if ((fR == fR))
1160+ let gb = invoke(aN, "burn", [dM], [AttachedPayment(cd, dM)])
1161+ if ((gb == gb))
11401162 then {
1141- let fV = db(-(cd), -(ce), 0)
1142- let fj = fV._1
1143- let cS = fV._2
1144- let fk = df(da, cS)
1145- if ((fk == fk))
1146- then (cf ++ fj)
1163+ let gf = ds(-(cu), -(cv), 0)
1164+ let ft = gf._1
1165+ let dj = gf._2
1166+ let fu = dw(dr, dj)
1167+ if ((fu == fu))
1168+ then (cw ++ ft)
11471169 else throw("Strict value is not equal to itself.")
11481170 }
11491171 else throw("Strict value is not equal to itself.")
11541176
11551177
11561178
1157-@Callable(dA)
1158-func unstakeAndGet (dI) = {
1159- let fW = if ((size(dA.payments) != 0))
1179+@Callable(dK)
1180+func unstakeAndGet (dS) = {
1181+ let gg = if ((size(dK.payments) != 0))
11601182 then throw("No payments are expected")
11611183 else true
1162- if ((fW == fW))
1184+ if ((gg == gg))
11631185 then {
1164- let bD = aG()
1165- let bO = fromBase58String(bD[n])
1166- let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
1167- if ((da == da))
1186+ let bS = aU()
1187+ let cf = fromBase58String(bS[q])
1188+ let dr = dk(toBigInt(0), toBigInt(0), toBigInt(0))
1189+ if ((dr == dr))
11681190 then {
1169- let fM = invoke(aX, "unstake", [toBase58String(bO), dI], nil)
1170- if ((fM == fM))
1191+ let fW = invoke(bm, "unstake", [toBase58String(cf), dS], nil)
1192+ if ((fW == fW))
11711193 then {
1172- let cx = bK(toBase58String(dA.transactionId), toBase58String(bO), dI, dA.caller)
1173- let cd = cx._1
1174- let ce = cx._2
1175- let bR = parseIntValue(cx._9)
1176- let cf = cx._10
1177- let fX = if (if (aE())
1194+ let cO = cb(toBase58String(dK.transactionId), toBase58String(cf), dS, dK.caller)
1195+ let cu = cO._1
1196+ let cv = cO._2
1197+ let ci = parseIntValue(cO._9)
1198+ let cw = cO._10
1199+ let gh = if (if (aS())
11781200 then true
1179- else (bR == k))
1180- then throw(("Get operation is blocked by admin. Status = " + toString(bR)))
1201+ else (ci == n))
1202+ then throw(("Get operation is blocked by admin. Status = " + toString(ci)))
11811203 else true
1182- if ((fX == fX))
1204+ if ((gh == gh))
11831205 then {
1184- let fR = invoke(az, "burn", [dI], [AttachedPayment(bO, dI)])
1185- if ((fR == fR))
1206+ let gb = invoke(aN, "burn", [dS], [AttachedPayment(cf, dS)])
1207+ if ((gb == gb))
11861208 then {
1187- let fY = db(-(cd), -(ce), 0)
1188- let fj = fY._1
1189- let cS = fY._2
1190- let fk = df(da, cS)
1191- if ((fk == fk))
1192- then (cf ++ fj)
1209+ let gi = ds(-(cu), -(cv), 0)
1210+ let ft = gi._1
1211+ let dj = gi._2
1212+ let fu = dw(dr, dj)
1213+ if ((fu == fu))
1214+ then (cw ++ ft)
11931215 else throw("Strict value is not equal to itself.")
11941216 }
11951217 else throw("Strict value is not equal to itself.")
12051227
12061228
12071229
1208-@Callable(dA)
1209-func unstakeAndGetNoLess (fL,fZ,fU) = {
1210- let fC = if (aE())
1230+@Callable(dK)
1231+func unstakeAndGetNoLess (fV,gj,ge) = {
1232+ let fM = if (aS())
12111233 then true
1212- else (aQ == k)
1213- let ew = [if (!(fC))
1234+ else (bf == n)
1235+ let eG = [if (!(fM))
12141236 then true
1215- else throw("get operation is blocked by admin"), if ((size(dA.payments) == 0))
1237+ else throw("get operation is blocked by admin"), if ((size(dK.payments) == 0))
12161238 then true
12171239 else throw("no payments are expected")]
1218- if ((ew == ew))
1240+ if ((eG == eG))
12191241 then {
1220- let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
1221- if ((da == da))
1242+ let dr = dk(toBigInt(0), toBigInt(0), toBigInt(0))
1243+ if ((dr == dr))
12221244 then {
1223- let fM = invoke(aX, "unstake", [toBase58String(aR), fL], nil)
1224- if ((fM == fM))
1245+ let fW = invoke(bm, "unstake", [toBase58String(bg), fV], nil)
1246+ if ((fW == fW))
12251247 then {
1226- let cx = bK(toBase58String(dA.transactionId), toBase58String(aR), fL, dA.caller)
1227- let cd = cx._1
1228- let ce = cx._2
1229- let cf = cx._10
1230- let ga = [if ((cd >= fZ))
1248+ let cO = cb(toBase58String(dK.transactionId), toBase58String(bg), fV, dK.caller)
1249+ let cu = cO._1
1250+ let cv = cO._2
1251+ let cw = cO._10
1252+ let gk = [if ((cu >= gj))
12311253 then true
1232- else throw(makeString(["amount asset amount to receive is less than ", toString(fZ)], "")), if ((ce >= fU))
1254+ else throw(makeString(["amount asset amount to receive is less than ", toString(gj)], "")), if ((cv >= ge))
12331255 then true
1234- else throw(makeString(["price asset amount to receive is less than ", toString(fU)], ""))]
1235- if ((ga == ga))
1256+ else throw(makeString(["price asset amount to receive is less than ", toString(ge)], ""))]
1257+ if ((gk == gk))
12361258 then {
1237- let fR = invoke(az, "burn", [fL], [AttachedPayment(aR, fL)])
1238- if ((fR == fR))
1259+ let gb = invoke(aN, "burn", [fV], [AttachedPayment(bg, fV)])
1260+ if ((gb == gb))
12391261 then {
1240- let gb = db(-(cd), -(ce), 0)
1241- let fj = gb._1
1242- let cS = gb._2
1243- let fk = df(da, cS)
1244- if ((fk == fk))
1245- then (cf ++ fj)
1262+ let gl = ds(-(cu), -(cv), 0)
1263+ let ft = gl._1
1264+ let dj = gl._2
1265+ let fu = dw(dr, dj)
1266+ if ((fu == fu))
1267+ then (cw ++ ft)
12461268 else throw("Strict value is not equal to itself.")
12471269 }
12481270 else throw("Strict value is not equal to itself.")
12581280
12591281
12601282
1261-@Callable(dA)
1262-func activate (gc,gd) = if ((toString(dA.caller) != toString(az)))
1283+@Callable(dK)
1284+func activate (gm,gn) = if ((toString(dK.caller) != toString(aN)))
12631285 then throw("permissions denied")
1264- else $Tuple2([StringEntry(R(), gc), StringEntry(S(), gd)], "success")
1286+ else $Tuple2([StringEntry(ad(), gm), StringEntry(ae(), gn)], "success")
12651287
12661288
12671289
1268-@Callable(dA)
1290+@Callable(dK)
12691291 func refreshKLp () = {
1270- let ge = valueOrElse(getInteger(X), 0)
1271- let gf = if (((height - ge) >= aa))
1292+ let go = valueOrElse(getInteger(aj), 0)
1293+ let gp = if (((height - go) >= am))
12721294 then unit
1273- else aw(makeString([toString(aa), " blocks have not passed since the previous call"], ""))
1274- if ((gf == gf))
1295+ else aK(makeString([toString(am), " blocks have not passed since the previous call"], ""))
1296+ if ((gp == gp))
12751297 then {
1276- let dm = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, W), "0")), ay("invalid kLp"))
1277- let gg = db(0, 0, 0)
1278- let gh = gg._1
1279- let cS = gg._2
1280- let de = if ((dm != cS))
1281- then gh
1282- else aw("nothing to refresh")
1283- $Tuple2(de, toString(cS))
1298+ let dD = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, ai), "0")), aM("invalid kLp"))
1299+ let gq = ds(0, 0, 0)
1300+ let gr = gq._1
1301+ let dj = gq._2
1302+ let dv = if ((dD != dj))
1303+ then gr
1304+ else aK("nothing to refresh")
1305+ $Tuple2(dv, toString(dj))
12841306 }
12851307 else throw("Strict value is not equal to itself.")
12861308 }
12871309
12881310
12891311
1290-@Callable(dA)
1291-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aG())
1312+@Callable(dK)
1313+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aU())
12921314
12931315
12941316
1295-@Callable(dA)
1296-func getAccBalanceWrapperREADONLY (bp) = $Tuple2(nil, bo(bp))
1317+@Callable(dK)
1318+func getAccBalanceWrapperREADONLY (bE) = $Tuple2(nil, bD(bE))
12971319
12981320
12991321
1300-@Callable(dA)
1301-func calcPricesWrapperREADONLY (bx,by,bC) = {
1302- let gi = bB(bx, by, bC)
1303- $Tuple2(nil, [toString(gi[0]), toString(gi[1]), toString(gi[2])])
1322+@Callable(dK)
1323+func calcPricesWrapperREADONLY (bM,bN,bR) = {
1324+ let ca = bQ(bM, bN, bR)
1325+ $Tuple2(nil, [toString(ca[0]), toString(ca[1]), toString(ca[2])])
13041326 }
13051327
13061328
13071329
1308-@Callable(dA)
1309-func toX18WrapperREADONLY (x,y) = $Tuple2(nil, toString(w(x, y)))
1330+@Callable(dK)
1331+func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
13101332
13111333
13121334
1313-@Callable(dA)
1314-func fromX18WrapperREADONLY (B,C) = $Tuple2(nil, A(parseBigIntValue(B), C))
1335+@Callable(dK)
1336+func fromX18WrapperREADONLY (I,J) = $Tuple2(nil, H(parseBigIntValue(I), J))
13151337
13161338
13171339
1318-@Callable(dA)
1319-func calcPriceBigIntWrapperREADONLY (br,bs) = $Tuple2(nil, toString(bq(parseBigIntValue(br), parseBigIntValue(bs))))
1340+@Callable(dK)
1341+func calcPriceBigIntWrapperREADONLY (bG,bH) = $Tuple2(nil, toString(bF(parseBigIntValue(bG), parseBigIntValue(bH))))
13201342
13211343
13221344
1323-@Callable(dA)
1324-func estimatePutOperationWrapperREADONLY (bL,ch,ci,cj,ck,cl,O,cm,cn) = $Tuple2(nil, cg(bL, ch, ci, cj, ck, cl, O, cm, cn))
1345+@Callable(dK)
1346+func estimatePutOperationWrapperREADONLY (cc,cy,cz,cA,cB,cC,aa,cD,cE) = $Tuple2(nil, cx(cc, cy, cz, cA, cB, cC, aa, cD, cE))
13251347
13261348
13271349
1328-@Callable(dA)
1329-func estimateGetOperationWrapperREADONLY (bL,bM,bN,O) = {
1330- let cx = bK(bL, bM, bN, addressFromStringValue(O))
1331- $Tuple2(nil, $Tuple10(cx._1, cx._2, cx._3, cx._4, cx._5, cx._6, cx._7, toString(cx._8), cx._9, cx._10))
1350+@Callable(dK)
1351+func estimateGetOperationWrapperREADONLY (cc,cd,ce,aa) = {
1352+ let cO = cb(cc, cd, ce, addressFromStringValue(aa))
1353+ $Tuple2(nil, $Tuple10(cO._1, cO._2, cO._3, cO._4, cO._5, cO._6, cO._7, toString(cO._8), cO._9, cO._10))
13321354 }
13331355
13341356
13351357
1336-@Callable(dA)
1358+@Callable(dK)
13371359 func statsREADONLY () = {
1338- let bD = aG()
1339- let bO = fromBase58String(bD[n])
1340- let gj = bD[o]
1341- let gk = bD[p]
1342- let cq = bD[s]
1343- let cr = bD[t]
1344- let bE = parseIntValue(bD[q])
1345- let bF = parseIntValue(bD[r])
1346- let gl = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1347- let gm = bo(gj)
1348- let gn = bo(gk)
1349- let go = if ((gl == 0))
1350- then [c, c, c]
1351- else bB(gm, gn, gl)
1352- let bY = 0
1353- let gp = A(go[1], a)
1354- let gq = A(go[2], a)
1355- let gr = value(getInteger(az, aj(toString(this))))
1356- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(gm), toString(gn), toString(gl), toString(bY), toString(gp), toString(gq), toString(gr)], h))
1360+ let bS = aU()
1361+ let cf = fromBase58String(bS[q])
1362+ let gs = bS[r]
1363+ let gt = bS[s]
1364+ let cH = bS[v]
1365+ let cI = bS[w]
1366+ let bT = parseIntValue(bS[t])
1367+ let bU = parseIntValue(bS[u])
1368+ let gu = valueOrErrorMessage(assetInfo(cf), (("Asset " + toBase58String(cf)) + " doesn't exist")).quantity
1369+ let gv = bD(gs)
1370+ let gw = bD(gt)
1371+ let gx = if ((gu == 0))
1372+ then [e, e, e]
1373+ else bQ(gv, gw, gu)
1374+ let cp = 0
1375+ let gy = H(gx[1], b)
1376+ let gz = H(gx[2], b)
1377+ let gA = value(getInteger(aN, ax(toString(this))))
1378+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(gv), toString(gw), toString(gu), toString(cp), toString(gy), toString(gz), toString(gA)], j))
13571379 }
13581380
13591381
13601382
1361-@Callable(dA)
1362-func evaluatePutByAmountAssetREADONLY (ci) = {
1363- let bD = aG()
1364- let bO = fromBase58String(bD[n])
1365- let co = bD[o]
1366- let bP = fromBase58String(co)
1367- let cp = bD[p]
1368- let bQ = fromBase58String(cp)
1369- let bE = parseIntValue(bD[q])
1370- let bF = parseIntValue(bD[r])
1371- let bR = bD[m]
1372- let gl = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1373- let gm = bo(co)
1374- let gn = bo(cp)
1375- let bz = w(gm, bE)
1376- let bA = w(gn, bF)
1377- let bX = if ((gl == 0))
1378- then c
1379- else bq(bA, bz)
1380- let cu = w(ci, bE)
1381- let cv = fraction(cu, bX, b)
1382- let ck = A(cv, bF)
1383- let dG = cg("", 500000, ci, bP, ck, bQ, "", true, false)
1384- let cF = dG._1
1385- let gs = dG._3
1386- let bT = dG._4
1387- let bV = dG._5
1388- let bS = dG._6
1389- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cF), toString(A(bX, a)), toString(bT), toString(bV), toString(bS), bR, toString(ci), toString(ck)], h))
1383+@Callable(dK)
1384+func evaluatePutByAmountAssetREADONLY (cz) = {
1385+ let bS = aU()
1386+ let cf = fromBase58String(bS[q])
1387+ let cF = bS[r]
1388+ let cg = fromBase58String(cF)
1389+ let cG = bS[s]
1390+ let ch = fromBase58String(cG)
1391+ let bT = parseIntValue(bS[t])
1392+ let bU = parseIntValue(bS[u])
1393+ let ci = bS[p]
1394+ let gu = valueOrErrorMessage(assetInfo(cf), (("Asset " + toBase58String(cf)) + " doesn't exist")).quantity
1395+ let gv = bD(cF)
1396+ let gw = bD(cG)
1397+ let bO = D(gv, bT)
1398+ let bP = D(gw, bU)
1399+ let co = if ((gu == 0))
1400+ then e
1401+ else bF(bP, bO)
1402+ let cL = D(cz, bT)
1403+ let cM = fraction(cL, co, d)
1404+ let cB = H(cM, bU)
1405+ let dQ = cx("", 500000, cz, cg, cB, ch, "", true, false)
1406+ let cW = dQ._1
1407+ let gB = dQ._3
1408+ let ck = dQ._4
1409+ let cm = dQ._5
1410+ let cj = dQ._6
1411+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cW), toString(H(co, b)), toString(ck), toString(cm), toString(cj), ci, toString(cz), toString(cB)], j))
13901412 }
13911413
13921414
13931415
1394-@Callable(dA)
1395-func evaluatePutByPriceAssetREADONLY (ck) = {
1396- let bD = aG()
1397- let bO = fromBase58String(bD[n])
1398- let co = bD[o]
1399- let bP = fromBase58String(co)
1400- let cp = bD[p]
1401- let bQ = fromBase58String(cp)
1402- let bE = parseIntValue(bD[q])
1403- let bF = parseIntValue(bD[r])
1404- let bR = bD[m]
1405- let gl = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1406- let gt = bo(co)
1407- let gu = bo(cp)
1408- let gv = w(gt, bE)
1409- let gw = w(gu, bF)
1410- let bX = if ((gl == 0))
1411- then c
1412- else bq(gw, gv)
1413- let cv = w(ck, bF)
1414- let cu = fraction(cv, b, bX)
1415- let ci = A(cu, bE)
1416- let dG = cg("", 500000, ci, bP, ck, bQ, "", true, false)
1417- let cF = dG._1
1418- let gs = dG._3
1419- let bT = dG._4
1420- let bV = dG._5
1421- let bS = dG._6
1422- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cF), toString(A(bX, a)), toString(bT), toString(bV), toString(bS), bR, toString(ci), toString(ck)], h))
1416+@Callable(dK)
1417+func evaluatePutByPriceAssetREADONLY (cB) = {
1418+ let bS = aU()
1419+ let cf = fromBase58String(bS[q])
1420+ let cF = bS[r]
1421+ let cg = fromBase58String(cF)
1422+ let cG = bS[s]
1423+ let ch = fromBase58String(cG)
1424+ let bT = parseIntValue(bS[t])
1425+ let bU = parseIntValue(bS[u])
1426+ let ci = bS[p]
1427+ let gu = valueOrErrorMessage(assetInfo(cf), (("Asset " + toBase58String(cf)) + " doesn't exist")).quantity
1428+ let gC = bD(cF)
1429+ let gD = bD(cG)
1430+ let gE = D(gC, bT)
1431+ let gF = D(gD, bU)
1432+ let co = if ((gu == 0))
1433+ then e
1434+ else bF(gF, gE)
1435+ let cM = D(cB, bU)
1436+ let cL = fraction(cM, d, co)
1437+ let cz = H(cL, bT)
1438+ let dQ = cx("", 500000, cz, cg, cB, ch, "", true, false)
1439+ let cW = dQ._1
1440+ let gB = dQ._3
1441+ let ck = dQ._4
1442+ let cm = dQ._5
1443+ let cj = dQ._6
1444+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cW), toString(H(co, b)), toString(ck), toString(cm), toString(cj), ci, toString(cz), toString(cB)], j))
14231445 }
14241446
14251447
14261448
1427-@Callable(dA)
1428-func evaluateGetREADONLY (gx,gy) = {
1429- let cx = bK("", gx, gy, this)
1430- let cd = cx._1
1431- let ce = cx._2
1432- let bT = cx._5
1433- let bV = cx._6
1434- let bS = cx._7
1435- let bY = cx._8
1436- let bR = parseIntValue(cx._9)
1437- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cd), toString(ce), toString(bT), toString(bV), toString(bS), toString(bY), toString(bR)], h))
1449+@Callable(dK)
1450+func evaluateGetREADONLY (gG,gH) = {
1451+ let cO = cb("", gG, gH, this)
1452+ let cu = cO._1
1453+ let cv = cO._2
1454+ let ck = cO._5
1455+ let cm = cO._6
1456+ let cj = cO._7
1457+ let cp = cO._8
1458+ let ci = parseIntValue(cO._9)
1459+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cu), toString(cv), toString(ck), toString(cm), toString(cj), toString(cp), toString(ci)], j))
14381460 }
14391461
14401462
1441-@Verifier(gz)
1442-func gA () = {
1443- let gB = {
1444- let dL = eO()
1445- if ($isInstanceOf(dL, "ByteVector"))
1463+@Verifier(gI)
1464+func gJ () = {
1465+ let gK = {
1466+ let dV = eY()
1467+ if ($isInstanceOf(dV, "ByteVector"))
14461468 then {
1447- let eS = dL
1448- eS
1469+ let fc = dV
1470+ fc
14491471 }
1450- else if ($isInstanceOf(dL, "Unit"))
1451- then gz.senderPublicKey
1472+ else if ($isInstanceOf(dV, "Unit"))
1473+ then gI.senderPublicKey
14521474 else throw("Match error")
14531475 }
1454- let dL = gz
1455- if ($isInstanceOf(dL, "Order"))
1476+ let dV = gI
1477+ if ($isInstanceOf(dV, "Order"))
14561478 then {
1457- let di = dL
1458- let gC = aF()
1459- let gD = dh(di)
1460- let ao = gD._1
1461- let ap = gD._2
1462- let aq = sigVerify(di.bodyBytes, di.proofs[0], di.senderPublicKey)
1463- let ar = sigVerify(di.bodyBytes, di.proofs[1], gC)
1464- if (if (if (ao)
1465- then aq
1479+ let dz = dV
1480+ let gL = aT()
1481+ let gM = dy(dz)
1482+ let aC = gM._1
1483+ let aD = gM._2
1484+ let aE = sigVerify(dz.bodyBytes, dz.proofs[0], dz.senderPublicKey)
1485+ let aF = sigVerify(dz.bodyBytes, dz.proofs[1], gL)
1486+ if (if (if (aC)
1487+ then aE
14661488 else false)
1467- then ar
1489+ then aF
14681490 else false)
14691491 then true
1470- else an(ao, ap, aq, ar)
1492+ else aB(aC, aD, aE, aF)
14711493 }
1472- else if ($isInstanceOf(dL, "SetScriptTransaction"))
1494+ else if ($isInstanceOf(dV, "SetScriptTransaction"))
14731495 then {
1474- let eP = dL
1475- let gE = blake2b256(value(eP.script))
1476- let gF = fromBase64String(value(getString(az, al())))
1477- let gG = scriptHash(this)
1478- if (if ((gF == gE))
1479- then (gG != gE)
1496+ let eZ = dV
1497+ let gN = blake2b256(value(eZ.script))
1498+ let gO = fromBase64String(value(getString(aN, az())))
1499+ let gP = scriptHash(this)
1500+ if (if ((gO == gN))
1501+ then (gP != gN)
14801502 else false)
14811503 then true
1482- else sigVerify(gz.bodyBytes, gz.proofs[0], gB)
1504+ else sigVerify(gI.bodyBytes, gI.proofs[0], gK)
14831505 }
1484- else sigVerify(gz.bodyBytes, gz.proofs[0], gB)
1506+ else sigVerify(gI.bodyBytes, gI.proofs[0], gK)
14851507 }
14861508
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = 100000000
4+let a = 8
55
6-let b = toBigInt(1000000000000000000)
6+let b = 100000000
77
8-let c = toBigInt(0)
8+let c = toBigInt(100000000)
99
10-let d = toBigInt(0)
10+let d = toBigInt(1000000000000000000)
1111
12-let e = toBigInt(1)
12+let e = toBigInt(0)
1313
14-let f = toBigInt(2)
14+let f = toBigInt(0)
1515
16-let g = "WAVES"
16+let g = toBigInt(1)
1717
18-let h = "__"
18+let h = toBigInt(2)
1919
20-let i = 2
20+let i = "WAVES"
2121
22-let j = 3
22+let j = "__"
2323
24-let k = 4
24+let k = 1
2525
26-let l = 1
26+let l = 2
2727
28-let m = 2
28+let m = 3
2929
30-let n = 3
30+let n = 4
3131
32-let o = 4
32+let o = 1
3333
34-let p = 5
34+let p = 2
3535
36-let q = 6
36+let q = 3
3737
38-let r = 7
38+let r = 4
3939
40-let s = 8
40+let s = 5
4141
42-let t = 9
42+let t = 6
4343
44-let u = 1
44+let u = 7
4545
46-let v = 7
46+let v = 8
4747
48-func w (x,y) = fraction(toBigInt(x), b, toBigInt(y))
48+let w = 9
49+
50+let x = 10
51+
52+let y = 1
53+
54+let z = 2
55+
56+let A = 3
57+
58+let B = 1
59+
60+let C = 7
61+
62+func D (E,F) = fraction(toBigInt(E), d, toBigInt(F))
4963
5064
51-func z (x,y) = fraction(x, b, y)
65+func G (E,F) = fraction(E, d, F)
5266
5367
54-func A (B,C) = toInt(fraction(B, toBigInt(C), b))
68+func H (I,J) = toInt(fraction(I, toBigInt(J), d))
5569
5670
57-func D (B,C,E) = toInt(fraction(B, toBigInt(C), b, E))
71+func K (I,J,L) = toInt(fraction(I, toBigInt(J), d, L))
5872
5973
60-func F (B) = if ((c > B))
61- then -(B)
62- else B
74+func M (N,O,P) = fraction(N, O, P)
6375
6476
65-func G () = "%s__factoryContract"
77+func Q (I) = if ((0 > I))
78+ then -(I)
79+ else I
6680
6781
68-func H () = "%s__managerPublicKey"
82+func R (I) = if ((e > I))
83+ then -(I)
84+ else I
6985
7086
71-func I () = "%s__pendingManagerPublicKey"
87+func S () = "%s__factoryContract"
7288
7389
74-func J () = "%s%s__price__last"
90+func T () = "%s__managerPublicKey"
7591
7692
77-func K (L,M) = makeString(["%s%s%d%d__price__history", toString(L), toString(M)], h)
93+func U () = "%s__pendingManagerPublicKey"
7894
7995
80-func N (O,P) = ((("%s%s%s__P__" + O) + "__") + P)
96+func V () = "%s%s__price__last"
8197
8298
83-func Q (O,P) = ((("%s%s%s__G__" + O) + "__") + P)
99+func W (X,Y) = makeString(["%s%s%d%d__price__history", toString(X), toString(Y)], j)
84100
85101
86-func R () = "%s__amountAsset"
102+func Z (aa,ab) = ((("%s%s%s__P__" + aa) + "__") + ab)
87103
88104
89-func S () = "%s__priceAsset"
105+func ac (aa,ab) = ((("%s%s%s__G__" + aa) + "__") + ab)
90106
91107
92-let T = "%s__fee"
93-
94-let U = fraction(10, a, 10000)
95-
96-let V = valueOrElse(getInteger(this, T), U)
97-
98-let W = makeString(["%s", "kLp"], h)
99-
100-let X = makeString(["%s", "kLpRefreshedHeight"], h)
101-
102-let Y = makeString(["%s", "refreshKLpDelay"], h)
103-
104-let Z = 30
105-
106-let aa = valueOrElse(getInteger(this, Y), Z)
107-
108-func ab () = "%s__factoryConfig"
108+func ad () = "%s__amountAsset"
109109
110110
111-func ac () = "%s%s__matcher__publicKey"
111+func ae () = "%s__priceAsset"
112112
113113
114-func ad (ae,af) = (((("%d%d%s__" + ae) + "__") + af) + "__config")
114+let af = "%s__fee"
115+
116+let ag = fraction(10, b, 10000)
117+
118+let ah = valueOrElse(getInteger(this, af), ag)
119+
120+let ai = makeString(["%s", "kLp"], j)
121+
122+let aj = makeString(["%s", "kLpRefreshedHeight"], j)
123+
124+let ak = makeString(["%s", "refreshKLpDelay"], j)
125+
126+let al = 30
127+
128+let am = valueOrElse(getInteger(this, ak), al)
129+
130+func an () = "%s__factoryConfig"
115131
116132
117-func ag (ah) = ("%s%s%s__mappings__baseAsset2internalId__" + ah)
133+func ao () = "%s%s__matcher__publicKey"
118134
119135
120-func ai () = "%s__shutdown"
136+func ap (aq) = (("%s%s%s__" + aq) + "__mappings__poolContract2LpAsset")
121137
122138
123-func aj (ak) = ("%s%s__poolWeight__" + ak)
139+func ar (as,at) = (((("%d%d%s__" + as) + "__") + at) + "__config")
124140
125141
126-func al () = "%s__allowedLpScriptHash"
142+func au (av) = ("%s%s%s__mappings__baseAsset2internalId__" + av)
127143
128144
129-let am = "%s__feeCollectorAddress"
130-
131-func an (ao,ap,aq,ar) = throw((((((((("order validation failed: orderValid=" + toString(ao)) + " (") + ap) + ")") + " senderValid=") + toString(aq)) + " matcherValid=") + toString(ar)))
145+func aw () = "%s__shutdown"
132146
133147
134-func as (at,au) = valueOrErrorMessage(getString(at, au), makeString(["mandatory ", toString(at), ".", au, " is not defined"], ""))
148+func ax (ay) = ("%s%s__poolWeight__" + ay)
135149
136150
137-func av (at,au) = valueOrErrorMessage(getInteger(at, au), makeString(["mandatory ", toString(at), ".", au, " is not defined"], ""))
151+func az () = "%s__allowedLpScriptHash"
138152
139153
140-func aw (ax) = throw(makeString(["lp.ride:", ax], " "))
154+let aA = "%s__feeCollectorAddress"
155+
156+func aB (aC,aD,aE,aF) = throw((((((((("order validation failed: orderValid=" + toString(aC)) + " (") + aD) + ")") + " senderValid=") + toString(aE)) + " matcherValid=") + toString(aF)))
141157
142158
143-func ay (ax) = makeString(["lp.ride:", ax], " ")
159+func aG (aH,aI) = valueOrErrorMessage(getString(aH, aI), makeString(["mandatory ", toString(aH), ".", aI, " is not defined"], ""))
144160
145161
146-let az = addressFromStringValue(as(this, G()))
162+func aJ (aH,aI) = valueOrErrorMessage(getInteger(aH, aI), makeString(["mandatory ", toString(aH), ".", aI, " is not defined"], ""))
147163
148-let aA = addressFromStringValue(as(az, am))
149164
150-let aB = {
151- let aC = invoke(az, "getInFeeREADONLY", [toString(this)], nil)
152- if ($isInstanceOf(aC, "Int"))
153- then aC
154- else throw(($getType(aC) + " couldn't be cast to Int"))
165+func aK (aL) = throw(makeString(["lp.ride:", aL], " "))
166+
167+
168+func aM (aL) = makeString(["lp.ride:", aL], " ")
169+
170+
171+let aN = addressFromStringValue(aG(this, S()))
172+
173+let aO = addressFromStringValue(aG(aN, aA))
174+
175+let aP = {
176+ let aQ = invoke(aN, "getInFeeREADONLY", [toString(this)], nil)
177+ if ($isInstanceOf(aQ, "Int"))
178+ then aQ
179+ else throw(($getType(aQ) + " couldn't be cast to Int"))
155180 }
156181
157-let aD = {
158- let aC = invoke(az, "getOutFeeREADONLY", [toString(this)], nil)
159- if ($isInstanceOf(aC, "Int"))
160- then aC
161- else throw(($getType(aC) + " couldn't be cast to Int"))
182+let aR = {
183+ let aQ = invoke(aN, "getOutFeeREADONLY", [toString(this)], nil)
184+ if ($isInstanceOf(aQ, "Int"))
185+ then aQ
186+ else throw(($getType(aQ) + " couldn't be cast to Int"))
162187 }
163188
164-func aE () = valueOrElse(getBoolean(az, ai()), false)
189+func aS () = valueOrElse(getBoolean(aN, aw()), false)
165190
166191
167-func aF () = fromBase58String(as(az, ac()))
192+func aT () = fromBase58String(aG(aN, ao()))
168193
169194
170-func aG () = {
171- let aH = as(this, R())
172- let aI = as(this, S())
173- let af = av(az, ag(aI))
174- let ae = av(az, ag(aH))
175- split(as(az, ad(toString(ae), toString(af))), h)
195+func aU () = {
196+ let aV = aG(this, ad())
197+ let aW = aG(this, ae())
198+ let at = aJ(aN, au(aW))
199+ let as = aJ(aN, au(aV))
200+ split(aG(aN, ar(toString(as), toString(at))), j)
176201 }
177202
178203
179-func aJ (aK) = if ((aK == g))
204+func aX (aY) = if ((aY == i))
180205 then unit
181- else fromBase58String(aK)
206+ else fromBase58String(aY)
182207
183208
184-func aL (aK) = if ((aK == unit))
185- then g
186- else toBase58String(value(aK))
209+func aZ (aY) = if ((aY == unit))
210+ then i
211+ else toBase58String(value(aY))
187212
188213
189-func aM (aN) = $Tuple7(addressFromStringValue(aN[l]), parseIntValue(aN[m]), fromBase58String(aN[n]), aJ(aN[o]), aJ(aN[p]), parseIntValue(aN[q]), parseIntValue(aN[r]))
214+func ba (bb) = $Tuple7(addressFromStringValue(bb[o]), parseIntValue(bb[p]), fromBase58String(bb[q]), aX(bb[r]), aX(bb[s]), parseIntValue(bb[t]), parseIntValue(bb[u]))
190215
191216
192-let aO = aM(aG())
217+let bc = ba(aU())
193218
194-let aP = aO
219+let bd = bc
195220
196-let aQ = aP._2
221+let be = bd._1
197222
198-let aR = aP._3
223+let bf = bd._2
199224
200-let aS = aP._4
225+let bg = bd._3
201226
202-let aT = aP._5
227+let bh = bd._4
203228
204-let aU = aP._6
229+let bi = bd._5
205230
206-let aV = aP._7
231+let bj = bd._6
207232
208-func aW () = split(as(az, ab()), h)
233+let bk = bd._7
234+
235+func bl () = split(aG(aN, an()), j)
209236
210237
211-let aX = valueOrErrorMessage(addressFromString(aW()[u]), "incorrect staking address")
238+let bm = valueOrErrorMessage(addressFromString(bl()[B]), "incorrect staking address")
212239
213-let aY = valueOrErrorMessage(addressFromString(aW()[v]), "incorrect staking address")
240+let bn = valueOrErrorMessage(addressFromString(bl()[C]), "incorrect staking address")
214241
215-func aZ (ba,bb,bc,bd,be,bf,bg,bh,bi,bj) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(ba), toString(bb), toString(bc), toString(bd), toString(be), toString(bf), toString(bg), toString(bh), toString(bi), toString(bj)], h)
242+func bo (bp,bq,br,bs,bt,bu,bv,bw,bx,by) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bp), toString(bq), toString(br), toString(bs), toString(bt), toString(bu), toString(bv), toString(bw), toString(bx), toString(by)], j)
216243
217244
218-func bk (bl,bm,bn,bd,bg,bh) = makeString(["%d%d%d%d%d%d", toString(bl), toString(bm), toString(bn), toString(bd), toString(bg), toString(bh)], h)
245+func bz (bA,bB,bC,bs,bv,bw) = makeString(["%d%d%d%d%d%d", toString(bA), toString(bB), toString(bC), toString(bs), toString(bv), toString(bw)], j)
219246
220247
221-func bo (bp) = if ((bp == "WAVES"))
248+func bD (bE) = if ((bE == "WAVES"))
222249 then wavesBalance(this).available
223- else assetBalance(this, fromBase58String(bp))
250+ else assetBalance(this, fromBase58String(bE))
224251
225252
226-func bq (br,bs) = fraction(br, b, bs)
253+func bF (bG,bH) = fraction(bG, d, bH)
227254
228255
229-func bt (br,bs,E) = fraction(br, b, bs, E)
256+func bI (bG,bH,L) = fraction(bG, d, bH, L)
230257
231258
232-func bu (bv,bw,bx,by) = {
233- let bz = w(bx, bv)
234- let bA = w(by, bw)
235- bq(bA, bz)
259+func bJ (bK,bL,bM,bN) = {
260+ let bO = D(bM, bK)
261+ let bP = D(bN, bL)
262+ bF(bP, bO)
236263 }
237264
238265
239-func bB (bx,by,bC) = {
240- let bD = aG()
241- let bE = parseIntValue(bD[q])
242- let bF = parseIntValue(bD[r])
243- let bG = bu(bE, bF, bx, by)
244- let bs = w(bx, bE)
245- let br = w(by, bF)
246- let bH = w(bC, a)
247- let bI = bq(bs, bH)
248- let bJ = bq(br, bH)
249-[bG, bI, bJ]
266+func bQ (bM,bN,bR) = {
267+ let bS = aU()
268+ let bT = parseIntValue(bS[t])
269+ let bU = parseIntValue(bS[u])
270+ let bV = bJ(bT, bU, bM, bN)
271+ let bH = D(bM, bT)
272+ let bG = D(bN, bU)
273+ let bW = D(bR, b)
274+ let bX = bF(bH, bW)
275+ let bY = bF(bG, bW)
276+[bV, bX, bY]
250277 }
251278
252279
253-func bK (bL,bM,bN,O) = {
254- let bD = aG()
255- let bO = bD[n]
256- let bP = bD[o]
257- let bQ = bD[p]
258- let bv = parseIntValue(bD[q])
259- let bw = parseIntValue(bD[r])
260- let bR = bD[m]
261- let bS = valueOrErrorMessage(assetInfo(fromBase58String(bO)), (("Asset " + bO) + " doesn't exist")).quantity
262- if ((bO != bM))
280+func bZ (bM,bN,bR) = {
281+ let ca = bQ(bM, bN, bR)
282+[H(ca[0], b), H(ca[1], b), H(ca[2], b)]
283+ }
284+
285+
286+func cb (cc,cd,ce,aa) = {
287+ let bS = aU()
288+ let cf = bS[q]
289+ let cg = bS[r]
290+ let ch = bS[s]
291+ let bK = parseIntValue(bS[t])
292+ let bL = parseIntValue(bS[u])
293+ let ci = bS[p]
294+ let cj = valueOrErrorMessage(assetInfo(fromBase58String(cf)), (("Asset " + cf) + " doesn't exist")).quantity
295+ if ((cf != cd))
263296 then throw("Invalid asset passed.")
264297 else {
265- let bT = bo(bP)
266- let bU = w(bT, bv)
267- let bV = bo(bQ)
268- let bW = w(bV, bw)
269- let bX = bq(bW, bU)
270- let bY = A(bX, a)
271- let bZ = w(bN, a)
272- let ca = w(bS, a)
273- let cb = fraction(bU, bZ, ca)
274- let cc = fraction(bW, bZ, ca)
275- let cd = D(cb, bv, FLOOR)
276- let ce = D(cc, bw, FLOOR)
277- let cf = if ((bL == ""))
298+ let ck = bD(cg)
299+ let cl = D(ck, bK)
300+ let cm = bD(ch)
301+ let cn = D(cm, bL)
302+ let co = bF(cn, cl)
303+ let cp = H(co, b)
304+ let cq = D(ce, b)
305+ let cr = D(cj, b)
306+ let cs = fraction(cl, cq, cr)
307+ let ct = fraction(cn, cq, cr)
308+ let cu = K(cs, bK, FLOOR)
309+ let cv = K(ct, bL, FLOOR)
310+ let cw = if ((cc == ""))
278311 then nil
279- else [ScriptTransfer(O, cd, if ((bP == "WAVES"))
312+ else [ScriptTransfer(aa, cu, if ((cg == "WAVES"))
280313 then unit
281- else fromBase58String(bP)), ScriptTransfer(O, ce, if ((bQ == "WAVES"))
314+ else fromBase58String(cg)), ScriptTransfer(aa, cv, if ((ch == "WAVES"))
282315 then unit
283- else fromBase58String(bQ)), StringEntry(Q(toString(O), bL), bk(cd, ce, bN, bY, height, lastBlock.timestamp)), IntegerEntry(J(), bY), IntegerEntry(K(height, lastBlock.timestamp), bY)]
284- $Tuple10(cd, ce, bP, bQ, bT, bV, bS, bX, bR, cf)
316+ else fromBase58String(ch)), StringEntry(ac(toString(aa), cc), bz(cu, cv, ce, cp, height, lastBlock.timestamp)), IntegerEntry(V(), cp), IntegerEntry(W(height, lastBlock.timestamp), cp)]
317+ $Tuple10(cu, cv, cg, ch, ck, cm, cj, co, ci, cw)
285318 }
286319 }
287320
288321
289-func cg (bL,ch,ci,cj,ck,cl,O,cm,cn) = {
290- let bD = aG()
291- let bO = fromBase58String(bD[n])
292- let co = bD[o]
293- let cp = bD[p]
294- let cq = bD[s]
295- let cr = bD[t]
296- let bE = parseIntValue(bD[q])
297- let bF = parseIntValue(bD[r])
298- let bR = bD[m]
299- let bS = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
300- let cs = toBase58String(valueOrElse(cj, fromBase58String("WAVES")))
301- let ct = toBase58String(valueOrElse(cl, fromBase58String("WAVES")))
302- if (if ((co != cs))
322+func cx (cc,cy,cz,cA,cB,cC,aa,cD,cE) = {
323+ let bS = aU()
324+ let cf = fromBase58String(bS[q])
325+ let cF = bS[r]
326+ let cG = bS[s]
327+ let cH = bS[v]
328+ let cI = bS[w]
329+ let bT = parseIntValue(bS[t])
330+ let bU = parseIntValue(bS[u])
331+ let ci = bS[p]
332+ let cj = valueOrErrorMessage(assetInfo(cf), (("Asset " + toBase58String(cf)) + " doesn't exist")).quantity
333+ let cJ = toBase58String(valueOrElse(cA, fromBase58String("WAVES")))
334+ let cK = toBase58String(valueOrElse(cC, fromBase58String("WAVES")))
335+ if (if ((cF != cJ))
303336 then true
304- else (cp != ct))
337+ else (cG != cK))
305338 then throw("Invalid amt or price asset passed.")
306339 else {
307- let bT = if (cm)
308- then bo(co)
309- else (bo(co) - ci)
310- let bV = if (cm)
311- then bo(cp)
312- else (bo(cp) - ck)
313- let cu = w(ci, bE)
314- let cv = w(ck, bF)
315- let cw = bq(cv, cu)
316- let bU = w(bT, bE)
317- let bW = w(bV, bF)
318- let cx = if ((bS == 0))
340+ let ck = if (cD)
341+ then bD(cF)
342+ else (bD(cF) - cz)
343+ let cm = if (cD)
344+ then bD(cG)
345+ else (bD(cG) - cB)
346+ let cL = D(cz, bT)
347+ let cM = D(cB, bU)
348+ let cN = bF(cM, cL)
349+ let cl = D(ck, bT)
350+ let cn = D(cm, bU)
351+ let cO = if ((cj == 0))
319352 then {
320- let bX = c
321- let cy = c
322- let bH = pow((cu * cv), 0, toBigInt(5), 1, 0, DOWN)
323- $Tuple5(A(bH, a), A(cu, bE), A(cv, bF), bq((bW + cv), (bU + cu)), cy)
353+ let co = e
354+ let cP = e
355+ let bW = pow((cL * cM), 0, toBigInt(5), 1, 0, DOWN)
356+ $Tuple5(H(bW, b), H(cL, bT), H(cM, bU), bF((cn + cM), (cl + cL)), cP)
324357 }
325358 else {
326- let bX = bq(bW, bU)
327- let cy = fraction(F((bX - cw)), b, bX)
328- let cz = w(ch, a)
329- if (if ((bX != c))
330- then (cy > cz)
359+ let co = bF(cn, cl)
360+ let cP = fraction(R((co - cN)), d, co)
361+ let cQ = D(cy, b)
362+ if (if ((co != e))
363+ then (cP > cQ)
331364 else false)
332- then throw(((("Price slippage " + toString(cy)) + " exceeded the passed limit of ") + toString(cz)))
365+ then throw(((("Price slippage " + toString(cP)) + " exceeded the passed limit of ") + toString(cQ)))
333366 else {
334- let ca = w(bS, a)
335- let cA = fraction(cu, bt(bW, bU, CEILING), b, CEILING)
336- let cB = fraction(cv, b, bt(bW, bU, FLOOR), CEILING)
337- let cC = if ((cA > cv))
338- then $Tuple2(cB, cv)
339- else $Tuple2(cu, cA)
340- let cD = cC._1
341- let cE = cC._2
342- let bH = fraction(ca, cE, bW, FLOOR)
343- $Tuple5(D(bH, a, FLOOR), D(cD, bE, CEILING), D(cE, bF, CEILING), bX, cy)
367+ let cr = D(cj, b)
368+ let cR = fraction(cL, bI(cn, cl, CEILING), d, CEILING)
369+ let cS = fraction(cM, d, bI(cn, cl, FLOOR), CEILING)
370+ let cT = if ((cR > cM))
371+ then $Tuple2(cS, cM)
372+ else $Tuple2(cL, cR)
373+ let cU = cT._1
374+ let cV = cT._2
375+ let bW = fraction(cr, cV, cn, FLOOR)
376+ $Tuple5(K(bW, b, FLOOR), K(cU, bT, CEILING), K(cV, bU, CEILING), co, cP)
344377 }
345378 }
346- let cF = cx._1
347- let cG = cx._2
348- let cH = cx._3
349- let bY = A(cx._4, a)
350- let cI = A(cx._5, a)
351- if ((0 >= cF))
379+ let cW = cO._1
380+ let cX = cO._2
381+ let cY = cO._3
382+ let cp = H(cO._4, b)
383+ let cZ = H(cO._5, b)
384+ if ((0 >= cW))
352385 then throw("Invalid calculations. LP calculated is less than zero.")
353386 else {
354- let cJ = if (!(cn))
387+ let da = if (!(cE))
355388 then 0
356- else cF
357- let cK = (ci - cG)
358- let cL = (ck - cH)
359- let cM = [IntegerEntry(J(), bY), IntegerEntry(K(height, lastBlock.timestamp), bY), StringEntry(N(O, bL), aZ(cG, cH, cJ, bY, ch, cI, height, lastBlock.timestamp, cK, cL))]
360- $Tuple13(cF, cJ, bY, bT, bV, bS, bO, bR, cM, cK, cL, cj, cl)
389+ else cW
390+ let db = (cz - cX)
391+ let dc = (cB - cY)
392+ let dd = [IntegerEntry(V(), cp), IntegerEntry(W(height, lastBlock.timestamp), cp), StringEntry(Z(aa, cc), bo(cX, cY, da, cp, cy, cZ, height, lastBlock.timestamp, db, dc))]
393+ $Tuple13(cW, da, cp, ck, cm, cj, cf, ci, dd, db, dc, cA, cC)
361394 }
362395 }
363396 }
364397
365398
366-func cN (cO,cP,bS) = {
367- let cQ = z(cO, toBigInt(aU))
368- let cR = z(cP, toBigInt(aV))
369- let cS = fraction(pow((cQ * cR), 0, toBigInt(5), 1, 18, DOWN), e, bS)
370- if ((bS == d))
371- then d
372- else cS
399+func de (df,dg,cj) = {
400+ let dh = G(df, toBigInt(bj))
401+ let di = G(dg, toBigInt(bk))
402+ let dj = fraction(pow((dh * di), 0, toBigInt(5), 1, 18, DOWN), g, cj)
403+ if ((cj == f))
404+ then f
405+ else dj
373406 }
374407
375408
376-func cT (cU,cV,cW) = {
377- let cX = (toBigInt(bo(aL(aS))) - cU)
378- let cY = (toBigInt(bo(aL(aT))) - cV)
379- let cZ = (toBigInt(value(assetInfo(aR)).quantity) - cW)
380- let da = cN(cX, cY, cZ)
381- da
409+func dk (dl,dm,dn) = {
410+ let do = (toBigInt(bD(aZ(bh))) - dl)
411+ let dp = (toBigInt(bD(aZ(bi))) - dm)
412+ let dq = (toBigInt(value(assetInfo(bg)).quantity) - dn)
413+ let dr = de(do, dp, dq)
414+ dr
382415 }
383416
384417
385-func db (dc,dd,cW) = {
386- let cX = (bo(aL(aS)) + dc)
387- let cY = (bo(aL(aT)) + dd)
388- let cZ = (value(assetInfo(aR)).quantity + cW)
389- let cS = cN(toBigInt(cX), toBigInt(cY), toBigInt(cZ))
390- let de = [IntegerEntry(X, height), StringEntry(W, toString(cS))]
391- $Tuple2(de, cS)
418+func ds (dt,du,dn) = {
419+ let do = (bD(aZ(bh)) + dt)
420+ let dp = (bD(aZ(bi)) + du)
421+ let dq = (value(assetInfo(bg)).quantity + dn)
422+ let dj = de(toBigInt(do), toBigInt(dp), toBigInt(dq))
423+ let dv = [IntegerEntry(aj, height), StringEntry(ai, toString(dj))]
424+ $Tuple2(dv, dj)
392425 }
393426
394427
395-func df (dg,cS) = if ((cS >= dg))
428+func dw (dx,dj) = if ((dj >= dx))
396429 then true
397- else aw(makeString(["updated KLp lower than current KLp", toString(dg), toString(cS)], " "))
430+ else aK(makeString(["updated KLp lower than current KLp", toString(dx), toString(dj)], " "))
398431
399432
400-func dh (di) = {
401- let dj = di.amount
402- let dk = fraction(di.amount, di.price, a, FLOOR)
403- let dl = if ((di.orderType == Buy))
404- then $Tuple2(dj, -(dk))
405- else $Tuple2(-(dj), dk)
406- let dc = dl._1
407- let dd = dl._2
408- if (if (if (aE())
433+func dy (dz) = {
434+ let dA = dz.amount
435+ let dB = fraction(dz.amount, dz.price, b, FLOOR)
436+ let dC = if ((dz.orderType == Buy))
437+ then $Tuple2(dA, -(dB))
438+ else $Tuple2(-(dA), dB)
439+ let dt = dC._1
440+ let du = dC._2
441+ if (if (if (aS())
409442 then true
410- else (aQ == j))
443+ else (bf == m))
411444 then true
412- else (aQ == k))
445+ else (bf == n))
413446 then throw("Exchange operations disabled")
414- else if (if ((di.assetPair.amountAsset != aS))
447+ else if (if ((dz.assetPair.amountAsset != bh))
415448 then true
416- else (di.assetPair.priceAsset != aT))
449+ else (dz.assetPair.priceAsset != bi))
417450 then throw("Wrong order assets.")
418451 else {
419- let dm = valueOrErrorMessage(parseBigInt(valueOrErrorMessage(getString(this, W), ay("kLp is required"))), ay("invalid kLp"))
420- let dn = db(dc, dd, 0)
421- let do = dn._1
422- let dp = dn._2
423- let dq = db(0, 0, 0)
424- let dr = dq._1
425- let ds = dq._2
426- let dt = (dp >= dm)
427- let cO = bo(aL(aS))
428- let cP = bo(aL(aT))
429- let cQ = w(cO, aU)
430- let du = (cQ + w(dc, aU))
431- let cR = w(cP, aV)
432- let dv = (cR + w(dd, aV))
433- let dw = pow((cQ * cR), 0, toBigInt(5), 1, 18, DOWN)
434- let dx = pow((du * dv), 0, toBigInt(5), 1, 18, DOWN)
435- let dy = makeString([toString(dm), toString(dp), toString(dw), toString(dx)], " ")
436- $Tuple2(dt, dy)
452+ let dD = valueOrErrorMessage(parseBigInt(valueOrErrorMessage(getString(this, ai), aM("kLp is required"))), aM("invalid kLp"))
453+ let dE = ds(dt, du, 0)
454+ let dF = dE._1
455+ let dG = dE._2
456+ let dH = (dG >= dD)
457+ let dI = makeString([toString(dD), toString(dG)], " ")
458+ $Tuple2(dH, dI)
437459 }
438460 }
439461
440462
441-func dz (dA) = if ((size(dA.payments) != 1))
463+func dJ (dK) = if ((size(dK.payments) != 1))
442464 then throw("exactly 1 payment is expected")
443465 else {
444- let dB = value(dA.payments[0])
445- let bM = value(dB.assetId)
446- let dC = dB.amount
447- let cx = bK(toBase58String(dA.transactionId), toBase58String(bM), dC, dA.caller)
448- let cd = cx._1
449- let ce = cx._2
450- let bR = parseIntValue(cx._9)
451- let cf = cx._10
452- if (if (aE())
466+ let dL = value(dK.payments[0])
467+ let cd = value(dL.assetId)
468+ let dM = dL.amount
469+ let cO = cb(toBase58String(dK.transactionId), toBase58String(cd), dM, dK.caller)
470+ let cu = cO._1
471+ let cv = cO._2
472+ let ci = parseIntValue(cO._9)
473+ let cw = cO._10
474+ if (if (aS())
453475 then true
454- else (bR == k))
455- then throw(("Get operation is blocked by admin. Status = " + toString(bR)))
456- else $Tuple5(cd, ce, dC, bM, cf)
476+ else (ci == n))
477+ then throw(("Get operation is blocked by admin. Status = " + toString(ci)))
478+ else $Tuple5(cu, cv, dM, cd, cw)
457479 }
458480
459481
460-func dD (dA,ch,cn) = if ((size(dA.payments) != 2))
482+func dN (dK,cy,cE) = if ((size(dK.payments) != 2))
461483 then throw("exactly 2 payments are expected")
462484 else {
463- let dE = value(dA.payments[0])
464- let dF = value(dA.payments[1])
465- let dG = cg(toBase58String(dA.transactionId), ch, dE.amount, dE.assetId, dF.amount, dF.assetId, toString(dA.caller), false, cn)
466- let bR = parseIntValue(dG._8)
467- if (if (if (aE())
485+ let dO = value(dK.payments[0])
486+ let dP = value(dK.payments[1])
487+ let dQ = cx(toBase58String(dK.transactionId), cy, dO.amount, dO.assetId, dP.amount, dP.assetId, toString(dK.caller), false, cE)
488+ let ci = parseIntValue(dQ._8)
489+ if (if (if (aS())
468490 then true
469- else (bR == i))
491+ else (ci == l))
470492 then true
471- else (bR == k))
472- then throw(("Put operation is blocked by admin. Status = " + toString(bR)))
473- else dG
493+ else (ci == n))
494+ then throw(("Put operation is blocked by admin. Status = " + toString(ci)))
495+ else dQ
474496 }
475497
476498
477-func dH (dI) = {
478- let dJ = invoke(az, "emit", [dI], nil)
479- if ((dJ == dJ))
499+func dR (dS) = {
500+ let dT = invoke(aN, "emit", [dS], nil)
501+ if ((dT == dT))
480502 then {
481- let dK = {
482- let dL = dJ
483- if ($isInstanceOf(dL, "Address"))
503+ let dU = {
504+ let dV = dT
505+ if ($isInstanceOf(dV, "Address"))
484506 then {
485- let dM = dL
486- invoke(dM, "emit", [dI], nil)
507+ let dW = dV
508+ invoke(dW, "emit", [dS], nil)
487509 }
488510 else unit
489511 }
490- if ((dK == dK))
491- then dI
512+ if ((dU == dU))
513+ then dS
492514 else throw("Strict value is not equal to itself.")
493515 }
494516 else throw("Strict value is not equal to itself.")
495517 }
496518
497519
498-func dN (dI,V) = {
499- let dO = if ((V == 0))
520+func dX (dS,ah) = {
521+ let dY = if ((ah == 0))
500522 then 0
501- else fraction(dI, V, a)
502- $Tuple2((dI - dO), dO)
523+ else fraction(dS, ah, b)
524+ $Tuple2((dS - dY), dY)
503525 }
504526
505527
506-func dP (dQ,dR,O,P) = {
507- let dS = (P == unit)
508- let dT = bo(aL(aS))
509- let dU = bo(aL(aT))
510- let dV = if ((dR == aS))
528+func dZ (ea,eb,aa,ab) = {
529+ let ec = (ab == unit)
530+ let ed = bD(aZ(bh))
531+ let ee = bD(aZ(bi))
532+ let ef = if ((eb == bh))
511533 then true
512- else if ((dR == aT))
534+ else if ((eb == bi))
513535 then false
514- else aw("invalid asset")
515- let dW = if (dS)
516- then $Tuple2(dT, dU)
517- else if (dV)
518- then $Tuple2((dT - dQ), dU)
519- else $Tuple2(dT, (dU - dQ))
520- let dX = dW._1
521- let dY = dW._2
522- let dZ = if (dV)
523- then $Tuple2(dQ, 0)
524- else $Tuple2(0, dQ)
525- let ea = dZ._1
526- let eb = dZ._2
527- let dj = dN(ea, aB)._1
528- let dk = dN(eb, aB)._1
529- let ec = dN(dQ, aB)
530- let ed = ec._1
531- let dO = ec._2
532- let ee = (dX + dj)
533- let ef = (dY + dk)
534- let eg = bq(w(ef, aV), w(ee, aU))
535- let eh = A(eg, a)
536- let ei = if (dV)
537- then dX
538- else dY
539- let ej = toBigInt(ei)
540- let ek = toBigInt(valueOrErrorMessage(assetInfo(aR), (("asset " + toBase58String(aR)) + " doesn't exist")).quantity)
541- let el = if ((ek > d))
536+ else aK("invalid asset")
537+ let eg = if (ec)
538+ then $Tuple2(ed, ee)
539+ else if (ef)
540+ then $Tuple2((ed - ea), ee)
541+ else $Tuple2(ed, (ee - ea))
542+ let eh = eg._1
543+ let ei = eg._2
544+ let ej = if (ef)
545+ then $Tuple2(ea, 0)
546+ else $Tuple2(0, ea)
547+ let ek = ej._1
548+ let el = ej._2
549+ let dA = dX(ek, aP)._1
550+ let dB = dX(el, aP)._1
551+ let em = dX(ea, aP)
552+ let en = em._1
553+ let dY = em._2
554+ let eo = (eh + dA)
555+ let ep = (ei + dB)
556+ let eq = bF(D(ep, bk), D(eo, bj))
557+ let er = H(eq, b)
558+ let es = if (ef)
559+ then eh
560+ else ei
561+ let et = toBigInt(es)
562+ let eu = toBigInt(valueOrErrorMessage(assetInfo(bg), (("asset " + toBase58String(bg)) + " doesn't exist")).quantity)
563+ let ev = if ((eu > f))
542564 then true
543- else aw("initial deposit requires all coins")
544- if ((el == el))
565+ else aK("initial deposit requires all coins")
566+ if ((ev == ev))
545567 then {
546- let em = toBigInt(ed)
547- let en = max([0, toInt(((ek * (sqrtBigInt((b + ((em * b) / ej)), 18, 18, DOWN) - b)) / b))])
548- let cM = if (dS)
568+ let ew = toBigInt(en)
569+ let ex = max([0, toInt(((eu * (sqrtBigInt((d + ((ew * d) / et)), 18, 18, DOWN) - d)) / d))])
570+ let dd = if (ec)
549571 then nil
550- else [IntegerEntry(J(), eh), IntegerEntry(K(height, lastBlock.timestamp), eh), StringEntry(N(toString(value(O)), toBase58String(value(P))), aZ(ea, eb, en, eh, 0, 0, height, lastBlock.timestamp, 0, 0))]
551- let eo = bq(w(dY, aV), w(dX, aU))
552- let ep = A(eo, a)
553- let eq = {
554- let er = if (dV)
555- then $Tuple2(ea, dX)
556- else $Tuple2(eb, dY)
557- let dI = er._1
558- let es = er._2
559- let et = toInt(fraction(ek, toBigInt((dI / 2)), toBigInt(es)))
560- fraction((en - et), a, et)
572+ else [IntegerEntry(V(), er), IntegerEntry(W(height, lastBlock.timestamp), er), StringEntry(Z(toString(value(aa)), toBase58String(value(ab))), bo(ek, el, ex, er, 0, 0, height, lastBlock.timestamp, 0, 0))]
573+ let ey = bF(D(ei, bk), D(eh, bj))
574+ let ez = H(ey, b)
575+ let eA = {
576+ let eB = if (ef)
577+ then $Tuple2(ek, eh)
578+ else $Tuple2(el, ei)
579+ let dS = eB._1
580+ let eC = eB._2
581+ let eD = toInt(fraction(eu, toBigInt((dS / 2)), toBigInt(eC)))
582+ fraction((ex - eD), b, eD)
561583 }
562- $Tuple5(en, cM, dO, eq, dV)
584+ $Tuple5(ex, dd, dY, eA, ef)
563585 }
564586 else throw("Strict value is not equal to itself.")
565587 }
566588
567589
568-func eu (ev,ed,dR,O,P) = {
569- let dS = (P == unit)
570- let bD = aG()
571- let bE = parseIntValue(bD[q])
572- let bF = parseIntValue(bD[r])
573- let ew = [if ((dR == aR))
590+func eE (eF,en,eb,aa,ab) = {
591+ let ec = (ab == unit)
592+ let bS = aU()
593+ let bT = parseIntValue(bS[t])
594+ let bU = parseIntValue(bS[u])
595+ let eG = [if ((eb == bg))
574596 then true
575- else aw("invalid lp asset")]
576- if ((ew == ew))
597+ else aK("invalid lp asset")]
598+ if ((eG == eG))
577599 then {
578- let ex = if ((ev == aS))
600+ let eH = if ((eF == bh))
579601 then true
580- else if ((ev == aT))
602+ else if ((eF == bi))
581603 then false
582- else aw("invalid asset")
583- let ey = if (ex)
584- then toBigInt(bo(aL(aS)))
585- else toBigInt(bo(aL(aT)))
586- let ez = if (ex)
587- then bE
588- else bF
589- let eA = bo(aL(aS))
590- let eB = bo(aL(aT))
591- let eC = if (ex)
592- then eA
593- else eB
594- let eD = toBigInt(eC)
595- let ek = toBigInt(valueOrErrorMessage(assetInfo(aR), (("asset " + toBase58String(aR)) + " doesn't exist")).quantity)
596- let eE = toBigInt(ed)
597- let eF = max([0, toInt(((ey * (b - pow((b - ((eE * b) / ek)), 18, f, 0, 18, DOWN))) / b))])
598- let eG = dN(eF, aD)
599- let eH = eG._1
600- let dO = eG._2
601- let eI = if (ex)
602- then $Tuple4(eH, 0, (eA - eF), eB)
603- else $Tuple4(0, eH, eA, (eB - eF))
604- let eJ = eI._1
605- let eK = eI._2
606- let eL = eI._3
607- let eM = eI._4
608- let eg = bq(w(eM, aV), w(eL, aU))
609- let eh = A(eg, a)
610- let cM = if (dS)
604+ else aK("invalid asset")
605+ let eI = if (eH)
606+ then toBigInt(bD(aZ(bh)))
607+ else toBigInt(bD(aZ(bi)))
608+ let eJ = if (eH)
609+ then bT
610+ else bU
611+ let eK = bD(aZ(bh))
612+ let eL = bD(aZ(bi))
613+ let eM = if (eH)
614+ then eK
615+ else eL
616+ let eN = toBigInt(eM)
617+ let eu = toBigInt(valueOrErrorMessage(assetInfo(bg), (("asset " + toBase58String(bg)) + " doesn't exist")).quantity)
618+ let eO = toBigInt(en)
619+ let eP = max([0, toInt(((eI * (d - pow((d - ((eO * d) / eu)), 18, h, 0, 18, DOWN))) / d))])
620+ let eQ = dX(eP, aR)
621+ let eR = eQ._1
622+ let dY = eQ._2
623+ let eS = if (eH)
624+ then $Tuple4(eR, 0, (eK - eP), eL)
625+ else $Tuple4(0, eR, eK, (eL - eP))
626+ let eT = eS._1
627+ let eU = eS._2
628+ let eV = eS._3
629+ let eW = eS._4
630+ let eq = bF(D(eW, bk), D(eV, bj))
631+ let er = H(eq, b)
632+ let dd = if (ec)
611633 then nil
612- else [StringEntry(Q(toString(value(O)), toBase58String(value(P))), bk(eJ, eK, ed, eh, height, lastBlock.timestamp)), IntegerEntry(J(), eh), IntegerEntry(K(height, lastBlock.timestamp), eh)]
613- let eo = bq(w(eB, aV), w(eA, aU))
614- let ep = A(eo, a)
615- let eq = {
616- let eN = (toInt(fraction(ey, eE, ek)) * 2)
617- fraction((eH - eN), a, eN)
634+ else [StringEntry(ac(toString(value(aa)), toBase58String(value(ab))), bz(eT, eU, en, er, height, lastBlock.timestamp)), IntegerEntry(V(), er), IntegerEntry(W(height, lastBlock.timestamp), er)]
635+ let ey = bF(D(eL, bk), D(eK, bj))
636+ let ez = H(ey, b)
637+ let eA = {
638+ let eX = (toInt(fraction(eI, eO, eu)) * 2)
639+ fraction((eR - eX), b, eX)
618640 }
619- $Tuple5(eH, cM, dO, eq, ex)
641+ $Tuple5(eR, dd, dY, eA, eH)
620642 }
621643 else throw("Strict value is not equal to itself.")
622644 }
623645
624646
625-func eO () = {
626- let dL = getString(H())
627- if ($isInstanceOf(dL, "String"))
647+func eY () = {
648+ let dV = getString(T())
649+ if ($isInstanceOf(dV, "String"))
628650 then {
629- let eP = dL
630- fromBase58String(eP)
651+ let eZ = dV
652+ fromBase58String(eZ)
631653 }
632- else if ($isInstanceOf(dL, "Unit"))
654+ else if ($isInstanceOf(dV, "Unit"))
633655 then unit
634656 else throw("Match error")
635657 }
636658
637659
638-func eQ () = {
639- let dL = getString(I())
640- if ($isInstanceOf(dL, "String"))
660+func fa () = {
661+ let dV = getString(U())
662+ if ($isInstanceOf(dV, "String"))
641663 then {
642- let eP = dL
643- fromBase58String(eP)
664+ let eZ = dV
665+ fromBase58String(eZ)
644666 }
645- else if ($isInstanceOf(dL, "Unit"))
667+ else if ($isInstanceOf(dV, "Unit"))
646668 then unit
647669 else throw("Match error")
648670 }
649671
650672
651-func eR (dA) = {
652- let dL = eO()
653- if ($isInstanceOf(dL, "ByteVector"))
673+func fb (dK) = {
674+ let dV = eY()
675+ if ($isInstanceOf(dV, "ByteVector"))
654676 then {
655- let eS = dL
656- (dA.callerPublicKey == eS)
677+ let fc = dV
678+ (dK.callerPublicKey == fc)
657679 }
658- else if ($isInstanceOf(dL, "Unit"))
659- then (dA.caller == this)
680+ else if ($isInstanceOf(dV, "Unit"))
681+ then (dK.caller == this)
660682 else throw("Match error")
661683 }
662684
663685
664-func eT (dA) = {
665- let eU = throw("Permission denied")
666- let dL = eO()
667- if ($isInstanceOf(dL, "ByteVector"))
686+func fd (dK) = {
687+ let fe = throw("Permission denied")
688+ let dV = eY()
689+ if ($isInstanceOf(dV, "ByteVector"))
668690 then {
669- let eS = dL
670- if ((dA.callerPublicKey == eS))
691+ let fc = dV
692+ if ((dK.callerPublicKey == fc))
671693 then true
672- else eU
694+ else fe
673695 }
674- else if ($isInstanceOf(dL, "Unit"))
675- then if ((dA.caller == this))
696+ else if ($isInstanceOf(dV, "Unit"))
697+ then if ((dK.caller == this))
676698 then true
677- else eU
699+ else fe
678700 else throw("Match error")
679701 }
680702
681703
682-@Callable(dA)
683-func setManager (eV) = {
684- let eW = eT(dA)
685- if ((eW == eW))
704+@Callable(dK)
705+func setManager (ff) = {
706+ let fg = fd(dK)
707+ if ((fg == fg))
686708 then {
687- let eX = fromBase58String(eV)
688- if ((eX == eX))
689- then [StringEntry(I(), eV)]
709+ let fh = fromBase58String(ff)
710+ if ((fh == fh))
711+ then [StringEntry(U(), ff)]
690712 else throw("Strict value is not equal to itself.")
691713 }
692714 else throw("Strict value is not equal to itself.")
693715 }
694716
695717
696718
697-@Callable(dA)
719+@Callable(dK)
698720 func confirmManager () = {
699- let eY = eQ()
700- let eZ = if (isDefined(eY))
721+ let fi = fa()
722+ let fj = if (isDefined(fi))
701723 then true
702724 else throw("No pending manager")
703- if ((eZ == eZ))
725+ if ((fj == fj))
704726 then {
705- let fa = if ((dA.callerPublicKey == value(eY)))
727+ let fk = if ((dK.callerPublicKey == value(fi)))
706728 then true
707729 else throw("You are not pending manager")
708- if ((fa == fa))
709- then [StringEntry(H(), toBase58String(value(eY))), DeleteEntry(I())]
730+ if ((fk == fk))
731+ then [StringEntry(T(), toBase58String(value(fi))), DeleteEntry(U())]
710732 else throw("Strict value is not equal to itself.")
711733 }
712734 else throw("Strict value is not equal to itself.")
713735 }
714736
715737
716738
717-@Callable(dA)
718-func put (ch,fb) = if ((0 > ch))
739+@Callable(dK)
740+func put (cy,fl) = if ((0 > cy))
719741 then throw("Invalid slippageTolerance passed")
720742 else {
721- let dG = dD(dA, ch, true)
722- let cJ = dG._2
723- let bO = dG._7
724- let cf = dG._9
725- let cK = dG._10
726- let cL = dG._11
727- let fc = dG._12
728- let fd = dG._13
729- let dE = toBigInt(value(dA.payments[0]).amount)
730- let dF = toBigInt(value(dA.payments[1]).amount)
731- let da = cT(dE, dF, toBigInt(0))
732- if ((da == da))
743+ let dQ = dN(dK, cy, true)
744+ let da = dQ._2
745+ let cf = dQ._7
746+ let cw = dQ._9
747+ let db = dQ._10
748+ let dc = dQ._11
749+ let fm = dQ._12
750+ let fn = dQ._13
751+ let dO = toBigInt(value(dK.payments[0]).amount)
752+ let dP = toBigInt(value(dK.payments[1]).amount)
753+ let dr = dk(dO, dP, toBigInt(0))
754+ if ((dr == dr))
733755 then {
734- let dJ = invoke(az, "emit", [cJ], nil)
735- if ((dJ == dJ))
756+ let dT = invoke(aN, "emit", [da], nil)
757+ if ((dT == dT))
736758 then {
737- let dK = {
738- let dL = dJ
739- if ($isInstanceOf(dL, "Address"))
759+ let dU = {
760+ let dV = dT
761+ if ($isInstanceOf(dV, "Address"))
740762 then {
741- let dM = dL
742- invoke(dM, "emit", [cJ], nil)
763+ let dW = dV
764+ invoke(dW, "emit", [da], nil)
743765 }
744766 else unit
745767 }
746- if ((dK == dK))
768+ if ((dU == dU))
747769 then {
748- let fe = if ((cK > 0))
749- then invoke(aY, "put", nil, [AttachedPayment(fc, cK)])
770+ let fo = if ((db > 0))
771+ then invoke(bn, "put", nil, [AttachedPayment(fm, db)])
750772 else nil
751- if ((fe == fe))
773+ if ((fo == fo))
752774 then {
753- let ff = if ((cL > 0))
754- then invoke(aY, "put", nil, [AttachedPayment(fd, cL)])
775+ let fp = if ((dc > 0))
776+ then invoke(bn, "put", nil, [AttachedPayment(fn, dc)])
755777 else nil
756- if ((ff == ff))
778+ if ((fp == fp))
757779 then {
758- let fg = if (fb)
780+ let fq = if (fl)
759781 then {
760- let fh = invoke(aX, "stake", nil, [AttachedPayment(bO, cJ)])
761- if ((fh == fh))
782+ let fr = invoke(bm, "stake", nil, [AttachedPayment(cf, da)])
783+ if ((fr == fr))
762784 then nil
763785 else throw("Strict value is not equal to itself.")
764786 }
765- else [ScriptTransfer(dA.caller, cJ, bO)]
766- let fi = db(0, 0, 0)
767- if ((fi == fi))
787+ else [ScriptTransfer(dK.caller, da, cf)]
788+ let fs = ds(0, 0, 0)
789+ if ((fs == fs))
768790 then {
769- let cS = fi._2
770- let fj = fi._1
771- let fk = df(da, cS)
772- if ((fk == fk))
773- then ((cf ++ fg) ++ fj)
791+ let dj = fs._2
792+ let ft = fs._1
793+ let fu = dw(dr, dj)
794+ if ((fu == fu))
795+ then ((cw ++ fq) ++ ft)
774796 else throw("Strict value is not equal to itself.")
775797 }
776798 else throw("Strict value is not equal to itself.")
777799 }
778800 else throw("Strict value is not equal to itself.")
779801 }
780802 else throw("Strict value is not equal to itself.")
781803 }
782804 else throw("Strict value is not equal to itself.")
783805 }
784806 else throw("Strict value is not equal to itself.")
785807 }
786808 else throw("Strict value is not equal to itself.")
787809 }
788810
789811
790812
791-@Callable(dA)
792-func putForFree (fl) = if ((0 > fl))
813+@Callable(dK)
814+func putForFree (fv) = if ((0 > fv))
793815 then throw("Invalid value passed")
794816 else {
795- let dG = dD(dA, fl, false)
796- let cf = dG._9
797- let dE = toBigInt(value(dA.payments[0]).amount)
798- let dF = toBigInt(value(dA.payments[1]).amount)
799- let da = cT(dE, dF, toBigInt(0))
800- if ((da == da))
817+ let dQ = dN(dK, fv, false)
818+ let cw = dQ._9
819+ let dO = toBigInt(value(dK.payments[0]).amount)
820+ let dP = toBigInt(value(dK.payments[1]).amount)
821+ let dr = dk(dO, dP, toBigInt(0))
822+ if ((dr == dr))
801823 then {
802- let fm = db(0, 0, 0)
803- let fj = fm._1
804- let cS = fm._2
805- let fk = df(da, cS)
806- if ((fk == fk))
807- then (cf ++ fj)
824+ let fw = ds(0, 0, 0)
825+ let ft = fw._1
826+ let dj = fw._2
827+ let fu = dw(dr, dj)
828+ if ((fu == fu))
829+ then (cw ++ ft)
808830 else throw("Strict value is not equal to itself.")
809831 }
810832 else throw("Strict value is not equal to itself.")
811833 }
812834
813835
814836
815-@Callable(dA)
816-func putOneTkn (fn,fo) = {
817- let fp = {
818- let aC = invoke(az, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
819- if ($isInstanceOf(aC, "Boolean"))
820- then aC
821- else throw(($getType(aC) + " couldn't be cast to Boolean"))
837+@Callable(dK)
838+func putOneTkn (fx,fy) = {
839+ let fz = {
840+ let aQ = invoke(aN, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
841+ if ($isInstanceOf(aQ, "Boolean"))
842+ then aQ
843+ else throw(($getType(aQ) + " couldn't be cast to Boolean"))
822844 }
823- let fq = if (if (if (aE())
845+ let fA = if (if (if (aS())
824846 then true
825- else (aQ == i))
847+ else (bf == l))
826848 then true
827- else (aQ == k))
849+ else (bf == n))
828850 then true
829- else fp
830- let ew = [if (if (!(fq))
851+ else fz
852+ let eG = [if (if (!(fA))
831853 then true
832- else eR(dA))
854+ else fb(dK))
833855 then true
834- else aw("put operation is blocked by admin"), if ((size(dA.payments) == 1))
856+ else aK("put operation is blocked by admin"), if ((size(dK.payments) == 1))
835857 then true
836- else aw("exactly 1 payment are expected")]
837- if ((ew == ew))
858+ else aK("exactly 1 payment are expected")]
859+ if ((eG == eG))
838860 then {
839- let fr = dA.payments[0]
840- let dR = fr.assetId
841- let dQ = fr.amount
842- let da = if ((dR == aS))
843- then cT(toBigInt(dQ), toBigInt(0), toBigInt(0))
844- else if ((dR == aT))
845- then cT(toBigInt(0), toBigInt(dQ), toBigInt(0))
846- else aw("payment asset is not supported")
847- if ((da == da))
861+ let fB = dK.payments[0]
862+ let eb = fB.assetId
863+ let ea = fB.amount
864+ let dr = if ((eb == bh))
865+ then dk(toBigInt(ea), toBigInt(0), toBigInt(0))
866+ else if ((eb == bi))
867+ then dk(toBigInt(0), toBigInt(ea), toBigInt(0))
868+ else aK("payment asset is not supported")
869+ if ((dr == dr))
848870 then {
849- let O = dA.caller
850- let P = dA.transactionId
851- let fs = dP(dQ, dR, O, P)
852- if ((fs == fs))
871+ let aa = dK.caller
872+ let ab = dK.transactionId
873+ let fC = dZ(ea, eb, aa, ab)
874+ if ((fC == fC))
853875 then {
854- let dV = fs._5
855- let ft = fs._4
856- let dO = fs._3
857- let cM = fs._2
858- let fu = fs._1
859- let fv = if (if ((fn > 0))
860- then (fn > fu)
876+ let ef = fC._5
877+ let fD = fC._4
878+ let dY = fC._3
879+ let dd = fC._2
880+ let fE = fC._1
881+ let fF = if (if ((fx > 0))
882+ then (fx > fE)
861883 else false)
862- then aw(makeString(["amount to receive is less than ", toString(fn)], ""))
863- else fu
864- let dJ = dH(fv)
865- if ((dJ == dJ))
884+ then aK(makeString(["amount to receive is less than ", toString(fx)], ""))
885+ else fE
886+ let dT = dR(fF)
887+ if ((dT == dT))
866888 then {
867- let fg = if (fo)
889+ let fq = if (fy)
868890 then {
869- let fw = invoke(aX, "stake", nil, [AttachedPayment(aR, fv)])
870- if ((fw == fw))
891+ let fG = invoke(bm, "stake", nil, [AttachedPayment(bg, fF)])
892+ if ((fG == fG))
871893 then nil
872894 else throw("Strict value is not equal to itself.")
873895 }
874- else [ScriptTransfer(dA.caller, fv, aR)]
875- let fx = if ((dO > 0))
876- then [ScriptTransfer(aA, dO, dR)]
896+ else [ScriptTransfer(dK.caller, fF, bg)]
897+ let fH = if ((dY > 0))
898+ then [ScriptTransfer(aO, dY, eb)]
877899 else nil
878- let fy = if ((this == aA))
900+ let fI = if ((this == aO))
879901 then $Tuple2(0, 0)
880- else if (dV)
881- then $Tuple2(-(dO), 0)
882- else $Tuple2(0, -(dO))
883- let dc = fy._1
884- let dd = fy._2
885- let fz = db(dc, dd, 0)
886- let fj = fz._1
887- let cS = fz._2
888- let dm = value(getString(W))
889- let fk = df(da, cS)
890- if ((fk == fk))
891- then $Tuple2((((cM ++ fg) ++ fx) ++ fj), fv)
902+ else if (ef)
903+ then $Tuple2(-(dY), 0)
904+ else $Tuple2(0, -(dY))
905+ let dt = fI._1
906+ let du = fI._2
907+ let fJ = ds(dt, du, 0)
908+ let ft = fJ._1
909+ let dj = fJ._2
910+ let dD = value(getString(ai))
911+ let fu = dw(dr, dj)
912+ if ((fu == fu))
913+ then $Tuple2((((dd ++ fq) ++ fH) ++ ft), fF)
892914 else throw("Strict value is not equal to itself.")
893915 }
894916 else throw("Strict value is not equal to itself.")
895917 }
896918 else throw("Strict value is not equal to itself.")
897919 }
898920 else throw("Strict value is not equal to itself.")
899921 }
900922 else throw("Strict value is not equal to itself.")
901923 }
902924
903925
904926
905-@Callable(dA)
906-func putOneTknREADONLY (dR,dQ) = {
907- let fA = dP(dQ, aJ(dR), unit, unit)
908- let fu = fA._1
909- let cM = fA._2
910- let dO = fA._3
911- let ft = fA._4
912- let dV = fA._5
913- $Tuple2(nil, $Tuple3(fu, dO, ft))
927+@Callable(dK)
928+func putOneTknREADONLY (eb,ea) = {
929+ let fK = dZ(ea, aX(eb), unit, unit)
930+ let fE = fK._1
931+ let dd = fK._2
932+ let dY = fK._3
933+ let fD = fK._4
934+ let ef = fK._5
935+ $Tuple2(nil, $Tuple3(fE, dY, fD))
914936 }
915937
916938
917939
918-@Callable(dA)
919-func getOneTkn (fB,fn) = {
920- let fp = {
921- let aC = invoke(az, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
922- if ($isInstanceOf(aC, "Boolean"))
923- then aC
924- else throw(($getType(aC) + " couldn't be cast to Boolean"))
940+@Callable(dK)
941+func getOneTkn (fL,fx) = {
942+ let fz = {
943+ let aQ = invoke(aN, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
944+ if ($isInstanceOf(aQ, "Boolean"))
945+ then aQ
946+ else throw(($getType(aQ) + " couldn't be cast to Boolean"))
925947 }
926- let fC = if (if (aE())
948+ let fM = if (if (aS())
927949 then true
928- else (aQ == k))
950+ else (bf == n))
929951 then true
930- else fp
931- let ew = [if (if (!(fC))
952+ else fz
953+ let eG = [if (if (!(fM))
932954 then true
933- else eR(dA))
955+ else fb(dK))
934956 then true
935- else aw("get operation is blocked by admin"), if ((size(dA.payments) == 1))
957+ else aK("get operation is blocked by admin"), if ((size(dK.payments) == 1))
936958 then true
937- else aw("exactly 1 payment are expected")]
938- if ((ew == ew))
959+ else aK("exactly 1 payment are expected")]
960+ if ((eG == eG))
939961 then {
940- let ev = aJ(fB)
941- let fr = dA.payments[0]
942- let dR = fr.assetId
943- let ed = fr.amount
944- let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
945- if ((da == da))
962+ let eF = aX(fL)
963+ let fB = dK.payments[0]
964+ let eb = fB.assetId
965+ let en = fB.amount
966+ let dr = dk(toBigInt(0), toBigInt(0), toBigInt(0))
967+ if ((dr == dr))
946968 then {
947- let O = dA.caller
948- let P = dA.transactionId
949- let fD = eu(ev, ed, dR, O, P)
950- if ((fD == fD))
969+ let aa = dK.caller
970+ let ab = dK.transactionId
971+ let fN = eE(eF, en, eb, aa, ab)
972+ if ((fN == fN))
951973 then {
952- let ex = fD._5
953- let ft = fD._4
954- let dO = fD._3
955- let cM = fD._2
956- let fE = fD._1
957- let dI = if (if ((fn > 0))
958- then (fn > fE)
974+ let eH = fN._5
975+ let fD = fN._4
976+ let dY = fN._3
977+ let dd = fN._2
978+ let fO = fN._1
979+ let dS = if (if ((fx > 0))
980+ then (fx > fO)
959981 else false)
960- then aw(makeString(["amount to receive is less than ", toString(fn)], ""))
961- else fE
962- let fF = invoke(az, "burn", [ed], [AttachedPayment(dR, ed)])
963- if ((fF == fF))
982+ then aK(makeString(["amount to receive is less than ", toString(fx)], ""))
983+ else fO
984+ let fP = invoke(aN, "burn", [en], [AttachedPayment(eb, en)])
985+ if ((fP == fP))
964986 then {
965- let fG = [ScriptTransfer(O, dI, ev)]
966- let fx = if ((dO > 0))
967- then [ScriptTransfer(aA, dO, ev)]
987+ let fQ = [ScriptTransfer(aa, dS, eF)]
988+ let fH = if ((dY > 0))
989+ then [ScriptTransfer(aO, dY, eF)]
968990 else nil
969- let fH = {
970- let fI = if ((this == aA))
991+ let fR = {
992+ let fS = if ((this == aO))
971993 then 0
972- else dO
973- if (ex)
974- then $Tuple2(-((dI + fI)), 0)
975- else $Tuple2(0, -((dI + fI)))
994+ else dY
995+ if (eH)
996+ then $Tuple2(-((dS + fS)), 0)
997+ else $Tuple2(0, -((dS + fS)))
976998 }
977- let dc = fH._1
978- let dd = fH._2
979- let fJ = db(dc, dd, 0)
980- let fj = fJ._1
981- let cS = fJ._2
982- let fk = df(da, cS)
983- if ((fk == fk))
984- then $Tuple2((((cM ++ fG) ++ fx) ++ fj), dI)
999+ let dt = fR._1
1000+ let du = fR._2
1001+ let fT = ds(dt, du, 0)
1002+ let ft = fT._1
1003+ let dj = fT._2
1004+ let fu = dw(dr, dj)
1005+ if ((fu == fu))
1006+ then $Tuple2((((dd ++ fQ) ++ fH) ++ ft), dS)
9851007 else throw("Strict value is not equal to itself.")
9861008 }
9871009 else throw("Strict value is not equal to itself.")
9881010 }
9891011 else throw("Strict value is not equal to itself.")
9901012 }
9911013 else throw("Strict value is not equal to itself.")
9921014 }
9931015 else throw("Strict value is not equal to itself.")
9941016 }
9951017
9961018
9971019
998-@Callable(dA)
999-func getOneTknREADONLY (ev,ed) = {
1000- let fK = eu(aJ(ev), ed, aR, unit, unit)
1001- let fE = fK._1
1002- let cM = fK._2
1003- let dO = fK._3
1004- let ft = fK._4
1005- let ex = fK._5
1006- $Tuple2(nil, $Tuple3(fE, dO, ft))
1020+@Callable(dK)
1021+func getOneTknREADONLY (eF,en) = {
1022+ let fU = eE(aX(eF), en, bg, unit, unit)
1023+ let fO = fU._1
1024+ let dd = fU._2
1025+ let dY = fU._3
1026+ let fD = fU._4
1027+ let eH = fU._5
1028+ $Tuple2(nil, $Tuple3(fO, dY, fD))
10071029 }
10081030
10091031
10101032
1011-@Callable(dA)
1012-func unstakeAndGetOneTkn (fL,fB,fn) = {
1013- let fp = {
1014- let aC = invoke(az, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1015- if ($isInstanceOf(aC, "Boolean"))
1016- then aC
1017- else throw(($getType(aC) + " couldn't be cast to Boolean"))
1033+@Callable(dK)
1034+func unstakeAndGetOneTkn (fV,fL,fx) = {
1035+ let fz = {
1036+ let aQ = invoke(aN, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1037+ if ($isInstanceOf(aQ, "Boolean"))
1038+ then aQ
1039+ else throw(($getType(aQ) + " couldn't be cast to Boolean"))
10181040 }
1019- let fC = if (if (aE())
1041+ let fM = if (if (aS())
10201042 then true
1021- else (aQ == k))
1043+ else (bf == n))
10221044 then true
1023- else fp
1024- let ew = [if (if (!(fC))
1045+ else fz
1046+ let eG = [if (if (!(fM))
10251047 then true
1026- else eR(dA))
1048+ else fb(dK))
10271049 then true
1028- else aw("get operation is blocked by admin"), if ((size(dA.payments) == 0))
1050+ else aK("get operation is blocked by admin"), if ((size(dK.payments) == 0))
10291051 then true
1030- else aw("no payments are expected")]
1031- if ((ew == ew))
1052+ else aK("no payments are expected")]
1053+ if ((eG == eG))
10321054 then {
1033- let ev = aJ(fB)
1034- let O = dA.caller
1035- let P = dA.transactionId
1036- let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
1037- if ((da == da))
1055+ let eF = aX(fL)
1056+ let aa = dK.caller
1057+ let ab = dK.transactionId
1058+ let dr = dk(toBigInt(0), toBigInt(0), toBigInt(0))
1059+ if ((dr == dr))
10381060 then {
1039- let fM = invoke(aX, "unstake", [toBase58String(aR), fL], nil)
1040- if ((fM == fM))
1061+ let fW = invoke(bm, "unstake", [toBase58String(bg), fV], nil)
1062+ if ((fW == fW))
10411063 then {
1042- let fN = eu(ev, fL, aR, O, P)
1043- if ((fN == fN))
1064+ let fX = eE(eF, fV, bg, aa, ab)
1065+ if ((fX == fX))
10441066 then {
1045- let ex = fN._5
1046- let ft = fN._4
1047- let dO = fN._3
1048- let cM = fN._2
1049- let fE = fN._1
1050- let dI = if (if ((fn > 0))
1051- then (fn > fE)
1067+ let eH = fX._5
1068+ let fD = fX._4
1069+ let dY = fX._3
1070+ let dd = fX._2
1071+ let fO = fX._1
1072+ let dS = if (if ((fx > 0))
1073+ then (fx > fO)
10521074 else false)
1053- then aw(makeString(["amount to receive is less than ", toString(fn)], ""))
1054- else fE
1055- let fF = invoke(az, "burn", [fL], [AttachedPayment(aR, fL)])
1056- if ((fF == fF))
1075+ then aK(makeString(["amount to receive is less than ", toString(fx)], ""))
1076+ else fO
1077+ let fP = invoke(aN, "burn", [fV], [AttachedPayment(bg, fV)])
1078+ if ((fP == fP))
10571079 then {
1058- let fG = [ScriptTransfer(dA.caller, dI, ev)]
1059- let fx = if ((dO > 0))
1060- then [ScriptTransfer(aA, dO, ev)]
1080+ let fQ = [ScriptTransfer(dK.caller, dS, eF)]
1081+ let fH = if ((dY > 0))
1082+ then [ScriptTransfer(aO, dY, eF)]
10611083 else nil
1062- let fO = {
1063- let fI = if ((this == aA))
1084+ let fY = {
1085+ let fS = if ((this == aO))
10641086 then 0
1065- else dO
1066- if (ex)
1067- then $Tuple2(-((dI + fI)), 0)
1068- else $Tuple2(0, -((dI + fI)))
1087+ else dY
1088+ if (eH)
1089+ then $Tuple2(-((dS + fS)), 0)
1090+ else $Tuple2(0, -((dS + fS)))
10691091 }
1070- let dc = fO._1
1071- let dd = fO._2
1072- let fP = db(dc, dd, 0)
1073- let fj = fP._1
1074- let cS = fP._2
1075- let fk = df(da, cS)
1076- if ((fk == fk))
1077- then $Tuple2((((cM ++ fG) ++ fx) ++ fj), dI)
1092+ let dt = fY._1
1093+ let du = fY._2
1094+ let fZ = ds(dt, du, 0)
1095+ let ft = fZ._1
1096+ let dj = fZ._2
1097+ let fu = dw(dr, dj)
1098+ if ((fu == fu))
1099+ then $Tuple2((((dd ++ fQ) ++ fH) ++ ft), dS)
10781100 else throw("Strict value is not equal to itself.")
10791101 }
10801102 else throw("Strict value is not equal to itself.")
10811103 }
10821104 else throw("Strict value is not equal to itself.")
10831105 }
10841106 else throw("Strict value is not equal to itself.")
10851107 }
10861108 else throw("Strict value is not equal to itself.")
10871109 }
10881110 else throw("Strict value is not equal to itself.")
10891111 }
10901112
10911113
10921114
1093-@Callable(dA)
1115+@Callable(dK)
10941116 func get () = {
1095- let cx = dz(dA)
1096- let fQ = cx._1
1097- let ce = cx._2
1098- let dC = cx._3
1099- let bM = cx._4
1100- let cf = cx._5
1101- let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
1102- if ((da == da))
1117+ let cO = dJ(dK)
1118+ let ga = cO._1
1119+ let cv = cO._2
1120+ let dM = cO._3
1121+ let cd = cO._4
1122+ let cw = cO._5
1123+ let dr = dk(toBigInt(0), toBigInt(0), toBigInt(0))
1124+ if ((dr == dr))
11031125 then {
1104- let fR = invoke(az, "burn", [dC], [AttachedPayment(bM, dC)])
1105- if ((fR == fR))
1126+ let gb = invoke(aN, "burn", [dM], [AttachedPayment(cd, dM)])
1127+ if ((gb == gb))
11061128 then {
1107- let fS = db(-(fQ), -(ce), 0)
1108- let fj = fS._1
1109- let cS = fS._2
1110- let fk = df(da, cS)
1111- if ((fk == fk))
1112- then (cf ++ fj)
1129+ let gc = ds(-(ga), -(cv), 0)
1130+ let ft = gc._1
1131+ let dj = gc._2
1132+ let fu = dw(dr, dj)
1133+ if ((fu == fu))
1134+ then (cw ++ ft)
11131135 else throw("Strict value is not equal to itself.")
11141136 }
11151137 else throw("Strict value is not equal to itself.")
11161138 }
11171139 else throw("Strict value is not equal to itself.")
11181140 }
11191141
11201142
11211143
1122-@Callable(dA)
1123-func getNoLess (fT,fU) = {
1124- let cx = dz(dA)
1125- let cd = cx._1
1126- let ce = cx._2
1127- let dC = cx._3
1128- let bM = cx._4
1129- let cf = cx._5
1130- if ((fT > cd))
1131- then throw(((("noLessThenAmtAsset failed: " + toString(cd)) + " < ") + toString(fT)))
1132- else if ((fU > ce))
1133- then throw(((("noLessThenPriceAsset failed: " + toString(ce)) + " < ") + toString(fU)))
1144+@Callable(dK)
1145+func getNoLess (gd,ge) = {
1146+ let cO = dJ(dK)
1147+ let cu = cO._1
1148+ let cv = cO._2
1149+ let dM = cO._3
1150+ let cd = cO._4
1151+ let cw = cO._5
1152+ if ((gd > cu))
1153+ then throw(((("noLessThenAmtAsset failed: " + toString(cu)) + " < ") + toString(gd)))
1154+ else if ((ge > cv))
1155+ then throw(((("noLessThenPriceAsset failed: " + toString(cv)) + " < ") + toString(ge)))
11341156 else {
1135- let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
1136- if ((da == da))
1157+ let dr = dk(toBigInt(0), toBigInt(0), toBigInt(0))
1158+ if ((dr == dr))
11371159 then {
1138- let fR = invoke(az, "burn", [dC], [AttachedPayment(bM, dC)])
1139- if ((fR == fR))
1160+ let gb = invoke(aN, "burn", [dM], [AttachedPayment(cd, dM)])
1161+ if ((gb == gb))
11401162 then {
1141- let fV = db(-(cd), -(ce), 0)
1142- let fj = fV._1
1143- let cS = fV._2
1144- let fk = df(da, cS)
1145- if ((fk == fk))
1146- then (cf ++ fj)
1163+ let gf = ds(-(cu), -(cv), 0)
1164+ let ft = gf._1
1165+ let dj = gf._2
1166+ let fu = dw(dr, dj)
1167+ if ((fu == fu))
1168+ then (cw ++ ft)
11471169 else throw("Strict value is not equal to itself.")
11481170 }
11491171 else throw("Strict value is not equal to itself.")
11501172 }
11511173 else throw("Strict value is not equal to itself.")
11521174 }
11531175 }
11541176
11551177
11561178
1157-@Callable(dA)
1158-func unstakeAndGet (dI) = {
1159- let fW = if ((size(dA.payments) != 0))
1179+@Callable(dK)
1180+func unstakeAndGet (dS) = {
1181+ let gg = if ((size(dK.payments) != 0))
11601182 then throw("No payments are expected")
11611183 else true
1162- if ((fW == fW))
1184+ if ((gg == gg))
11631185 then {
1164- let bD = aG()
1165- let bO = fromBase58String(bD[n])
1166- let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
1167- if ((da == da))
1186+ let bS = aU()
1187+ let cf = fromBase58String(bS[q])
1188+ let dr = dk(toBigInt(0), toBigInt(0), toBigInt(0))
1189+ if ((dr == dr))
11681190 then {
1169- let fM = invoke(aX, "unstake", [toBase58String(bO), dI], nil)
1170- if ((fM == fM))
1191+ let fW = invoke(bm, "unstake", [toBase58String(cf), dS], nil)
1192+ if ((fW == fW))
11711193 then {
1172- let cx = bK(toBase58String(dA.transactionId), toBase58String(bO), dI, dA.caller)
1173- let cd = cx._1
1174- let ce = cx._2
1175- let bR = parseIntValue(cx._9)
1176- let cf = cx._10
1177- let fX = if (if (aE())
1194+ let cO = cb(toBase58String(dK.transactionId), toBase58String(cf), dS, dK.caller)
1195+ let cu = cO._1
1196+ let cv = cO._2
1197+ let ci = parseIntValue(cO._9)
1198+ let cw = cO._10
1199+ let gh = if (if (aS())
11781200 then true
1179- else (bR == k))
1180- then throw(("Get operation is blocked by admin. Status = " + toString(bR)))
1201+ else (ci == n))
1202+ then throw(("Get operation is blocked by admin. Status = " + toString(ci)))
11811203 else true
1182- if ((fX == fX))
1204+ if ((gh == gh))
11831205 then {
1184- let fR = invoke(az, "burn", [dI], [AttachedPayment(bO, dI)])
1185- if ((fR == fR))
1206+ let gb = invoke(aN, "burn", [dS], [AttachedPayment(cf, dS)])
1207+ if ((gb == gb))
11861208 then {
1187- let fY = db(-(cd), -(ce), 0)
1188- let fj = fY._1
1189- let cS = fY._2
1190- let fk = df(da, cS)
1191- if ((fk == fk))
1192- then (cf ++ fj)
1209+ let gi = ds(-(cu), -(cv), 0)
1210+ let ft = gi._1
1211+ let dj = gi._2
1212+ let fu = dw(dr, dj)
1213+ if ((fu == fu))
1214+ then (cw ++ ft)
11931215 else throw("Strict value is not equal to itself.")
11941216 }
11951217 else throw("Strict value is not equal to itself.")
11961218 }
11971219 else throw("Strict value is not equal to itself.")
11981220 }
11991221 else throw("Strict value is not equal to itself.")
12001222 }
12011223 else throw("Strict value is not equal to itself.")
12021224 }
12031225 else throw("Strict value is not equal to itself.")
12041226 }
12051227
12061228
12071229
1208-@Callable(dA)
1209-func unstakeAndGetNoLess (fL,fZ,fU) = {
1210- let fC = if (aE())
1230+@Callable(dK)
1231+func unstakeAndGetNoLess (fV,gj,ge) = {
1232+ let fM = if (aS())
12111233 then true
1212- else (aQ == k)
1213- let ew = [if (!(fC))
1234+ else (bf == n)
1235+ let eG = [if (!(fM))
12141236 then true
1215- else throw("get operation is blocked by admin"), if ((size(dA.payments) == 0))
1237+ else throw("get operation is blocked by admin"), if ((size(dK.payments) == 0))
12161238 then true
12171239 else throw("no payments are expected")]
1218- if ((ew == ew))
1240+ if ((eG == eG))
12191241 then {
1220- let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
1221- if ((da == da))
1242+ let dr = dk(toBigInt(0), toBigInt(0), toBigInt(0))
1243+ if ((dr == dr))
12221244 then {
1223- let fM = invoke(aX, "unstake", [toBase58String(aR), fL], nil)
1224- if ((fM == fM))
1245+ let fW = invoke(bm, "unstake", [toBase58String(bg), fV], nil)
1246+ if ((fW == fW))
12251247 then {
1226- let cx = bK(toBase58String(dA.transactionId), toBase58String(aR), fL, dA.caller)
1227- let cd = cx._1
1228- let ce = cx._2
1229- let cf = cx._10
1230- let ga = [if ((cd >= fZ))
1248+ let cO = cb(toBase58String(dK.transactionId), toBase58String(bg), fV, dK.caller)
1249+ let cu = cO._1
1250+ let cv = cO._2
1251+ let cw = cO._10
1252+ let gk = [if ((cu >= gj))
12311253 then true
1232- else throw(makeString(["amount asset amount to receive is less than ", toString(fZ)], "")), if ((ce >= fU))
1254+ else throw(makeString(["amount asset amount to receive is less than ", toString(gj)], "")), if ((cv >= ge))
12331255 then true
1234- else throw(makeString(["price asset amount to receive is less than ", toString(fU)], ""))]
1235- if ((ga == ga))
1256+ else throw(makeString(["price asset amount to receive is less than ", toString(ge)], ""))]
1257+ if ((gk == gk))
12361258 then {
1237- let fR = invoke(az, "burn", [fL], [AttachedPayment(aR, fL)])
1238- if ((fR == fR))
1259+ let gb = invoke(aN, "burn", [fV], [AttachedPayment(bg, fV)])
1260+ if ((gb == gb))
12391261 then {
1240- let gb = db(-(cd), -(ce), 0)
1241- let fj = gb._1
1242- let cS = gb._2
1243- let fk = df(da, cS)
1244- if ((fk == fk))
1245- then (cf ++ fj)
1262+ let gl = ds(-(cu), -(cv), 0)
1263+ let ft = gl._1
1264+ let dj = gl._2
1265+ let fu = dw(dr, dj)
1266+ if ((fu == fu))
1267+ then (cw ++ ft)
12461268 else throw("Strict value is not equal to itself.")
12471269 }
12481270 else throw("Strict value is not equal to itself.")
12491271 }
12501272 else throw("Strict value is not equal to itself.")
12511273 }
12521274 else throw("Strict value is not equal to itself.")
12531275 }
12541276 else throw("Strict value is not equal to itself.")
12551277 }
12561278 else throw("Strict value is not equal to itself.")
12571279 }
12581280
12591281
12601282
1261-@Callable(dA)
1262-func activate (gc,gd) = if ((toString(dA.caller) != toString(az)))
1283+@Callable(dK)
1284+func activate (gm,gn) = if ((toString(dK.caller) != toString(aN)))
12631285 then throw("permissions denied")
1264- else $Tuple2([StringEntry(R(), gc), StringEntry(S(), gd)], "success")
1286+ else $Tuple2([StringEntry(ad(), gm), StringEntry(ae(), gn)], "success")
12651287
12661288
12671289
1268-@Callable(dA)
1290+@Callable(dK)
12691291 func refreshKLp () = {
1270- let ge = valueOrElse(getInteger(X), 0)
1271- let gf = if (((height - ge) >= aa))
1292+ let go = valueOrElse(getInteger(aj), 0)
1293+ let gp = if (((height - go) >= am))
12721294 then unit
1273- else aw(makeString([toString(aa), " blocks have not passed since the previous call"], ""))
1274- if ((gf == gf))
1295+ else aK(makeString([toString(am), " blocks have not passed since the previous call"], ""))
1296+ if ((gp == gp))
12751297 then {
1276- let dm = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, W), "0")), ay("invalid kLp"))
1277- let gg = db(0, 0, 0)
1278- let gh = gg._1
1279- let cS = gg._2
1280- let de = if ((dm != cS))
1281- then gh
1282- else aw("nothing to refresh")
1283- $Tuple2(de, toString(cS))
1298+ let dD = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, ai), "0")), aM("invalid kLp"))
1299+ let gq = ds(0, 0, 0)
1300+ let gr = gq._1
1301+ let dj = gq._2
1302+ let dv = if ((dD != dj))
1303+ then gr
1304+ else aK("nothing to refresh")
1305+ $Tuple2(dv, toString(dj))
12841306 }
12851307 else throw("Strict value is not equal to itself.")
12861308 }
12871309
12881310
12891311
1290-@Callable(dA)
1291-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aG())
1312+@Callable(dK)
1313+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aU())
12921314
12931315
12941316
1295-@Callable(dA)
1296-func getAccBalanceWrapperREADONLY (bp) = $Tuple2(nil, bo(bp))
1317+@Callable(dK)
1318+func getAccBalanceWrapperREADONLY (bE) = $Tuple2(nil, bD(bE))
12971319
12981320
12991321
1300-@Callable(dA)
1301-func calcPricesWrapperREADONLY (bx,by,bC) = {
1302- let gi = bB(bx, by, bC)
1303- $Tuple2(nil, [toString(gi[0]), toString(gi[1]), toString(gi[2])])
1322+@Callable(dK)
1323+func calcPricesWrapperREADONLY (bM,bN,bR) = {
1324+ let ca = bQ(bM, bN, bR)
1325+ $Tuple2(nil, [toString(ca[0]), toString(ca[1]), toString(ca[2])])
13041326 }
13051327
13061328
13071329
1308-@Callable(dA)
1309-func toX18WrapperREADONLY (x,y) = $Tuple2(nil, toString(w(x, y)))
1330+@Callable(dK)
1331+func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
13101332
13111333
13121334
1313-@Callable(dA)
1314-func fromX18WrapperREADONLY (B,C) = $Tuple2(nil, A(parseBigIntValue(B), C))
1335+@Callable(dK)
1336+func fromX18WrapperREADONLY (I,J) = $Tuple2(nil, H(parseBigIntValue(I), J))
13151337
13161338
13171339
1318-@Callable(dA)
1319-func calcPriceBigIntWrapperREADONLY (br,bs) = $Tuple2(nil, toString(bq(parseBigIntValue(br), parseBigIntValue(bs))))
1340+@Callable(dK)
1341+func calcPriceBigIntWrapperREADONLY (bG,bH) = $Tuple2(nil, toString(bF(parseBigIntValue(bG), parseBigIntValue(bH))))
13201342
13211343
13221344
1323-@Callable(dA)
1324-func estimatePutOperationWrapperREADONLY (bL,ch,ci,cj,ck,cl,O,cm,cn) = $Tuple2(nil, cg(bL, ch, ci, cj, ck, cl, O, cm, cn))
1345+@Callable(dK)
1346+func estimatePutOperationWrapperREADONLY (cc,cy,cz,cA,cB,cC,aa,cD,cE) = $Tuple2(nil, cx(cc, cy, cz, cA, cB, cC, aa, cD, cE))
13251347
13261348
13271349
1328-@Callable(dA)
1329-func estimateGetOperationWrapperREADONLY (bL,bM,bN,O) = {
1330- let cx = bK(bL, bM, bN, addressFromStringValue(O))
1331- $Tuple2(nil, $Tuple10(cx._1, cx._2, cx._3, cx._4, cx._5, cx._6, cx._7, toString(cx._8), cx._9, cx._10))
1350+@Callable(dK)
1351+func estimateGetOperationWrapperREADONLY (cc,cd,ce,aa) = {
1352+ let cO = cb(cc, cd, ce, addressFromStringValue(aa))
1353+ $Tuple2(nil, $Tuple10(cO._1, cO._2, cO._3, cO._4, cO._5, cO._6, cO._7, toString(cO._8), cO._9, cO._10))
13321354 }
13331355
13341356
13351357
1336-@Callable(dA)
1358+@Callable(dK)
13371359 func statsREADONLY () = {
1338- let bD = aG()
1339- let bO = fromBase58String(bD[n])
1340- let gj = bD[o]
1341- let gk = bD[p]
1342- let cq = bD[s]
1343- let cr = bD[t]
1344- let bE = parseIntValue(bD[q])
1345- let bF = parseIntValue(bD[r])
1346- let gl = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1347- let gm = bo(gj)
1348- let gn = bo(gk)
1349- let go = if ((gl == 0))
1350- then [c, c, c]
1351- else bB(gm, gn, gl)
1352- let bY = 0
1353- let gp = A(go[1], a)
1354- let gq = A(go[2], a)
1355- let gr = value(getInteger(az, aj(toString(this))))
1356- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(gm), toString(gn), toString(gl), toString(bY), toString(gp), toString(gq), toString(gr)], h))
1360+ let bS = aU()
1361+ let cf = fromBase58String(bS[q])
1362+ let gs = bS[r]
1363+ let gt = bS[s]
1364+ let cH = bS[v]
1365+ let cI = bS[w]
1366+ let bT = parseIntValue(bS[t])
1367+ let bU = parseIntValue(bS[u])
1368+ let gu = valueOrErrorMessage(assetInfo(cf), (("Asset " + toBase58String(cf)) + " doesn't exist")).quantity
1369+ let gv = bD(gs)
1370+ let gw = bD(gt)
1371+ let gx = if ((gu == 0))
1372+ then [e, e, e]
1373+ else bQ(gv, gw, gu)
1374+ let cp = 0
1375+ let gy = H(gx[1], b)
1376+ let gz = H(gx[2], b)
1377+ let gA = value(getInteger(aN, ax(toString(this))))
1378+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(gv), toString(gw), toString(gu), toString(cp), toString(gy), toString(gz), toString(gA)], j))
13571379 }
13581380
13591381
13601382
1361-@Callable(dA)
1362-func evaluatePutByAmountAssetREADONLY (ci) = {
1363- let bD = aG()
1364- let bO = fromBase58String(bD[n])
1365- let co = bD[o]
1366- let bP = fromBase58String(co)
1367- let cp = bD[p]
1368- let bQ = fromBase58String(cp)
1369- let bE = parseIntValue(bD[q])
1370- let bF = parseIntValue(bD[r])
1371- let bR = bD[m]
1372- let gl = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1373- let gm = bo(co)
1374- let gn = bo(cp)
1375- let bz = w(gm, bE)
1376- let bA = w(gn, bF)
1377- let bX = if ((gl == 0))
1378- then c
1379- else bq(bA, bz)
1380- let cu = w(ci, bE)
1381- let cv = fraction(cu, bX, b)
1382- let ck = A(cv, bF)
1383- let dG = cg("", 500000, ci, bP, ck, bQ, "", true, false)
1384- let cF = dG._1
1385- let gs = dG._3
1386- let bT = dG._4
1387- let bV = dG._5
1388- let bS = dG._6
1389- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cF), toString(A(bX, a)), toString(bT), toString(bV), toString(bS), bR, toString(ci), toString(ck)], h))
1383+@Callable(dK)
1384+func evaluatePutByAmountAssetREADONLY (cz) = {
1385+ let bS = aU()
1386+ let cf = fromBase58String(bS[q])
1387+ let cF = bS[r]
1388+ let cg = fromBase58String(cF)
1389+ let cG = bS[s]
1390+ let ch = fromBase58String(cG)
1391+ let bT = parseIntValue(bS[t])
1392+ let bU = parseIntValue(bS[u])
1393+ let ci = bS[p]
1394+ let gu = valueOrErrorMessage(assetInfo(cf), (("Asset " + toBase58String(cf)) + " doesn't exist")).quantity
1395+ let gv = bD(cF)
1396+ let gw = bD(cG)
1397+ let bO = D(gv, bT)
1398+ let bP = D(gw, bU)
1399+ let co = if ((gu == 0))
1400+ then e
1401+ else bF(bP, bO)
1402+ let cL = D(cz, bT)
1403+ let cM = fraction(cL, co, d)
1404+ let cB = H(cM, bU)
1405+ let dQ = cx("", 500000, cz, cg, cB, ch, "", true, false)
1406+ let cW = dQ._1
1407+ let gB = dQ._3
1408+ let ck = dQ._4
1409+ let cm = dQ._5
1410+ let cj = dQ._6
1411+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cW), toString(H(co, b)), toString(ck), toString(cm), toString(cj), ci, toString(cz), toString(cB)], j))
13901412 }
13911413
13921414
13931415
1394-@Callable(dA)
1395-func evaluatePutByPriceAssetREADONLY (ck) = {
1396- let bD = aG()
1397- let bO = fromBase58String(bD[n])
1398- let co = bD[o]
1399- let bP = fromBase58String(co)
1400- let cp = bD[p]
1401- let bQ = fromBase58String(cp)
1402- let bE = parseIntValue(bD[q])
1403- let bF = parseIntValue(bD[r])
1404- let bR = bD[m]
1405- let gl = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1406- let gt = bo(co)
1407- let gu = bo(cp)
1408- let gv = w(gt, bE)
1409- let gw = w(gu, bF)
1410- let bX = if ((gl == 0))
1411- then c
1412- else bq(gw, gv)
1413- let cv = w(ck, bF)
1414- let cu = fraction(cv, b, bX)
1415- let ci = A(cu, bE)
1416- let dG = cg("", 500000, ci, bP, ck, bQ, "", true, false)
1417- let cF = dG._1
1418- let gs = dG._3
1419- let bT = dG._4
1420- let bV = dG._5
1421- let bS = dG._6
1422- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cF), toString(A(bX, a)), toString(bT), toString(bV), toString(bS), bR, toString(ci), toString(ck)], h))
1416+@Callable(dK)
1417+func evaluatePutByPriceAssetREADONLY (cB) = {
1418+ let bS = aU()
1419+ let cf = fromBase58String(bS[q])
1420+ let cF = bS[r]
1421+ let cg = fromBase58String(cF)
1422+ let cG = bS[s]
1423+ let ch = fromBase58String(cG)
1424+ let bT = parseIntValue(bS[t])
1425+ let bU = parseIntValue(bS[u])
1426+ let ci = bS[p]
1427+ let gu = valueOrErrorMessage(assetInfo(cf), (("Asset " + toBase58String(cf)) + " doesn't exist")).quantity
1428+ let gC = bD(cF)
1429+ let gD = bD(cG)
1430+ let gE = D(gC, bT)
1431+ let gF = D(gD, bU)
1432+ let co = if ((gu == 0))
1433+ then e
1434+ else bF(gF, gE)
1435+ let cM = D(cB, bU)
1436+ let cL = fraction(cM, d, co)
1437+ let cz = H(cL, bT)
1438+ let dQ = cx("", 500000, cz, cg, cB, ch, "", true, false)
1439+ let cW = dQ._1
1440+ let gB = dQ._3
1441+ let ck = dQ._4
1442+ let cm = dQ._5
1443+ let cj = dQ._6
1444+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cW), toString(H(co, b)), toString(ck), toString(cm), toString(cj), ci, toString(cz), toString(cB)], j))
14231445 }
14241446
14251447
14261448
1427-@Callable(dA)
1428-func evaluateGetREADONLY (gx,gy) = {
1429- let cx = bK("", gx, gy, this)
1430- let cd = cx._1
1431- let ce = cx._2
1432- let bT = cx._5
1433- let bV = cx._6
1434- let bS = cx._7
1435- let bY = cx._8
1436- let bR = parseIntValue(cx._9)
1437- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cd), toString(ce), toString(bT), toString(bV), toString(bS), toString(bY), toString(bR)], h))
1449+@Callable(dK)
1450+func evaluateGetREADONLY (gG,gH) = {
1451+ let cO = cb("", gG, gH, this)
1452+ let cu = cO._1
1453+ let cv = cO._2
1454+ let ck = cO._5
1455+ let cm = cO._6
1456+ let cj = cO._7
1457+ let cp = cO._8
1458+ let ci = parseIntValue(cO._9)
1459+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cu), toString(cv), toString(ck), toString(cm), toString(cj), toString(cp), toString(ci)], j))
14381460 }
14391461
14401462
1441-@Verifier(gz)
1442-func gA () = {
1443- let gB = {
1444- let dL = eO()
1445- if ($isInstanceOf(dL, "ByteVector"))
1463+@Verifier(gI)
1464+func gJ () = {
1465+ let gK = {
1466+ let dV = eY()
1467+ if ($isInstanceOf(dV, "ByteVector"))
14461468 then {
1447- let eS = dL
1448- eS
1469+ let fc = dV
1470+ fc
14491471 }
1450- else if ($isInstanceOf(dL, "Unit"))
1451- then gz.senderPublicKey
1472+ else if ($isInstanceOf(dV, "Unit"))
1473+ then gI.senderPublicKey
14521474 else throw("Match error")
14531475 }
1454- let dL = gz
1455- if ($isInstanceOf(dL, "Order"))
1476+ let dV = gI
1477+ if ($isInstanceOf(dV, "Order"))
14561478 then {
1457- let di = dL
1458- let gC = aF()
1459- let gD = dh(di)
1460- let ao = gD._1
1461- let ap = gD._2
1462- let aq = sigVerify(di.bodyBytes, di.proofs[0], di.senderPublicKey)
1463- let ar = sigVerify(di.bodyBytes, di.proofs[1], gC)
1464- if (if (if (ao)
1465- then aq
1479+ let dz = dV
1480+ let gL = aT()
1481+ let gM = dy(dz)
1482+ let aC = gM._1
1483+ let aD = gM._2
1484+ let aE = sigVerify(dz.bodyBytes, dz.proofs[0], dz.senderPublicKey)
1485+ let aF = sigVerify(dz.bodyBytes, dz.proofs[1], gL)
1486+ if (if (if (aC)
1487+ then aE
14661488 else false)
1467- then ar
1489+ then aF
14681490 else false)
14691491 then true
1470- else an(ao, ap, aq, ar)
1492+ else aB(aC, aD, aE, aF)
14711493 }
1472- else if ($isInstanceOf(dL, "SetScriptTransaction"))
1494+ else if ($isInstanceOf(dV, "SetScriptTransaction"))
14731495 then {
1474- let eP = dL
1475- let gE = blake2b256(value(eP.script))
1476- let gF = fromBase64String(value(getString(az, al())))
1477- let gG = scriptHash(this)
1478- if (if ((gF == gE))
1479- then (gG != gE)
1496+ let eZ = dV
1497+ let gN = blake2b256(value(eZ.script))
1498+ let gO = fromBase64String(value(getString(aN, az())))
1499+ let gP = scriptHash(this)
1500+ if (if ((gO == gN))
1501+ then (gP != gN)
14801502 else false)
14811503 then true
1482- else sigVerify(gz.bodyBytes, gz.proofs[0], gB)
1504+ else sigVerify(gI.bodyBytes, gI.proofs[0], gK)
14831505 }
1484- else sigVerify(gz.bodyBytes, gz.proofs[0], gB)
1506+ else sigVerify(gI.bodyBytes, gI.proofs[0], gK)
14851507 }
14861508

github/deemru/w8io/c3f4982 
564.78 ms