tx · 6Xbd3HPEgJdtZ7jwefp61qvqR5fJ2tRkb52J1B58k5h9

3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai:  -0.02400000 Waves

2023.03.14 11:39 [2489484] smart account 3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai > SELF 0.00000000 Waves

{ "type": 13, "id": "6Xbd3HPEgJdtZ7jwefp61qvqR5fJ2tRkb52J1B58k5h9", "fee": 2400000, "feeAssetId": null, "timestamp": 1678783180829, "version": 2, "chainId": 84, "sender": "3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai", "senderPublicKey": "2JEaBjtjvMoNGKZmL9QxYefa1VkMJM3vMW8rNvTs9R2H", "proofs": [ "3AfwXjKyvu9VnBwePUQvgWrobkV6J8V9eJQNa43rqLnoPFyxKVVpCMLsGcdFXPnhSKueUUWrCbcqQCefqobNTfGc" ], "script": "base64:BgLvJwgCEgASBAoCCAgSAwoBCBIKCggICAgICAgIARIDCgEIEgYKBAgICAgSBAoCCBgSAwoBCBIECgIIGBIDCgEIEgASAwoBGBIKCggICAgICAEICBIECgIIARIDCgEBEgMKAQESBAoCCAESBgoECAgICBIECgIICBIECgIICBIECgIICBIDCgEIEgMKAQgSAwoBCBIDCgEIEgQKAggIEgMKAQgSAwoBCBIDCgEIEgQKAggIIgZTQ0FMRTgiBU1VTFQ4IgdTQ0FMRTE4IgZNVUxUMTgiDlBPT0xXRUlHSFRNVUxUIg5HV1h2aXJ0dWFsUE9PTCIMbGFiZWxQb29sc0xwIg1kZWZhdWx0U3ByZWFkIgt3YXZlc1N0cmluZyIRZGVjaW1hbHNNdWx0UHJpY2UiA1NFUCIFRU1QVFkiClBvb2xBY3RpdmUiD1Bvb2xQdXREaXNhYmxlZCITUG9vbE1hdGNoZXJEaXNhYmxlZCIMUG9vbFNodXRkb3duIhJpZHhJbnRlcm5hbEFzc2V0SWQiD2lkeFJlc3V0QWN0aW9ucyIgaWR4SWZBc3NldElkQ2FsY3VsYXRpb25QZXJmb3JtZWQiDmlkeFBvb2xBZGRyZXNzIg1pZHhQb29sU3RhdHVzIhBpZHhQb29sTFBBc3NldElkIg1pZHhBbXRBc3NldElkIg9pZHhQcmljZUFzc2V0SWQiDmlkeEFtdEFzc2V0RGNtIhBpZHhQcmljZUFzc2V0RGNtIg5pZHhJQW10QXNzZXRJZCIQaWR4SVByaWNlQXNzZXRJZCINaWR4TFBBc3NldERjbSILaWR4UG9vbFR5cGUiE3Bvb2xMYWJlbFd4RW1pc3Npb24iD3ZhbGlkUG9vbExhYmVscyIWa2V5QWxsb3dlZExwU2NyaXB0SGFzaCIca2V5QWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaCIha2V5QWxsb3dlZExwU3RhYmxlQWRkb25TY3JpcHRIYXNoIgxzd2FwQ29udHJhY3QiEGtleUZhY3RvcnlDb25maWciD2tleUxwVG9rZW5zTGlzdCIRa2V5UG9vbFNjcmlwdEhhc2giDWtleU1hdGNoZXJQdWIiGGtleUxlZ2FjeUZhY3RvcnlDb250cmFjdCIOa2V5TGVnYWN5UG9vbHMiE2tleU1hbmFnZXJQdWJsaWNLZXkiGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5Ig9rZXlBZG1pblB1YktleXMiFmtleUFzc2V0c1N0b3JlQ29udHJhY3QiGWtleVZvdGluZ0VtaXNzaW9uQ29udHJhY3QiDmtleVByaWNlQXNzZXRzIhBrZXlQcmljZURlY2ltYWxzIhNrZXlBbGxQb29sc1NodXRkb3duIhZrZXlOZXh0SW50ZXJuYWxBc3NldElkIg9rZXlQb29sVG9XZWlnaHQiC3Bvb2xBZGRyZXNzIhZrZXlQb29sVG9XZWlnaHRIaXN0b3J5IgNudW0iH2tleU1hcHBpbmdzSW50ZXJuYWwyYmFzZUFzc2V0SWQiEWludGVybmFsQmFzZUFzc2V0Ih9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkIgxiYXNlQXNzZXRTdHIiDWtleVBvb2xDb25maWciE2Ftb3VudEFzc2V0SW50ZXJuYWwiEnByaWNlQXNzZXRJbnRlcm5hbCIha2V5UG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIg5hc3NldHNJbnRlcm5hbCILJHQwMzcyNjM3ODgiJWtleUFsbFBvb2xzT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiHWtleU1hcHBpbmdMcEFzc2V0VG9Qb29sQXNzZXRzIgpscEFzc2V0U3RyIh1rZXlNYXBwaW5nUG9vbEFzc2V0c1RvTHBhc3NldCIYaW50ZXJuYWxBbW91bnRBc3NldElkU3RyIhdpbnRlcm5hbFByaWNlQXNzZXRJZFN0ciINa2V5UG9vbFNwcmVhZCIpa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMiE3Bvb2xDb250cmFjdEFkZHJlc3MiKWtleU1hcHBpbmdQb29sQXNzZXRzVG9Qb29sQ29udHJhY3RBZGRyZXNzIh9rZXlNYXBwaW5nUG9vbENvbnRyYWN0VG9MUEFzc2V0IiprZXlNYXBwaW5nUG9vbExQQXNzZXRUb1Bvb2xDb250cmFjdEFkZHJlc3MiDWtleVd4RW1pc3Npb24iDWFtb3VudEFzc2V0SWQiDHByaWNlQXNzZXRJZCIIa2V5SW5GZWUiD2tleUluRmVlRGVmYXVsdCIJa2V5T3V0RmVlIhBrZXlPdXRGZWVEZWZhdWx0Ig9nZXRTdHJpbmdPckZhaWwiA2tleSIQZ2V0Qm9vbGVhbk9yRmFpbCIMZ2V0SW50T3JGYWlsIgxwYXJzZUFzc2V0SWQiBWlucHV0IhhJZHhGYWN0b3J5Q2ZnU3Rha2luZ0RhcHAiGUlkeEZhY3RvcnlDZmdCb29zdGluZ0RhcHAiFElkeEZhY3RvcnlDZmdJZG9EYXBwIhVJZHhGYWN0b3J5Q2ZnVGVhbURhcHAiGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHAiFUlkeEZhY3RvcnlDZmdSZXN0RGFwcCIZSWR4RmFjdG9yeUNmZ1NsaXBwYWdlRGFwcCIUSWR4RmFjdG9yeUNmZ0Rhb0RhcHAiGklkeEZhY3RvcnlDZmdNYXJrZXRpbmdEYXBwIhpJZHhGYWN0b3J5Q2ZnR3d4UmV3YXJkRGFwcCIWSWR4RmFjdG9yeUNmZ0JpcmRzRGFwcCIYZ2V0Qm9vc3RpbmdBZGRyZXNzT3JGYWlsIgpmYWN0b3J5Q2ZnIhhnZXRFbWlzc2lvbkFkZHJlc3NPckZhaWwiF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsIhlnZXRHd3hSZXdhcmRBZGRyZXNzT3JGYWlsIg5nZXRQcmljZUFzc2V0cyIHJG1hdGNoMCIBcyIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCIdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQiFXBlcm1pc3Npb25EZW5pZWRFcnJvciIJdGVzdEVycm9yIghtdXN0VGhpcyIBaSILbXVzdE1hbmFnZXIiAnBrIhBkYXRhRmFjdG9yeUNmZ1YzIg5zdGFraW5nQWRkcmVzcyIPYm9vc3RpbmdBZGRyZXNzIgtpZG9Db250cmFjdCIMdGVhbUNvbnRyYWN0IhBlbWlzc2lvbkNvbnRyYWN0IgxyZXN0Q29udHJhY3QiEHNsaXBwYWdlQ29udHJhY3QiC2Rhb0NvbnRyYWN0IhFtYXJrZXRpbmdDb250cmFjdCISZ3d4UmV3YXJkc0NvbnRyYWN0Ig1iaXJkc0NvbnRyYWN0Ig5kYXRhRmFjdG9yeUNmZyILZGF0YVBvb2xDZmciCnBvb2xTdGF0dXMiCWxwQXNzZXRJZCIOYW1vdW50QXNzZXRTdHIiDXByaWNlQXNzZXRTdHIiE2Ftb3VudEFzc2V0RGVjaW1hbHMiEnByaWNlQXNzZXREZWNpbWFscyIVYW1vdW50QXNzZXRJbnRlcm5hbElkIhRwcmljZUFzc2V0SW50ZXJuYWxJZCIPbHBBc3NldERlY2ltYWxzIghwb29sVHlwZSIVZGF0YU1hcHBpbmdQb29sQXNzZXRzIhZpbnRlcm5hbEFtb3VudEFzc2V0U3RyIhVpbnRlcm5hbFByaWNlQXNzZXRTdHIiDWdldFBvb2xDb25maWciCnBvb2xBc3NldHMiGmdldEludGVybmFsQXNzZXRJZE9yQ3JlYXRlIgphc3NldElkU3RyIgtpbmNyZW1lbnRvciIPaW50ZXJuYWxBc3NldElkIhhjdXJyZW50SW5kZXhPZkludGVybmFsSWQiBnJlc3VsdCISbmV3SW50ZXJuYWxBc3NldElkIgltdXN0QWRtaW4iCGFkbWluUEtzIglpc01hbmFnZXIiFmludE9yRGVmYXVsdE9yRmFsbGJhY2siCmtleURlZmF1bHQiDXZhbHVlRmFsbGJhY2siEnBvb2xFeGlzdHNJbnRlcm5hbCIEYW1BcyIEcHJBcyIDY2ZnIgpjZmdSZXZlcnNlIgZleGlzdHMiBmFzc2V0MSIGYXNzZXQyIglhc3NldE51bTEiCWFzc2V0TnVtMiICZWUiA3JlcyICbHAiD3N0YWtpbmdDb250cmFjdCIQYm9vc3RpbmdDb250cmFjdCIQc2xwaXBhZ2VDb250cmFjdCINcHJpY2VEZWNpbWFscyILY2hlY2tDYWxsZXIiEG1hdGhjaGVyUHViNThTdHIiCm1hdGhjZXJQdWIiFWxlZ2FjeUZhY3RvcnlDb250cmFjdCILbGVnYWN5UG9vbHMiE2Fzc2V0c1N0b3JlQ29udHJhY3QiFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QiC3ByaWNlQXNzZXRzIgVjaGVrcyIXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiFWNoZWNrTWFuYWdlclB1YmxpY0tleSICcG0iBWhhc1BNIgdjaGVja1BNIgxhZG1pblB1YktleXMiC2xwQXNzZXROYW1lIgxscEFzc2V0RGVzY3IiCnBvb2xXZWlnaHQiBGxvZ28iF2ludGVybmFsQW1vdW50QXNzZXREYXRhIhVpbnRlcm5hbEFtb3VudEFzc2V0SWQiFmludGVybmFsUHJpY2VBc3NldERhdGEiFGludGVybmFsUHJpY2VBc3NldElkIhVwb29sQWNjb3VudFNjcmlwdEhhc2giHGV0aGFsb25Qb29sQWNjb3VudFNjcmlwdEhhc2giCnBvb2xFeGlzdHMiD3Bvb2xDb25maWdWYWx1ZSIUYW1vdW50QXNzZXRzRGVjaW1hbHMiE3ByaWNlQXNzZXRzRGVjaW1hbHMiEmxwQXNzZXRJc3N1ZUFjdGlvbiIMbHBBc3NldElkU3RyIhhwb29sQWN0aXZhdGVJbnZva2VSZXN1bHQiGGNyZWF0ZU9yVXBkYXRlTHBBc3NldEludiISYWRkUG9vbHNMcExhYmVsSW52IgpzZXRMb2dvSW52IhBhZGRBc3NldHNMaW5rSW52IhtpbmNyZWFzZUFzc2V0UG9vbHNOdW1iZXJJbnYiCW5ld1N0YXR1cyIKcG9vbENvbmZpZyIKbHBBc3NldERjbSIMYW1vdW50VG9FbWl0IgZjYWxsZXIiDG9yaWdpbkNhbGxlciIQbHBBc3NldFJlcXVlc3RlZCIHbHBBc3NldCIMYW1vdW50VG9CdXJuIgdwYXltZW50Ig1wYXltZW50QW1vdW50Ig9pbkFtb3VudEFzc2V0SWQiGmxwQXNzZXRSZXF1ZXN0ZWRGb3JCdXJuaW5nIgVzaGFyZSINcG9vbFdlaWdodEtleSIMZ3d4V2VpZ2h0S2V5Iglnd3hXZWlnaHQiDXBvb2xXZWlnaHROZXciEW9uTW9kaWZ5V2VpZ2h0SW52IhVnd3hWaXJ0dWFsUG9vbEFjdGlvbnMiFHBvb2xXZWlnaHRIaXN0b3J5S2V5Ihdwb29sV2VpZ2h0SGlzdG9yeU9yVW5pdCIYcG9vbFdlaWdodEhpc3RvcnlBY3Rpb25zIg5idGNQb29sQWRkcmVzcyIOZXRoUG9vbEFkZHJlc3MiEWV0aEJ0Y1Bvb2xBZGRyZXNzIhN1c2RjVXNkdFBvb2xBZGRyZXNzIg9ldGhCdGNXZWlnaHROZXciEXVzZGNVc2R0V2VpZ2h0TmV3Ig93ZWlnaHREZWNyZW1lbnQiC3N0YWtpbmdEYXBwIg1nd3hSZXdhcmREYXBwIgxidGNXZWlnaHRLRVkiDGV0aFdlaWdodEtFWSIPZXRoQnRjV2VpZ2h0S0VZIhF1c2RjVXNkdFdlaWdodEtFWSIJYnRjV2VpZ2h0IglldGhXZWlnaHQiDGJ0Y1dlaWdodE5ldyIMZXRoV2VpZ2h0TmV3Ig9idGNMcEFzc2V0SWRTdHIiD2V0aExwQXNzZXRJZFN0ciISZXRoQnRjTHBBc3NldElkU3RyIhR1c2RjVXNkdExwQXNzZXRJZFN0ciIRb25Nb2RpZnlXZWlnaHRCdGMiEW9uTW9kaWZ5V2VpZ2h0RXRoIhRvbk1vZGlmeVdlaWdodEV0aEJ0YyIWb25Nb2RpZnlXZWlnaHRVc2RjVXNkdCIJaGF2ZUxhYmVsIgFiIgdhc3NldElkIhRjaGVja1ByaWNlQXNzZXRzU2l6ZSICY2IiA2FjYyIKcHJpY2VBc3NldCIBciIHYWN0aW9ucyICJGwiAiRzIgUkYWNjMCIFJGYwXzEiAiRhIgIkaSIFJGYwXzIiHnBvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIiYWxsUG9vbHNPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIDZmVlIhBhbW91bnRBc3NldElkU3RyIg9wcmljZUFzc2V0SWRTdHIiG2Ftb3VudEFzc2V0SW50ZXJuYWxJZE9wdGlvbiIacHJpY2VBc3NldEludGVybmFsSWRPcHRpb24iGXBvb2xDb250cmFjdEFkZHJlc3NPcHRpb24iD2xwQXNzZXRJZE9wdGlvbiIIcG9vbEluZm8iAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleWkAAWEACAABYgCAwtcvAAFjABIAAWQJALYCAQCAgJC7utat8A0AAWUFAWIAAWYCDkdXWHZpcnR1YWxQT09MAAFnAghQT09MU19MUAABaACAiXoAAWkCBVdBVkVTAAFqCQBoAgkAaAIAZADoBwDoBwABawICX18AAWwCAAABbQABAAFuAAIAAW8AAwABcAAEAAFxAAEAAXIAAgABcwADAAF0AAEAAXUAAgABdgADAAF3AAQAAXgABQABeQAGAAF6AAcAAUEACAABQgAJAAFDAAoAAUQACwABRQILV1hfRU1JU1NJT04AAUYJAMwIAgUBRQUDbmlsAQFHAAIXJXNfX2FsbG93ZWRMcFNjcmlwdEhhc2gBAUgAAh0lc19fYWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaAEBSQACIiVzX19hbGxvd2VkTHBTdGFibGVBZGRvblNjcmlwdEhhc2gBAUoAAhAlc19fc3dhcENvbnRyYWN0AQFLAAIRJXNfX2ZhY3RvcnlDb25maWcBAUwAAhAlc19fbHBUb2tlbnNMaXN0AQFNAAIWJXMlc19fcG9vbF9fc2NyaXB0SGFzaAEBTgACGCVzJXNfX21hdGNoZXJfX3B1YmxpY0tleQEBTwACGSVzX19sZWdhY3lGYWN0b3J5Q29udHJhY3QBAVAAAg8lc19fbGVnYWN5UG9vbHMBAVEAAhQlc19fbWFuYWdlclB1YmxpY0tleQEBUgACGyVzX19wZW5kaW5nTWFuYWdlclB1YmxpY0tleQEBUwACECVzX19hZG1pblB1YktleXMBAVQAAhclc19fYXNzZXRzU3RvcmVDb250cmFjdAEBVQACGiVzX192b3RpbmdFbWlzc2lvbkNvbnRyYWN0AQFWAAkAuQkCCQDMCAICAiVzCQDMCAICC3ByaWNlQXNzZXRzBQNuaWwFAWsBAVcAAhElc19fcHJpY2VEZWNpbWFscwEBWAACDCVzX19zaHV0ZG93bgEBWQACFyVzX19uZXh0SW50ZXJuYWxBc3NldElkAQFaAQJhYQkArAICAhIlcyVzX19wb29sV2VpZ2h0X18FAmFhAQJhYgICYWECYWMJAKwCAgkArAICCQCsAgICEiVzJXNfX3Bvb2xXZWlnaHRfXwUCYWECAl9fCQCkAwEFAmFjAQJhZAECYWUJAKwCAgIoJXMlcyVkX19tYXBwaW5nc19faW50ZXJuYWwyYmFzZUFzc2V0SWRfXwkApAMBBQJhZQECYWYBAmFnCQCsAgICKCVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJpbnRlcm5hbElkX18FAmFnAQJhaAICYWkCYWoJAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FAmFpAgJfXwUCYWoCCF9fY29uZmlnAQJhawECYWwEAmFtBQJhbAQCYWkIBQJhbQJfMQQCYWoIBQJhbQJfMgkAuQkCCQDMCAICBiVkJWQlcwkAzAgCCQCkAwEFAmFpCQDMCAIJAKQDAQUCYWoJAMwIAgIab25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQFA25pbAUBawECYW4ACQC5CQIJAMwIAgICJXMJAMwIAgIab25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQFA25pbAUBawECYW8BAmFwCQCsAgIJAKwCAgIIJXMlcyVzX18FAmFwAhhfX21hcHBpbmdzX19scEFzc2V0MlBvb2wBAmFxAgJhcgJhcwkArAICCQCsAgIJAKwCAgkArAICAgolZCVkJXMlc19fBQJhcgICX18FAmFzAh5fX21hcHBpbmdzX19Qb29sQXNzZXRzMkxwQXNzZXQBAmF0AQJhYQkArAICAg4lcyVzX19zcHJlYWRfXwUCYWEBAmF1AQJhdgkArAICCQCsAgICCCVzJXMlc19fBQJhdgIjX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MlBvb2xBc3NldHMBAmF3AgJhcgJhcwkArAICCQCsAgIJAKwCAgkArAICAgolZCVkJXMlc19fCQCkAwEFAmFyAgJfXwkApAMBBQJhcwIjX19tYXBwaW5nc19fcG9vbEFzc2V0czJQb29sQ29udHJhY3QBAmF4AQJhdgkArAICCQCsAgICCCVzJXMlc19fBQJhdgIgX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MkxwQXNzZXQBAmF5AQJhcAkArAICCQCsAgICCCVzJXMlc19fBQJhcAIgX19tYXBwaW5nc19fbHBBc3NldDJQb29sQ29udHJhY3QBAmF6AgJhQQJhQgkArAICCQCsAgIJAKwCAgIUJXMlcyVzX193eEVtaXNzaW9uX18FAmFBAgJfXwUCYUIBAmFDAQJhYQkArAICAg0lcyVzX19pbkZlZV9fBQJhYQECYUQAAhAlc19faW5GZWVEZWZhdWx0AQJhRQECYWEJAKwCAgIOJXMlc19fb3V0RmVlX18FAmFhAQJhRgACESVzX19vdXRGZWVEZWZhdWx0AQJhRwECYUgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQJhSAkArAICAhVObyBkYXRhIGZvciB0aGlzLmtleT0FAmFIAQJhSQECYUgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmwgCBQR0aGlzBQJhSAkArAICAhVObyBkYXRhIGZvciB0aGlzLmtleT0FAmFIAQJhSgECYUgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQR0aGlzBQJhSAkArAICAhVObyBkYXRhIGZvciB0aGlzLmtleT0FAmFIAQJhSwECYUwDCQAAAgUCYUwFAWkFBHVuaXQJANkEAQUCYUwAAmFNAAEAAmFOAAIAAmFPAAMAAmFQAAQAAmFRAAUAAmFSAAYAAmFTAAcAAmFUAAgAAmFVAAkAAmFWAAoAAmFXAAsBAmFYAQJhWQkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhWQUCYU4BAmFaAQJhWQkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhWQUCYVEBAmJhAQJhWQkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhWQUCYU0BAmJiAQJhWQkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhWQUCYVYBAmJjAAQCYmQJAKIIAQkBAVYAAwkAAQIFAmJkAgZTdHJpbmcEAmJlBQJiZAMJAAACCQCxAgEFAmJlAAAFA25pbAkAtQkCBQJiZQUBawUDbmlsAQJiZgAEAmJkCQCiCAEJAQFRAAMJAAECBQJiZAIGU3RyaW5nBAJiZQUCYmQJANkEAQUCYmUDCQABAgUCYmQCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECYmcABAJiZAkAoggBCQEBUgADCQABAgUCYmQCBlN0cmluZwQCYmUFAmJkCQDZBAEFAmJlAwkAAQIFAmJkAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAAmJoCQACAQIRUGVybWlzc2lvbiBkZW5pZWQAAmJpCQACAQIPVGVzdCBlcnJvciBoZXJlAQJiagECYmsDCQAAAggFAmJrBmNhbGxlcgUEdGhpcwYFAmJoAQJibAECYmsEAmJkCQECYmYAAwkAAQIFAmJkAgpCeXRlVmVjdG9yBAJibQUCYmQDCQAAAggFAmJrD2NhbGxlclB1YmxpY0tleQUCYm0GBQJiaAMJAAECBQJiZAIEVW5pdAkBAmJqAQUCYmsJAAIBAgtNYXRjaCBlcnJvcgECYm4LAmJvAmJwAmJxAmJyAmJzAmJ0AmJ1AmJ2AmJ3AmJ4AmJ5CQC5CQIJAMwIAgIWJXMlcyVzJXMlcyVzJXMlcyVzJXMlcwkAzAgCBQJibwkAzAgCBQJicAkAzAgCBQJicQkAzAgCBQJicgkAzAgCBQJicwkAzAgCBQJidAkAzAgCBQJidQkAzAgCBQJidgkAzAgCBQJidwkAzAgCBQJieAkAzAgCBQJieQUDbmlsBQFrAQJiegcCYm8CYnACYnECYnICYnMCYnQCYnUJALkJAgkAzAgCAgwlcyVzJXMlcyVzJXMJAMwIAgUCYm8JAMwIAgUCYnAJAMwIAgUCYnEJAMwIAgUCYnIJAMwIAgUCYnMJAMwIAgUCYnQJAMwIAgUCYnUFA25pbAUBawECYkELAmFhAmJCAmJDAmJEAmJFAmJGAmJHAmJIAmJJAmJKAmJLCQC5CQIJAMwIAgIWJXMlZCVzJXMlcyVkJWQlZCVkJWQlcwkAzAgCBQJhYQkAzAgCBQJiQgkAzAgCBQJiQwkAzAgCBQJiRAkAzAgCBQJiRQkAzAgCCQCkAwEFAmJGCQDMCAIJAKQDAQUCYkcJAMwIAgkApAMBBQJiSAkAzAgCCQCkAwEFAmJJCQDMCAIJAKQDAQUCYkoJAMwIAgUCYksFA25pbAUBawECYkwCAmJNAmJOCQC5CQIJAMwIAgIEJWQlZAkAzAgCCQCkAwEFAmJNCQDMCAIJAKQDAQUCYk4FA25pbAUBawECYk8BAmFhBAJiUAkAtQkCCQECYUcBCQECYXUBBQJhYQUBawQCYWkJAJEDAgUCYlAAAQQCYWoJAJEDAgUCYlAAAgkAtQkCCQECYUcBCQECYWgCBQJhaQUCYWoFAWsBAmJRAgJiUgJiUwQCYlQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmFmAQUCYlIAAAQCYlUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAVkAAAAEAmJWAwkAAAIFAmJUAAAEAmJXCQBkAgUCYlUFAmJTCQCVCgMFAmJXCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBWQAFAmJXCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWYBBQJiUgUCYlcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFkAQUCYlcFAmJSBQNuaWwGCQCVCgMFAmJUBQNuaWwHBQJiVgECYlgBAmJrBAJiWQkAtQkCCQELdmFsdWVPckVsc2UCCQCiCAEJAQFTAAUBbAUBawMJAQ9jb250YWluc0VsZW1lbnQCBQJiWQkA2AQBCAUCYmsPY2FsbGVyUHVibGljS2V5BgQCYloJAQJibAEFAmJrAwkAAAIFAmJaBQJiWgYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmNhAwJhSAJjYgJjYwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJhSAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJjYgUCY2MBAmNkAgJhQQJhQgQCYWkJAJ8IAQkBAmFmAQUCYUEEAmFqCQCfCAEJAQJhZgEFAmFCAwMJAAACBQJhaQUEdW5pdAYJAAACBQJhagUEdW5pdAcEAmNlCQCkAwEJAQV2YWx1ZQEFAmFpBAJjZgkApAMBCQEFdmFsdWUBBQJhagQCY2cJAKIIAQkBAmFoAgUCY2UFAmNmBAJjaAkAoggBCQECYWgCBQJjZgUCY2UEAmNpAwkBAiE9AgUCY2cFBHVuaXQGCQECIT0CBQJjaAUEdW5pdAUCY2keAmJrARdnZXRTd2FwQ29udHJhY3RSRUFET05MWQAJAJQKAgUDbmlsCQECYUcBCQEBSgACYmsBIGdldExwQXNzZXRGcm9tUG9vbEFzc2V0c1JFQURPTkxZAgJjagJjawMDCQAAAgUCY2oCLDhMUVc4ZjdQNWQ1UFpNN0d0WkVCZ2FxUlBHU3pTM0RmUHVpWHJVUko0QUpTCQAAAgUCY2sCBVdBVkVTBwkAlAoCBQNuaWwFBHVuaXQEAmNsCQEFdmFsdWUBCQCaCAIFBHRoaXMJAQJhZgEFAmNqBAJjbQkBBXZhbHVlAQkAmggCBQR0aGlzCQECYWYBBQJjawQCY24JAJ0IAgUEdGhpcwkBAmFxAgkApAMBBQJjbAkApAMBBQJjbQQCY28DCQAAAgUCY24FBHVuaXQFBHVuaXQJALACAgkBBXZhbHVlAQUCY24ABAkAlAoCBQNuaWwFAmNvAmJrASFnZXRQb29sQWRkcmVzc0Zyb21McEFzc2V0UkVBRE9OTFkBAmNwCQCUCgIFA25pbAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQECYXkBBQJjcAIAAmJrAQtjb25zdHJ1Y3RvcggCY3ECY3ICYnECYnICYnMCYnQCY3MCY3QEAmN1CQECYmwBBQJiawMJAAACBQJjdQUCY3UJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUsACQECYnoHBQJjcQUCY3IFAmJxBQJicgUCYnMFAmJ0BQJjcwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVcABQJjdAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJrAQ1jb25zdHJ1Y3RvclYyAQJjdgQCY3UJAQJibAEFAmJrAwkAAAIFAmN1BQJjdQQCY3cJAKcIAQkA2QQBBQJjdgMJAAACBQJjdwUCY3cJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU4ABQJjdgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJrAQ1jb25zdHJ1Y3RvclYzBAJidgJidwJieAJieQQCY3UJAQJibAEFAmJrAwkAAAIFAmN1BQJjdQQCYVkJALUJAgkBAmFHAQkBAUsABQFrCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFLAAkBAmJuCwkAkQMCBQJhWQABCQCRAwIFAmFZAAIJAJEDAgUCYVkAAwkAkQMCBQJhWQAECQCRAwIFAmFZAAUJAJEDAgUCYVkABgkAkQMCBQJhWQAHBQJidgUCYncFAmJ4BQJieQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJrAQ1jb25zdHJ1Y3RvclY0AgJjeAJjeQQCY3UJAQJibAEFAmJrAwkAAAIFAmN1BQJjdQkAzAgCCQELU3RyaW5nRW50cnkCCQEBTwAFAmN4CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFQAAkAuQkCBQJjeQUBawUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJrAQ1jb25zdHJ1Y3RvclY1AQJjegQCY3UJAQJibAEFAmJrAwkAAAIFAmN1BQJjdQkAzAgCCQELU3RyaW5nRW50cnkCCQEBVAAFAmN6BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmsBDWNvbnN0cnVjdG9yVjYCAmNBAmNCBAJjQwkAzAgCCQECYmwBBQJiawkAzAgC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AAACBQJkYQUCZGEEAmRiCQD8BwQFAmN6AghhZGRMYWJlbAkAzAgCBQJjWQkAzAgCBQFnBQNuaWwFA25pbAMJAAACBQJkYgUCZGIEAmRjCQD8BwQFAmN6AgdzZXRMb2dvCQDMCAIFAmNZCQDMCAIFAmNNBQNuaWwFA25pbAMJAAACBQJkYwUCZGMEAmRkCQD8BwQFAmN6Ag1hZGRBc3NldHNMaW5rCQDMCAIFAmJECQDMCAIFAmJFCQDMCAIFAmNZBQNuaWwFA25pbAMJAAACBQJkZAUCZGQEAmRlCQD8BwQFAmN6AhhpbmNyZWFzZUFzc2V0UG9vbHNOdW1iZXIJAMwIAgUCYkQFA25pbAUDbmlsAwkAAAIFAmRlBQJkZQkAlAoCCQDOCAIJAM4IAggFAmNOAl8yCAUCY1ACXzIJAMwIAgUCY1gJAMwIAgkBBEJ1cm4CBQJiQwABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhaAIJAKQDAQUCY08JAKQDAQUCY1EJAQJiQQsFAmFhCQCkAwEFAW0FAmNZBQJiRAUCYkUFAmNWBQJjVwUCY08FAmNRBQFqBQJiSwkAzAgCCQELU3RyaW5nRW50cnkCCQECYW8BBQJjWQkBAmJMAgUCY08FAmNRCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhcQIJAKQDAQUCY08JAKQDAQUCY1EJAKwCAgIEJXNfXwUCY1kJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmF1AQUCYWEJAQJiTAIFAmNPBQJjUQkAzAgCCQELU3RyaW5nRW50cnkCCQECYXcCBQJjTwUCY1EFAmFhCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJheQEFAmNZBQJhYQkAzAgCCQELU3RyaW5nRW50cnkCCQECYXgBBQJhYQUCY1kJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFaAQUCYWEFAmNMCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYXQBBQJhYQUBaAUDbmlsBQJjWQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiawEKbWFuYWdlUG9vbAICYWECZGYEAmN1CQECYmwBBQJiawMJAAACBQJjdQUCY3UEAmRnCQECYk8BBQJhYQQCYkIJAJEDAgUCZGcFAXUEAmNZCQCRAwIFAmRnBQF2BAJiRAkAkQMCBQJkZwUBdwQCYkUJAJEDAgUCZGcFAXgEAmNWCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGcFAXkEAmNXCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGcFAXoEAmNPCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGcFAUEEAmNRCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGcFAUIEAmRoCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGcFAUMEAmJLCQCRAwIFAmRnBQFECQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhaAIJAKQDAQUCY08JAKQDAQUCY1EJAQJiQQsFAmFhCQCkAwEFAmRmBQJjWQUCYkQFAmJFBQJjVgUCY1cFAmNPBQJjUQUCZGgFAmJLBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmsBBGVtaXQBAmRpBAJkaggFAmJrBmNhbGxlcgQCZGsIBQJiawxvcmlnaW5DYWxsZXIEAmRsCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBAmF4AQkApQgBBQJkagIdSW52YWxpZCBMUCBhZGRyZXNzIGNhbGxlZCBtZS4EAmRtCQDZBAEFAmRsBAJjeQkAtQkCCQELdmFsdWVPckVsc2UCCQCiCAEJAQFQAAUBbAUBawQCY3gJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQEBTwACKExlZ2FjeSBmYWN0b3J5IGNvbnRyYWN0IGRvZXMgbm90IGV4aXN0cy4DCQBnAgAABQJkaQUDbmlsAwkBD2NvbnRhaW5zRWxlbWVudAIFAmN5CQClCAEFAmRqCQCUCgIFA25pbAUCY3gJAJQKAgkAzAgCCQEHUmVpc3N1ZQMFAmRtBQJkaQYJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmJrBmNhbGxlcgUCZGkFAmRtBQNuaWwCB3N1Y2Nlc3MCYmsBBGJ1cm4BAmRuBAJkaggFAmJrBmNhbGxlcgQCZGsIBQJiawxvcmlnaW5DYWxsZXIEAmRvCQEFdmFsdWUBCQCRAwIIBQJiawhwYXltZW50cwAABAJkcAkBBXZhbHVlAQgFAmRvBmFtb3VudAQCZHEJANgEAQkBBXZhbHVlAQgFAmRvB2Fzc2V0SWQEAmRyCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBAmF4AQkApQgBBQJkagIdSW52YWxpZCBMUCBhZGRyZXNzIGNhbGxlZCBtZS4DCQECIT0CBQJkcQUCZHIJAAIBAhVJbnZhbGlkIGFzc2V0IHBhc3NlZC4DCQECIT0CBQJkbgUCZHAJAAIBAhZJbnZhbGlkIGFtb3VudCBwYXNzZWQuBAJkbQkA2QQBBQJkcgkAlAoCCQDMCAIJAQRCdXJuAgUCZG0FAmRuBQNuaWwCB3N1Y2Nlc3MCYmsBDG1vZGlmeVdlaWdodAICYkMCZHMEAmN1AwkAAAIJANgEAQgIBQJiawZjYWxsZXIFYnl0ZXMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBAVUAAgAGCQECYmwBBQJiawMJAAACBQJjdQUCY3UEAmF2CQECYUcBCQECYXkBBQJiQwQCZHQJAQFaAQUCYXYEAmR1CQEBWgEFAWYEAmR2CQELdmFsdWVPckVsc2UCCQCfCAEFAmR1AAAEAmNMCQELdmFsdWVPckVsc2UCCQCfCAEFAmR0AAAEAmR3BQJkcwQCYVkJALUJAgkBAmFHAQkBAUsABQFrBAJjcQkBAmJhAQUCYVkEAmR4CQD8BwQFAmNxAg5vbk1vZGlmeVdlaWdodAkAzAgCBQJiQwkAzAgCBQJhdgUDbmlsBQNuaWwDCQAAAgUCZHgFAmR4BAJkeQMJAAACBQJkdgAABQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIFAmR1AAAFA25pbAQCZHoJAQJhYgIFAmF2AAAEAmRBCQCfCAEFAmR6BAJkQgMJAAACBQJkQQUEdW5pdAUDbmlsCQDMCAIJAQtEZWxldGVFbnRyeQEFAmR6BQNuaWwJAM4IAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJkdAUCZHcFA25pbAUCZHkFAmRCCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJrAQ1tb2RpZnlXZWlnaHRzBAJkQwJkRAJkRQJkRgQCY3UJAQJibAEFAmJrAwkAAAIFAmN1BQJjdQQCZEcJAGkCCQBoAgAFBQFlAGQEAmRICQBpAgkAaAIABQUBZQBkBAJkSQkAaQIJAGgCAAUFAWUAZAQCYVkJALUJAgkBAmFHAQkBAUsABQFrBAJkSgkBAmJhAQUCYVkEAmRLCQECYmIBBQJhWQQCZEwJAQFaAQUCZEMEAmRNCQEBWgEFAmREBAJkTgkBAVoBBQJkRQQCZE8JAQFaAQUCZEYEAmRQCQECYUoBBQJkTAQCZFEJAQJhSgEFAmRNBAJkUgkAZQIFAmRQBQJkSQQCZFMJAGUCBQJkUQUCZEkDCQBnAgAABQJkUgkAAgEJAKwCAgIWaW52YWxpZCBidGNXZWlnaHROZXc6IAkApAMBBQJkUgMJAGcCAAAFAmRTCQACAQkArAICAhZpbnZhbGlkIGV0aFdlaWdodE5ldzogCQCkAwEFAmRTBAJkVAkBAmFHAQkBAmF4AQUCZEMEAmRVCQECYUcBCQECYXgBBQJkRAQCZFYJAQJhRwEJAQJheAEFAmRFBAJkVwkBAmFHAQkBAmF4AQUCZEYEAmRYCQD8BwQFAmRKAg5vbk1vZGlmeVdlaWdodAkAzAgCBQJkVAkAzAgCBQJkQwUDbmlsBQNuaWwDCQAAAgUCZFgFAmRYBAJkWQkA/AcEBQJkSgIOb25Nb2RpZnlXZWlnaHQJAMwIAgUCZFUJAMwIAgUCZEQFA25pbAUDbmlsAwkAAAIFAmRZBQJkWQQCZFoJAPwHBAUCZEoCDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFAmRWCQDMCAIFAmRFBQNuaWwFA25pbAMJAAACBQJkWgUCZFoEAmVhCQD8BwQFAmRKAg5vbk1vZGlmeVdlaWdodAkAzAgCBQJkVwkAzAgCBQJkRgUDbmlsBQNuaWwDCQAAAgUCZWEFAmVhCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJkTAUCZFIJAMwIAgkBDEludGVnZXJFbnRyeQIFAmRNBQJkUwkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZE4FAmRHCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJkTwUCZEgJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhYgIFAmRDAAAFAmRQCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWICBQJkRAAABQJkUQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFiAgUCZEUAAAUCZEcJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhYgIFAmRGAAAFAmRIBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmsBGGNoZWNrV3hFbWlzc2lvblBvb2xMYWJlbAICYUECYUIEAmViBAJiZAkAoAgBCQECYXoCBQJhQQUCYUIDCQABAgUCYmQCB0Jvb2xlYW4EAmVjBQJiZAUCZWMHCQCUCgIFA25pbAUCZWICYmsBFnNldFd4RW1pc3Npb25Qb29sTGFiZWwCAmFBAmFCBAJjdQkBAmJYAQUCYmsDCQAAAgUCY3UFAmN1CQCUCgIJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQJhegIFAmFBBQJhQgYFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiawEZZGVsZXRlV3hFbWlzc2lvblBvb2xMYWJlbAICYUECYUIEAmN1AwkBAmJqAQUCYmsGCQECYlgBBQJiawMJAAACBQJjdQUCY3UJAJQKAgkAzAgCCQELRGVsZXRlRW50cnkBCQECYXoCBQJhQQUCYUIFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiawESb25WZXJpZmljYXRpb25Mb3NzAQJlZAQCY3UDCQAAAgkA2AQBCAgFAmJrBmNhbGxlcgVieXRlcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEBVAACAAYJAQJibAEFAmJrAwkAAAIFAmN1BQJjdQQCY0IJAQJiYwAEAmVlAwkAZgIJAJADAQUCY0IAAAYJAAIBAhRpbnZhbGlkIHByaWNlIGFzc2V0cwMJAAACBQJlZQUCZWUKAQJlZgICZWcCZWgEAmVpCQD8BwQFBHRoaXMCGWRlbGV0ZVd4RW1pc3Npb25Qb29sTGFiZWwJAMwIAgUCZWQJAMwIAgUCZWgFA25pbAUDbmlsAwkAAAIFAmVpBQJlaQUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQCZWoKAAJlawUCY0IKAAJlbAkAkAMBBQJlawoAAmVtBQR1bml0CgECZW4CAmVvAmVwAwkAZwIFAmVwBQJlbAUCZW8JAQJlZgIFAmVvCQCRAwIFAmVrBQJlcAoBAmVxAgJlbwJlcAMJAGcCBQJlcAUCZWwFAmVvCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgMgkBAmVxAgkBAmVuAgkBAmVuAgUCZW0AAAABAAIDCQAAAgUCZWoFAmVqCQCUCgIFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiawEoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQECYWEEAmRnCQECYk8BBQJhYQQCYWwJAJQKAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRnBQFBCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGcFAUIEAmVyCQELdmFsdWVPckVsc2UCCQCgCAEJAQJhawEFAmFsBwQCZXMJAQt2YWx1ZU9yRWxzZQIJAKAIAQkBAmFuAAcJAJQKAgUDbmlsAwUCZXMGBQJlcgJiawEQZ2V0SW5GZWVSRUFET05MWQECYWEEAmV0CQECY2EDCQECYUMBBQJhYQkBAmFEAAAACQCUCgIFA25pbAUCZXQCYmsBEWdldE91dEZlZVJFQURPTkxZAQJhYQQCZXQJAQJjYQMJAQJhRQEFAmFhCQECYUYACQBrAwAKBQFiAJBOCQCUCgIFA25pbAUCZXQCYmsBEHBvb2xJbmZvUkVBRE9OTFkCAmV1AmV2BAJldwkAmggCBQR0aGlzCQECYWYBBQJldQQCZXgJAJoIAgUEdGhpcwkBAmFmAQUCZXYEAmV5CQCdCAIFBHRoaXMJAQJhdwIJAQV2YWx1ZQEFAmV3CQEFdmFsdWUBBQJleAQCZXoJAJ0IAgUEdGhpcwkBAmF4AQkBBXZhbHVlAQUCZXkEAmNUAwMJAQlpc0RlZmluZWQBBQJldwkBCWlzRGVmaW5lZAEFAmV4BwkBCWlzRGVmaW5lZAEFAmV5BwQCZUEDBQJjVAkAlAoCCQERQGV4dHJOYXRpdmUoMTA2MikBCQEFdmFsdWUBBQJleQkBAmFLAQkBBXZhbHVlAQUCZXoFBHVuaXQJAJQKAgUDbmlsBQJlQQJiawEVZ2V0UG9vbFN0YXR1c1JFQURPTkxZAQJhYQQCYlAJALUJAgkBAmFHAQkBAmF1AQUCYWEFAWsEAmFpCQCRAwIFAmJQAAEEAmFqCQCRAwIFAmJQAAIEAmNnCQC1CQIJAQJhRwEJAQJhaAIFAmFpBQJhagUBawkAlAoCBQNuaWwJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJjZwUBdQJiawEVZ2V0UG9vbENvbmZpZ1JFQURPTkxZAQJhYQQCYlAJALUJAgkBAmFHAQkBAmF1AQUCYWEFAWsEAmFpCQCRAwIFAmJQAAEEAmFqCQCRAwIFAmJQAAIEAmNnCQC1CQIJAQJhRwEJAQJhaAIFAmFpBQJhagUBawkAlAoCBQNuaWwFAmNnAmJrASBnZXRQb29sQ29uZmlnQnlMcEFzc2V0SWRSRUFET05MWQECY1kEAmJQCQC1CQIJAQJhRwEJAQJhbwEFAmNZBQFrBAJhaQkAkQMCBQJiUAABBAJhagkAkQMCBQJiUAACBAJjZwkAtQkCCQECYUcBCQECYWgCBQJhaQUCYWoFAWsJAJQKAgUDbmlsBQJjZwJiawEScG9vbEV4aXN0c1JFQURPTkxZAgJhQQJhQgkAlAoCBQNuaWwJAQJjZAIFAmFBBQJhQgECZUIBAmVDAAQCZUQEAmJkCQECYmYAAwkAAQIFAmJkAgpCeXRlVmVjdG9yBAJibQUCYmQFAmJtAwkAAQIFAmJkAgRVbml0CAUCZUIPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IJAPQDAwgFAmVCCWJvZHlCeXRlcwkAkQMCCAUCZUIGcHJvb2ZzAAAFAmVEnpsv9w==", "height": 2489484, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9Auv8yGTe9gwEsDWR4EtJAD7HLgyPwSaPHXc3THNQJ6Y Next: H5PsZY9682NGqqHQLDKcgMj4yju7GSGmV1HbwZMvoL3k Diff:
OldNewDifferences
877877
878878
879879 @Callable(bk)
880-func getPoolConfigByLpAssetId (cY) = {
880+func getPoolConfigByLpAssetIdREADONLY (cY) = {
881881 let bP = split(aG(ao(cY)), k)
882882 let ai = bP[1]
883883 let aj = bP[2]
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
66 let b = 100000000
77
88 let c = 18
99
1010 let d = toBigInt(1000000000000000000)
1111
1212 let e = b
1313
1414 let f = "GWXvirtualPOOL"
1515
1616 let g = "POOLS_LP"
1717
1818 let h = 2000000
1919
2020 let i = "WAVES"
2121
2222 let j = ((100 * 1000) * 1000)
2323
2424 let k = "__"
2525
2626 let l = ""
2727
2828 let m = 1
2929
3030 let n = 2
3131
3232 let o = 3
3333
3434 let p = 4
3535
3636 let q = 1
3737
3838 let r = 2
3939
4040 let s = 3
4141
4242 let t = 1
4343
4444 let u = 2
4545
4646 let v = 3
4747
4848 let w = 4
4949
5050 let x = 5
5151
5252 let y = 6
5353
5454 let z = 7
5555
5656 let A = 8
5757
5858 let B = 9
5959
6060 let C = 10
6161
6262 let D = 11
6363
6464 let E = "WX_EMISSION"
6565
6666 let F = [E]
6767
6868 func G () = "%s__allowedLpScriptHash"
6969
7070
7171 func H () = "%s__allowedLpStableScriptHash"
7272
7373
7474 func I () = "%s__allowedLpStableAddonScriptHash"
7575
7676
7777 func J () = "%s__swapContract"
7878
7979
8080 func K () = "%s__factoryConfig"
8181
8282
8383 func L () = "%s__lpTokensList"
8484
8585
8686 func M () = "%s%s__pool__scriptHash"
8787
8888
8989 func N () = "%s%s__matcher__publicKey"
9090
9191
9292 func O () = "%s__legacyFactoryContract"
9393
9494
9595 func P () = "%s__legacyPools"
9696
9797
9898 func Q () = "%s__managerPublicKey"
9999
100100
101101 func R () = "%s__pendingManagerPublicKey"
102102
103103
104104 func S () = "%s__adminPubKeys"
105105
106106
107107 func T () = "%s__assetsStoreContract"
108108
109109
110110 func U () = "%s__votingEmissionContract"
111111
112112
113113 func V () = makeString(["%s", "priceAssets"], k)
114114
115115
116116 func W () = "%s__priceDecimals"
117117
118118
119119 func X () = "%s__shutdown"
120120
121121
122122 func Y () = "%s__nextInternalAssetId"
123123
124124
125125 func Z (aa) = ("%s%s__poolWeight__" + aa)
126126
127127
128128 func ab (aa,ac) = ((("%s%s__poolWeight__" + aa) + "__") + toString(ac))
129129
130130
131131 func ad (ae) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(ae))
132132
133133
134134 func af (ag) = ("%s%s%s__mappings__baseAsset2internalId__" + ag)
135135
136136
137137 func ah (ai,aj) = (((("%d%d%s__" + ai) + "__") + aj) + "__config")
138138
139139
140140 func ak (al) = {
141141 let am = al
142142 let ai = am._1
143143 let aj = am._2
144144 makeString(["%d%d%s", toString(ai), toString(aj), "oneTokenOperationsDisabled"], k)
145145 }
146146
147147
148148 func an () = makeString(["%s", "oneTokenOperationsDisabled"], k)
149149
150150
151151 func ao (ap) = (("%s%s%s__" + ap) + "__mappings__lpAsset2Pool")
152152
153153
154154 func aq (ar,as) = (((("%d%d%s%s__" + ar) + "__") + as) + "__mappings__PoolAssets2LpAsset")
155155
156156
157157 func at (aa) = ("%s%s__spread__" + aa)
158158
159159
160160 func au (av) = (("%s%s%s__" + av) + "__mappings__poolContract2PoolAssets")
161161
162162
163163 func aw (ar,as) = (((("%d%d%s%s__" + toString(ar)) + "__") + toString(as)) + "__mappings__poolAssets2PoolContract")
164164
165165
166166 func ax (av) = (("%s%s%s__" + av) + "__mappings__poolContract2LpAsset")
167167
168168
169169 func ay (ap) = (("%s%s%s__" + ap) + "__mappings__lpAsset2PoolContract")
170170
171171
172172 func az (aA,aB) = ((("%s%s%s__wxEmission__" + aA) + "__") + aB)
173173
174174
175175 func aC (aa) = ("%s%s__inFee__" + aa)
176176
177177
178178 func aD () = "%s__inFeeDefault"
179179
180180
181181 func aE (aa) = ("%s%s__outFee__" + aa)
182182
183183
184184 func aF () = "%s__outFeeDefault"
185185
186186
187187 func aG (aH) = valueOrErrorMessage(getString(this, aH), ("No data for this.key=" + aH))
188188
189189
190190 func aI (aH) = valueOrErrorMessage(getBoolean(this, aH), ("No data for this.key=" + aH))
191191
192192
193193 func aJ (aH) = valueOrErrorMessage(getInteger(this, aH), ("No data for this.key=" + aH))
194194
195195
196196 func aK (aL) = if ((aL == i))
197197 then unit
198198 else fromBase58String(aL)
199199
200200
201201 let aM = 1
202202
203203 let aN = 2
204204
205205 let aO = 3
206206
207207 let aP = 4
208208
209209 let aQ = 5
210210
211211 let aR = 6
212212
213213 let aS = 7
214214
215215 let aT = 8
216216
217217 let aU = 9
218218
219219 let aV = 10
220220
221221 let aW = 11
222222
223223 func aX (aY) = addressFromStringValue(aY[aN])
224224
225225
226226 func aZ (aY) = addressFromStringValue(aY[aQ])
227227
228228
229229 func ba (aY) = addressFromStringValue(aY[aM])
230230
231231
232232 func bb (aY) = addressFromStringValue(aY[aV])
233233
234234
235235 func bc () = {
236236 let bd = getString(V())
237237 if ($isInstanceOf(bd, "String"))
238238 then {
239239 let be = bd
240240 if ((size(be) == 0))
241241 then nil
242242 else split(be, k)
243243 }
244244 else nil
245245 }
246246
247247
248248 func bf () = {
249249 let bd = getString(Q())
250250 if ($isInstanceOf(bd, "String"))
251251 then {
252252 let be = bd
253253 fromBase58String(be)
254254 }
255255 else if ($isInstanceOf(bd, "Unit"))
256256 then unit
257257 else throw("Match error")
258258 }
259259
260260
261261 func bg () = {
262262 let bd = getString(R())
263263 if ($isInstanceOf(bd, "String"))
264264 then {
265265 let be = bd
266266 fromBase58String(be)
267267 }
268268 else if ($isInstanceOf(bd, "Unit"))
269269 then unit
270270 else throw("Match error")
271271 }
272272
273273
274274 let bh = throw("Permission denied")
275275
276276 let bi = throw("Test error here")
277277
278278 func bj (bk) = if ((bk.caller == this))
279279 then true
280280 else bh
281281
282282
283283 func bl (bk) = {
284284 let bd = bf()
285285 if ($isInstanceOf(bd, "ByteVector"))
286286 then {
287287 let bm = bd
288288 if ((bk.callerPublicKey == bm))
289289 then true
290290 else bh
291291 }
292292 else if ($isInstanceOf(bd, "Unit"))
293293 then bj(bk)
294294 else throw("Match error")
295295 }
296296
297297
298298 func bn (bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bo, bp, bq, br, bs, bt, bu, bv, bw, bx, by], k)
299299
300300
301301 func bz (bo,bp,bq,br,bs,bt,bu) = makeString(["%s%s%s%s%s%s", bo, bp, bq, br, bs, bt, bu], k)
302302
303303
304304 func bA (aa,bB,bC,bD,bE,bF,bG,bH,bI,bJ,bK) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", aa, bB, bC, bD, bE, toString(bF), toString(bG), toString(bH), toString(bI), toString(bJ), bK], k)
305305
306306
307307 func bL (bM,bN) = makeString(["%d%d", toString(bM), toString(bN)], k)
308308
309309
310310 func bO (aa) = {
311311 let bP = split(aG(au(aa)), k)
312312 let ai = bP[1]
313313 let aj = bP[2]
314314 split(aG(ah(ai, aj)), k)
315315 }
316316
317317
318318 func bQ (bR,bS) = {
319319 let bT = valueOrElse(getInteger(this, af(bR)), 0)
320320 let bU = valueOrElse(getInteger(this, Y()), 0)
321321 let bV = if ((bT == 0))
322322 then {
323323 let bW = (bU + bS)
324324 $Tuple3(bW, [IntegerEntry(Y(), bW), IntegerEntry(af(bR), bW), StringEntry(ad(bW), bR)], true)
325325 }
326326 else $Tuple3(bT, nil, false)
327327 bV
328328 }
329329
330330
331331 func bX (bk) = {
332332 let bY = split(valueOrElse(getString(S()), l), k)
333333 if (containsElement(bY, toBase58String(bk.callerPublicKey)))
334334 then true
335335 else {
336336 let bZ = bl(bk)
337337 if ((bZ == bZ))
338338 then true
339339 else throw("Strict value is not equal to itself.")
340340 }
341341 }
342342
343343
344344 func ca (aH,cb,cc) = valueOrElse(getInteger(this, aH), valueOrElse(getInteger(this, cb), cc))
345345
346346
347347 func cd (aA,aB) = {
348348 let ai = getInteger(af(aA))
349349 let aj = getInteger(af(aB))
350350 if (if ((ai == unit))
351351 then true
352352 else (aj == unit))
353353 then false
354354 else {
355355 let ce = toString(value(ai))
356356 let cf = toString(value(aj))
357357 let cg = getString(ah(ce, cf))
358358 let ch = getString(ah(cf, ce))
359359 let ci = if ((cg != unit))
360360 then true
361361 else (ch != unit)
362362 ci
363363 }
364364 }
365365
366366
367367 @Callable(bk)
368368 func getSwapContractREADONLY () = $Tuple2(nil, aG(J()))
369369
370370
371371
372372 @Callable(bk)
373373 func getLpAssetFromPoolAssetsREADONLY (cj,ck) = if (if ((cj == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
374374 then (ck == "WAVES")
375375 else false)
376376 then $Tuple2(nil, unit)
377377 else {
378378 let cl = value(getInteger(this, af(cj)))
379379 let cm = value(getInteger(this, af(ck)))
380380 let cn = getString(this, aq(toString(cl), toString(cm)))
381381 let co = if ((cn == unit))
382382 then unit
383383 else drop(value(cn), 4)
384384 $Tuple2(nil, co)
385385 }
386386
387387
388388
389389 @Callable(bk)
390390 func getPoolAddressFromLpAssetREADONLY (cp) = $Tuple2(nil, valueOrElse(getString(this, ay(cp)), ""))
391391
392392
393393
394394 @Callable(bk)
395395 func constructor (cq,cr,bq,br,bs,bt,cs,ct) = {
396396 let cu = bl(bk)
397397 if ((cu == cu))
398398 then [StringEntry(K(), bz(cq, cr, bq, br, bs, bt, cs)), IntegerEntry(W(), ct)]
399399 else throw("Strict value is not equal to itself.")
400400 }
401401
402402
403403
404404 @Callable(bk)
405405 func constructorV2 (cv) = {
406406 let cu = bl(bk)
407407 if ((cu == cu))
408408 then {
409409 let cw = addressFromPublicKey(fromBase58String(cv))
410410 if ((cw == cw))
411411 then [StringEntry(N(), cv)]
412412 else throw("Strict value is not equal to itself.")
413413 }
414414 else throw("Strict value is not equal to itself.")
415415 }
416416
417417
418418
419419 @Callable(bk)
420420 func constructorV3 (bv,bw,bx,by) = {
421421 let cu = bl(bk)
422422 if ((cu == cu))
423423 then {
424424 let aY = split(aG(K()), k)
425425 [StringEntry(K(), bn(aY[1], aY[2], aY[3], aY[4], aY[5], aY[6], aY[7], bv, bw, bx, by))]
426426 }
427427 else throw("Strict value is not equal to itself.")
428428 }
429429
430430
431431
432432 @Callable(bk)
433433 func constructorV4 (cx,cy) = {
434434 let cu = bl(bk)
435435 if ((cu == cu))
436436 then [StringEntry(O(), cx), StringEntry(P(), makeString(cy, k))]
437437 else throw("Strict value is not equal to itself.")
438438 }
439439
440440
441441
442442 @Callable(bk)
443443 func constructorV5 (cz) = {
444444 let cu = bl(bk)
445445 if ((cu == cu))
446446 then [StringEntry(T(), cz)]
447447 else throw("Strict value is not equal to itself.")
448448 }
449449
450450
451451
452452 @Callable(bk)
453453 func constructorV6 (cA,cB) = {
454454 let cC = [bl(bk), if ((addressFromString(cA) != unit))
455455 then true
456456 else "invalid voting emission contract address"]
457457 if ((cC == cC))
458458 then [StringEntry(U(), cA), StringEntry(V(), makeString(cB, k))]
459459 else throw("Strict value is not equal to itself.")
460460 }
461461
462462
463463
464464 @Callable(bk)
465465 func setManager (cD) = {
466466 let cu = bl(bk)
467467 if ((cu == cu))
468468 then {
469469 let cE = fromBase58String(cD)
470470 if ((cE == cE))
471471 then [StringEntry(R(), cD)]
472472 else throw("Strict value is not equal to itself.")
473473 }
474474 else throw("Strict value is not equal to itself.")
475475 }
476476
477477
478478
479479 @Callable(bk)
480480 func confirmManager () = {
481481 let cF = bg()
482482 let cG = if (isDefined(cF))
483483 then true
484484 else throw("No pending manager")
485485 if ((cG == cG))
486486 then {
487487 let cH = if ((bk.callerPublicKey == value(cF)))
488488 then true
489489 else throw("You are not pending manager")
490490 if ((cH == cH))
491491 then [StringEntry(Q(), toBase58String(value(cF))), DeleteEntry(R())]
492492 else throw("Strict value is not equal to itself.")
493493 }
494494 else throw("Strict value is not equal to itself.")
495495 }
496496
497497
498498
499499 @Callable(bk)
500500 func setAdmins (cI) = {
501501 let cu = bl(bk)
502502 if ((cu == cu))
503503 then [StringEntry(S(), makeString(cI, k))]
504504 else throw("Strict value is not equal to itself.")
505505 }
506506
507507
508508
509509 @Callable(bk)
510510 func activateNewPool (aa,bD,bE,cJ,cK,cL,bK,cM) = {
511511 let cu = bX(bk)
512512 if ((cu == cu))
513513 then if (isDefined(getString(au(aa))))
514514 then throw((("Pool address " + aa) + " already registered."))
515515 else {
516516 let cN = bQ(bD, 1)
517517 let cO = cN._1
518518 let cP = bQ(bE, if (cN._3)
519519 then 2
520520 else 1)
521521 let cQ = cP._1
522522 let cR = valueOrErrorMessage(scriptHash(addressFromStringValue(aa)), ("No script has been found on pool account " + aa))
523523 let cS = getBinaryValue(M())
524524 let cT = cd(bD, bE)
525525 if (cT)
526526 then throw((((("Pool " + bD) + "/") + bE) + " has already been activated."))
527527 else {
528528 let cU = value(getString(this, ah(toString(cO), toString(cQ))))
529529 let cV = if ((bD == "WAVES"))
530530 then j
531531 else pow(10, 0, value(assetInfo(fromBase58String(bD))).decimals, 0, 0, DOWN)
532532 let cW = if ((bE == "WAVES"))
533533 then j
534534 else pow(10, 0, value(assetInfo(fromBase58String(bE))).decimals, 0, 0, DOWN)
535535 let cX = Issue(cJ, cK, 1, 8, true)
536536 let bC = calculateAssetId(cX)
537537 let cY = toBase58String(bC)
538538 let cZ = invoke(addressFromStringValue(aa), "activate", [bD, bE], nil)
539539 if ((cZ == cZ))
540540 then if ((cZ != "success"))
541541 then throw("Pool initialisation error happened.")
542542 else {
543543 let cz = addressFromStringValue(aG(T()))
544544 let da = invoke(cz, "createOrUpdate", [cY, cJ, false], nil)
545545 if ((da == da))
546546 then {
547547 let db = invoke(cz, "addLabel", [cY, g], nil)
548548 if ((db == db))
549549 then {
550550 let dc = invoke(cz, "setLogo", [cY, cM], nil)
551551 if ((dc == dc))
552552 then {
553553 let dd = invoke(cz, "addAssetsLink", [bD, bE, cY], nil)
554554 if ((dd == dd))
555555 then {
556556 let de = invoke(cz, "increaseAssetPoolsNumber", [bD], nil)
557557 if ((de == de))
558558 then $Tuple2(((cN._2 ++ cP._2) ++ [cX, Burn(bC, 1), StringEntry(ah(toString(cO), toString(cQ)), bA(aa, toString(m), cY, bD, bE, cV, cW, cO, cQ, j, bK)), StringEntry(ao(cY), bL(cO, cQ)), StringEntry(aq(toString(cO), toString(cQ)), ("%s__" + cY)), StringEntry(au(aa), bL(cO, cQ)), StringEntry(aw(cO, cQ), aa), StringEntry(ay(cY), aa), StringEntry(ax(aa), cY), IntegerEntry(Z(aa), cL), IntegerEntry(at(aa), h)]), cY)
559559 else throw("Strict value is not equal to itself.")
560560 }
561561 else throw("Strict value is not equal to itself.")
562562 }
563563 else throw("Strict value is not equal to itself.")
564564 }
565565 else throw("Strict value is not equal to itself.")
566566 }
567567 else throw("Strict value is not equal to itself.")
568568 }
569569 else throw("Strict value is not equal to itself.")
570570 }
571571 }
572572 else throw("Strict value is not equal to itself.")
573573 }
574574
575575
576576
577577 @Callable(bk)
578578 func managePool (aa,df) = {
579579 let cu = bl(bk)
580580 if ((cu == cu))
581581 then {
582582 let dg = bO(aa)
583583 let bB = dg[u]
584584 let cY = dg[v]
585585 let bD = dg[w]
586586 let bE = dg[x]
587587 let cV = parseIntValue(dg[y])
588588 let cW = parseIntValue(dg[z])
589589 let cO = parseIntValue(dg[A])
590590 let cQ = parseIntValue(dg[B])
591591 let dh = parseIntValue(dg[C])
592592 let bK = dg[D]
593593 [StringEntry(ah(toString(cO), toString(cQ)), bA(aa, toString(df), cY, bD, bE, cV, cW, cO, cQ, dh, bK))]
594594 }
595595 else throw("Strict value is not equal to itself.")
596596 }
597597
598598
599599
600600 @Callable(bk)
601601 func emit (di) = {
602602 let dj = bk.caller
603603 let dk = bk.originCaller
604604 let dl = valueOrErrorMessage(getString(ax(toString(dj))), "Invalid LP address called me.")
605605 let dm = fromBase58String(dl)
606606 let cy = split(valueOrElse(getString(P()), l), k)
607607 let cx = addressFromStringValue(valueOrErrorMessage(getString(O()), "Legacy factory contract does not exists."))
608608 if ((0 >= di))
609609 then nil
610610 else if (containsElement(cy, toString(dj)))
611611 then $Tuple2(nil, cx)
612612 else $Tuple2([Reissue(dm, di, true), ScriptTransfer(bk.caller, di, dm)], "success")
613613 }
614614
615615
616616
617617 @Callable(bk)
618618 func burn (dn) = {
619619 let dj = bk.caller
620620 let dk = bk.originCaller
621621 let do = value(bk.payments[0])
622622 let dp = value(do.amount)
623623 let dq = toBase58String(value(do.assetId))
624624 let dr = valueOrErrorMessage(getString(ax(toString(dj))), "Invalid LP address called me.")
625625 if ((dq != dr))
626626 then throw("Invalid asset passed.")
627627 else if ((dn != dp))
628628 then throw("Invalid amount passed.")
629629 else {
630630 let dm = fromBase58String(dr)
631631 $Tuple2([Burn(dm, dn)], "success")
632632 }
633633 }
634634
635635
636636
637637 @Callable(bk)
638638 func modifyWeight (bC,ds) = {
639639 let cu = if ((toBase58String(bk.caller.bytes) == valueOrElse(getString(this, U()), "")))
640640 then true
641641 else bl(bk)
642642 if ((cu == cu))
643643 then {
644644 let av = aG(ay(bC))
645645 let dt = Z(av)
646646 let du = Z(f)
647647 let dv = valueOrElse(getInteger(du), 0)
648648 let cL = valueOrElse(getInteger(dt), 0)
649649 let dw = ds
650650 let aY = split(aG(K()), k)
651651 let cq = ba(aY)
652652 let dx = invoke(cq, "onModifyWeight", [bC, av], nil)
653653 if ((dx == dx))
654654 then {
655655 let dy = if ((dv == 0))
656656 then nil
657657 else [IntegerEntry(du, 0)]
658658 let dz = ab(av, 0)
659659 let dA = getInteger(dz)
660660 let dB = if ((dA == unit))
661661 then nil
662662 else [DeleteEntry(dz)]
663663 (([IntegerEntry(dt, dw)] ++ dy) ++ dB)
664664 }
665665 else throw("Strict value is not equal to itself.")
666666 }
667667 else throw("Strict value is not equal to itself.")
668668 }
669669
670670
671671
672672 @Callable(bk)
673673 func modifyWeights (dC,dD,dE,dF) = {
674674 let cu = bl(bk)
675675 if ((cu == cu))
676676 then {
677677 let dG = ((5 * e) / 100)
678678 let dH = ((5 * e) / 100)
679679 let dI = ((5 * e) / 100)
680680 let aY = split(aG(K()), k)
681681 let dJ = ba(aY)
682682 let dK = bb(aY)
683683 let dL = Z(dC)
684684 let dM = Z(dD)
685685 let dN = Z(dE)
686686 let dO = Z(dF)
687687 let dP = aJ(dL)
688688 let dQ = aJ(dM)
689689 let dR = (dP - dI)
690690 let dS = (dQ - dI)
691691 if ((0 >= dR))
692692 then throw(("invalid btcWeightNew: " + toString(dR)))
693693 else if ((0 >= dS))
694694 then throw(("invalid ethWeightNew: " + toString(dS)))
695695 else {
696696 let dT = aG(ax(dC))
697697 let dU = aG(ax(dD))
698698 let dV = aG(ax(dE))
699699 let dW = aG(ax(dF))
700700 let dX = invoke(dJ, "onModifyWeight", [dT, dC], nil)
701701 if ((dX == dX))
702702 then {
703703 let dY = invoke(dJ, "onModifyWeight", [dU, dD], nil)
704704 if ((dY == dY))
705705 then {
706706 let dZ = invoke(dJ, "onModifyWeight", [dV, dE], nil)
707707 if ((dZ == dZ))
708708 then {
709709 let ea = invoke(dJ, "onModifyWeight", [dW, dF], nil)
710710 if ((ea == ea))
711711 then [IntegerEntry(dL, dR), IntegerEntry(dM, dS), IntegerEntry(dN, dG), IntegerEntry(dO, dH), IntegerEntry(ab(dC, 0), dP), IntegerEntry(ab(dD, 0), dQ), IntegerEntry(ab(dE, 0), dG), IntegerEntry(ab(dF, 0), dH)]
712712 else throw("Strict value is not equal to itself.")
713713 }
714714 else throw("Strict value is not equal to itself.")
715715 }
716716 else throw("Strict value is not equal to itself.")
717717 }
718718 else throw("Strict value is not equal to itself.")
719719 }
720720 }
721721 else throw("Strict value is not equal to itself.")
722722 }
723723
724724
725725
726726 @Callable(bk)
727727 func checkWxEmissionPoolLabel (aA,aB) = {
728728 let eb = {
729729 let bd = getBoolean(az(aA, aB))
730730 if ($isInstanceOf(bd, "Boolean"))
731731 then {
732732 let ec = bd
733733 ec
734734 }
735735 else false
736736 }
737737 $Tuple2(nil, eb)
738738 }
739739
740740
741741
742742 @Callable(bk)
743743 func setWxEmissionPoolLabel (aA,aB) = {
744744 let cu = bX(bk)
745745 if ((cu == cu))
746746 then $Tuple2([BooleanEntry(az(aA, aB), true)], unit)
747747 else throw("Strict value is not equal to itself.")
748748 }
749749
750750
751751
752752 @Callable(bk)
753753 func deleteWxEmissionPoolLabel (aA,aB) = {
754754 let cu = if (bj(bk))
755755 then true
756756 else bX(bk)
757757 if ((cu == cu))
758758 then $Tuple2([DeleteEntry(az(aA, aB))], unit)
759759 else throw("Strict value is not equal to itself.")
760760 }
761761
762762
763763
764764 @Callable(bk)
765765 func onVerificationLoss (ed) = {
766766 let cu = if ((toBase58String(bk.caller.bytes) == valueOrElse(getString(this, T()), "")))
767767 then true
768768 else bl(bk)
769769 if ((cu == cu))
770770 then {
771771 let cB = bc()
772772 let ee = if ((size(cB) > 0))
773773 then true
774774 else throw("invalid price assets")
775775 if ((ee == ee))
776776 then {
777777 func ef (eg,eh) = {
778778 let ei = invoke(this, "deleteWxEmissionPoolLabel", [ed, eh], nil)
779779 if ((ei == ei))
780780 then unit
781781 else throw("Strict value is not equal to itself.")
782782 }
783783
784784 let ej = {
785785 let ek = cB
786786 let el = size(ek)
787787 let em = unit
788788 func en (eo,ep) = if ((ep >= el))
789789 then eo
790790 else ef(eo, ek[ep])
791791
792792 func eq (eo,ep) = if ((ep >= el))
793793 then eo
794794 else throw("List size exceeds 2")
795795
796796 eq(en(en(em, 0), 1), 2)
797797 }
798798 if ((ej == ej))
799799 then $Tuple2(nil, unit)
800800 else throw("Strict value is not equal to itself.")
801801 }
802802 else throw("Strict value is not equal to itself.")
803803 }
804804 else throw("Strict value is not equal to itself.")
805805 }
806806
807807
808808
809809 @Callable(bk)
810810 func isPoolOneTokenOperationsDisabledREADONLY (aa) = {
811811 let dg = bO(aa)
812812 let al = $Tuple2(parseIntValue(dg[A]), parseIntValue(dg[B]))
813813 let er = valueOrElse(getBoolean(ak(al)), false)
814814 let es = valueOrElse(getBoolean(an()), false)
815815 $Tuple2(nil, if (es)
816816 then true
817817 else er)
818818 }
819819
820820
821821
822822 @Callable(bk)
823823 func getInFeeREADONLY (aa) = {
824824 let et = ca(aC(aa), aD(), 0)
825825 $Tuple2(nil, et)
826826 }
827827
828828
829829
830830 @Callable(bk)
831831 func getOutFeeREADONLY (aa) = {
832832 let et = ca(aE(aa), aF(), fraction(10, b, 10000))
833833 $Tuple2(nil, et)
834834 }
835835
836836
837837
838838 @Callable(bk)
839839 func poolInfoREADONLY (eu,ev) = {
840840 let ew = getInteger(this, af(eu))
841841 let ex = getInteger(this, af(ev))
842842 let ey = getString(this, aw(value(ew), value(ex)))
843843 let ez = getString(this, ax(value(ey)))
844844 let cT = if (if (isDefined(ew))
845845 then isDefined(ex)
846846 else false)
847847 then isDefined(ey)
848848 else false
849849 let eA = if (cT)
850850 then $Tuple2(addressFromStringValue(value(ey)), aK(value(ez)))
851851 else unit
852852 $Tuple2(nil, eA)
853853 }
854854
855855
856856
857857 @Callable(bk)
858858 func getPoolStatusREADONLY (aa) = {
859859 let bP = split(aG(au(aa)), k)
860860 let ai = bP[1]
861861 let aj = bP[2]
862862 let cg = split(aG(ah(ai, aj)), k)
863863 $Tuple2(nil, parseIntValue(cg[u]))
864864 }
865865
866866
867867
868868 @Callable(bk)
869869 func getPoolConfigREADONLY (aa) = {
870870 let bP = split(aG(au(aa)), k)
871871 let ai = bP[1]
872872 let aj = bP[2]
873873 let cg = split(aG(ah(ai, aj)), k)
874874 $Tuple2(nil, cg)
875875 }
876876
877877
878878
879879 @Callable(bk)
880-func getPoolConfigByLpAssetId (cY) = {
880+func getPoolConfigByLpAssetIdREADONLY (cY) = {
881881 let bP = split(aG(ao(cY)), k)
882882 let ai = bP[1]
883883 let aj = bP[2]
884884 let cg = split(aG(ah(ai, aj)), k)
885885 $Tuple2(nil, cg)
886886 }
887887
888888
889889
890890 @Callable(bk)
891891 func poolExistsREADONLY (aA,aB) = $Tuple2(nil, cd(aA, aB))
892892
893893
894894 @Verifier(eB)
895895 func eC () = {
896896 let eD = {
897897 let bd = bf()
898898 if ($isInstanceOf(bd, "ByteVector"))
899899 then {
900900 let bm = bd
901901 bm
902902 }
903903 else if ($isInstanceOf(bd, "Unit"))
904904 then eB.senderPublicKey
905905 else throw("Match error")
906906 }
907907 sigVerify(eB.bodyBytes, eB.proofs[0], eD)
908908 }
909909

github/deemru/w8io/169f3d6 
88.46 ms