tx · CyMKLfnmJqASkJpgzhvYg2dKvC5ReEvXWpMguv6FaBkB

3Mxd5o7PwH76ZkN8zG4xwDLubEnbkaihKzi:  -0.04000000 Waves

2022.08.09 19:47 [2177184] smart account 3Mxd5o7PwH76ZkN8zG4xwDLubEnbkaihKzi > SELF 0.00000000 Waves

{ "type": 13, "id": "CyMKLfnmJqASkJpgzhvYg2dKvC5ReEvXWpMguv6FaBkB", "fee": 4000000, "feeAssetId": null, "timestamp": 1660063675099, "version": 1, "sender": "3Mxd5o7PwH76ZkN8zG4xwDLubEnbkaihKzi", "senderPublicKey": "BwVRZtTzoCigEsffCvQ9uo7WvkoBNNGVjX4nat5X5zyQ", "proofs": [ "3W6QuKoAhkVnx5dgScTuWMHB36Yoy72RMkam9vEtQbWdvmTMMqD4xVGRcUAaTNW7tGAv84MY719LRpmJdJ12a721" ], "script": "base64:AAIFAAAAAAAAAEMIAhIFCgMICAgSABIDCgEIEgQKAggBEgASAwoBARIFCgMIAQgSAwoBCBIGCgQBAQEBEgQKAgEBEgQKAgEIEgASABIAAAAAbQAAAAALcmV2aXNpb25OdW0CAAAAAAAAAAAGRVVMRVI4AAAAAAAQM8TWAAAAAAVNVUxUNgAAAAAAAA9CQAAAAAAGTVVMVFg2CQABNgAAAAEAAAAAAAAPQkAAAAAABU1VTFQ4AAAAAAAF9eEAAAAAAAZNVUxUWDgJAAE2AAAAAQAAAAAABfXhAAAAAAAGTVVMVDEyAAAAAOjUpRAAAAAAAAZNVUxUMTgJAAE2AAAAAQAN4Lazp2QAAAAAAAADU0VQAgAAAAJfXwAAAAAHV0FWRVNJRAkAAlkAAAABAgAAAAVXQVZFUwAAAAAPbk1ldHJpY0lkeFByaWNlAAAAAAAAAAAAAAAAABtuTWV0cmljSWR4VXNkbkxvY2tlZEJhbGFuY2UAAAAAAAAAAAEAAAAAHG5NZXRyaWNJZHhXYXZlc0xvY2tlZEJhbGFuY2UAAAAAAAAAAAIAAAAAEW5NZXRyaWNJZHhSZXNlcnZlAAAAAAAAAAADAAAAABduTWV0cmljSWR4UmVzZXJ2ZUluVXNkbgAAAAAAAAAABAAAAAAUbk1ldHJpY0lkeFVzZG5TdXBwbHkAAAAAAAAAAAUAAAAAEW5NZXRyaWNJZHhTdXJwbHVzAAAAAAAAAAAGAAAAABhuTWV0cmljSWR4U3VycGx1c1BlcmNlbnQAAAAAAAAAAAcAAAAADG5NZXRyaWNJZHhCUgAAAAAAAAAACAAAAAAUbk1ldHJpY0lkeE5zYnRTdXBwbHkAAAAAAAAAAAkAAAAAF25NZXRyaWNJZHhNYXhOc2J0U3VwcGx5AAAAAAAAAAAKAAAAABRuTWV0cmljSWR4U3VyZlN1cHBseQAAAAAAAAAACwAAAAAMYkZ1bmNJZHhTdXJmAAAAAAAAAAAAAAAAAA1iRnVuY0lkeFdhdmVzAAAAAAAAAAABAAAAAAxiRnVuY0lkeFVzZG4AAAAAAAAAAAIAAAAAFGJGdW5jSWR4UmVzZXJ2ZVN0YXJ0AAAAAAAAAAADAAAAABNiRnVuY0lkeFN1cHBseVN0YXJ0AAAAAAAAAAAEAAAAAA9iRnVuY0lkeEJSU3RhcnQAAAAAAAAAAAUAAAAAEmJGdW5jSWR4UmVzZXJ2ZUVuZAAAAAAAAAAABgAAAAARYkZ1bmNJZHhTdXBwbHlFbmQAAAAAAAAAAAcAAAAADWJGdW5jSWR4QlJFbmQAAAAAAAAAAAgAAAAADGJGdW5jSWR4UmVzdAAAAAAAAAAACQAAAAASYkZ1bmNJZHhXYXZlc1ByaWNlAAAAAAAAAAAKAQAAABJrZXlOZXV0cmlub0FkZHJlc3MAAAAAAgAAAB0lcyVzX19jb25maWdfX25ldXRyaW5vQWRkcmVzcwEAAAASa2V5TmV1dHJpbm9Bc3NldElkAAAAAAIAAAARbmV1dHJpbm9fYXNzZXRfaWQBAAAADmtleU5zYnRBc3NldElkAAAAAAIAAAANYm9uZF9hc3NldF9pZAEAAAAOa2V5U3VyZkFzc2V0SWQAAAAAAgAAAA1zdXJmX2Fzc2V0X2lkAQAAABBrZXlCYWxhbmNlTG9ja2VkAAAAAAIAAAANYmFsYW5jZV9sb2NrXwEAAAAVa2V5V2F2ZXNMb2NrZWRCYWxhbmNlAAAAAAkAASwAAAACCQEAAAAQa2V5QmFsYW5jZUxvY2tlZAAAAAACAAAABXdhdmVzAQAAABhrZXlOZXV0cmlub0xvY2tlZEJhbGFuY2UAAAAACQABLAAAAAIJAQAAABBrZXlCYWxhbmNlTG9ja2VkAAAAAAIAAAAIbmV1dHJpbm8BAAAAFWtleU1pbldhdmVzU3dhcEFtb3VudAAAAAACAAAAFW1pbl93YXZlc19zd2FwX2Ftb3VudAEAAAAYa2V5TWluTmV1dHJpbm9Td2FwQW1vdW50AAAAAAIAAAAYbWluX25ldXRyaW5vX3N3YXBfYW1vdW50AQAAABJrZXlXYXZlc091dEZlZVBhcnQAAAAAAgAAABV3YXZlc091dF9zd2FwX2ZlZVBhcnQBAAAAFWtleU5ldXRyaW5vT3V0RmVlUGFydAAAAAACAAAAGG5ldXRyaW5vT3V0X3N3YXBfZmVlUGFydAEAAAATa2V5U3dhcEFtb3VudEFQYXJhbQAAAAACAAAAGCVzJXNfX2NvbmZpZ19fc3dhcEFQYXJhbQEAAAATa2V5U3dhcEFtb3VudEJQYXJhbQAAAAACAAAAGCVzJXNfX2NvbmZpZ19fc3dhcEJQYXJhbQEAAAATa2V5TnNidExvY2tDb250cmFjdAAAAAACAAAAFCVzX19uc2J0TG9ja0NvbnRyYWN0AQAAAA9rZXlNYXRoQ29udHJhY3QAAAAAAgAAABAlc19fbWF0aENvbnRyYWN0AQAAABtrZXlCYWxhbmNlV2F2ZXNMb2NrSW50ZXJ2YWwAAAAAAgAAABtiYWxhbmNlX3dhdmVzX2xvY2tfaW50ZXJ2YWwBAAAAHmtleUJhbGFuY2VOZXV0cmlub0xvY2tJbnRlcnZhbAAAAAACAAAAHmJhbGFuY2VfbmV1dHJpbm9fbG9ja19pbnRlcnZhbAEAAAAIa2V5UHJpY2UAAAAAAgAAAAVwcmljZQEAAAAWa2V5TG9ja1BhcmFtU3RhcnRCbG9jawAAAAEAAAALdXNlckFkZHJlc3MJAAS5AAAAAgkABEwAAAACAgAAAAYlcyVzJXMJAARMAAAAAgIAAAALcGFyYW1CeVVzZXIJAARMAAAAAgUAAAALdXNlckFkZHJlc3MJAARMAAAAAgIAAAAFc3RhcnQFAAAAA25pbAUAAAADU0VQAQAAAAtrZXlIYWxmTGlmZQAAAAACAAAADCVzX19oYWxmTGlmZQEAAAAQa2V5TWluTG9ja0Ftb3VudAAAAAACAAAAESVzX19taW5Mb2NrQW1vdW50AQAAABVrZXlNaW5XYXZlc0Zvck5zYnRCdXkAAAAAAgAAABJtaW5fd2F2ZXNfbnNidF9idXkBAAAADmtleU1pbk5zYnRTZWxsAAAAAAIAAAANbWluX25zYnRfc2VsbAEAAAAYa2V5UnBkQ29udHJhY3RCYWxhbmNlS2V5AAAAAQAAAAdhc3NldElkCQABLAAAAAICAAAADHJwZF9iYWxhbmNlXwUAAAAHYXNzZXRJZAEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAgAAAAdhZGRyZXNzAAAAA2tleQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQkABLkAAAACCQAETAAAAAICAAAACm1hbmRhdG9yeSAJAARMAAAAAgkABCUAAAABBQAAAAdhZGRyZXNzCQAETAAAAAICAAAAAS4JAARMAAAAAgUAAAADa2V5CQAETAAAAAICAAAADyBpcyBub3QgZGVmaW5lZAUAAAADbmlsAgAAAAABAAAADGdldElu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dHJvbENmZ05ldXRyaW5vRGFwcAAAAAAAAAAAAQAAAAAYSWR4Q29udHJvbENmZ0F1Y3Rpb25EYXBwAAAAAAAAAAACAAAAABRJZHhDb250cm9sQ2ZnUnBkRGFwcAAAAAAAAAAAAwAAAAAVSWR4Q29udHJvbENmZ01hdGhEYXBwAAAAAAAAAAAEAAAAABxJZHhDb250cm9sQ2ZnTGlxdWlkYXRpb25EYXBwAAAAAAAAAAAFAAAAABVJZHhDb250cm9sQ2ZnUmVzdERhcHAAAAAAAAAAAAYAAAAAHUlkeENvbnRyb2xDZmdOb2RlUmVnaXN0cnlEYXBwAAAAAAAAAAAHAAAAABxJZHhDb250cm9sQ2ZnTnNidFN0YWtpbmdEYXBwAAAAAAAAAAAIAAAAABlJZHhDb250cm9sQ2ZnTWVkaWF0b3JEYXBwAAAAAAAAAAAJAAAAABxJZHhDb250cm9sQ2ZnU3VyZlN0YWtpbmdEYXBwAAAAAAAAAAAKAAAAACBJZHhDb250cm9sQ2ZnR25zYnRDb250cm9sbGVyRGFwcAAAAAAAAAAACwAAAAAXSWR4Q29udHJvbENmZ1Jlc3RWMkRhcHAAAAAAAAAAAAwBAAAAEWtleUNvbnRyb2xBZGRyZXNzAAAAAAIAAAAcJXMlc19fY29uZmlnX19jb250cm9sQWRkcmVzcwEAAAANa2V5Q29udHJvbENmZwAAAAACAAAAESVzX19jb250cm9sQ29uZmlnAQAAABRyZWFkQ29udHJvbENmZ09yRmFpbAAAAAEAAAAHY29udHJvbAkABLUAAAACCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAgUAAAAHY29udHJvbAkBAAAADWtleUNvbnRyb2xDZmcAAAAABQAAAANTRVABAAAAGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAAAAAIAAAAKY29udHJvbENmZwAAAANpZHgJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCYAAAABCQABkQAAAAIFAAAACmNvbnRyb2xDZmcFAAAAA2lkeAkAASwAAAACAgAAAC1Db250cm9sIGNmZyBkb2Vzbid0IGNvbnRhaW4gYWRkcmVzcyBhdCBpbmRleCAJAAGkAAAAAQUAAAADaWR4AAAAAA9jb250cm9sQ29udHJhY3QJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwkBAAAAEWtleUNvbnRyb2xBZGRyZXNzAAAAAAIAAAAjM040TlM3ZDRKbzlhNkYxNExpRlVLS1lWZFVra2YyZVA0WngAAAAACmNvbnRyb2xDZmcJAQAAABRyZWFkQ29udHJvbENmZ09yRmFpbAAAAAEFAAAAD2NvbnRyb2xDb250cmFjdAAAAAAMbWF0aENvbnRyYWN0CQEAAAAYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAAAAAgUAAAAKY29udHJvbENmZwUAAAAVSWR4Q29udHJvbENmZ01hdGhEYXBwAAAAABBuZXV0cmlub0NvbnRyYWN0CQEAAAAYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAAAAAgUAAAAKY29udHJvbENmZwUAAAAZSWR4Q29udHJvbENmZ05ldXRyaW5vRGFwcAAAAAAPYXVjdGlvbkNvbnRyYWN0CQEAAAAYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAAAAAgUAAAAKY29udHJvbENmZwUAAAAYSWR4Q29udHJvbENmZ0F1Y3Rpb25EYXBwAAAAABNsaXF1aWRhdGlvbkNvbnRyYWN0CQEAAAAYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAAAAAgUAAAAKY29udHJvbENmZwUAAAAcSWR4Q29udHJvbENmZ0xpcXVpZGF0aW9uRGFwcAAAAAALcnBkQ29udHJhY3QJAQAAABhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwAAAACBQAAAApjb250cm9sQ2ZnBQAAABRJZHhDb250cm9sQ2ZnUnBkRGFwcAAAAAATbnNidFN0YWtpbmdDb250cmFjdAkBAAAAGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAAAAAIFAAAACmNvbnRyb2xDZmcFAAAAHElkeENvbnRyb2xDZmdOc2J0U3Rha2luZ0RhcHAAAAAAE3N1cmZTdGFraW5nQ29udHJhY3QJAQAAABhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwAAAACBQAAAApjb250cm9sQ2ZnBQAAABxJZHhDb250cm9sQ2ZnU3VyZlN0YWtpbmdEYXBwAAAAABdnbnNidENvbnRyb2xsZXJDb250cmFjdAkBAAAAGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAAAAAIFAAAACmNvbnRyb2xDZmcFAAAAIElkeENvbnRyb2xDZmdHbnNidENvbnRyb2xsZXJEYXBwAAAAAA5yZXN0VjJDb250cmFjdAkBAAAAGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAAAAAIFAAAACmNvbnRyb2xDZmcFAAAAF0lkeENvbnRyb2xDZmdSZXN0VjJEYXBwAAAAABVuZXV0cmlub0Fzc2V0SWRTdHJpbmcJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0CQEAAAASa2V5TmV1dHJpbm9Bc3NldElkAAAAAAAAAAAPbmV1dHJpbm9Bc3NldElkCQACWQAAAAEFAAAAFW5ldXRyaW5vQXNzZXRJZFN0cmluZwAAAAAObnNidEFzc2V0SWRTdHIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAAA5rZXlOc2J0QXNzZXRJZAAAAAAAAAAAC25zYnRBc3NldElkCQACWQAAAAEFAAAADm5zYnRBc3NldElkU3RyAAAAAA5zdXJmQXNzZXRJZFN0cgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAPYXVjdGlvbkNvbnRyYWN0CQEAAAAOa2V5U3VyZkFzc2V0SWQAAAAAAAAAAAtzdXJmQXNzZXRJZAkAAlkAAAABBQAAAA5zdXJmQXNzZXRJZFN0cgEAAAASbWluV2F2ZXNGb3JOc2J0QnV5AAAAAAkBAAAABWFzSW50AAAAAQkAA/wAAAAEBQAAAA9hdWN0aW9uQ29udHJhY3QCAAAAIG1pbldhdmVzQW1vdW50TnNidEJ1eVNZU1JFQURPTkxZBQAAAANuaWwFAAAAA25pbAEAAAAObWluTnNidEZvclNlbGwAAAAACQEAAAAFYXNJbnQAAAABCQAD/AAAAAQFAAAAD2F1Y3Rpb25Db250cmFjdAIAAAAfbWluTnNidEFtb3VudEZvclNlbGxTWVNSRUFET05MWQUAAAADbmlsBQAAAANuaWwBAAAAEm1pbldhdmVzRm9yU3VyZkJ1eQAAAAAJAQAAAAVhc0ludAAAAAEJAAP8AAAABAUAAAAPYXVjdGlvbkNvbnRyYWN0AgAAACBtaW5XYXZlc0Ftb3VudFN1cmZCdXlTWVNSRUFET05MWQUAAAADbmlsBQAAAANuaWwBAAAAEW1pblVzZG5Gb3JTdXJmQnV5AAAAAAkBAAAABWFzSW50AAAAAQkAA/wAAAAEBQAAAA9hdWN0aW9uQ29udHJhY3QCAAAAH21pblVzZG5BbW91bnRTdXJmQnV5U1lTUkVBRE9OTFkFAAAAA25pbAUAAAADbmlsAQAAABRwcml2YXRlTnNidFByaWNlUkVTVAAAAAAEAAAABnByaWNlcwkBAAAACWFzQW55TGlzdAAAAAEJAAP8AAAABAUAAAAMbWF0aENvbnRyYWN0AgAAACBjYWxjQ29udHJhY3ROc2J0UHJpY2VTWVNSRUFET05MWQkABEwAAAACAAAAAAAAAAAABQAAAANuaWwFAAAAA25pbAQAAAAObnNidDJ1c2RuUHJpY2UJAQAAAAVhc0ludAAAAAEJAAGRAAAAAgUAAAAGcHJpY2VzAAAAAAAAAAAABAAAAA9uc2J0MndhdmVzUHJpY2UJAQAAAAVhc0ludAAAAAEJAAGRAAAAAgUAAAAGcHJpY2VzAAAAAAAAAAABCQAFFAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAA5uc2J0MnVzZG5QcmljZQUAAAAObnNidDJ1c2RuUHJpY2UJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAA9uc2J0MndhdmVzUHJpY2UFAAAAD25zYnQyd2F2ZXNQcmljZQEAAAAOZ2V0TG9ja2VkT25ScGQAAAACAAAAB2FkZHJTdHIAAAAKYXNzZXRJZFN0cgQAAAADa2V5CQAEuQAAAAIJAARMAAAAAgIAAAALcnBkX2JhbGFuY2UJAARMAAAAAgUAAAAKYXNzZXRJZFN0cgkABEwAAAACBQAAAAdhZGRyU3RyBQAAAANuaWwCAAAAAV8JAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAALcnBkQ29udHJhY3QFAAAAA2tleQAAAAAAAAAAAAAAAA4AAAABaQEAAAALY29uc3RydWN0b3IAAAADAAAAD25ldXRyaW5vQWRkcmVzcwAAAA9uc2J0TG9ja0FkZHJlc3MAAAALbWF0aEFkZHJlc3MDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAAACAAAAAQIAAAAObm90IGF1dGhvcml6ZWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEmtleU5ldXRyaW5vQWRkcmVzcwAAAAAFAAAAD25ldXRyaW5vQWRkcmVzcwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAATa2V5TnNidExvY2tDb250cmFjdAAAAAAFAAAAD25zYnRMb2NrQWRkcmVzcwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAPa2V5TWF0aENvbnRyYWN0AAAAAAUAAAALbWF0aEFkZHJlc3MFAAAAA25pbAAAAAFpAQAAABVuZXV0cmlub1N0YXRzUkVBRE9OTFkAAAAABAAAAA9uZXV0cmlub01ldHJpY3MJAQAAAAlhc0FueUxpc3QAAAABCQAD/AAAAAQFAAAADG1hdGhDb250cmFjdAIAAAAaY2FsY05ldXRpbm9NZXRyaWNzUkVBRE9OTFkFAAAAA25pbAUAAAADbmlsBAAAAAZwcmljZXMJAQAAAAlhc0FueUxpc3QAAAABCQAD/AAAAAQFAAAADG1hdGhDb250cmFjdAIAAAAgY2FsY0NvbnRyYWN0TnNidFByaWNlU1lTUkVBRE9OTFkJAARMAAAAAgAAAAAAAAAAAAUAAAADbmlsBQAAAANuaWwEAAAADGN1cnJlbnRQcmljZQkBAAAABWFzSW50AAAAAQkAAZEAAAACBQAAAA9uZXV0cmlub01ldHJpY3MFAAAAD25NZXRyaWNJZHhQcmljZQQAAAAVbmV1dHJpbm9Mb2NrZWRCYWxhbmNlCQEAAAAFYXNJbnQAAAABCQABkQAAAAIFAAAAD25ldXRyaW5vTWV0cmljcwUAAAAbbk1ldHJpY0lkeFVzZG5Mb2NrZWRCYWxhbmNlBAAAABJ3YXZlc0xvY2tlZEJhbGFuY2UJAQAAAAVhc0ludAAAAAEJAAGRAAAAAgUAAAAPbmV1dHJpbm9NZXRyaWNzBQAAABxuTWV0cmljSWR4V2F2ZXNMb2NrZWRCYWxhbmNlBAAAAA9yZXNlcnZlc0luV2F2ZXMJAQAAAAVhc0ludAAAAAEJAAGRAAAAAgUAAAAPbmV1dHJpbm9NZXRyaWNzBQAAABFuTWV0cmljSWR4UmVzZXJ2ZQQAAAAOcmVzZXJ2ZXNJblVzZG4JAQAAAAVhc0ludAAAAAEJAAGRAAAAAgUAAAAPbmV1dHJpbm9NZXRyaWNzBQAAABduTWV0cmljSWR4UmVzZXJ2ZUluVXNkbgQAAAAObmV1dHJpbm9TdXBwbHkJAQAAAAVhc0ludAAAAAEJAAGRAAAAAgUAAAAPbmV1dHJpbm9NZXRyaWNzBQAAABRuTWV0cmljSWR4VXNkblN1cHBseQQAAAAHc3VycGx1cwkBAAAABWFzSW50AAAAAQkAAZEAAAACBQAAAA9uZXV0cmlub01ldHJpY3MFAAAAEW5NZXRyaWNJZHhTdXJwbHVzBAAAAA5zdXJwbHVzUGVyY2VudAkBAAAABWFzSW50AAAAAQkAAZEAAAACBQAAAA9uZXV0cmlub01ldHJpY3MFAAAAGG5NZXRyaWNJZHhTdXJwbHVzUGVyY2VudAQAAAACQlIJAQAAAAVhc0ludAAAAAEJAAGRAAAAAgUAAAAPbmV1dHJpbm9NZXRyaWNzBQAAAAxuTWV0cmljSWR4QlIEAAAACm5zYnRTdXBwbHkJAQAAAAVhc0ludAAAAAEJAAGRAAAAAgUAAAAPbmV1dHJpbm9NZXRyaWNzBQAAABRuTWV0cmljSWR4TnNidFN1cHBseQQAAAANbWF4TnNidFN1cHBseQkBAAAABWFzSW50AAAAAQkAAZEAAAACBQAAAA9uZXV0cmlub01ldHJpY3MFAAAAF25NZXRyaWNJZHhNYXhOc2J0U3VwcGx5BAAAAA5uc2J0MnVzZG5QcmljZQkBAAAABWFzSW50AAAAAQkAAZEAAAACBQAAAAZwcmljZXMAAAAAAAAAAAAEAAAAD25zYnQyd2F2ZXNQcmljZQkBAAAABWFzSW50AAAAAQkAAZEAAAACBQAAAAZwcmljZXMAAAAAAAAAAAEEAAAAEG1pbldhdmVzNE5zYnRCdXkJAQAAABJtaW5XYXZlc0Zvck5zYnRCdXkAAAAABAAAAAttaW5Oc2J0c2VsbAkBAAAADm1pbk5zYnRGb3JTZWxsAAAAAAQAAAAObWluTnNidExvY2tBbXQJAQAAAAxnZXRJbnRPckZhaWwAAAACBQAAABNuc2J0U3Rha2luZ0NvbnRyYWN0CQEAAAAQa2V5TWluTG9ja0Ftb3VudAAAAAAEAAAAEG1heFdhdmVzMkJ1eVN1cmYJAABlAAAAAgkAAGsAAAADBQAAAA5uZXV0cmlub1N1cHBseQUAAAAFTVVMVDgFAAAADGN1cnJlbnRQcmljZQUAAAAPcmVzZXJ2ZXNJbldhdmVzBAAAAA9tYXhVc2RuMkJ1eVN1cmYJAABlAAAAAgUAAAAObmV1dHJpbm9TdXBwbHkFAAAADnJlc2VydmVzSW5Vc2RuBAAAAA9zdXJmUHJpY2VJblVzZG4FAAAAAkJSBAAAABBzdXJmUHJpY2VJbldhdmVzCQAAawAAAAMFAAAAAkJSBQAAAAVNVUxUNgUAAAAMY3VycmVudFByaWNlBAAAAA90b3RhbFVzZG5TdGFrZWQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAALcnBkQ29udHJhY3QJAQAAABhrZXlScGRDb250cmFjdEJhbGFuY2VLZXkAAAABBQAAABVuZXV0cmlub0Fzc2V0SWRTdHJpbmcAAAAAAAAAAAAJAAUUAAAAAgUAAAADbmlsCQAEuQAAAAIJAARMAAAAAgIAAAAqJWQlZCVkJWQlZCVkJWQlZCVkJWQlZCVkJWQlZCVkJWQlZCVkJWQlZCVkCQAETAAAAAIJAAGkAAAAAQUAAAAMY3VycmVudFByaWNlCQAETAAAAAIJAAGkAAAAAQUAAAAVbmV1dHJpbm9Mb2NrZWRCYWxhbmNlCQAETAAAAAIJAAGkAAAAAQUAAAASd2F2ZXNMb2NrZWRCYWxhbmNlCQAETAAAAAIJAAGkAAAAAQUAAAAPcmVzZXJ2ZXNJbldhdmVzCQAETAAAAAIJAAGkAAAAAQUAAAAOcmVzZXJ2ZXNJblVzZG4JAARMAAAAAgkAAaQAAAABBQAAAA5uZXV0cmlub1N1cHBseQkABEwAAAACCQABpAAAAAEFAAAAB3N1cnBsdXMJAARMAAAAAgkAAaQAAAABBQAAAA5zdXJwbHVzUGVyY2VudAkABEwAAAACCQABpAAAAAEFAAAAAkJSCQAETAAAAAIJAAGkAAAAAQUAAAAKbnNidFN1cHBseQkABEwAAAACCQABpAAAAAEFAAAADW1heE5zYnRTdXBwbHkJAARMAAAAAgkAAaQAAAABBQAAAA5uc2J0MnVzZG5QcmljZQkABEwAAAACCQABpAAAAAEFAAAAD25zYnQyd2F2ZXNQcmljZQkABEwAAAACCQABpAAAAAEFAAAAEG1pbldhdmVzNE5zYnRCdXkJAARMAAAAAgkAAaQAAAABBQAAAAttaW5Oc2J0c2VsbAkABEwAAAACCQABpAAAAAEFAAAADm1pbk5zYnRMb2NrQW10CQAETAAAAAIJAAGkAAAAAQUAAAAQbWF4V2F2ZXMyQnV5U3VyZgkABEwAAAACCQABpAAAAAEFAAAAD21heFVzZG4yQnV5U3VyZgkABEwAAAACCQABpAAAAAEFAAAAD3N1cmZQcmljZUluVXNkbgkABEwAAAACCQABpAAAAAEFAAAAEHN1cmZQcmljZUluV2F2ZXMJAARMAAAAAgkAAaQAAAABBQAAAA90b3RhbFVzZG5TdGFrZWQFAAAAA25pbAUAAAADU0VQAAAAAWkBAAAAEHN3YXBJbmZvUkVBRE9OTFkAAAABAAAAEXVzZXJBZGRyZXNzU3RyT3B0BAAAAAxjdXJyZW50UHJpY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAD2NvbnRyb2xDb250cmFjdAkBAAAACGtleVByaWNlAAAAAAQAAAAPbWluV2F2ZXNTd2FwQW10CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0CQEAAAAVa2V5TWluV2F2ZXNTd2FwQW1vdW50AAAAAAQAAAAObWluVXNkblN3YXBBbXQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAABhrZXlNaW5OZXV0cmlub1N3YXBBbW91bnQAAAAABAAAAA13YXZlczJVc2RuRmVlCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0CQEAAAASa2V5V2F2ZXNPdXRGZWVQYXJ0AAAAAAQAAAANdXNkbjJXYXZlc0ZlZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAkBAAAAFWtleU5ldXRyaW5vT3V0RmVlUGFydAAAAAAEAAAAFXVzZG5Td2FwRGVsYXlEdXJhdGlvbgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAkBAAAAHmtleUJhbGFuY2VOZXV0cmlub0xvY2tJbnRlcnZhbAAAAAAEAAAAFndhdmVzU3dhcERlbGF5RHVyYXRpb24JAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAABtrZXlCYWxhbmNlV2F2ZXNMb2NrSW50ZXJ2YWwAAAAABAAAAA0kdDAxMTc0NjExOTEwCQEAAAASYXNTd2FwUGFyYW1zU1RSVUNUAAAAAQkAA/wAAAAEBQAAABBuZXV0cmlub0NvbnRyYWN0AgAAABtzd2FwUGFyYW1zQnlVc2VyU1lTUkVBRE9OTFkJAARMAAAAAgUAAAARdXNlckFkZHJlc3NTdHJPcHQJAARMAAAAAgAAAAAAAAAAAAUAAAADbmlsBQAAAANuaWwEAAAAEHN3YXBMaW1pdE1heFVzZG4IBQAAAA0kdDAxMTc0NjExOTEwAAAAAl8xBAAAABJzd2FwTGltaXRTcGVudFVzZG4IBQAAAA0kdDAxMTc0NjExOTEwAAAAAl8yBAAAAA5ibGNrczJMbXRSZXNldAgFAAAADSR0MDExNzQ2MTE5MTAAAAACXzMEAAAAEXN3YXBMaW1pdE1heFdhdmVzCQEAAAAWY29udmVydE5ldXRyaW5vVG9XYXZlcwAAAAIFAAAAEHN3YXBMaW1pdE1heFVzZG4FAAAADGN1cnJlbnRQcmljZQkABRQAAAACBQAAAANuaWwJAAS5AAAAAgkABEwAAAACAgAAABYlZCVkJWQlZCVkJWQlZCVkJWQlZCVkCQAETAAAAAIJAAGkAAAAAQUAAAAMY3VycmVudFByaWNlCQAETAAAAAIJAAGkAAAAAQUAAAAPbWluV2F2ZXNTd2FwQW10CQAETAAAAAIJAAGkAAAAAQUAAAAObWluVXNkblN3YXBBbXQJAARMAAAAAgkAAaQAAAABBQAAAA13YXZlczJVc2RuRmVlCQAETAAAAAIJAAGkAAAAAQUAAAANdXNkbjJXYXZlc0ZlZQkABEwAAAACCQABpAAAAAEFAAAAFXVzZG5Td2FwRGVsYXlEdXJhdGlvbgkABEwAAAACCQABpAAAAAEFAAAAFndhdmVzU3dhcERlbGF5RHVyYXRpb24JAARMAAAAAgkAAaQAAAABBQAAAA5ibGNrczJMbXRSZXNldAkABEwAAAACCQABpAAAAAEFAAAAEXN3YXBMaW1pdE1heFdhdmVzCQAETAAAAAIJAAGkAAAAAQUAAAAQc3dhcExpbWl0TWF4VXNkbgkABEwAAAACCQABpAAAAAEFAAAAEnN3YXBMaW1pdFNwZW50VXNkbgUAAAADbmlsBQAAAANTRVAAAAABaQEAAAARZ25zYnRJbmZvUkVBRE9OTFkAAAACAAAAEXVzZXJBZGRyZXNzU3RyT3B0AAAAC25zYnRBbXREaWZmBAAAAAxjdXJyZW50UHJpY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAD2NvbnRyb2xDb250cmFjdAkBAAAACGtleVByaWNlAAAAAAQAAAANJHQwMTI5MTYxMzA5OQkBAAAAEmFzU3dhcFBhcmFtc1NUUlVDVAAAAAEJAAP8AAAABAUAAAAQbmV1dHJpbm9Db250cmFjdAIAAAAbc3dhcFBhcmFtc0J5VXNlclNZU1JFQURPTkxZCQAETAAAAAIFAAAAEXVzZXJBZGRyZXNzU3RyT3B0CQAETAAAAAIAAAAAAAAAAAAFAAAAA25pbAUAAAADbmlsBAAAAAxsaW1pdE1heFVzZG4IBQAAAA0kdDAxMjkxNjEzMDk5AAAAAl8xBAAAAApsaW1pdFNwZW50CAUAAAANJHQwMTI5MTYxMzA5OQAAAAJfMgQAAAAOYmxja3MyTG10UmVzZXQIBQAAAA0kdDAxMjkxNjEzMDk5AAAAAl8zBAAAAAhnbnNidEFtdAgFAAAADSR0MDEyOTE2MTMwOTkAAAACXzQEAAAADWduc2J0QW10VG90YWwIBQAAAA0kdDAxMjkxNjEzMDk5AAAAAl81BAAAAA0kdDAxMzEwMzEzMzExCQEAAAASYXNTd2FwUGFyYW1zU1RSVUNUAAAAAQkAA/wAAAAEBQAAABBuZXV0cmlub0NvbnRyYWN0AgAAABtzd2FwUGFyYW1zQnlVc2VyU1lTUkVBRE9OTFkJAARMAAAAAgUAAAARdXNlckFkZHJlc3NTdHJPcHQJAARMAAAAAgUAAAALbnNidEFtdERpZmYFAAAAA25pbAUAAAADbmlsBAAAAA9saW1pdE1heFVzZG5ORVcIBQAAAA0kdDAxMzEwMzEzMzExAAAAAl8xBAAAAA1saW1pdFNwZW50TkVXCAUAAAANJHQwMTMxMDMxMzMxMQAAAAJfMgQAAAARYmxja3MyTG10UmVzZXRORVcIBQAAAA0kdDAxMzEwMzEzMzExAAAAAl8zBAAAAAtnbnNidEFtdE5FVwgFAAAADSR0MDEzMTAzMTMzMTEAAAACXzQEAAAAEGduc2J0QW10VG90YWxORVcIBQAAAA0kdDAxMzEwMzEzMzExAAAAAl81BAAAAA1saW1pdE1heFdhdmVzCQEAAAAWY29udmVydE5ldXRyaW5vVG9XYXZlcwAAAAIFAAAADGxpbWl0TWF4VXNkbgUAAAAMY3VycmVudFByaWNlBAAAABBsaW1pdE1heFdhdmVzTkVXCQEAAAAWY29udmVydE5ldXRyaW5vVG9XYXZlcwAAAAIFAAAAD2xpbWl0TWF4VXNkbk5FVwUAAAAMY3VycmVudFByaWNlBAAAAApnbnNidFNoYXJlAwkBAAAAAiE9AAAAAgUAAAANZ25zYnRBbXRUb3RhbAAAAAAAAAAAAAkAAGsAAAADCQAAaAAAAAIFAAAACGduc2J0QW10AAAAAAAAAABkBQAAAAZNVUxUMTIFAAAADWduc2J0QW10VG90YWwAAAAAAAAAAAAEAAAADWduc2J0U2hhcmVORVcDCQEAAAACIT0AAAACBQAAABBnbnNidEFtdFRvdGFsTkVXAAAAAAAAAAAACQAAawAAAAMJAABoAAAAAgUAAAALZ25zYnRBbXRORVcAAAAAAAAAAGQFAAAABk1VTFQxMgUAAAAQZ25zYnRBbXRUb3RhbE5FVwAAAAAAAAAAAAQAAAAKcmV3YXJkSW5mbwkBAAAACGFzU3RyaW5nAAAAAQkAA/wAAAAEBQAAABNuc2J0U3Rha2luZ0NvbnRyYWN0AgAAABh1bmNsYWltZWRSZXdhcmRzUkVBRE9OTFkJAARMAAAAAgUAAAARdXNlckFkZHJlc3NTdHJPcHQFAAAAA25pbAUAAAADbmlsBAAAAAduc2J0QW10BQAAAAhnbnNidEFtdAQAAAAKbnNidEFtdE5ldwUAAAALZ25zYnRBbXRORVcEAAAAEm5zYnRBbXRTdGFrZWRUb3RhbAUAAAANZ25zYnRBbXRUb3RhbAQAAAAVbnNidEFtdFN0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YXBBbXQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAABhrZXlNaW5OZXV0cmlub1N3YXBBbW91bnQAAAAABAAAAA13YXZlczJVc2RuRmVlCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0CQEAAAASa2V5V2F2ZXNPdXRGZWVQYXJ0AAAAAAQAAAANdXNkbjJXYXZlc0ZlZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAkBAAAAFWtleU5ldXRyaW5vT3V0RmVlUGFydAAAAAAEAAAAEG1pbldhdmVzNE5zYnRCdXkJAQAAABJtaW5XYXZlc0Zvck5zYnRCdXkAAAAABAAAAAttaW5Oc2J0c2VsbAkBAAAADm1pbk5zYnRGb3JTZWxsAAAAAAQAAAAObWluTnNidExvY2tBbXQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAE25zYnRTdGFraW5nQ29udHJhY3QJAQAAABBrZXlNaW5Mb2NrQW1vdW50AAAAAAQAAAAIaGFsZkxpZmUJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAE25zYnRTdGFraW5nQ29udHJhY3QJAQAAAAtrZXlIYWxmTGlmZQAAAAAEAAAAEG1pbldhdmVzNFN1cmZCdXkJAQAAABJtaW5XYXZlc0ZvclN1cmZCdXkAAAAABAAAAA9taW5Vc2RuNFN1cmZCdXkJAQAAABFtaW5Vc2RuRm9yU3VyZkJ1eQAAAAAEAAAADnN1cmZTdGFraW5nQ2ZnCQEAAAAJYXNBbnlMaXN0AAAAAQkAA/wAAAAEBQAAABNzdXJmU3Rha2luZ0NvbnRyYWN0AgAAABFjb25maWdTWVNSRUFET05MWQUAAAADbmlsBQAAAANuaWwEAAAAD21pblN1cmZTdGFrZUFtdAkBAAAABWFzSW50AAAAAQkAAZEAAAACBQAAAA5zdXJmU3Rha2luZ0NmZwAAAAAAAAAAAAQAAAASZ25zYnRGcm9tU3VyZkNvZWZmCQEAAAAFYXNJbnQAAAABCQABkQAAAAIFAAAADnN1cmZTdGFraW5nQ2ZnAAAAAAAAAAABBAAA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bmNJZHhTdXJmBAAAAAtnTnNidEFtb3VudAkBAAAABWFzSW50AAAAAQkAA/wAAAAEBQAAABNzdXJmU3Rha2luZ0NvbnRyYWN0AgAAABhnbnNidEZyb21TdXJmU1lTUkVBRE9OTFkJAARMAAAAAgUAAAAKc3VyZkFtb3VudAUAAAADbmlsBQAAAANuaWwEAAAACGxpbWl0T2xkCAkBAAAAEmFzU3dhcFBhcmFtc1NUUlVDVAAAAAEJAAP8AAAABAUAAAAQbmV1dHJpbm9Db250cmFjdAIAAAAbc3dhcFBhcmFtc0J5VXNlclNZU1JFQURPTkxZCQAETAAAAAIFAAAAEXVzZXJBZGRyZXNzU3RyT3B0CQAETAAAAAIAAAAAAAAAAAAFAAAAA25pbAUAAAADbmlsAAAAAl8xBAAAAAhsaW1pdE5ldwgJAQAAABJhc1N3YXBQYXJhbXNTVFJVQ1QAAAABCQAD/AAAAAQFAAAAEG5ldXRyaW5vQ29udHJhY3QCAAAAG3N3YXBQYXJhbXNCeVVzZXJTWVNSRUFET05MWQkABEwAAAACBQAAABF1c2VyQWRkcmVzc1N0ck9wdAkABEwAAAACBQAAAAtnTnNidEFtb3VudAUAAAADbmlsBQAAAANuaWwAAAACXzEEAAAABXByaWNlCQEAAAAFYXNJbnQAAAABCQABkQAAAAIFAAAACnN1cmZSZXN1bHQFAAAAEmJGdW5jSWR4V2F2ZXNQcmljZQQAAAATYWRkaXRpb25hbExpbWl0VXNkbgkAAGUAAAACBQAAAAhsaW1pdE5ldwUAAAAIbGltaXRPbGQEAAAAFGFkZGl0aW9uYWxMaW1pdFdhdmVzCQAAawAAAAMFAAAAE2FkZGl0aW9uYWxMaW1pdFVzZG4FAAAABU1VTFQ4BQAAAAVwcmljZQQAAAADYnIwCQEAAAAFYXNJbnQAAAABCQABkQAAAAIFAAAACnN1cmZSZXN1bHQFAAAAD2JGdW5jSWR4QlJTdGFydAQAAAADYnIxCQEAAAAFYXNJbnQAAAABCQABkQAAAAIFAAAACnN1cmZSZXN1bHQFAAAADWJGdW5jSWR4QlJFbmQEAAAAEHByaWNlU3VyZjJXYXZlczAJAABrAAAAAwUAAAADYnIwBQAAAAVNVUxUNgUAAAAFcHJpY2UEAAAAEHByaWNlU3VyZjJX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RWxzZQAAAAIJAAQaAAAAAgUAAAATbnNidFN0YWtpbmdDb250cmFjdAkBAAAAFmtleUxvY2tQYXJhbVN0YXJ0QmxvY2sAAAABBQAAAAt1c2VyQWRkcmVzcwUAAAAGaGVpZ2h0BAAAAAFhCQEAAAAFYXNJbnQAAAABCQAD/AAAAAQFAAAADG1hdGhDb250cmFjdAIAAAAhZ2V0VW5zdGFrZUNvbWlzc2lvbkFtb3VudFJFQURPTkxZCQAETAAAAAIFAAAABmFtb3VudAkABEwAAAACBQAAAAtzdGFydEhlaWdodAkABEwAAAACBQAAAAhoYWxmTGlmZQUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAAAWEFAAAAAWEJAAUUAAAAAgUAAAADbmlsCQAEuQAAAAIJAARMAAAAAgIAAAACJWQJAARMAAAAAgkAAaQAAAABBQAAAAFhBQAAAANuaWwFAAAAA1NFUAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAARbmV1dHJpbm9TdGF0ZVJFU1QAAAAABAAAAA9uZXV0cmlub01ldHJpY3MJAQAAAAlhc0FueUxpc3QAAAABCQAD/AAAAAQFAAAADG1hdGhDb250cmFjdAIAAAAaY2FsY05ldXRpbm9NZXRyaWNzUkVBRE9OTFkFAAAAA25pbAUAAAADbmlsBAAAAAxjdXJyZW50UHJpY2UJAQAAAAVhc0ludAAAAAEJAAGRAAAAAgUAAAAPbmV1dHJpbm9NZXRyaWNzBQAAAA9uTWV0cmljSWR4UHJpY2UEAAAAFW5ldXRyaW5vTG9ja2VkQmFsYW5jZQkBAAAABWFzSW50AAAAAQkAAZEAAAACBQAAAA9uZXV0cmlub01ldHJpY3MFAAAAG25NZXRyaWNJZHhVc2RuTG9ja2VkQmFsYW5jZQQAAAASd2F2ZXNMb2NrZWRCYWxhbmNlCQEAAAAFYXNJbnQAAAABCQABkQAAAAIFAAAAD25ldXRyaW5vTWV0cmljcwUAAAAcbk1ldHJpY0lkeFdhdmVzTG9ja2VkQmFsYW5jZQQAAAAPcmVzZXJ2ZXNJbldhdmVzCQEAAAAFYXNJbnQAAAABCQABkQAAAAIFAAAAD25ldXRyaW5vTWV0cmljcwUAAAARbk1ldHJpY0lkeFJlc2VydmUEAAAADnJlc2VydmVzSW5Vc2RuCQEAAAAFYXNJbnQAAAABCQABkQAAAAIFAAAAD25ldXRyaW5vTWV0cmljcwUAAAAXbk1ldHJpY0lkeFJlc2VydmVJblVzZG4EAAAADm5ldXRyaW5vU3VwcGx5CQEAAAAFYXNJbnQAAAABCQABkQAAAAIFAAAAD25ldXRyaW5vTWV0cmljcwUAAAAUbk1ldHJpY0lkeFVzZG5TdXBwbHkEAAAAB3N1cnBsdXMJAQAAAAVhc0ludAAAAAEJAAGRAAAAAgUAAAAPbmV1dHJpbm9NZXRyaWNzBQAAABFuTWV0cmljSWR4U3VycGx1cwQAAAAOc3VycGx1c1BlcmNlbnQJAQAAAAVhc0ludAAAAAEJAAGRAAAAAgUAAAAPbmV1dHJpbm9NZXRyaWNzBQAAABhuTWV0cmljSWR4U3VycGx1c1BlcmNlbnQEAAAAAkJSCQEAAAAFYXNJbnQAAAABCQABkQAAAAIFAAAAD25ldXRyaW5vTWV0cmljcwUAAAAMbk1ldHJpY0lkeEJSBAAAAApuc2J0U3VwcGx5CQEAAAAFYXNJbnQAAAABCQABkQAAAAIFAAAAD25ldXRyaW5vTWV0cmljcwUAAAAUbk1ldHJpY0lkeE5zYnRTdXBwbHkEAAAADW5zYnRTdXBwbHlNYXgJAQAAAAVhc0ludAAAAAEJAAGRAAAAAgUAAAAPbmV1dHJpbm9NZXRyaWNzBQAAABduTWV0cmljSWR4TWF4TnNidFN1cHBseQQAAAAKc3VyZlN1cHBseQkBAAAABWFzSW50AAAAAQkAAZEAAAACBQAAAA9uZXV0cmlub01ldHJpY3MFAAAAFG5NZXRyaWNJZHhTdXJmU3VwcGx5CQAAAgAAAAEJAAS5AAAAAgkABEwAAAACAgAAABdyZXN1bHROZXV0cmlub1N0YXRlUkVTVAkABEwAAAACCQABpAAAAAEFAAAADGN1cnJlbnRQcmljZQkABEwAAAACCQABpAAAAAEFAAAAFW5ldXRyaW5vTG9ja2VkQmFsYW5jZQkABEwAAAACCQABpAAAAAEFAAAAEndhdmVzTG9ja2VkQmFsYW5jZQkABEwAAAACCQABpAAAAAEFAAAAD3Jlc2VydmVzSW5XYXZlcwkABEwAAAACCQABpAAAAAEFAAAADnJlc2VydmVzSW5Vc2RuCQAETAAAAAIJAAGkAAAAAQUAAAAObmV1dHJpbm9TdXBwbHkJAARMAAAAAgkAAaQAAAABBQAAAAdzdXJwbHVzCQAETAAAAAIJAAGkAAAAAQUAAAAOc3VycGx1c1BlcmNlbnQJAARMAAAAAgkAAaQAAAABBQAAAAJCUgkABEwAAAACCQABpAAAAAEFAAAACm5zYnRTdXBwbHkJAARMAAAAAgkAAaQAAAABBQAAAA1uc2J0U3VwcGx5TWF4CQAETAAAAAIJAAGkAAAAAQUAAAAKc3VyZlN1cHBseQUAAAADbmlsAgAAAAJfXwAAAAFpAQAAAA1uc2J0UHJpY2VSRVNUAAAAAAQAAAAGcHJpY2VzCQEAAAAJYXNBbnlMaXN0AAAAAQkAA/wAAAAEBQAAAAxtYXRoQ29udHJhY3QCAAAAIGNhbGNDb250cmFjdE5zYnRQcmljZVNZU1JFQURPTkxZCQAETAAAAAIAAAAAAAAAAAAFAAAAA25pbAUAAAADbmlsBAAAAA5uc2J0MnVzZG5QcmljZQkBAAAABWFzSW50AAAAAQkAAZEAAAACBQAAAAZwcmljZXMAAAAAAAAAAAAEAAAAD25zYnQyd2F2ZXNQcmljZQkBAAAABWFzSW50AAAAAQkAAZEAAAACBQAAAAZwcmljZXMAAAAAAAAAAAEEAAAACHJlc3REYXRhCQAEuQAAAAIJAARMAAAAAgIAAAASc3RhcnROc2J0UHJpY2VSRVNUCQAETAAAAAIJAAGkAAAAAQUAAAAObnNidDJ1c2RuUHJpY2UJAARMAAAAAgkAAaQAAAABBQAAAA9uc2J0MndhdmVzUHJpY2UJAARMAAAAAgIAAAAQZW5kTnNidFByaWNlUkVTVAUAAAADbmlsAgAAAAJfXwkAAAIAAAABBQAAAAhyZXN0RGF0YQAAAAFpAQAAAA1zdXJmUHJpY2VSRVNUAAAAAAQAAAAPbmV1dHJpbm9NZXRyaWNzCQEAAAAJYXNBbnlMaXN0AAAAAQkAA/wAAAAEBQAAAAxtYXRoQ29udHJhY3QCAAAAGmNhbGNOZXV0aW5vTWV0cmljc1JFQURPTkxZBQAAAANuaWwFAAAAA25pbAQAAAAMY3VycmVudFByaWNlCQEAAAAFYXNJbnQAAAABCQABkQAAAAIFAAAAD25ldXRyaW5vTWV0cmljcwUAAAAPbk1ldHJpY0lkeFByaWNlBAAAAA9yZXNlcnZlc0luV2F2ZXMJAQAAAAVhc0ludAAAAAEJAAGRAAAAAgUAAAAPbmV1dHJpbm9NZXRyaWNzBQAAABFuTWV0cmljSWR4UmVzZXJ2ZQQAAAAObmV1dHJpbm9TdXBwbHkJAQAAAAVhc0ludAAAAAEJAAGRAAAAAgUAAAAPbmV1dHJpbm9NZXRyaWNzBQAAABRuTWV0cmljSWR4VXNkblN1cHBseQQAAAAPc3VyZlByaWNlSW5Vc2RuCQAAawAAAAMFAAAAD3Jlc2VydmVzSW5XYXZlcwUAAAAMY3VycmVudFByaWNlBQAAAA5uZXV0cmlub1N1cHBseQQAAAAQc3VyZlByaWNlSW5XYXZlcwkAAGsAAAADBQAAAA9yZXNlcnZlc0luV2F2ZXMFAAAABU1VTFQ4BQAAAA5uZXV0cmlub1N1cHBseQQAAAAIcmVzdERhdGEJAAS5AAAAAgkABEwAAAACAgAAABJzdGFydFN1cmZQcmljZVJFU1QJAARMAAAAAgkAAaQAAAABBQAAAA9zdXJmUHJpY2VJblVzZG4JAARMAAAAAgkAAaQAAAABBQAAABBzdXJmUHJpY2VJbldhdmVzCQAETAAAAAICAAAAEGVuZFN1cmZQcmljZVJFU1QFAAAAA25pbAIAAAACX18JAAACAAAAAQUAAAAIcmVzdERhdGEAAAAABXgTVQ==", "chainId": 84, "height": 2177184, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3b3WstYu44htZK74pcp463EgGp8MtW6yDu3cGHsiPBaL Next: AR9xCAHHjCKtAsBqFuMhXo6TT6LZuTVTbbJJeisH3izA Diff:
OldNewDifferences
136136 func ae () = "min_nsbt_sell"
137137
138138
139-func af (ag,ah) = valueOrErrorMessage(getString(ag, ah), makeString(["mandatory ", toString(ag), ".", ah, " is not defined"], ""))
139+func af (ag) = ("rpd_balance_" + ag)
140140
141141
142-func ai (ag,ah) = valueOrErrorMessage(getInteger(ag, ah), makeString(["mandatory ", toString(ag), ".", ah, " is not defined"], ""))
142+func ah (ai,aj) = valueOrErrorMessage(getString(ai, aj), makeString(["mandatory ", toString(ai), ".", aj, " is not defined"], ""))
143143
144144
145-func aj (ag,ah) = valueOrErrorMessage(getBoolean(ag, ah), makeString(["mandatory ", toString(ag), ".", ah, " is not defined"], ""))
145+func ak (ai,aj) = valueOrErrorMessage(getInteger(ai, aj), makeString(["mandatory ", toString(ai), ".", aj, " is not defined"], ""))
146146
147147
148-func ak (al,am) = fraction(al, e, am)
148+func al (ai,aj) = valueOrErrorMessage(getBoolean(ai, aj), makeString(["mandatory ", toString(ai), ".", aj, " is not defined"], ""))
149149
150150
151-func an (al,am) = fraction(al, am, e)
151+func am (an,ao) = fraction(an, e, ao)
152152
153153
154-func ao (ap) = {
155- let aq = ap
156- if ($isInstanceOf(aq, "List[Any]"))
154+func ap (an,ao) = fraction(an, ao, e)
155+
156+
157+func aq (ar) = {
158+ let as = ar
159+ if ($isInstanceOf(as, "List[Any]"))
157160 then {
158- let ar = aq
159- ar
161+ let at = as
162+ at
160163 }
161164 else throw("fail to cast into List[Any]")
162165 }
163166
164167
165-func as (ap) = {
166- let aq = ap
167- if ($isInstanceOf(aq, "Int"))
168+func au (ar) = {
169+ let as = ar
170+ if ($isInstanceOf(as, "Int"))
168171 then {
169- let at = aq
170- at
172+ let av = as
173+ av
171174 }
172175 else throw("fail to cast into Int")
173176 }
174177
175178
176-func au (ap) = {
177- let aq = ap
178- if ($isInstanceOf(aq, "String"))
179+func aw (ar) = {
180+ let as = ar
181+ if ($isInstanceOf(as, "String"))
179182 then {
180- let av = aq
181- av
183+ let ax = as
184+ ax
182185 }
183186 else throw("fail to cast into String")
184187 }
185188
186189
187-func aw (ap) = {
188- let aq = ap
189- if ($isInstanceOf(aq, "(Int, Int)"))
190+func ay (ar) = {
191+ let as = ar
192+ if ($isInstanceOf(as, "(Int, Int)"))
190193 then {
191- let ax = aq
192- ax
194+ let az = as
195+ az
193196 }
194197 else throw("fail to cast into Tuple2 ints")
195198 }
196199
197200
198-func ay (ap) = {
199- let aq = ap
200- if ($isInstanceOf(aq, "(Int, Int, Int, Int, Int)"))
201+func aA (ar) = {
202+ let as = ar
203+ if ($isInstanceOf(as, "(Int, Int, Int, Int, Int)"))
201204 then {
202- let az = aq
203- az
205+ let aB = as
206+ aB
204207 }
205208 else throw("fail to cast into Int")
206209 }
207210
208211
209-func aA (aB) = if ((0 > aB))
212+func aC (aD) = if ((0 > aD))
210213 then -1
211214 else {
212- let aq = blockInfoByHeight(aB)
213- if ($isInstanceOf(aq, "BlockInfo"))
215+ let as = blockInfoByHeight(aD)
216+ if ($isInstanceOf(as, "BlockInfo"))
214217 then {
215- let aC = aq
216- aC.timestamp
218+ let aE = as
219+ aE.timestamp
217220 }
218221 else -1
219222 }
220223
221224
222-func aD (aE,aF) = fraction(toBigInt(aE), h, toBigInt(aF))
225+func aF (aG,aH) = fraction(toBigInt(aG), h, toBigInt(aH))
223226
224227
225-func aG (ap,aH) = toInt(fraction(ap, toBigInt(aH), h))
228+func aI (ar,aJ) = toInt(fraction(ar, toBigInt(aJ), h))
226229
227230
228-let aI = 1
231+let aK = 1
229232
230-let aJ = 2
233+let aL = 2
231234
232-let aK = 3
235+let aM = 3
233236
234-let aL = 4
237+let aN = 4
235238
236-let aM = 5
239+let aO = 5
237240
238-let aN = 6
241+let aP = 6
239242
240-let aO = 7
243+let aQ = 7
241244
242-let aP = 8
245+let aR = 8
243246
244-let aQ = 9
247+let aS = 9
245248
246-let aR = 10
249+let aT = 10
247250
248-let aS = 11
251+let aU = 11
249252
250-let aT = 12
253+let aV = 12
251254
252-func aU () = "%s%s__config__controlAddress"
255+func aW () = "%s%s__config__controlAddress"
253256
254257
255-func aV () = "%s__controlConfig"
258+func aX () = "%s__controlConfig"
256259
257260
258-func aW (aX) = split(af(aX, aV()), i)
261+func aY (aZ) = split(ah(aZ, aX()), i)
259262
260263
261-func aY (aZ,ba) = valueOrErrorMessage(addressFromString(aZ[ba]), ("Control cfg doesn't contain address at index " + toString(ba)))
264+func ba (bb,bc) = valueOrErrorMessage(addressFromString(bb[bc]), ("Control cfg doesn't contain address at index " + toString(bc)))
262265
263266
264-let bb = addressFromStringValue(valueOrElse(getString(this, aU()), "3N4NS7d4Jo9a6F14LiFUKKYVdUkkf2eP4Zx"))
267+let bd = addressFromStringValue(valueOrElse(getString(this, aW()), "3N4NS7d4Jo9a6F14LiFUKKYVdUkkf2eP4Zx"))
265268
266-let aZ = aW(bb)
269+let bb = aY(bd)
267270
268-let bc = aY(aZ, aL)
271+let be = ba(bb, aN)
269272
270-let bd = aY(aZ, aI)
273+let bf = ba(bb, aK)
271274
272-let be = aY(aZ, aJ)
275+let bg = ba(bb, aL)
273276
274-let bf = aY(aZ, aM)
277+let bh = ba(bb, aO)
275278
276-let bg = aY(aZ, aK)
279+let bi = ba(bb, aM)
277280
278-let bh = aY(aZ, aP)
281+let bj = ba(bb, aR)
279282
280-let bi = aY(aZ, aR)
283+let bk = ba(bb, aT)
281284
282-let bj = aY(aZ, aS)
285+let bl = ba(bb, aU)
283286
284-let bk = aY(aZ, aT)
287+let bm = ba(bb, aV)
285288
286-let bl = af(bd, I())
287-
288-let bm = fromBase58String(bl)
289-
290-let bn = getStringValue(bd, J())
289+let bn = ah(bf, I())
291290
292291 let bo = fromBase58String(bn)
293292
294-let bp = getStringValue(be, K())
293+let bp = getStringValue(bf, J())
295294
296295 let bq = fromBase58String(bp)
297296
298-func br () = as(invoke(be, "minWavesAmountNsbtBuySYSREADONLY", nil, nil))
297+let br = getStringValue(bg, K())
298+
299+let bs = fromBase58String(br)
300+
301+func bt () = au(invoke(bg, "minWavesAmountNsbtBuySYSREADONLY", nil, nil))
299302
300303
301-func bs () = as(invoke(be, "minNsbtAmountForSellSYSREADONLY", nil, nil))
304+func bu () = au(invoke(bg, "minNsbtAmountForSellSYSREADONLY", nil, nil))
302305
303306
304-func bt () = as(invoke(be, "minWavesAmountSurfBuySYSREADONLY", nil, nil))
307+func bv () = au(invoke(bg, "minWavesAmountSurfBuySYSREADONLY", nil, nil))
305308
306309
307-func bu () = as(invoke(be, "minUsdnAmountSurfBuySYSREADONLY", nil, nil))
310+func bw () = au(invoke(bg, "minUsdnAmountSurfBuySYSREADONLY", nil, nil))
308311
309312
310-func bv () = {
311- let bw = ao(invoke(bc, "calcContractNsbtPriceSYSREADONLY", [0], nil))
312- let bx = as(bw[0])
313- let by = as(bw[1])
314- $Tuple2(IntegerEntry("nsbt2usdnPrice", bx), IntegerEntry("nsbt2wavesPrice", by))
313+func bx () = {
314+ let by = aq(invoke(be, "calcContractNsbtPriceSYSREADONLY", [0], nil))
315+ let bz = au(by[0])
316+ let bA = au(by[1])
317+ $Tuple2(IntegerEntry("nsbt2usdnPrice", bz), IntegerEntry("nsbt2wavesPrice", bA))
315318 }
316319
317320
318-func bz (bA,bB) = {
319- let ah = makeString(["rpd_balance", bB, bA], "_")
320- valueOrElse(getInteger(bg, ah), 0)
321+func bB (bC,bD) = {
322+ let aj = makeString(["rpd_balance", bD, bC], "_")
323+ valueOrElse(getInteger(bi, aj), 0)
321324 }
322325
323326
324-@Callable(bC)
325-func constructor (bD,bE,bF) = if ((bC.caller != this))
327+@Callable(bE)
328+func constructor (bF,bG,bH) = if ((bE.caller != this))
326329 then throw("not authorized")
327- else [StringEntry(H(), bD), StringEntry(U(), bE), StringEntry(V(), bF)]
330+ else [StringEntry(H(), bF), StringEntry(U(), bG), StringEntry(V(), bH)]
328331
329332
330333
331-@Callable(bC)
334+@Callable(bE)
332335 func neutrinoStatsREADONLY () = {
333- let bG = ao(invoke(bc, "calcNeutinoMetricsREADONLY", nil, nil))
334- let bw = ao(invoke(bc, "calcContractNsbtPriceSYSREADONLY", [0], nil))
335- let bH = as(bG[k])
336- let bI = as(bG[l])
337- let bJ = as(bG[m])
338- let bK = as(bG[n])
339- let bL = as(bG[o])
340- let bM = as(bG[p])
341- let bN = as(bG[q])
342- let bO = as(bG[r])
343- let bP = as(bG[s])
344- let bQ = as(bG[t])
345- let bR = as(bG[u])
346- let bx = as(bw[0])
347- let by = as(bw[1])
348- let bS = br()
349- let bT = bs()
350- let bU = ai(bh, ac())
351- let bV = (fraction(bM, e, bH) - bK)
352- let bW = (bM - bL)
353- let bX = bP
354- let bY = fraction(bP, c, bH)
355- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d", toString(bH), toString(bI), toString(bJ), toString(bK), toString(bL), toString(bM), toString(bN), toString(bO), toString(bP), toString(bQ), toString(bR), toString(bx), toString(by), toString(bS), toString(bT), toString(bU), toString(bV), toString(bW), toString(bX), toString(bY)], i))
336+ let bI = aq(invoke(be, "calcNeutinoMetricsREADONLY", nil, nil))
337+ let by = aq(invoke(be, "calcContractNsbtPriceSYSREADONLY", [0], nil))
338+ let bJ = au(bI[k])
339+ let bK = au(bI[l])
340+ let bL = au(bI[m])
341+ let bM = au(bI[n])
342+ let bN = au(bI[o])
343+ let bO = au(bI[p])
344+ let bP = au(bI[q])
345+ let bQ = au(bI[r])
346+ let bR = au(bI[s])
347+ let bS = au(bI[t])
348+ let bT = au(bI[u])
349+ let bz = au(by[0])
350+ let bA = au(by[1])
351+ let bU = bt()
352+ let bV = bu()
353+ let bW = ak(bj, ac())
354+ let bX = (fraction(bO, e, bJ) - bM)
355+ let bY = (bO - bN)
356+ let bZ = bR
357+ let ca = fraction(bR, c, bJ)
358+ let cb = valueOrElse(getInteger(bi, af(bn)), 0)
359+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d", toString(bJ), toString(bK), toString(bL), toString(bM), toString(bN), toString(bO), toString(bP), toString(bQ), toString(bR), toString(bS), toString(bT), toString(bz), toString(bA), toString(bU), toString(bV), toString(bW), toString(bX), toString(bY), toString(bZ), toString(ca), toString(cb)], i))
356360 }
357361
358362
359363
360-@Callable(bC)
361-func swapInfoREADONLY (bZ) = {
362- let bH = getIntegerValue(bb, Y())
363- let ca = getIntegerValue(bd, O())
364- let cb = getIntegerValue(bd, P())
365- let cc = getIntegerValue(bd, Q())
366- let cd = getIntegerValue(bd, R())
367- let ce = getIntegerValue(bd, X())
368- let cf = getIntegerValue(bd, W())
369- let cg = ay(invoke(bd, "swapParamsByUserSYSREADONLY", [bZ, 0], nil))
370- let ch = cg._1
371- let ci = cg._2
372- let cj = cg._3
373- let ck = ak(ch, bH)
374- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d", toString(bH), toString(ca), toString(cb), toString(cc), toString(cd), toString(ce), toString(cf), toString(cj), toString(ck), toString(ch), toString(ci)], i))
364+@Callable(bE)
365+func swapInfoREADONLY (cc) = {
366+ let bJ = getIntegerValue(bd, Y())
367+ let cd = getIntegerValue(bf, O())
368+ let ce = getIntegerValue(bf, P())
369+ let cf = getIntegerValue(bf, Q())
370+ let cg = getIntegerValue(bf, R())
371+ let ch = getIntegerValue(bf, X())
372+ let ci = getIntegerValue(bf, W())
373+ let cj = aA(invoke(bf, "swapParamsByUserSYSREADONLY", [cc, 0], nil))
374+ let ck = cj._1
375+ let cl = cj._2
376+ let cm = cj._3
377+ let cn = am(ck, bJ)
378+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d", toString(bJ), toString(cd), toString(ce), toString(cf), toString(cg), toString(ch), toString(ci), toString(cm), toString(cn), toString(ck), toString(cl)], i))
375379 }
376380
377381
378382
379-@Callable(bC)
380-func gnsbtInfoREADONLY (bZ,cl) = {
381- let bH = getIntegerValue(bb, Y())
382- let cm = ay(invoke(bd, "swapParamsByUserSYSREADONLY", [bZ, 0], nil))
383- let cn = cm._1
384- let co = cm._2
385- let cj = cm._3
386- let cp = cm._4
387- let cq = cm._5
388- let cr = ay(invoke(bd, "swapParamsByUserSYSREADONLY", [bZ, cl], nil))
389- let cs = cr._1
390- let ct = cr._2
391- let cu = cr._3
392- let cv = cr._4
393- let cw = cr._5
394- let cx = ak(cn, bH)
395- let cy = ak(cs, bH)
396- let cz = if ((cq != 0))
397- then fraction((cp * 100), g, cq)
383+@Callable(bE)
384+func gnsbtInfoREADONLY (cc,co) = {
385+ let bJ = getIntegerValue(bd, Y())
386+ let cp = aA(invoke(bf, "swapParamsByUserSYSREADONLY", [cc, 0], nil))
387+ let cq = cp._1
388+ let cr = cp._2
389+ let cm = cp._3
390+ let cs = cp._4
391+ let ct = cp._5
392+ let cu = aA(invoke(bf, "swapParamsByUserSYSREADONLY", [cc, co], nil))
393+ let cv = cu._1
394+ let cw = cu._2
395+ let cx = cu._3
396+ let cy = cu._4
397+ let cz = cu._5
398+ let cA = am(cq, bJ)
399+ let cB = am(cv, bJ)
400+ let cC = if ((ct != 0))
401+ then fraction((cs * 100), g, ct)
398402 else 0
399- let cA = if ((cw != 0))
400- then fraction((cv * 100), g, cw)
403+ let cD = if ((cz != 0))
404+ then fraction((cy * 100), g, cz)
401405 else 0
402- let cB = au(invoke(bh, "unclaimedRewardsREADONLY", [bZ], nil))
403- let cC = cp
404- let cD = cv
405- let cE = cq
406- let cF = cw
407- let cG = ao(invoke(bh, "nsbtStakingSYSREADONLY", [bZ, cl], nil))
408- let cH = if ((cp == 0))
409- then (cv == 0)
406+ let cE = aw(invoke(bj, "unclaimedRewardsREADONLY", [cc], nil))
407+ let cF = cs
408+ let cG = cy
409+ let cH = ct
410+ let cI = cz
411+ let cJ = aq(invoke(bj, "nsbtStakingSYSREADONLY", [cc, co], nil))
412+ let cK = if ((cs == 0))
413+ then (cy == 0)
410414 else false
411- let cI = if (cH)
415+ let cL = if (cK)
416+ then height
417+ else au(cJ[2])
418+ let cM = aC(cL)
419+ let cN = ak(bj, ab())
420+ let cO = if (cK)
412421 then -1
413- else as(cG[2])
414- let cJ = aA(cI)
415- let cK = ai(bh, ab())
416- let cL = if (cH)
417- then -1
418- else as(invoke(bc, "mergeStakesREADONLY", [cp, cI, cv, height, cK], nil))
419- let cM = aA(cL)
420- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%s%d%d%d%d%d%d%d%d", toString(cp), toString(cv), toString(cz), toString(cA), toString(cn), toString(cx), toString(cs), toString(cy), cB, toString(cC), toString(cD), toString(cE), toString(cF), toString(cI), toString(cJ), toString(cL), toString(cM)], i))
422+ else au(invoke(be, "mergeStakesREADONLY", [cs, cL, cy, height, cN], nil))
423+ let cP = aC(cO)
424+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%s%d%d%d%d%d%d%d%d", toString(cs), toString(cy), toString(cC), toString(cD), toString(cq), toString(cA), toString(cv), toString(cB), cE, toString(cF), toString(cG), toString(cH), toString(cI), toString(cL), toString(cM), toString(cO), toString(cP)], i))
421425 }
422426
423427
424428
425-@Callable(bC)
429+@Callable(bE)
426430 func neutrinoConfigREADONLY () = {
427- let cN = getIntegerValue(bc, S())
428- let cO = getIntegerValue(bc, T())
429- let ca = getIntegerValue(bd, O())
430- let cb = getIntegerValue(bd, P())
431- let cc = getIntegerValue(bd, Q())
432- let cd = getIntegerValue(bd, R())
433- let bS = br()
434- let bT = bs()
435- let bU = getIntegerValue(bh, ac())
436- let cK = getIntegerValue(bh, ab())
437- let cP = bt()
438- let cQ = bu()
439- let cR = ao(invoke(bi, "configSYSREADONLY", nil, nil))
440- let cS = as(cR[0])
441- let cT = as(cR[1])
442- let cU = as(cR[2])
443- let cV = as(cR[3])
444- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d", toString(cN), toString(cO), toString(ca), toString(cb), toString(cc), toString(cd), toString(bS), toString(bT), toString(bU), toString(cK), toString(cP), toString(cQ), toString(cS), toString(cT), toString(cU), toString(cV)], i))
431+ let cQ = getIntegerValue(be, S())
432+ let cR = getIntegerValue(be, T())
433+ let cd = getIntegerValue(bf, O())
434+ let ce = getIntegerValue(bf, P())
435+ let cf = getIntegerValue(bf, Q())
436+ let cg = getIntegerValue(bf, R())
437+ let bU = bt()
438+ let bV = bu()
439+ let bW = getIntegerValue(bj, ac())
440+ let cN = getIntegerValue(bj, ab())
441+ let cS = bv()
442+ let cT = bw()
443+ let cU = aq(invoke(bk, "configSYSREADONLY", nil, nil))
444+ let cV = au(cU[0])
445+ let cW = au(cU[1])
446+ let cX = au(cU[2])
447+ let cY = au(cU[3])
448+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d", toString(cQ), toString(cR), toString(cd), toString(ce), toString(cf), toString(cg), toString(bU), toString(bV), toString(bW), toString(cN), toString(cS), toString(cT), toString(cV), toString(cW), toString(cX), toString(cY)], i))
445449 }
446450
447451
448452
449-@Callable(bC)
450-func buyNsbtREADONLY (cW) = {
451- let cX = br()
452- if ((cX > cW))
453- then throw((("min " + toString(cX)) + " waves expected"))
453+@Callable(bE)
454+func buyNsbtREADONLY (cZ) = {
455+ let da = bt()
456+ if ((da > cZ))
457+ then throw((("min " + toString(da)) + " waves expected"))
454458 else {
455- let cY = ao(invoke(bc, "curveFunctionREADONLY", [cW], nil))
456- if ((cY == cY))
459+ let db = aq(invoke(be, "curveFunctionREADONLY", [cZ], nil))
460+ if ((db == db))
457461 then {
458- let cZ = as(cY[0])
459- if ((0 >= cZ))
462+ let dc = au(db[0])
463+ if ((0 >= dc))
460464 then throw("nsbtAmount <= 0")
461- else $Tuple2(nil, makeString(["%d", toString(cZ)], i))
465+ else $Tuple2(nil, makeString(["%d", toString(dc)], i))
462466 }
463467 else throw("Strict value is not equal to itself.")
464468 }
466470
467471
468472
469-@Callable(bC)
470-func buySurfREADONLY (bZ,al,bB) = {
471- let da = fromBase58String(bB)
472- let db = ao(invoke(bc, "surfFunctionREADONLY", [al, da], nil))
473- let dc = as(db[w])
474- let dd = as(invoke(bj, "gnsbtFromSurfSYSREADONLY", [dc], nil))
475- let de = ay(invoke(bd, "swapParamsByUserSYSREADONLY", [bZ, 0], nil))._1
476- let df = ay(invoke(bd, "swapParamsByUserSYSREADONLY", [bZ, dd], nil))._1
477- let am = as(db[G])
478- let dg = (df - de)
479- let dh = fraction(dg, e, am)
480- let di = as(db[B])
481- let dj = as(db[E])
482- let dk = fraction(di, c, am)
483- let dl = fraction(dj, c, am)
484- let dm = ao(invoke(bk, "gnsbtInfoINTERNAL", [bZ, 0, dc], nil))
485- let dn = as(dm[21])
486- let do = as(dm[22])
487- let dp = as(dm[23])
488- let dq = dp
489- let dr = (do - dn)
490- let ds = as(db[F])
491- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d", toString(dc), toString(dd), toString(dg), toString(dh), toString(di), toString(dj), toString(dk), toString(dl), toString(dq), toString(dr), toString(ds)], i))
473+@Callable(bE)
474+func buySurfREADONLY (cc,an,bD) = {
475+ let ag = fromBase58String(bD)
476+ let dd = aq(invoke(be, "surfFunctionREADONLY", [an, ag], nil))
477+ let de = au(dd[w])
478+ let df = au(invoke(bk, "gnsbtFromSurfSYSREADONLY", [de], nil))
479+ let dg = aA(invoke(bf, "swapParamsByUserSYSREADONLY", [cc, 0], nil))._1
480+ let dh = aA(invoke(bf, "swapParamsByUserSYSREADONLY", [cc, df], nil))._1
481+ let ao = au(dd[G])
482+ let di = (dh - dg)
483+ let dj = fraction(di, e, ao)
484+ let dk = au(dd[B])
485+ let dl = au(dd[E])
486+ let dm = fraction(dk, c, ao)
487+ let dn = fraction(dl, c, ao)
488+ let do = aq(invoke(bm, "gnsbtInfoINTERNAL", [cc, 0, de], nil))
489+ let dp = au(do[21])
490+ let dq = au(do[22])
491+ let dr = au(do[23])
492+ let ds = dr
493+ let dt = (dq - dp)
494+ let du = au(dd[F])
495+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d", toString(de), toString(df), toString(di), toString(dj), toString(dk), toString(dl), toString(dm), toString(dn), toString(ds), toString(dt), toString(du)], i))
492496 }
493497
494498
495499
496-@Callable(bC)
497-func walletInfoREADONLY (dt) = {
498- let du = addressFromStringValue(dt)
499- let dv = wavesBalance(du)
500- let dw = bz(dt, bl)
501- let dx = bz(dt, bn)
502- let dy = ao(invoke(bj, "gnsbtInfoSYSREADONLY", [dt, 0, 0], nil))
503- let cG = ao(dy[2])
504- let dz = as(cG[0])
505- let dA = as(cG[1])
506- let dB = as(cG[2])
507- let dC = as(cG[3])
508- let dD = ao(dy[3])
509- let dE = as(dD[0])
510- let dF = as(dD[1])
511- let dG = as(dD[2])
512- let dH = as(dD[3])
513- let dI = 0
514- let dJ = 0
515- let dm = ao(invoke(bk, "gnsbtInfoINTERNAL", [dt, 0, 0], nil))
516- let dK = as(dm[19])
517- let dn = as(dm[21])
518- let dL = as(dm[23])
519- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d", toString(dv.regular), toString(dv.available), toString(dv.generating), toString(dv.effective), toString(height), toString(dw), toString(dx), toString(dz), toString(dB), toString(dG), toString(dE), toString(dK), toString(dn), toString(dL), toString(dI), toString(dJ), toString(dC), toString(dH)], i))
500+@Callable(bE)
501+func walletInfoREADONLY (dv) = {
502+ let dw = addressFromStringValue(dv)
503+ let dx = wavesBalance(dw)
504+ let dy = bB(dv, bn)
505+ let dz = bB(dv, bp)
506+ let dA = aq(invoke(bl, "gnsbtInfoSYSREADONLY", [dv, 0, 0], nil))
507+ let cJ = aq(dA[2])
508+ let dB = au(cJ[0])
509+ let dC = au(cJ[1])
510+ let dD = au(cJ[2])
511+ let dE = au(cJ[3])
512+ let dF = aq(dA[3])
513+ let dG = au(dF[0])
514+ let dH = au(dF[1])
515+ let dI = au(dF[2])
516+ let dJ = au(dF[3])
517+ let dK = 0
518+ let dL = 0
519+ let do = aq(invoke(bm, "gnsbtInfoINTERNAL", [dv, 0, 0], nil))
520+ let dM = au(do[19])
521+ let dp = au(do[21])
522+ let dN = au(do[23])
523+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d", toString(dx.regular), toString(dx.available), toString(dx.generating), toString(dx.effective), toString(height), toString(dy), toString(dz), toString(dB), toString(dD), toString(dI), toString(dG), toString(dM), toString(dp), toString(dN), toString(dK), toString(dL), toString(dE), toString(dJ)], i))
520524 }
521525
522526
523527
524-@Callable(bC)
525-func mergedStakeREADONLY (dM,dN,dO,dP) = {
526- let cK = ai(bh, ab())
527- let dQ = as(invoke(bc, "mergeStakesREADONLY", [dM, dN, dO, dP, cK], nil))
528- $Tuple2(nil, makeString(["%d%d", toString((dM + dO)), toString(dQ)], i))
528+@Callable(bE)
529+func mergedStakeREADONLY (dO,dP,dQ,dR) = {
530+ let cN = ak(bj, ab())
531+ let dS = au(invoke(be, "mergeStakesREADONLY", [dO, dP, dQ, dR, cN], nil))
532+ $Tuple2(nil, makeString(["%d%d", toString((dO + dQ)), toString(dS)], i))
529533 }
530534
531535
532536
533-@Callable(bC)
534-func unstakeComissionAmountByHeightREADONLY (al,cI) = {
535- let cK = ai(bh, ab())
536- let dR = as(invoke(bc, "getUnstakeComissionAmountREADONLY", [al, cI, cK], nil))
537- if ((dR == dR))
538- then $Tuple2(nil, makeString(["%d", toString(dR)], i))
537+@Callable(bE)
538+func unstakeComissionAmountByHeightREADONLY (an,cL) = {
539+ let cN = ak(bj, ab())
540+ let dT = au(invoke(be, "getUnstakeComissionAmountREADONLY", [an, cL, cN], nil))
541+ if ((dT == dT))
542+ then $Tuple2(nil, makeString(["%d", toString(dT)], i))
539543 else throw("Strict value is not equal to itself.")
540544 }
541545
542546
543547
544-@Callable(bC)
545-func unstakeComissionAmountByUserREADONLY (al,aa) = {
546- let cK = ai(bh, ab())
547- let cI = valueOrElse(getInteger(bh, Z(aa)), height)
548- let dR = as(invoke(bc, "getUnstakeComissionAmountREADONLY", [al, cI, cK], nil))
549- if ((dR == dR))
550- then $Tuple2(nil, makeString(["%d", toString(dR)], i))
548+@Callable(bE)
549+func unstakeComissionAmountByUserREADONLY (an,aa) = {
550+ let cN = ak(bj, ab())
551+ let cL = valueOrElse(getInteger(bj, Z(aa)), height)
552+ let dT = au(invoke(be, "getUnstakeComissionAmountREADONLY", [an, cL, cN], nil))
553+ if ((dT == dT))
554+ then $Tuple2(nil, makeString(["%d", toString(dT)], i))
551555 else throw("Strict value is not equal to itself.")
552556 }
553557
554558
555559
556-@Callable(bC)
560+@Callable(bE)
557561 func neutrinoStateREST () = {
558- let bG = ao(invoke(bc, "calcNeutinoMetricsREADONLY", nil, nil))
559- let bH = as(bG[k])
560- let bI = as(bG[l])
561- let bJ = as(bG[m])
562- let bK = as(bG[n])
563- let bL = as(bG[o])
564- let bM = as(bG[p])
565- let bN = as(bG[q])
566- let bO = as(bG[r])
567- let bP = as(bG[s])
568- let bQ = as(bG[t])
569- let dS = as(bG[u])
570- let dT = as(bG[v])
571- throw(makeString(["resultNeutrinoStateREST", toString(bH), toString(bI), toString(bJ), toString(bK), toString(bL), toString(bM), toString(bN), toString(bO), toString(bP), toString(bQ), toString(dS), toString(dT)], "__"))
562+ let bI = aq(invoke(be, "calcNeutinoMetricsREADONLY", nil, nil))
563+ let bJ = au(bI[k])
564+ let bK = au(bI[l])
565+ let bL = au(bI[m])
566+ let bM = au(bI[n])
567+ let bN = au(bI[o])
568+ let bO = au(bI[p])
569+ let bP = au(bI[q])
570+ let bQ = au(bI[r])
571+ let bR = au(bI[s])
572+ let bS = au(bI[t])
573+ let dU = au(bI[u])
574+ let dV = au(bI[v])
575+ throw(makeString(["resultNeutrinoStateREST", toString(bJ), toString(bK), toString(bL), toString(bM), toString(bN), toString(bO), toString(bP), toString(bQ), toString(bR), toString(bS), toString(dU), toString(dV)], "__"))
572576 }
573577
574578
575579
576-@Callable(bC)
580+@Callable(bE)
577581 func nsbtPriceREST () = {
578- let bw = ao(invoke(bc, "calcContractNsbtPriceSYSREADONLY", [0], nil))
579- let bx = as(bw[0])
580- let by = as(bw[1])
581- let dU = makeString(["startNsbtPriceREST", toString(bx), toString(by), "endNsbtPriceREST"], "__")
582- throw(dU)
582+ let by = aq(invoke(be, "calcContractNsbtPriceSYSREADONLY", [0], nil))
583+ let bz = au(by[0])
584+ let bA = au(by[1])
585+ let dW = makeString(["startNsbtPriceREST", toString(bz), toString(bA), "endNsbtPriceREST"], "__")
586+ throw(dW)
583587 }
584588
585589
586590
587-@Callable(bC)
591+@Callable(bE)
588592 func surfPriceREST () = {
589- let bG = ao(invoke(bc, "calcNeutinoMetricsREADONLY", nil, nil))
590- let bH = as(bG[k])
591- let bK = as(bG[n])
592- let bM = as(bG[p])
593- let bX = fraction(bK, bH, bM)
594- let bY = fraction(bK, e, bM)
595- let dU = makeString(["startSurfPriceREST", toString(bX), toString(bY), "endSurfPriceREST"], "__")
596- throw(dU)
593+ let bI = aq(invoke(be, "calcNeutinoMetricsREADONLY", nil, nil))
594+ let bJ = au(bI[k])
595+ let bM = au(bI[n])
596+ let bO = au(bI[p])
597+ let bZ = fraction(bM, bJ, bO)
598+ let ca = fraction(bM, e, bO)
599+ let dW = makeString(["startSurfPriceREST", toString(bZ), toString(ca), "endSurfPriceREST"], "__")
600+ throw(dW)
597601 }
598602
599603
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = ""
55
66 let b = 271828182
77
88 let c = 1000000
99
1010 let d = toBigInt(1000000)
1111
1212 let e = 100000000
1313
1414 let f = toBigInt(100000000)
1515
1616 let g = 1000000000000
1717
1818 let h = toBigInt(1000000000000000000)
1919
2020 let i = "__"
2121
2222 let j = fromBase58String("WAVES")
2323
2424 let k = 0
2525
2626 let l = 1
2727
2828 let m = 2
2929
3030 let n = 3
3131
3232 let o = 4
3333
3434 let p = 5
3535
3636 let q = 6
3737
3838 let r = 7
3939
4040 let s = 8
4141
4242 let t = 9
4343
4444 let u = 10
4545
4646 let v = 11
4747
4848 let w = 0
4949
5050 let x = 1
5151
5252 let y = 2
5353
5454 let z = 3
5555
5656 let A = 4
5757
5858 let B = 5
5959
6060 let C = 6
6161
6262 let D = 7
6363
6464 let E = 8
6565
6666 let F = 9
6767
6868 let G = 10
6969
7070 func H () = "%s%s__config__neutrinoAddress"
7171
7272
7373 func I () = "neutrino_asset_id"
7474
7575
7676 func J () = "bond_asset_id"
7777
7878
7979 func K () = "surf_asset_id"
8080
8181
8282 func L () = "balance_lock_"
8383
8484
8585 func M () = (L() + "waves")
8686
8787
8888 func N () = (L() + "neutrino")
8989
9090
9191 func O () = "min_waves_swap_amount"
9292
9393
9494 func P () = "min_neutrino_swap_amount"
9595
9696
9797 func Q () = "wavesOut_swap_feePart"
9898
9999
100100 func R () = "neutrinoOut_swap_feePart"
101101
102102
103103 func S () = "%s%s__config__swapAParam"
104104
105105
106106 func T () = "%s%s__config__swapBParam"
107107
108108
109109 func U () = "%s__nsbtLockContract"
110110
111111
112112 func V () = "%s__mathContract"
113113
114114
115115 func W () = "balance_waves_lock_interval"
116116
117117
118118 func X () = "balance_neutrino_lock_interval"
119119
120120
121121 func Y () = "price"
122122
123123
124124 func Z (aa) = makeString(["%s%s%s", "paramByUser", aa, "start"], i)
125125
126126
127127 func ab () = "%s__halfLife"
128128
129129
130130 func ac () = "%s__minLockAmount"
131131
132132
133133 func ad () = "min_waves_nsbt_buy"
134134
135135
136136 func ae () = "min_nsbt_sell"
137137
138138
139-func af (ag,ah) = valueOrErrorMessage(getString(ag, ah), makeString(["mandatory ", toString(ag), ".", ah, " is not defined"], ""))
139+func af (ag) = ("rpd_balance_" + ag)
140140
141141
142-func ai (ag,ah) = valueOrErrorMessage(getInteger(ag, ah), makeString(["mandatory ", toString(ag), ".", ah, " is not defined"], ""))
142+func ah (ai,aj) = valueOrErrorMessage(getString(ai, aj), makeString(["mandatory ", toString(ai), ".", aj, " is not defined"], ""))
143143
144144
145-func aj (ag,ah) = valueOrErrorMessage(getBoolean(ag, ah), makeString(["mandatory ", toString(ag), ".", ah, " is not defined"], ""))
145+func ak (ai,aj) = valueOrErrorMessage(getInteger(ai, aj), makeString(["mandatory ", toString(ai), ".", aj, " is not defined"], ""))
146146
147147
148-func ak (al,am) = fraction(al, e, am)
148+func al (ai,aj) = valueOrErrorMessage(getBoolean(ai, aj), makeString(["mandatory ", toString(ai), ".", aj, " is not defined"], ""))
149149
150150
151-func an (al,am) = fraction(al, am, e)
151+func am (an,ao) = fraction(an, e, ao)
152152
153153
154-func ao (ap) = {
155- let aq = ap
156- if ($isInstanceOf(aq, "List[Any]"))
154+func ap (an,ao) = fraction(an, ao, e)
155+
156+
157+func aq (ar) = {
158+ let as = ar
159+ if ($isInstanceOf(as, "List[Any]"))
157160 then {
158- let ar = aq
159- ar
161+ let at = as
162+ at
160163 }
161164 else throw("fail to cast into List[Any]")
162165 }
163166
164167
165-func as (ap) = {
166- let aq = ap
167- if ($isInstanceOf(aq, "Int"))
168+func au (ar) = {
169+ let as = ar
170+ if ($isInstanceOf(as, "Int"))
168171 then {
169- let at = aq
170- at
172+ let av = as
173+ av
171174 }
172175 else throw("fail to cast into Int")
173176 }
174177
175178
176-func au (ap) = {
177- let aq = ap
178- if ($isInstanceOf(aq, "String"))
179+func aw (ar) = {
180+ let as = ar
181+ if ($isInstanceOf(as, "String"))
179182 then {
180- let av = aq
181- av
183+ let ax = as
184+ ax
182185 }
183186 else throw("fail to cast into String")
184187 }
185188
186189
187-func aw (ap) = {
188- let aq = ap
189- if ($isInstanceOf(aq, "(Int, Int)"))
190+func ay (ar) = {
191+ let as = ar
192+ if ($isInstanceOf(as, "(Int, Int)"))
190193 then {
191- let ax = aq
192- ax
194+ let az = as
195+ az
193196 }
194197 else throw("fail to cast into Tuple2 ints")
195198 }
196199
197200
198-func ay (ap) = {
199- let aq = ap
200- if ($isInstanceOf(aq, "(Int, Int, Int, Int, Int)"))
201+func aA (ar) = {
202+ let as = ar
203+ if ($isInstanceOf(as, "(Int, Int, Int, Int, Int)"))
201204 then {
202- let az = aq
203- az
205+ let aB = as
206+ aB
204207 }
205208 else throw("fail to cast into Int")
206209 }
207210
208211
209-func aA (aB) = if ((0 > aB))
212+func aC (aD) = if ((0 > aD))
210213 then -1
211214 else {
212- let aq = blockInfoByHeight(aB)
213- if ($isInstanceOf(aq, "BlockInfo"))
215+ let as = blockInfoByHeight(aD)
216+ if ($isInstanceOf(as, "BlockInfo"))
214217 then {
215- let aC = aq
216- aC.timestamp
218+ let aE = as
219+ aE.timestamp
217220 }
218221 else -1
219222 }
220223
221224
222-func aD (aE,aF) = fraction(toBigInt(aE), h, toBigInt(aF))
225+func aF (aG,aH) = fraction(toBigInt(aG), h, toBigInt(aH))
223226
224227
225-func aG (ap,aH) = toInt(fraction(ap, toBigInt(aH), h))
228+func aI (ar,aJ) = toInt(fraction(ar, toBigInt(aJ), h))
226229
227230
228-let aI = 1
231+let aK = 1
229232
230-let aJ = 2
233+let aL = 2
231234
232-let aK = 3
235+let aM = 3
233236
234-let aL = 4
237+let aN = 4
235238
236-let aM = 5
239+let aO = 5
237240
238-let aN = 6
241+let aP = 6
239242
240-let aO = 7
243+let aQ = 7
241244
242-let aP = 8
245+let aR = 8
243246
244-let aQ = 9
247+let aS = 9
245248
246-let aR = 10
249+let aT = 10
247250
248-let aS = 11
251+let aU = 11
249252
250-let aT = 12
253+let aV = 12
251254
252-func aU () = "%s%s__config__controlAddress"
255+func aW () = "%s%s__config__controlAddress"
253256
254257
255-func aV () = "%s__controlConfig"
258+func aX () = "%s__controlConfig"
256259
257260
258-func aW (aX) = split(af(aX, aV()), i)
261+func aY (aZ) = split(ah(aZ, aX()), i)
259262
260263
261-func aY (aZ,ba) = valueOrErrorMessage(addressFromString(aZ[ba]), ("Control cfg doesn't contain address at index " + toString(ba)))
264+func ba (bb,bc) = valueOrErrorMessage(addressFromString(bb[bc]), ("Control cfg doesn't contain address at index " + toString(bc)))
262265
263266
264-let bb = addressFromStringValue(valueOrElse(getString(this, aU()), "3N4NS7d4Jo9a6F14LiFUKKYVdUkkf2eP4Zx"))
267+let bd = addressFromStringValue(valueOrElse(getString(this, aW()), "3N4NS7d4Jo9a6F14LiFUKKYVdUkkf2eP4Zx"))
265268
266-let aZ = aW(bb)
269+let bb = aY(bd)
267270
268-let bc = aY(aZ, aL)
271+let be = ba(bb, aN)
269272
270-let bd = aY(aZ, aI)
273+let bf = ba(bb, aK)
271274
272-let be = aY(aZ, aJ)
275+let bg = ba(bb, aL)
273276
274-let bf = aY(aZ, aM)
277+let bh = ba(bb, aO)
275278
276-let bg = aY(aZ, aK)
279+let bi = ba(bb, aM)
277280
278-let bh = aY(aZ, aP)
281+let bj = ba(bb, aR)
279282
280-let bi = aY(aZ, aR)
283+let bk = ba(bb, aT)
281284
282-let bj = aY(aZ, aS)
285+let bl = ba(bb, aU)
283286
284-let bk = aY(aZ, aT)
287+let bm = ba(bb, aV)
285288
286-let bl = af(bd, I())
287-
288-let bm = fromBase58String(bl)
289-
290-let bn = getStringValue(bd, J())
289+let bn = ah(bf, I())
291290
292291 let bo = fromBase58String(bn)
293292
294-let bp = getStringValue(be, K())
293+let bp = getStringValue(bf, J())
295294
296295 let bq = fromBase58String(bp)
297296
298-func br () = as(invoke(be, "minWavesAmountNsbtBuySYSREADONLY", nil, nil))
297+let br = getStringValue(bg, K())
298+
299+let bs = fromBase58String(br)
300+
301+func bt () = au(invoke(bg, "minWavesAmountNsbtBuySYSREADONLY", nil, nil))
299302
300303
301-func bs () = as(invoke(be, "minNsbtAmountForSellSYSREADONLY", nil, nil))
304+func bu () = au(invoke(bg, "minNsbtAmountForSellSYSREADONLY", nil, nil))
302305
303306
304-func bt () = as(invoke(be, "minWavesAmountSurfBuySYSREADONLY", nil, nil))
307+func bv () = au(invoke(bg, "minWavesAmountSurfBuySYSREADONLY", nil, nil))
305308
306309
307-func bu () = as(invoke(be, "minUsdnAmountSurfBuySYSREADONLY", nil, nil))
310+func bw () = au(invoke(bg, "minUsdnAmountSurfBuySYSREADONLY", nil, nil))
308311
309312
310-func bv () = {
311- let bw = ao(invoke(bc, "calcContractNsbtPriceSYSREADONLY", [0], nil))
312- let bx = as(bw[0])
313- let by = as(bw[1])
314- $Tuple2(IntegerEntry("nsbt2usdnPrice", bx), IntegerEntry("nsbt2wavesPrice", by))
313+func bx () = {
314+ let by = aq(invoke(be, "calcContractNsbtPriceSYSREADONLY", [0], nil))
315+ let bz = au(by[0])
316+ let bA = au(by[1])
317+ $Tuple2(IntegerEntry("nsbt2usdnPrice", bz), IntegerEntry("nsbt2wavesPrice", bA))
315318 }
316319
317320
318-func bz (bA,bB) = {
319- let ah = makeString(["rpd_balance", bB, bA], "_")
320- valueOrElse(getInteger(bg, ah), 0)
321+func bB (bC,bD) = {
322+ let aj = makeString(["rpd_balance", bD, bC], "_")
323+ valueOrElse(getInteger(bi, aj), 0)
321324 }
322325
323326
324-@Callable(bC)
325-func constructor (bD,bE,bF) = if ((bC.caller != this))
327+@Callable(bE)
328+func constructor (bF,bG,bH) = if ((bE.caller != this))
326329 then throw("not authorized")
327- else [StringEntry(H(), bD), StringEntry(U(), bE), StringEntry(V(), bF)]
330+ else [StringEntry(H(), bF), StringEntry(U(), bG), StringEntry(V(), bH)]
328331
329332
330333
331-@Callable(bC)
334+@Callable(bE)
332335 func neutrinoStatsREADONLY () = {
333- let bG = ao(invoke(bc, "calcNeutinoMetricsREADONLY", nil, nil))
334- let bw = ao(invoke(bc, "calcContractNsbtPriceSYSREADONLY", [0], nil))
335- let bH = as(bG[k])
336- let bI = as(bG[l])
337- let bJ = as(bG[m])
338- let bK = as(bG[n])
339- let bL = as(bG[o])
340- let bM = as(bG[p])
341- let bN = as(bG[q])
342- let bO = as(bG[r])
343- let bP = as(bG[s])
344- let bQ = as(bG[t])
345- let bR = as(bG[u])
346- let bx = as(bw[0])
347- let by = as(bw[1])
348- let bS = br()
349- let bT = bs()
350- let bU = ai(bh, ac())
351- let bV = (fraction(bM, e, bH) - bK)
352- let bW = (bM - bL)
353- let bX = bP
354- let bY = fraction(bP, c, bH)
355- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d", toString(bH), toString(bI), toString(bJ), toString(bK), toString(bL), toString(bM), toString(bN), toString(bO), toString(bP), toString(bQ), toString(bR), toString(bx), toString(by), toString(bS), toString(bT), toString(bU), toString(bV), toString(bW), toString(bX), toString(bY)], i))
336+ let bI = aq(invoke(be, "calcNeutinoMetricsREADONLY", nil, nil))
337+ let by = aq(invoke(be, "calcContractNsbtPriceSYSREADONLY", [0], nil))
338+ let bJ = au(bI[k])
339+ let bK = au(bI[l])
340+ let bL = au(bI[m])
341+ let bM = au(bI[n])
342+ let bN = au(bI[o])
343+ let bO = au(bI[p])
344+ let bP = au(bI[q])
345+ let bQ = au(bI[r])
346+ let bR = au(bI[s])
347+ let bS = au(bI[t])
348+ let bT = au(bI[u])
349+ let bz = au(by[0])
350+ let bA = au(by[1])
351+ let bU = bt()
352+ let bV = bu()
353+ let bW = ak(bj, ac())
354+ let bX = (fraction(bO, e, bJ) - bM)
355+ let bY = (bO - bN)
356+ let bZ = bR
357+ let ca = fraction(bR, c, bJ)
358+ let cb = valueOrElse(getInteger(bi, af(bn)), 0)
359+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d", toString(bJ), toString(bK), toString(bL), toString(bM), toString(bN), toString(bO), toString(bP), toString(bQ), toString(bR), toString(bS), toString(bT), toString(bz), toString(bA), toString(bU), toString(bV), toString(bW), toString(bX), toString(bY), toString(bZ), toString(ca), toString(cb)], i))
356360 }
357361
358362
359363
360-@Callable(bC)
361-func swapInfoREADONLY (bZ) = {
362- let bH = getIntegerValue(bb, Y())
363- let ca = getIntegerValue(bd, O())
364- let cb = getIntegerValue(bd, P())
365- let cc = getIntegerValue(bd, Q())
366- let cd = getIntegerValue(bd, R())
367- let ce = getIntegerValue(bd, X())
368- let cf = getIntegerValue(bd, W())
369- let cg = ay(invoke(bd, "swapParamsByUserSYSREADONLY", [bZ, 0], nil))
370- let ch = cg._1
371- let ci = cg._2
372- let cj = cg._3
373- let ck = ak(ch, bH)
374- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d", toString(bH), toString(ca), toString(cb), toString(cc), toString(cd), toString(ce), toString(cf), toString(cj), toString(ck), toString(ch), toString(ci)], i))
364+@Callable(bE)
365+func swapInfoREADONLY (cc) = {
366+ let bJ = getIntegerValue(bd, Y())
367+ let cd = getIntegerValue(bf, O())
368+ let ce = getIntegerValue(bf, P())
369+ let cf = getIntegerValue(bf, Q())
370+ let cg = getIntegerValue(bf, R())
371+ let ch = getIntegerValue(bf, X())
372+ let ci = getIntegerValue(bf, W())
373+ let cj = aA(invoke(bf, "swapParamsByUserSYSREADONLY", [cc, 0], nil))
374+ let ck = cj._1
375+ let cl = cj._2
376+ let cm = cj._3
377+ let cn = am(ck, bJ)
378+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d", toString(bJ), toString(cd), toString(ce), toString(cf), toString(cg), toString(ch), toString(ci), toString(cm), toString(cn), toString(ck), toString(cl)], i))
375379 }
376380
377381
378382
379-@Callable(bC)
380-func gnsbtInfoREADONLY (bZ,cl) = {
381- let bH = getIntegerValue(bb, Y())
382- let cm = ay(invoke(bd, "swapParamsByUserSYSREADONLY", [bZ, 0], nil))
383- let cn = cm._1
384- let co = cm._2
385- let cj = cm._3
386- let cp = cm._4
387- let cq = cm._5
388- let cr = ay(invoke(bd, "swapParamsByUserSYSREADONLY", [bZ, cl], nil))
389- let cs = cr._1
390- let ct = cr._2
391- let cu = cr._3
392- let cv = cr._4
393- let cw = cr._5
394- let cx = ak(cn, bH)
395- let cy = ak(cs, bH)
396- let cz = if ((cq != 0))
397- then fraction((cp * 100), g, cq)
383+@Callable(bE)
384+func gnsbtInfoREADONLY (cc,co) = {
385+ let bJ = getIntegerValue(bd, Y())
386+ let cp = aA(invoke(bf, "swapParamsByUserSYSREADONLY", [cc, 0], nil))
387+ let cq = cp._1
388+ let cr = cp._2
389+ let cm = cp._3
390+ let cs = cp._4
391+ let ct = cp._5
392+ let cu = aA(invoke(bf, "swapParamsByUserSYSREADONLY", [cc, co], nil))
393+ let cv = cu._1
394+ let cw = cu._2
395+ let cx = cu._3
396+ let cy = cu._4
397+ let cz = cu._5
398+ let cA = am(cq, bJ)
399+ let cB = am(cv, bJ)
400+ let cC = if ((ct != 0))
401+ then fraction((cs * 100), g, ct)
398402 else 0
399- let cA = if ((cw != 0))
400- then fraction((cv * 100), g, cw)
403+ let cD = if ((cz != 0))
404+ then fraction((cy * 100), g, cz)
401405 else 0
402- let cB = au(invoke(bh, "unclaimedRewardsREADONLY", [bZ], nil))
403- let cC = cp
404- let cD = cv
405- let cE = cq
406- let cF = cw
407- let cG = ao(invoke(bh, "nsbtStakingSYSREADONLY", [bZ, cl], nil))
408- let cH = if ((cp == 0))
409- then (cv == 0)
406+ let cE = aw(invoke(bj, "unclaimedRewardsREADONLY", [cc], nil))
407+ let cF = cs
408+ let cG = cy
409+ let cH = ct
410+ let cI = cz
411+ let cJ = aq(invoke(bj, "nsbtStakingSYSREADONLY", [cc, co], nil))
412+ let cK = if ((cs == 0))
413+ then (cy == 0)
410414 else false
411- let cI = if (cH)
415+ let cL = if (cK)
416+ then height
417+ else au(cJ[2])
418+ let cM = aC(cL)
419+ let cN = ak(bj, ab())
420+ let cO = if (cK)
412421 then -1
413- else as(cG[2])
414- let cJ = aA(cI)
415- let cK = ai(bh, ab())
416- let cL = if (cH)
417- then -1
418- else as(invoke(bc, "mergeStakesREADONLY", [cp, cI, cv, height, cK], nil))
419- let cM = aA(cL)
420- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%s%d%d%d%d%d%d%d%d", toString(cp), toString(cv), toString(cz), toString(cA), toString(cn), toString(cx), toString(cs), toString(cy), cB, toString(cC), toString(cD), toString(cE), toString(cF), toString(cI), toString(cJ), toString(cL), toString(cM)], i))
422+ else au(invoke(be, "mergeStakesREADONLY", [cs, cL, cy, height, cN], nil))
423+ let cP = aC(cO)
424+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%s%d%d%d%d%d%d%d%d", toString(cs), toString(cy), toString(cC), toString(cD), toString(cq), toString(cA), toString(cv), toString(cB), cE, toString(cF), toString(cG), toString(cH), toString(cI), toString(cL), toString(cM), toString(cO), toString(cP)], i))
421425 }
422426
423427
424428
425-@Callable(bC)
429+@Callable(bE)
426430 func neutrinoConfigREADONLY () = {
427- let cN = getIntegerValue(bc, S())
428- let cO = getIntegerValue(bc, T())
429- let ca = getIntegerValue(bd, O())
430- let cb = getIntegerValue(bd, P())
431- let cc = getIntegerValue(bd, Q())
432- let cd = getIntegerValue(bd, R())
433- let bS = br()
434- let bT = bs()
435- let bU = getIntegerValue(bh, ac())
436- let cK = getIntegerValue(bh, ab())
437- let cP = bt()
438- let cQ = bu()
439- let cR = ao(invoke(bi, "configSYSREADONLY", nil, nil))
440- let cS = as(cR[0])
441- let cT = as(cR[1])
442- let cU = as(cR[2])
443- let cV = as(cR[3])
444- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d", toString(cN), toString(cO), toString(ca), toString(cb), toString(cc), toString(cd), toString(bS), toString(bT), toString(bU), toString(cK), toString(cP), toString(cQ), toString(cS), toString(cT), toString(cU), toString(cV)], i))
431+ let cQ = getIntegerValue(be, S())
432+ let cR = getIntegerValue(be, T())
433+ let cd = getIntegerValue(bf, O())
434+ let ce = getIntegerValue(bf, P())
435+ let cf = getIntegerValue(bf, Q())
436+ let cg = getIntegerValue(bf, R())
437+ let bU = bt()
438+ let bV = bu()
439+ let bW = getIntegerValue(bj, ac())
440+ let cN = getIntegerValue(bj, ab())
441+ let cS = bv()
442+ let cT = bw()
443+ let cU = aq(invoke(bk, "configSYSREADONLY", nil, nil))
444+ let cV = au(cU[0])
445+ let cW = au(cU[1])
446+ let cX = au(cU[2])
447+ let cY = au(cU[3])
448+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d", toString(cQ), toString(cR), toString(cd), toString(ce), toString(cf), toString(cg), toString(bU), toString(bV), toString(bW), toString(cN), toString(cS), toString(cT), toString(cV), toString(cW), toString(cX), toString(cY)], i))
445449 }
446450
447451
448452
449-@Callable(bC)
450-func buyNsbtREADONLY (cW) = {
451- let cX = br()
452- if ((cX > cW))
453- then throw((("min " + toString(cX)) + " waves expected"))
453+@Callable(bE)
454+func buyNsbtREADONLY (cZ) = {
455+ let da = bt()
456+ if ((da > cZ))
457+ then throw((("min " + toString(da)) + " waves expected"))
454458 else {
455- let cY = ao(invoke(bc, "curveFunctionREADONLY", [cW], nil))
456- if ((cY == cY))
459+ let db = aq(invoke(be, "curveFunctionREADONLY", [cZ], nil))
460+ if ((db == db))
457461 then {
458- let cZ = as(cY[0])
459- if ((0 >= cZ))
462+ let dc = au(db[0])
463+ if ((0 >= dc))
460464 then throw("nsbtAmount <= 0")
461- else $Tuple2(nil, makeString(["%d", toString(cZ)], i))
465+ else $Tuple2(nil, makeString(["%d", toString(dc)], i))
462466 }
463467 else throw("Strict value is not equal to itself.")
464468 }
465469 }
466470
467471
468472
469-@Callable(bC)
470-func buySurfREADONLY (bZ,al,bB) = {
471- let da = fromBase58String(bB)
472- let db = ao(invoke(bc, "surfFunctionREADONLY", [al, da], nil))
473- let dc = as(db[w])
474- let dd = as(invoke(bj, "gnsbtFromSurfSYSREADONLY", [dc], nil))
475- let de = ay(invoke(bd, "swapParamsByUserSYSREADONLY", [bZ, 0], nil))._1
476- let df = ay(invoke(bd, "swapParamsByUserSYSREADONLY", [bZ, dd], nil))._1
477- let am = as(db[G])
478- let dg = (df - de)
479- let dh = fraction(dg, e, am)
480- let di = as(db[B])
481- let dj = as(db[E])
482- let dk = fraction(di, c, am)
483- let dl = fraction(dj, c, am)
484- let dm = ao(invoke(bk, "gnsbtInfoINTERNAL", [bZ, 0, dc], nil))
485- let dn = as(dm[21])
486- let do = as(dm[22])
487- let dp = as(dm[23])
488- let dq = dp
489- let dr = (do - dn)
490- let ds = as(db[F])
491- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d", toString(dc), toString(dd), toString(dg), toString(dh), toString(di), toString(dj), toString(dk), toString(dl), toString(dq), toString(dr), toString(ds)], i))
473+@Callable(bE)
474+func buySurfREADONLY (cc,an,bD) = {
475+ let ag = fromBase58String(bD)
476+ let dd = aq(invoke(be, "surfFunctionREADONLY", [an, ag], nil))
477+ let de = au(dd[w])
478+ let df = au(invoke(bk, "gnsbtFromSurfSYSREADONLY", [de], nil))
479+ let dg = aA(invoke(bf, "swapParamsByUserSYSREADONLY", [cc, 0], nil))._1
480+ let dh = aA(invoke(bf, "swapParamsByUserSYSREADONLY", [cc, df], nil))._1
481+ let ao = au(dd[G])
482+ let di = (dh - dg)
483+ let dj = fraction(di, e, ao)
484+ let dk = au(dd[B])
485+ let dl = au(dd[E])
486+ let dm = fraction(dk, c, ao)
487+ let dn = fraction(dl, c, ao)
488+ let do = aq(invoke(bm, "gnsbtInfoINTERNAL", [cc, 0, de], nil))
489+ let dp = au(do[21])
490+ let dq = au(do[22])
491+ let dr = au(do[23])
492+ let ds = dr
493+ let dt = (dq - dp)
494+ let du = au(dd[F])
495+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d", toString(de), toString(df), toString(di), toString(dj), toString(dk), toString(dl), toString(dm), toString(dn), toString(ds), toString(dt), toString(du)], i))
492496 }
493497
494498
495499
496-@Callable(bC)
497-func walletInfoREADONLY (dt) = {
498- let du = addressFromStringValue(dt)
499- let dv = wavesBalance(du)
500- let dw = bz(dt, bl)
501- let dx = bz(dt, bn)
502- let dy = ao(invoke(bj, "gnsbtInfoSYSREADONLY", [dt, 0, 0], nil))
503- let cG = ao(dy[2])
504- let dz = as(cG[0])
505- let dA = as(cG[1])
506- let dB = as(cG[2])
507- let dC = as(cG[3])
508- let dD = ao(dy[3])
509- let dE = as(dD[0])
510- let dF = as(dD[1])
511- let dG = as(dD[2])
512- let dH = as(dD[3])
513- let dI = 0
514- let dJ = 0
515- let dm = ao(invoke(bk, "gnsbtInfoINTERNAL", [dt, 0, 0], nil))
516- let dK = as(dm[19])
517- let dn = as(dm[21])
518- let dL = as(dm[23])
519- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d", toString(dv.regular), toString(dv.available), toString(dv.generating), toString(dv.effective), toString(height), toString(dw), toString(dx), toString(dz), toString(dB), toString(dG), toString(dE), toString(dK), toString(dn), toString(dL), toString(dI), toString(dJ), toString(dC), toString(dH)], i))
500+@Callable(bE)
501+func walletInfoREADONLY (dv) = {
502+ let dw = addressFromStringValue(dv)
503+ let dx = wavesBalance(dw)
504+ let dy = bB(dv, bn)
505+ let dz = bB(dv, bp)
506+ let dA = aq(invoke(bl, "gnsbtInfoSYSREADONLY", [dv, 0, 0], nil))
507+ let cJ = aq(dA[2])
508+ let dB = au(cJ[0])
509+ let dC = au(cJ[1])
510+ let dD = au(cJ[2])
511+ let dE = au(cJ[3])
512+ let dF = aq(dA[3])
513+ let dG = au(dF[0])
514+ let dH = au(dF[1])
515+ let dI = au(dF[2])
516+ let dJ = au(dF[3])
517+ let dK = 0
518+ let dL = 0
519+ let do = aq(invoke(bm, "gnsbtInfoINTERNAL", [dv, 0, 0], nil))
520+ let dM = au(do[19])
521+ let dp = au(do[21])
522+ let dN = au(do[23])
523+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d", toString(dx.regular), toString(dx.available), toString(dx.generating), toString(dx.effective), toString(height), toString(dy), toString(dz), toString(dB), toString(dD), toString(dI), toString(dG), toString(dM), toString(dp), toString(dN), toString(dK), toString(dL), toString(dE), toString(dJ)], i))
520524 }
521525
522526
523527
524-@Callable(bC)
525-func mergedStakeREADONLY (dM,dN,dO,dP) = {
526- let cK = ai(bh, ab())
527- let dQ = as(invoke(bc, "mergeStakesREADONLY", [dM, dN, dO, dP, cK], nil))
528- $Tuple2(nil, makeString(["%d%d", toString((dM + dO)), toString(dQ)], i))
528+@Callable(bE)
529+func mergedStakeREADONLY (dO,dP,dQ,dR) = {
530+ let cN = ak(bj, ab())
531+ let dS = au(invoke(be, "mergeStakesREADONLY", [dO, dP, dQ, dR, cN], nil))
532+ $Tuple2(nil, makeString(["%d%d", toString((dO + dQ)), toString(dS)], i))
529533 }
530534
531535
532536
533-@Callable(bC)
534-func unstakeComissionAmountByHeightREADONLY (al,cI) = {
535- let cK = ai(bh, ab())
536- let dR = as(invoke(bc, "getUnstakeComissionAmountREADONLY", [al, cI, cK], nil))
537- if ((dR == dR))
538- then $Tuple2(nil, makeString(["%d", toString(dR)], i))
537+@Callable(bE)
538+func unstakeComissionAmountByHeightREADONLY (an,cL) = {
539+ let cN = ak(bj, ab())
540+ let dT = au(invoke(be, "getUnstakeComissionAmountREADONLY", [an, cL, cN], nil))
541+ if ((dT == dT))
542+ then $Tuple2(nil, makeString(["%d", toString(dT)], i))
539543 else throw("Strict value is not equal to itself.")
540544 }
541545
542546
543547
544-@Callable(bC)
545-func unstakeComissionAmountByUserREADONLY (al,aa) = {
546- let cK = ai(bh, ab())
547- let cI = valueOrElse(getInteger(bh, Z(aa)), height)
548- let dR = as(invoke(bc, "getUnstakeComissionAmountREADONLY", [al, cI, cK], nil))
549- if ((dR == dR))
550- then $Tuple2(nil, makeString(["%d", toString(dR)], i))
548+@Callable(bE)
549+func unstakeComissionAmountByUserREADONLY (an,aa) = {
550+ let cN = ak(bj, ab())
551+ let cL = valueOrElse(getInteger(bj, Z(aa)), height)
552+ let dT = au(invoke(be, "getUnstakeComissionAmountREADONLY", [an, cL, cN], nil))
553+ if ((dT == dT))
554+ then $Tuple2(nil, makeString(["%d", toString(dT)], i))
551555 else throw("Strict value is not equal to itself.")
552556 }
553557
554558
555559
556-@Callable(bC)
560+@Callable(bE)
557561 func neutrinoStateREST () = {
558- let bG = ao(invoke(bc, "calcNeutinoMetricsREADONLY", nil, nil))
559- let bH = as(bG[k])
560- let bI = as(bG[l])
561- let bJ = as(bG[m])
562- let bK = as(bG[n])
563- let bL = as(bG[o])
564- let bM = as(bG[p])
565- let bN = as(bG[q])
566- let bO = as(bG[r])
567- let bP = as(bG[s])
568- let bQ = as(bG[t])
569- let dS = as(bG[u])
570- let dT = as(bG[v])
571- throw(makeString(["resultNeutrinoStateREST", toString(bH), toString(bI), toString(bJ), toString(bK), toString(bL), toString(bM), toString(bN), toString(bO), toString(bP), toString(bQ), toString(dS), toString(dT)], "__"))
562+ let bI = aq(invoke(be, "calcNeutinoMetricsREADONLY", nil, nil))
563+ let bJ = au(bI[k])
564+ let bK = au(bI[l])
565+ let bL = au(bI[m])
566+ let bM = au(bI[n])
567+ let bN = au(bI[o])
568+ let bO = au(bI[p])
569+ let bP = au(bI[q])
570+ let bQ = au(bI[r])
571+ let bR = au(bI[s])
572+ let bS = au(bI[t])
573+ let dU = au(bI[u])
574+ let dV = au(bI[v])
575+ throw(makeString(["resultNeutrinoStateREST", toString(bJ), toString(bK), toString(bL), toString(bM), toString(bN), toString(bO), toString(bP), toString(bQ), toString(bR), toString(bS), toString(dU), toString(dV)], "__"))
572576 }
573577
574578
575579
576-@Callable(bC)
580+@Callable(bE)
577581 func nsbtPriceREST () = {
578- let bw = ao(invoke(bc, "calcContractNsbtPriceSYSREADONLY", [0], nil))
579- let bx = as(bw[0])
580- let by = as(bw[1])
581- let dU = makeString(["startNsbtPriceREST", toString(bx), toString(by), "endNsbtPriceREST"], "__")
582- throw(dU)
582+ let by = aq(invoke(be, "calcContractNsbtPriceSYSREADONLY", [0], nil))
583+ let bz = au(by[0])
584+ let bA = au(by[1])
585+ let dW = makeString(["startNsbtPriceREST", toString(bz), toString(bA), "endNsbtPriceREST"], "__")
586+ throw(dW)
583587 }
584588
585589
586590
587-@Callable(bC)
591+@Callable(bE)
588592 func surfPriceREST () = {
589- let bG = ao(invoke(bc, "calcNeutinoMetricsREADONLY", nil, nil))
590- let bH = as(bG[k])
591- let bK = as(bG[n])
592- let bM = as(bG[p])
593- let bX = fraction(bK, bH, bM)
594- let bY = fraction(bK, e, bM)
595- let dU = makeString(["startSurfPriceREST", toString(bX), toString(bY), "endSurfPriceREST"], "__")
596- throw(dU)
593+ let bI = aq(invoke(be, "calcNeutinoMetricsREADONLY", nil, nil))
594+ let bJ = au(bI[k])
595+ let bM = au(bI[n])
596+ let bO = au(bI[p])
597+ let bZ = fraction(bM, bJ, bO)
598+ let ca = fraction(bM, e, bO)
599+ let dW = makeString(["startSurfPriceREST", toString(bZ), toString(ca), "endSurfPriceREST"], "__")
600+ throw(dW)
597601 }
598602
599603

github/deemru/w8io/026f985 
222.41 ms