tx · ELz9FeMZ1AavkUU5Grx8MGuVqH3KySp3KUov8LjHfy7U

3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz:  -0.03500000 Waves

2022.06.27 11:55 [2114630] smart account 3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz > SELF 0.00000000 Waves

{ "type": 13, "id": "ELz9FeMZ1AavkUU5Grx8MGuVqH3KySp3KUov8LjHfy7U", "fee": 3500000, "feeAssetId": null, "timestamp": 1656320097860, "version": 2, "chainId": 84, "sender": "3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz", "senderPublicKey": "D28XoueZWsMfm8Y5pa6C5ZFuYoWgre2Wm8tzJANJgMnq", "proofs": [ "2sD5AuBaphzW1eray8uZe8JgLxANTJt3eMeETdHBpVgeaeT2i7T1KsrERTTUNWW8Y46sBg8Lwbz1XgzqdAzYamDj" ], "script": "base64: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a2luZ0RhcHAAAAAAAAAAAAEAAAAAGUlkeEZhY3RvcnlDZmdCb29zdGluZ0RhcHAAAAAAAAAAAAIAAAAAFElkeEZhY3RvcnlDZmdJZG9EYXBwAAAAAAAAAAADAAAAABVJZHhGYWN0b3J5Q2ZnVGVhbURhcHAAAAAAAAAAAAQAAAAAGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHAAAAAAAAAAAAUAAAAAFUlkeEZhY3RvcnlDZmdSZXN0RGFwcAAAAAAAAAAABgAAAAAZSWR4RmFjdG9yeUNmZ1NsaXBwYWdlRGFwcAAAAAAAAAAABwEAAAANa2V5RmFjdG9yeUNmZwAAAAACAAAAESVzX19mYWN0b3J5Q29uZmlnAQAAABNrZXlNYW5hZ2VyUHVibGljS2V5AAAAAAIAAAAUJXNfX21hbmFnZXJQdWJsaWNLZXkBAAAAGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAAAAAIAAAAbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AQAAABZrZXlTdGFibGVQb29sQWRkb25BZGRyAAAAAAIAAAAXJXNfX3N0YWJsZVBvb2xBZGRvbkFkZHIBAAAAGmtleUZhY3RvcnlMcDJBc3NldHNNYXBwaW5nAAAAAQAAAApscEFzc2V0U3RyCQAEuQAAAAIJAARMAAAAAgIAAAAGJXMlcyVzCQAETAAAAAIFAAAACmxwQXNzZXRTdHIJAARMAAAAAgIAAAAebWFwcGluZ3NfX2xwQXNzZXQyUG9vbENvbnRyYWN0BQAAAANuaWwFAAAAA1NFUAEAAAAQa2V5RmFjdG9yeUxwTGlzdAAAAAACAAAAECVzX19scFRva2Vuc0xpc3QBAAAAJmtleUZhY3RvcnlMcEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzAAAAAQAAAApscEFzc2V0U3RyCQAEuQAAAAIJAARMAAAAAgIAAAAGJXMlcyVzCQAETAAAAAIFAAAACmxwQXNzZXRTdHIJAARMAAAAAgIAAAAebWFwcGluZ3NfX2xwQXNzZXQyUG9vbENvbnRyYWN0BQAAAANuaWwFAAAAA1NFUAEAAAAUa2V5RmFjdG9yeVBvb2xXZWlnaHQAAAABAAAAD2NvbnRyYWN0QWRkcmVzcwkABLkAAAACCQAETAAAAAICAAAABCVzJXMJAARMAAAAAgIAAAAKcG9vbFdlaWdodAkABEwAAAACBQAAAA9jb250cmFjdEFkZHJlc3MFAAAAA25pbAUAAAADU0VQAQAAAApyZWFkTHBMaXN0AAAAAQAAAAdmYWN0b3J5CQAEtQAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAHZmFjdG9yeQkBAAAAEGtleUZhY3RvcnlMcExpc3QAAAAAAgAAAAAFAAAAA1NFUAEAAAAUcmVhZEZhY3RvcnlDZmdPckZhaWwAAAABAAAAB2ZhY3RvcnkJAAS1AAAAAgkBAAAAGGdldFN0cmluZ0J5QWRkcmVzc09yRmFpbAAAAAIFAAAAB2ZhY3RvcnkJAQAAAA1rZXlGYWN0b3J5Q2ZnAAAAAAUAAAADU0VQAQAAABhnZXRCb29zdGluZ0FkZHJlc3NPckZhaWwAAAABAAAACmZhY3RvcnlDZmcJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAAGRAAAAAgUAAAAKZmFjdG9yeUNmZwUAAAAZSWR4RmFjdG9yeUNmZ0Jvb3N0aW5nRGFwcAEAAAAYZ2V0RW1pc3Npb25BZGRyZXNzT3JGYWlsAAAAAQAAAApmYWN0b3J5Q2ZnCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQABkQAAAAIFAAAACmZhY3RvcnlDZmcFAAAAGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHABAAAAF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsAAAAAQAAAApmYWN0b3J5Q2ZnCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQABkQAAAAIFAAAACmZhY3RvcnlDZmcFAAAAGElkeEZhY3RvcnlDZmdTdGFraW5nRGFwcAEAAAAea2V5RW1pc3Npb25SYXRlUGVyQmxvY2tDdXJyZW50AAAAAAIAAAAbJXMlc19fcmF0ZVBlckJsb2NrX19jdXJyZW50AQAAACFrZXlFbWlzc2lvblJhdGVQZXJCbG9ja01heEN1cnJlbnQAAAAAAgAAAB4lcyVzX19yYXRlUGVyQmxvY2tNYXhfX2N1cnJlbnQBAAAAFWtleUVtaXNzaW9uU3RhcnRCbG9jawAAAAACAAAAGiVzJXNfX2VtaXNzaW9uX19zdGFydEJsb2NrAQAAABtrZXlFbWlzc2lvbkR1cmF0aW9uSW5CbG9ja3MAAAAAAgAAABglcyVzX19lbWlzc2lvbl9fZHVyYXRpb24BAAAAE2tleUVtaXNzaW9uRW5kQmxvY2sAAAAAAgAAABglcyVzX19lbWlzc2lvbl9fZW5kQmxvY2sBAAAAD2tleVN0YWtlZEJ5VXNlcgAAAAIAAAAOdXNlckFkZHJlc3NTdHIAAAAMbHBBc3NldElkU3RyCQAEuQAAAAIJAARMAAAAAgIAAAAOJXMlcyVzX19zdGFrZWQJAARMAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIJAARMAAAAAgUAAAAMbHBBc3NldElkU3RyBQAAAANuaWwFAAAAA1NFUAEAAAAOa2V5U3Rha2VkVG90YWwAAAABAAAADGxwQXNzZXRJZFN0cgkAASwAAAACAgAAABclcyVzJXNfX3N0YWtlZF9fdG90YWxfXwUAAAAMbHBBc3NldElkU3RyAQAAABBrZXlDbGFpbWVkQnlVc2VyAAAAAgAAAAxscEFzc2V0SWRTdHIAAAAOdXNlckFkZHJlc3NTdHIJAAS5AAAAAgkABEwAAAACAgAAAA8lcyVzJXNfX2NsYWltZWQJAARMAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIJAARMAAAAAgUAAAAMbHBBc3NldElkU3RyBQAAAANuaWwFAAAAA1NFUAEAAAAZa2V5Q2xhaW1lZEJ5VXNlck1pblJld2FyZAAAAAIAAAAMbHBBc3NldElkU3RyAAAADnVzZXJBZGRyZXNzU3RyCQAEuQAAAAIJAARMAAAAAgIAAAAYJXMlcyVzX19jbGFpbWVkTWluUmV3YXJkCQAETAAAAAIFAAAADnVzZXJBZGRyZXNzU3RyCQAETAAAAAIFAAAADGxwQXNzZXRJZFN0cgUAAAADbmlsBQAAAANTRVABAAAAG2tleUNsYWltZWRCeVVzZXJCb29zdFJld2FyZAAAAAIAAAAMbHBBc3NldElkU3RyAAAADnVzZXJBZGRyZXNzU3RyCQAEuQAAAAIJAARMAAAAAgIAAAAaJXMlcyVzX19jbGFpbWVkQm9vc3RSZXdhcmQJAARMAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIJAARMAAAAAgUAAAAMbHBBc3NldElkU3RyBQAAAANu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bAUAAAADU0VQAQAAABVPcGVyYXRpb25IaXN0b3J5RW50cnkAAAAFAAAABHR5cGUAAAALdXNlckFkZHJlc3MAAAAJbHBBc3NldElkAAAABmFtb3VudAAAAAR0eElkCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAZa2V5T3BlcmF0aW9uSGlzdG9yeVJlY29yZAAAAAMFAAAABHR5cGUFAAAAC3VzZXJBZGRyZXNzCQACWAAAAAEFAAAABHR4SWQJAQAAABNmb3JtYXRIaXN0b3J5UmVjb3JkAAAABAUAAAALdXNlckFkZHJlc3MFAAAACWxwQXNzZXRJZAUAAAAEdHlwZQUAAAAGYW1vdW50AAAAAA5mYWN0b3J5QWRkcmVzcwkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAEJAQAAABFrZXlGYWN0b3J5QWRkcmVzcwAAAAAAAAAAD2ZhY3RvcnlDb250cmFjdAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAOZmFjdG9yeUFkZHJlc3MAAAAACmZhY3RvcnlDZmcJAQAAABRyZWFkRmFjdG9yeUNmZ09yRmFpbAAAAAEFAAAAD2ZhY3RvcnlDb250cmFjdAAAAAAQZW1pc3Npb25Db250cmFjdAkBAAAAGGdldEVtaXNzaW9uQWRkcmVzc09yRmFpbAAAAAEFAAAACmZhY3RvcnlDZmcAAAAAEGJvb3N0aW5nQ29udHJhY3QJAQAAABhnZXRCb29zdGluZ0FkZHJlc3NPckZhaWwAAAABBQAAAApmYWN0b3J5Q2ZnAQAAABtjYWxjV3hQZXJMcEludGVncmFsVXNlckxhc3QAAAAEAAAADHN0YWtlZEJ5VXNlcgAAACZ3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodE9yWmVybwAAABJ3eFBlckxwSW50ZWdyYWxOZXcAAAAad3hQZXJMcEludGVncmFsVXNlckxhc3RLRVkDAwkAAAAAAAACBQAAACZ3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodE9yWmVybwAAAAAAAAAAAAkAAGYAAAACBQAAAAxzdGFrZWRCeVVzZXIAAAAAAAAAAAAHAAAAAAAAAAAAAwkAAAAAAAACBQAAAAxzdGFrZWRCeVVzZXIAAAAAAAAAAAAFAAAAEnd4UGVyTHBJbnRlZ3JhbE5ldwMDCQAAZgAAAAIFAAAAJnd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0T3JaZXJvAAAAAAAAAAAACQAAZgAAAAIFAAAADHN0YWtlZEJ5VXNlcgAAAAAAAAAAAAcJAQAAAAxnZXRJbnRPckZhaWwAAAACBQAAAAR0aGlzBQAAABp3eFBlckxwSW50ZWdyYWxVc2VyTGFzdEtFWQkAAAIAAAABAgAAAC1jYWxjV3hQZXJMcEludGVncmFsVXNlckxhc3Q6IHVuZXhwZWN0ZWQgc3RhdGUBAAAAFHJlZnJlc2hQb29sSU5URUdSQUxTAAAAAwAAAAxscEFzc2V0SWRTdHIAAAAOcG9vbEFkZHJlc3NTdHIAAAANbHBEZWx0YUFtb3VudAQAAAAOc3Rha2VkVG90YWxLRVkJAQAAAA5rZXlTdGFrZWRUb3RhbAAAAAEFAAAADGxwQXNzZXRJZFN0cgQAAAALc3Rha2VkVG90YWwJAQAAAApyZWFkU3Rha2VkAAAAAQUAAAAOc3Rha2VkVG90YWxLRVkEAAAACnBvb2xXZWlnaHQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAD2ZhY3RvcnlDb250cmFjdAkBAAAAFGtleUZhY3RvcnlQb29sV2VpZ2h0AAAAAQUAAAAOcG9vbEFkZHJlc3NTdHIEAAAAEmVtaXNzaW9uU3RhcnRCbG9jawkBAAAADGdldEludE9yRmFpbAAAAAIFAAAAEGVtaXNzaW9uQ29udHJhY3QJAQAAABVrZXlFbWlzc2lvblN0YXJ0QmxvY2sAAAAABAAAAAVNVUxUMwAAAAAAAAAD6AQAAAAUd3hFbWlzc2lvblBlckJsb2NrWDMJAABoAAAAAgkBAAAADGdldEludE9yRmFpbAAAAAIFAAAAEGVtaXNzaW9uQ29udHJhY3QJAQAAAB5rZXlFbWlzc2lvblJhdGVQZXJCbG9ja0N1cnJlbnQAAAAABQAAAAVNVUxUMwQAAAAYcG9vbFd4RW1pc3Npb25QZXJCbG9ja1gzCQAAawAAAAMFAAAAFHd4RW1pc3Npb25QZXJCbG9ja1gzBQAAAApwb29sV2VpZ2h0CQAAaAAAAAIFAAAADlBPT0xXRUlHSFRNVUxUAAAAAAAAAAADBAAAABJ3eFBlckxwSW50ZWdyYWxLRVkJAQAAABJrZXlXeFBlckxwSW50ZWdyYWwAAAABBQAAAAxscEFzc2V0SWRTdHIEAAAAH3d4UGVyTHBJbnRlZ3JhbExhc3RVcGRIZWlnaHRLRVkJAQAAAB9rZXlXeFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0AAAAAQUAAAAMbHBBc3NldElkU3RyBAAAAAp3eFBlckxwS0VZCQEAAAAKa2V5V3hQZXJMcAAAAAEFAAAADGxwQXNzZXRJZFN0cgQAAAAcd3hQZXJMcEludGVncmFsTGFzdFVwZEhlaWdodAkBAAAAD2dldEludE9yRGVmYXVsdAAAAAMFAAAABHRoaXMFAAAAH3d4UGVyTHBJbnRlZ3JhbExhc3RVcGRIZWlnaHRLRVkFAAAAEmVtaXNzaW9uU3RhcnRCbG9jawQAAAAPd3hQZXJMcEludGVncmFsCQEAAAAMZ2V0SW50T3JaZXJvAAAAAgUAAAAEdGhpcwUAAAASd3hQZXJMcEludGVncmFsS0VZBAAAAA93eFBlckxwT3JaZXJvWDMAAAAAAAAAAAAEAAAAAmRoCQABlgAAAAEJAARMAAAAAgkAAGUAAAACBQAAAAZoZWlnaHQFAAAAHHd4UGVyTHBJbnRlZ3JhbExhc3RVcGRIZWlnaHQJAARMAAAAAgAAAAAAAAAAAAUAAAADbmlsBAAAAAl3eFBlckxwWDMDCQEAAAACIT0AAAACBQAAAA93eFBlckxwT3JaZXJvWDMAAAAAAAAAAAAFAAAAD3d4UGVyTHBPclplcm9YMwkAAGsAAAADBQAAABhwb29sV3hFbWlzc2lvblBlckJsb2NrWDMFAAAABU1VTFQ4BQAAAAtzdGFrZWRUb3RhbAQAAAAOc3Rha2VkVG90YWxOZXcJAABkAAAAAgUAAAALc3Rha2VkVG90YWwFAAAADWxwRGVsdGFBbW91bnQEAAAAEnd4UGVyTHBJbnRlZ3JhbE5ldwkAAGQAAAACBQAAAA93eFBlckxwSW50ZWdyYWwJAABoAAAAAgUAAAAJd3hQZXJMcFgzBQAAAAJkaAQAAAAMd3hQZXJMcFgzTmV3CQAAaQAAAAIFAAAAGHBvb2xXeEVtaXNzaW9uUGVyQmxvY2tYMwUAAAAOc3Rha2VkVG90YWxOZXcEAAAAH3d4UGVyTHBJbnRlZ3JhbExhc3RVcGRIZWlnaHROZXcFAAAABmhlaWdodAQAAAAFZGVidWcJAAS5AAAAAgkABEwAAAACCQABpAAAAAEFAAAAEnd4UGVyTHBJbnRlZ3JhbE5ldwkABEwAAAACCQABpAAAAAEFAAAAAmRoCQAETAAAAAIJAAGkAAAAAQUAAAAJd3hQZXJMcFgzCQAETAAAAAIJAAGkAAAAAQUAAAALc3Rha2VkVG90YWwJAARMAAAAAgkAAaQAAAABBQAAABhwb29sV3hFbWlzc2lvblBlckJsb2NrWDMJAARMAAAAAgkAAaQAAAABBQAAABR3eEVtaXNzaW9uUGVyQmxvY2tYMwkABEwAAAACCQABpAAAAAEFAAAACnBvb2xXZWlnaHQFAAAAA25pbAIAAAACOjoJAAUVAAAAAwUAAAASd3hQZXJMcEludGVncmFsTmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJ3eFBlckxwSW50ZWdyYWxLRVkFAAAAEnd4UGVyTHBJbnRlZ3JhbE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAfd3hQZXJMcEludGVncmFsTGFzdFVwZEhlaWdodEtFWQUAAAAfd3hQZXJMcEludGVncmFsTGFzdFVwZEhlaWdodE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAKd3hQZXJMcEtFWQUAAAAMd3hQZXJMcFgzTmV3BQAAAANuaWwFAAAABWRlYnVnAQAAABByZWZyZXNoSU5URUdSQUxTAAAABAAAAAxscEFzc2V0SWRTdHIAAAAOdXNlckFkZHJlc3NTdHIAAAAOcG9vbEFkZHJlc3NTdHIAAAANbHBEZWx0YUFtb3VudAQAAAANJHQwMTA0OTQxMDYxNgkBAAAAFHJlZnJlc2hQb29sSU5URUdSQUxTAAAAAwUAAAAMbHBBc3NldElkU3RyBQAAAA5wb29sQWRkcmVzc1N0cgUAAAANbHBEZWx0YUFtb3VudAQAAAASd3hQZXJMcEludGVncmFsTmV3CAUAAAANJHQwMTA0OTQxMDYxNgAAAAJfMQQAAAARcG9vbEludGVncmFsU1RBVEUIBQAAAA0kdDAxMDQ5NDEwNjE2AAAAAl8yBAAAAAlwb29sREVCVUcIBQAAAA0kdDAxMDQ5NDEwNjE2AAAAAl8zBAAAAAVNVUxUMwAAAAAAAAAD6AQAAAAPc3Rha2VkQnlVc2VyS0VZCQEAAAAPa2V5U3Rha2VkQnlVc2VyAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIFAAAADGxwQXNzZXRJZFN0cgQAAAAMc3Rha2VkQnlVc2VyCQEAAAAKcmVhZFN0YWtlZAAAAAEFAAAAD3N0YWtlZEJ5VXNlcktFWQQAAAAQd3hUb0NsYWltVXNlcktFWQkBAAAAEGtleVd4VG9DbGFpbVVzZXIAAAACBQAAAAxscEFzc2V0SWRTdHIFAAAADnVzZXJBZGRyZXNzU3RyBAAAACN3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodEtFWQkBAAAAI2tleVd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0AAAAAgUAAAAMbHBBc3NldElkU3RyBQAAAA51c2VyQWRkcmVzc1N0cgQAAAAad3hQZXJMcEludGVncmFsVXNlckxhc3RLRVkJAQAAABprZXlXeFBlckxwSW50ZWdyYWxVc2VyTGFzdAAAAAIFAAAADGxwQXNzZXRJZFN0cgUAAAAOdXNlckFkZHJlc3NTdHIEAAAADXd4VG9DbGFpbVVzZXIJAQAAAAxnZXRJbnRPclplcm8AAAACBQAAAAR0aGlzBQAAABB3eFRvQ2xhaW1Vc2VyS0VZBAAAACZ3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodE9yWmVybwkBAAAADGdldEludE9yWmVybwAAAAIFAAAABHRoaXMFAAAAI3d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0S0VZBAAAABd3eFBlckxwSW50ZWdyYWxVc2VyTGFzdAkBAAAAG2NhbGNXeFBlckxwSW50ZWdyYWxVc2VyTGFzdAAAAAQFAAAADHN0YWtlZEJ5VXNlcgUAAAAmd3hQZXJMcEludGVncmFsVXNlckxhc3RVcGRIZWlnaHRPclplcm8FAAAAEnd4UGVyTHBJbnRlZ3JhbE5ldwUAAAAad3hQZXJMcEludGVncmFsVXNlckxhc3RLRVkEAAAAEHd4VG9DbGFpbVVzZXJOZXcJAABkAAAAAgUAAAANd3hUb0NsYWltVXNlcgkAAGsAAAADCQAAZQAAAAIFAAAAEnd4UGVyTHBJbnRlZ3JhbE5ldwUAAAAXd3hQZXJMcEludGVncmFsVXNlckxhc3QFAAAADHN0YWtlZEJ5VXNlcgkAAGgAAAACBQAAAAVNVUxUOAUAAAAFTVVMVDMEAAAAGnd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0TmV3BQAAABJ3eFBlckxwSW50ZWdyYWxOZXcEAAAAI3d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0TmV3BQAAAAZoZWlnaHQEAAAABWRlYnVnCQAEuQAAAAIJAARMAAAAAgkAAaQAAAABBQAAABB3eFRvQ2xhaW1Vc2VyTmV3CQAETAAAAAIJAAGkAAAAAQUAAAAXd3hQZXJMcEludGVncmFsVXNlckxhc3QJAARMAAAAAgkAAaQAAAABBQAAAAxzdGFrZWRCeVVzZXIJAARMAAAAAgUAAAAJcG9vbERFQlVHCQAETAAAAAIJAAGkAAAAAQUAAAAGaGVpZ2h0BQAAAANuaWwCAAAAAjo6CQAFFQAAAAMFAAAAEHd4VG9DbGFpbVVzZXJOZXcJAAROAAAAAgUAAAARcG9vbEludGVncmFsU1RBVEUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEHd4VG9DbGFpbVVzZXJLRVkFAAAAEHd4VG9DbGFpbVVzZXJOZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAI3d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0S0VZBQAAACN3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAad3hQZXJMcEludGVncmFsVXNlckxhc3RLRVkFAAAAGnd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0TmV3BQAAAANuaWwFAAAABWRlYnVnAQAAABZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAAAAAQAAAAHJG1hdGNoMAkABCIAAAABCQEAAAATa2V5TWFuYWdlclB1YmxpY0tleQAAAAADCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABcwUAAAAHJG1hdGNoMAkAAlkAAAABBQAAAAFzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0BQAAAAR1bml0CQAAAgAAAAECAAAAC01hdGNoIGVycm9yAQAAAB1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdAAAAAAEAAAAByRtYXRjaDAJAAQiAAAAAQkBAAAAGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwCQACWQAAAAEFAAAAAXMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQFAAAABHVuaXQJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IBAAAAC211c3RNYW5hZ2VyAAAAAQAAAAFpBAAAAAJwZAkAAAIAAAABAgAAABFQZXJtaXNzaW9uIGRlbmllZAQAAAAHJG1hdGNoMAkBAAAAFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAAAAAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAApCeXRlVmVjdG9yBAAAAAJwawUAAAAHJG1hdGNoMAMJAAAAAAAAAggFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BQAAAAJwawYFAAAAAnBkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0AwkAAAAAAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMGBQAAAAJwZAkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgAAAAgAAAABaQEAAAALY29uc3RydWN0b3IAAAABAAAAEWZhY3RvcnlBZGRyZXNzU3RyBAAAAAtjaGVja0NhbGxlcgkBAAAAC211c3RNYW5hZ2VyAAAAAQUAAAABaQMJAAAAAAAAAgUAAAALY2hlY2tDYWxsZXIFAAAAC2NoZWNrQ2FsbGVyCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABFrZXlGYWN0b3J5QWRkcmVzcwAAAAAFAAAAEWZhY3RvcnlBZGRyZXNzU3RyBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAACnNldE1hbmFnZXIAAAABAAAAF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BAAAAAtjaGVja0NhbGxlcgkBAAAAC211c3RNYW5hZ2VyAAAAAQUAAAABaQMJAAAAAAAAAgUAAAALY2hlY2tDYWxsZXIFAAAAC2NoZWNrQ2FsbGVyBAAAABVjaGVja01hbmFnZXJQdWJsaWNLZXkJAAJZAAAAAQUAAAAXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkDCQAAAAAAAAIFAAAAFWNoZWNrTWFuYWdlclB1YmxpY0tleQUAAAAVY2hlY2tNYW5hZ2VyUHVibGljS2V5CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQAAAAAFAAAAF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAA5jb25maXJtTWFuYWdlcgAAAAAEAAAAAnBtCQEAAAAdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQAAAAABAAAAAVoYXNQTQMJAQAAAAlpc0RlZmluZWQAAAABBQAAAAJwbQYJAAACAAAAAQIAAAASTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAAAAAACBQAAAAVoYXNQTQUAAAAFaGFzUE0EAAAAB2NoZWNrUE0DCQAAAAAAAAIIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkBAAAABXZhbHVlAAAAAQUAAAACcG0GCQAAAgAAAAECAAAAG1lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAAAAAAAAgUAAAAHY2hlY2tQTQUAAAAHY2hlY2tQTQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAATa2V5TWFuYWdlclB1YmxpY0tleQAAAAAJAAJYAAAAAQkBAAAABXZhbHVlAAAAAQUAAAACcG0JAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAAAAAUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAFc3Rha2UAAAAAAwkBAAAAAiE9AAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAAIAAAABAgAAADRpbnZhbGlkIHBheW1lbnQgLSBleGFjdCBvbmUgcGF5bWVudCBtdXN0IGJlIGF0dGFjaGVkBAAAAANwbXQJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAACWxwQXNzZXRJZAkBAAAABXZhbHVlAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkBAAAAAxscEFzc2V0SWRTdHIJAAJYAAAAAQUAAAAJbHBBc3NldElkBAAAAAZhbW91bnQIBQAAAANwbXQAAAAGYW1vdW50BAAAAA5wb29sQWRkcmVzc1N0cgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAAD2ZhY3RvcnlDb250cmFjdAkBAAAAGmtleUZhY3RvcnlMcDJBc3NldHNNYXBwaW5nAAAAAQUAAAAMbHBBc3NldElkU3RyCQABLAAAAAICAAAAFXVuc3VwcG9ydGVkIGxwIGFzc2V0IAUAAAAMbHBBc3NldElkU3RyBAAAAAljYWxsZXJTdHIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAA51c2VyQWRkcmVzc1N0cgMJAAAAAAAAAgUAAAAJY2FsbGVyU3RyBQAAAA5wb29sQWRkcmVzc1N0cgkABCUAAAABCAUAAAABaQAAAAxvcmlnaW5DYWxsZXIFAAAACWNhbGxlclN0cgQAAAAPc3Rha2VkQnlVc2VyS0VZCQEAAAAPa2V5U3Rha2VkQnlVc2VyAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIFAAAADGxwQXNzZXRJZFN0cgQAAAAOc3Rha2VkVG90YWxLRVkJAQAAAA5rZXlTdGFrZWRUb3RhbAAAAAEFAAAADGxwQXNzZXRJZFN0cgQAAAAMc3Rha2VkQnlVc2VyCQEAAAAKcmVhZFN0YWtlZAAAAAEFAAAAD3N0YWtlZEJ5VXNlcktFWQQAAAALc3Rha2VkVG90YWwJAQAAAApyZWFkU3Rha2VkAAAAAQUAAAAOc3Rha2VkVG90YWxLRVkEAAAADSR0MDE0Mjc0MTQzOTEJAQAAABByZWZyZXNoSU5URUdSQUxTAAAABAUAAAAMbHBBc3NldElkU3RyBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAOcG9vbEFkZHJlc3NTdHIFAAAABmFtb3VudAQAAAAQd3hUb0NsYWltVXNlck5ldwgFAAAADSR0MDE0Mjc0MTQzOTEAAAACXzEEAAAADWludGVncmFsU1RBVEUIBQAAAA0kdDAxNDI3NDE0MzkxAAAAAl8yBAAAAAVkZWJ1ZwgFAAAADSR0MDE0Mjc0MTQzOTEAAAACXzMJAAROAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAPc3Rha2VkQnlVc2VyS0VZCQAAZAAAAAIFAAAADHN0YWtlZEJ5VXNlcgUAAAAGYW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA5zdGFrZWRUb3RhbEtFWQkAAGQAAAACBQAAAAtzdGFrZWRUb3RhbAUAAAAGYW1vdW50CQAETAAAAAIJAQAAABVPcGVyYXRpb25IaXN0b3J5RW50cnkAAAAFAgAAAAVzdGFrZQUAAAAOdXNlckFkZHJlc3NTdHIFAAAADGxwQXNzZXRJZFN0cgUAAAAGYW1vdW50CAUAAAABaQAAAA10cmFuc2FjdGlvbklkBQAAAANuaWwFAAAADWludGVncmFsU1RBVEUAAAABaQEAAAAHdW5zdGFrZQAAAAIAAAAMbHBBc3NldElkU3RyAAAABmFtb3VudAQAAAAJbHBBc3NldElkCQACWQAAAAEFAAAADGxwQXNzZXRJZFN0cgQAAAAOcG9vbEFkZHJlc3NTdHIJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAA9mYWN0b3J5Q29udHJhY3QJAQAAABprZXlGYWN0b3J5THAyQXNzZXRzTWFwcGluZwAAAAEFAAAADGxwQXNzZXRJZFN0cgkAASwAAAACAgAAABV1bnN1cHBvcnRlZCBscCBhc3NldCAFAAAADGxwQXNzZXRJZFN0cgQAAAAJcG9vbEFkZG9uCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAABHRoaXMJAQAAABZrZXlTdGFibGVQb29sQWRkb25BZGRyAAAAAAUAAAAOcG9vbEFkZHJlc3NTdHIEAAAACWNhbGxlclN0cgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAADnVzZXJBZGRyZXNzU3RyAwMJAAAAAAAAAgUAAAAJY2FsbGVyU3RyBQAAAA5wb29sQWRkcmVzc1N0cgYJAAAAAAAAAgUAAAAJY2FsbGVyU3RyBQAAAAlwb29sQWRkb24JAAQlAAAAAQgFAAAAAWkAAAAMb3JpZ2luQ2FsbGVyBQAAAAljYWxsZXJTdHIEAAAAD3N0YWtlZEJ5VXNlcktFWQkBAAAAD2tleVN0YWtlZEJ5VXNlcgAAAAIFAAAADnVzZXJBZGRyZXNzU3RyBQAAAAxscEFzc2V0SWRTdHIEAAAADnN0YWtlZFRvdGFsS0VZCQEAAAAOa2V5U3Rha2VkVG90YWwAAAABBQAAAAxscEFzc2V0SWRTdHIEAAAADHN0YWtlZEJ5VXNlcgkBAAAACnJlYWRTdGFrZWQAAAABBQAAAA9zdGFrZWRCeVVzZXJLRVkEAAAAC3N0YWtlZFRvdGFsCQEAAAAKcmVhZFN0YWtlZAAAAAEFAAAADnN0YWtlZFRvdGFsS0VZBAAAAA0kdDAxNTUyODE1NjQ2CQEAAAAQcmVmcmVzaElOVEVHUkFMUwAAAAQFAAAADGxwQXNzZXRJZFN0cgUAAAAOdXNlckFkZHJlc3NTdHIFAAAADnBvb2xBZGRyZXNzU3RyCQEAAAABLQAAAAEFAAAABmFtb3VudAQAAAAQd3hUb0NsYWltVXNlck5ldwgFAAAADSR0MDE1NTI4MTU2NDYAAAACXzEEAAAADWludGVncmFsU1RBVEUIBQAAAA0kdDAxNTUyODE1NjQ2AAAAAl8yBAAAAAVkZWJ1ZwgFAAAADSR0MDE1NTI4MTU2NDYAAAACXzMDCQAAZgAAAAIFAAAABmFtb3VudAUAAAAMc3Rha2VkQnlVc2VyCQAAAgAAAAECAAAAJHBhc3NlZCBhbW91bnQgaXMgbGVzcyB0aGVuIGF2YWlsYWJsZQkABE4AAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA9zdGFrZWRCeVVzZXJLRVkJAABlAAAAAgUAAAAMc3Rha2VkQnlVc2VyBQAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADnN0YWtlZFRvdGFsS0VZCQAAZQAAAAIFAAAAC3N0YWtlZFRvdGFsBQAAAAZhbW91bnQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAZhbW91bnQFAAAACWxwQXNzZXRJZAkABEwAAAACCQEAAAAVT3BlcmF0aW9uSGlzdG9yeUVudHJ5AAAABQIAAAAHdW5zdGFrZQUAAAAOdXNlckFkZHJlc3NTdHIFAAAADGxwQXNzZXRJZFN0cgUAAAAGYW1vdW50CAUAAAABaQAAAA10cmFuc2FjdGlvbklkBQAAAANuaWwFAAAADWludGVncmFsU1RBVEUAAAABaQEAAAAHY2xhaW1XeAAAAAEAAAAMbHBBc3NldElkU3RyBAAAAAt1c2VyQWRkcmVzcwgFAAAAAWkAAAAGY2FsbGVyBAAAAA51c2VyQWRkcmVzc1N0cgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAADnBvb2xBZGRyZXNzU3RyCQEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzT3JGYWlsAAAAAgUAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAAma2V5RmFjdG9yeUxwQXNzZXRUb1Bvb2xDb250cmFjdEFkZHJlc3MAAAABBQAAAAxscEFzc2V0SWRTdHIEAAAAEGNsYWltZWRCeVVzZXJLRVkJAQAAABBrZXlDbGFpbWVkQnlVc2VyAAAAAgUAAAAMbHBBc3NldElkU3RyBQAAAA51c2VyQWRkcmVzc1N0cgQAAAAPY2xhaW1lZFRvdGFsS0VZCQEAAAAPa2V5Q2xhaW1lZFRvdGFsAAAAAQUAAAAMbHBBc3NldElkU3RyBAAAABljbGFpbWVkQnlVc2VyTWluUmV3YXJkS0VZCQEAAAAZa2V5Q2xhaW1lZEJ5VXNlck1pblJld2FyZAAAAAIFAAAADGxwQXNzZXRJZFN0cgUAAAAOdXNlckFkZHJlc3NTdHIEAAAAG2NsYWltZWRCeVVzZXJCb29zdFJld2FyZEtFWQkBAAAAG2tleUNsYWltZWRCeVVzZXJCb29zdFJld2FyZAAAAAIFAAAADGxwQXNzZXRJZFN0cgUAAAAOdXNlckFkZHJlc3NTdHIEAAAADWNsYWltZWRCeVVzZXIJAQAAAAxnZXRJbnRPclplcm8AAAACBQAAAAR0aGlzBQAAABBjbGFpbWVkQnlVc2VyS0VZBAAAABZjbGFpbWVkQnlVc2VyTWluUmV3YXJkCQEAAAAMZ2V0SW50T3JaZXJvAAAAAgUAAAAEdGhpcwUAAAAZY2xhaW1lZEJ5VXNlck1pblJld2FyZEtFWQQAAAAYY2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkCQEAAAAMZ2V0SW50T3JaZXJvAAAAAgUAAAAEdGhpcwUAAAAbY2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkS0VZBAAAAAxjbGFpbWVkVG90YWwJAQAAAAxnZXRJbnRPclplcm8AAAACBQAAAAR0aGlzBQAAAA9jbGFpbWVkVG90YWxLRVkEAAAADSR0MDE2ODM4MTY5NTAJAQAAABByZWZyZXNoSU5URUdSQUxTAAAABAUAAAAMbHBBc3NldElkU3RyBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAOcG9vbEFkZHJlc3NTdHIAAAAAAAAAAAAEAAAAEHd4VG9DbGFpbVVzZXJOZXcIBQAAAA0kdDAxNjgzODE2OTUwAAAAAl8xBAAAAA1pbnRlZ3JhbFNUQVRFCAUAAAANJHQwMTY4MzgxNjk1MAAAAAJfMgQAAAAFZGVidWcIBQAAAA0kdDAxNjgzODE2OTUwAAAAAl8zBAAAABBhdmFpbGFibGVUb0NsYWltCQAAZQAAAAIFAAAAEHd4VG9DbGFpbVVzZXJOZXcFAAAADWNsYWltZWRCeVVzZXIDCQAAZwAAAAIAAAAAAAAAAAAFAAAAEGF2YWlsYWJsZVRvQ2xhaW0JAAACAAAAAQIAAAAQbm90aGluZyB0byBjbGFpbQQAAAASd3hBbW91bnRCb29zdFRvdGFsCQEAAAAFYXNJbnQAAAABCQABkQAAAAIJAQAAAAlhc0FueUxpc3QAAAABCQAD/AAAAAQFAAAAEGJvb3N0aW5nQ29udHJhY3QCAAAADGNsYWltV3hCb29zdAkABEwAAAACBQAAAAxscEFzc2V0SWRTdHIJAARMAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIFAAAAA25pbAUAAAADbmlsAAAAAAAAAAAABAAAAA1taW5SZXdhcmRQYXJ0BQAAABBhdmFpbGFibGVUb0NsYWltBAAAAA9ib29zdFJld2FyZFBhcnQJAAGXAAAAAQkABEwAAAACCQAAaAAAAAIFAAAADW1pblJld2FyZFBhcnQAAAAAAAAAAAIJAARMAAAAAgUAAAASd3hBbW91bnRCb29zdFRvdGFsBQAAAANuaWwEAAAACXd4QXNzZXRJZAkBAAAADGFzQnl0ZVZlY3RvcgAAAAEJAAGRAAAAAgkBAAAACWFzQW55TGlzdAAAAAEJAAP8AAAABAUAAAAQZW1pc3Npb25Db250cmFjdAIAAAAEZW1pdAkABEwAAAACBQAAAA1taW5SZXdhcmRQYXJ0BQAAAANuaWwFAAAAA25pbAAAAAAAAAAAAAQAAAAJZW1pdEJvb3N0CQEAAAAJYXNBbnlMaXN0AAAAAQkAA/wAAAAEBQAAABBlbWlzc2lvbkNvbnRyYWN0AgAAAARlbWl0CQAETAAAAAIFAAAAD2Jvb3N0UmV3YXJkUGFydAUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAACWVtaXRCb29zdAUAAAAJZW1pdEJvb3N0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABBjbGFpbWVkQnlVc2VyS0VZCQAAZAAAAAIFAAAADWNsYWltZWRCeVVzZXIFAAAAEGF2YWlsYWJsZVRvQ2xhaW0JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAGWNsYWltZWRCeVVzZXJNaW5SZXdhcmRLRVkJAABkAAAAAgUAAAAWY2xhaW1lZEJ5VXNlck1pblJld2FyZAUAAAANbWluUmV3YXJkUGFydAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAbY2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkS0VZCQAAZAAAAAIFAAAAGGNsYWltZWRCeVVzZXJCb29zdFJld2FyZAUAAAAPYm9vc3RSZXdhcmRQYXJ0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA9jbGFpbWVkVG90YWxLRVkJAABkAAAAAgUAAAAMY2xhaW1lZFRvdGFsBQAAABBhdmFpbGFibGVUb0NsYWltCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAC3VzZXJBZGRyZXNzBQAAAA1taW5SZXdhcmRQYXJ0BQAAAAl3eEFzc2V0SWQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAALdXNlckFkZHJlc3MFAAAAD2Jvb3N0UmV3YXJkUGFydAUAAAAJd3hBc3NldElkCQAETAAAAAIJAQAAABVPcGVyYXRpb25IaXN0b3J5RW50cnkAAAAFAgAAAAVjbGFpbQUAAAAOdXNlckFkZHJlc3NTdHIFAAAADGxwQXNzZXRJZFN0cgUAAAAQYXZhaWxhYmxlVG9DbGFpbQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAA9jbGFpbVd4UkVBRE9OTFkAAAACAAAADGxwQXNzZXRJZFN0cgAAAA51c2VyQWRkcmVzc1N0cgQAAAAPc3Rha2VkQnlVc2VyS0VZCQEAAAAPa2V5U3Rha2VkQnlVc2VyAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIFAAAADGxwQXNzZXRJZFN0cgQAAAAOc3Rha2VkVG90YWxLRVkJAQAAAA5rZXlTdGFrZWRUb3RhbAAAAAEFAAAADGxwQXNzZXRJZFN0cgQAAAAQY2xhaW1lZEJ5VXNlcktFWQkBAAAAEGtleUNsYWltZWRCeVVzZXIAAAACBQAAAAxscEFzc2V0SWRTdHIFAAAADnVzZXJBZGRyZXNzU3RyBAAAAAxzdGFrZWRCeVVzZXIJAQAAAApyZWFkU3Rha2VkAAAAAQUAAAAPc3Rha2VkQnlVc2VyS0VZBAAAAAtzdGFrZWRUb3RhbAkBAAAACnJlYWRTdGFrZWQAAAABBQAAAA5zdGFrZWRUb3RhbEtFWQQAAAANY2xhaW1lZEJ5VXNlcgkBAAAADGdldEludE9yWmVybwAAAAIFAAAABHRoaXMFAAAAEGNsYWltZWRCeVVzZXJLRVkEAAAADnBvb2xBZGRyZXNzU3RyCQEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzT3JGYWlsAAAAAgUAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAAma2V5RmFjdG9yeUxwQXNzZXRUb1Bvb2xDb250cmFjdEFkZHJlc3MAAAABBQAAAAxscEFzc2V0SWRTdHIEAAAACnBvb2xXZWlnaHQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAD2ZhY3RvcnlDb250cmFjdAkBAAAAFGtleUZhY3RvcnlQb29sV2VpZ2h0AAAAAQUAAAAOcG9vbEFkZHJlc3NTdHIEAAAAEnd4RW1pc3Npb25QZXJCbG9jawkBAAAADGdldEludE9yRmFpbAAAAAIFAAAAEGVtaXNzaW9uQ29udHJhY3QJAQAAAB5rZXlFbWlzc2lvblJhdGVQZXJCbG9ja0N1cnJlbnQAAAAABAAAABJlbWlzc2lvblN0YXJ0QmxvY2sJAQAAAAxnZXRJbnRPckZhaWwAAAACBQAAABBlbWlzc2lvbkNvbnRyYWN0CQEAAAAVa2V5RW1pc3Npb25TdGFydEJsb2NrAAAAAAQAAAAMcGFzc2VkQmxvY2tzAwkAAGYAAAACBQAAABJlbWlzc2lvblN0YXJ0QmxvY2sFAAAABmhlaWdodAAAAAAAAAAAAAkAAGUAAAACBQAAAAZoZWlnaHQFAAAAEmVtaXNzaW9uU3RhcnRCbG9jawQAAAAOcG9vbFd4RW1pc3Npb24JAABrAAAAAwkAAGgAAAACBQAAABJ3eEVtaXNzaW9uUGVyQmxvY2sFAAAADHBhc3NlZEJsb2NrcwUAAAAKcG9vbFdlaWdodAUAAAAOUE9PTFdFSUdIVE1VTFQEAAAADHVzZXJXeFJld2FyZAkAAGsAAAADBQAAAA5wb29sV3hFbWlzc2lvbgUAAAAMc3Rha2VkQnlVc2VyBQAAAAtzdGFrZWRUb3RhbAQAAAANJHQwMTkxNTExOTI2MwkBAAAAEHJlZnJlc2hJTlRFR1JBTFMAAAAEBQAAAAxscEFzc2V0SWRTdHIFAAAADnVzZXJBZGRyZXNzU3RyBQAAAA5wb29sQWRkcmVzc1N0cgAAAAAAAAAAAAQAAAAQd3hUb0NsYWltVXNlck5ldwgFAAAADSR0MDE5MTUxMTkyNjMAAAACXzEEAAAADWludGVncmFsU1RBVEUIBQAAAA0kdDAxOTE1MTE5MjYzAAAAAl8yBAAAAAVkZWJ1ZwgFAAAADSR0MDE5MTUxMTkyNjMAAAACXzMEAAAAEGF2YWlsYWJsZVRvQ2xhaW0JAABlAAAAAgUAAAAQd3hUb0NsYWltVXNlck5ldwUAAAANY2xhaW1lZEJ5VXNlcgQAAAAOYm9vc3RJbnZSZXN1bHQJAQAAAAlhc0FueUxpc3QAAAABCQAD/AAAAAQFAAAAEGJvb3N0aW5nQ29udHJhY3QCAAAAFGNsYWltV3hCb29zdFJFQURPTkxZCQAETAAAAAIFAAAADGxwQXNzZXRJZFN0cgkABEwAAAACBQAAAA51c2VyQWRkcmVzc1N0cgUAAAADbmlsBQAAAANuaWwEAAAAEnd4QW1vdW50Qm9vc3RUb3RhbAkBAAAABWFzSW50AAAAAQkAAZEAAAACBQAAAA5ib29zdEludlJlc3VsdAAAAAAAAAAAAAQAAAAKYm9vc3REZWJ1ZwkBAAAACGFzU3RyaW5nAAAAAQkAAZEAAAACBQAAAA5ib29zdEludlJlc3VsdAAAAAAAAAAAAQQAAAANbWluUmV3YXJkUGFydAUAAAAQYXZhaWxhYmxlVG9DbGFpbQQAAAAPYm9vc3RSZXdhcmRQYXJ0CQABlwAAAAEJAARMAAAAAgkAAGgAAAACBQAAAA1taW5SZXdhcmRQYXJ0AAAAAAAAAAACCQAETAAAAAIFAAAAEnd4QW1vdW50Qm9vc3RUb3RhbAUAAAADbmlsBAAAAAt0b3RhbFJld2FyZAkAAGQAAAACBQAAAA1taW5SZXdhcmRQYXJ0BQAAAA9ib29zdFJld2FyZFBhcnQJAAUUAAAAAgUAAAADbmlsCQAEuQAAAAIJAARMAAAAAgIAAAAOJXMlcyVkJWQlZCVkJXMJAARMAAAAAgUAAAAMbHBBc3NldElkU3RyCQAETAAAAAIFAAAADnVzZXJBZGRyZXNzU3RyCQAETAAAAAIJAAGkAAAAAQUAAAALdG90YWxSZXdhcmQJAARMAAAAAgkAAaQAAAABBQAAAA1jbGFpbWVkQnlVc2VyCQAETAAAAAIJAAGkAAAAAQUAAAANbWluUmV3YXJkUGFydAkABEwAAAACCQABpAAAAAEFAAAAD2Jvb3N0UmV3YXJkUGFydAkABEwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABWRlYnVnAgAAAAI6OgkAAaQAAAABBQAAAAx1c2VyV3hSZXdhcmQCAAAADjo6Qk9PU1RERUJVRzo6BQAAAApib29zdERlYnVnBQAAAANuaWwFAAAAA1NFUAAAAAFpAQAAAA5vbk1vZGlmeVdlaWdodAAAAAIAAAAMbHBBc3NldElkU3RyAAAADnBvb2xBZGRyZXNzU3RyAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAA9mYWN0b3J5Q29udHJhY3QJAAACAAAAAQIAAAAScGVybWlzc2lvbnMgZGVuaWVkBAAAAA0kdDAyMDE0MzIwMjUzCQEAAAAUcmVmcmVzaFBvb2xJTlRFR1JBTFMAAAADBQAAAAxscEFzc2V0SWRTdHIFAAAADnBvb2xBZGRyZXNzU3RyAAAAAAAAAAAABAAAABJ3eFBlckxwSW50ZWdyYWxOZXcIBQAAAA0kdDAyMDE0MzIwMjUzAAAAAl8xBAAAABFwb29sSW50ZWdyYWxTVEFURQgFAAAADSR0MDIwMTQzMjAyNTMAAAACXzIEAAAACXBvb2xERUJVRwgFAAAADSR0MDIwMTQzMjAyNTMAAAACXzMFAAAAEXBvb2xJbnRlZ3JhbFNUQVRFAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAQAAAAPdGFyZ2V0UHVibGljS2V5BAAAAAckbWF0Y2gwCQEAAAAWbWFuYWdlclB1YmxpY0tleU9yVW5pdAAAAAADCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAnBrBQAAAAckbWF0Y2gwBQAAAAJwawMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleQkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAFAAAAD3RhcmdldFB1YmxpY0tleXu+6pI=", "height": 2114630, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7TzxF7JVSiNrxkE62jCCQKz9h8k6r2VB84dabkJNB5uW Next: 6GJFDyiBBeMWrmLmVuTwACQwiMeFL9wix6mWJk9BtMKH Diff:
OldNewDifferences
1313
1414 let f = b
1515
16-let g = toBigInt(0)
17-
18-let h = toBigInt(1)
19-
20-func i (j) = {
21- let k = j
22- if ($isInstanceOf(k, "List[Any]"))
16+func g (h) = {
17+ let i = h
18+ if ($isInstanceOf(i, "List[Any]"))
2319 then {
24- let l = k
25- l
20+ let j = i
21+ j
2622 }
2723 else throw("fail to cast into List[Any]")
2824 }
2925
3026
31-func m (j) = {
32- let k = j
33- if ($isInstanceOf(k, "Int"))
27+func k (h) = {
28+ let i = h
29+ if ($isInstanceOf(i, "Int"))
3430 then {
35- let n = k
31+ let l = i
32+ l
33+ }
34+ else throw("fail to cast into Int")
35+ }
36+
37+
38+func m (h) = {
39+ let i = h
40+ if ($isInstanceOf(i, "String"))
41+ then {
42+ let n = i
3643 n
3744 }
3845 else throw("fail to cast into Int")
3946 }
4047
4148
42-func o (j) = {
43- let k = j
44- if ($isInstanceOf(k, "String"))
49+func o (h) = {
50+ let i = h
51+ if ($isInstanceOf(i, "ByteVector"))
4552 then {
46- let p = k
53+ let p = i
4754 p
4855 }
4956 else throw("fail to cast into Int")
5057 }
5158
5259
53-func q (j) = {
54- let k = j
55- if ($isInstanceOf(k, "ByteVector"))
56- then {
57- let r = k
58- r
59- }
60- else throw("fail to cast into Int")
60+func q (r) = valueOrErrorMessage(getString(r), (("mandatory this." + r) + " is not defined"))
61+
62+
63+func s (t,r) = valueOrErrorMessage(getString(t, r), (((("mandatory " + toString(t)) + ".") + r) + " is not defined"))
64+
65+
66+func u (t,r) = valueOrElse(getInteger(t, r), 0)
67+
68+
69+func v (t,r,w) = valueOrElse(getInteger(t, r), w)
70+
71+
72+func x (t,r) = valueOrErrorMessage(getInteger(t, r), (("mandatory this." + r) + " is not defined"))
73+
74+
75+func y (z,A) = fraction(toBigInt(z), d, toBigInt(A))
76+
77+
78+func B (h,C) = toInt(fraction(h, toBigInt(C), d))
79+
80+
81+func D () = "%s%s__config__factoryAddress"
82+
83+
84+let E = 1
85+
86+let F = 2
87+
88+let G = 3
89+
90+let H = 4
91+
92+let I = 5
93+
94+let J = 6
95+
96+let K = 7
97+
98+func L () = "%s__factoryConfig"
99+
100+
101+func M () = "%s__managerPublicKey"
102+
103+
104+func N () = "%s__pendingManagerPublicKey"
105+
106+
107+func O () = "%s__stablePoolAddonAddr"
108+
109+
110+func P (Q) = makeString(["%s%s%s", Q, "mappings__lpAsset2PoolContract"], e)
111+
112+
113+func R () = "%s__lpTokensList"
114+
115+
116+func S (Q) = makeString(["%s%s%s", Q, "mappings__lpAsset2PoolContract"], e)
117+
118+
119+func T (U) = makeString(["%s%s", "poolWeight", U], e)
120+
121+
122+func V (W) = split(valueOrElse(getString(W, R()), ""), e)
123+
124+
125+func X (W) = split(s(W, L()), e)
126+
127+
128+func Y (Z) = addressFromStringValue(Z[F])
129+
130+
131+func aa (Z) = addressFromStringValue(Z[I])
132+
133+
134+func ab (Z) = addressFromStringValue(Z[E])
135+
136+
137+func ac () = "%s%s__ratePerBlock__current"
138+
139+
140+func ad () = "%s%s__ratePerBlockMax__current"
141+
142+
143+func ae () = "%s%s__emission__startBlock"
144+
145+
146+func af () = "%s%s__emission__duration"
147+
148+
149+func ag () = "%s%s__emission__endBlock"
150+
151+
152+func ah (ai,aj) = makeString(["%s%s%s__staked", ai, aj], e)
153+
154+
155+func ak (aj) = ("%s%s%s__staked__total__" + aj)
156+
157+
158+func al (aj,ai) = makeString(["%s%s%s__claimed", ai, aj], e)
159+
160+
161+func am (aj,ai) = makeString(["%s%s%s__claimedMinReward", ai, aj], e)
162+
163+
164+func an (aj,ai) = makeString(["%s%s%s__claimedBoostReward", ai, aj], e)
165+
166+
167+func ao (aj) = makeString(["%s%s%s__claimed", "total", aj], e)
168+
169+
170+func ap (r) = valueOrElse(getInteger(this, r), 0)
171+
172+
173+func aq (ar) = makeString(["%s%s%s", ar, "total", "bal"], e)
174+
175+
176+func as (ar,at) = makeString(["%s%s%s", ar, at, "bal"], e)
177+
178+
179+func au (ar) = makeString(["%s%s%s", ar, "total", "balINT"], e)
180+
181+
182+func av (ar,at) = makeString(["%s%s%s", ar, at, "balINT"], e)
183+
184+
185+func aw (ar) = makeString(["%s%s%s", ar, "total", "lastUpd"], e)
186+
187+
188+func ax (ar,at) = makeString(["%s%s%s", ar, at, "lastUpd"], e)
189+
190+
191+func ay (ar) = makeString(["%s%s%s%s", ar, "common", "lpInt"], e)
192+
193+
194+func az (ar) = makeString(["%s%s%s%s", ar, "common", "lpIntH"], e)
195+
196+
197+func aA (ar,at) = makeString(["%s%s%s%s", ar, at, "lpInt"], e)
198+
199+
200+func aB (ar,at) = makeString(["%s%s%s%s", ar, at, "lpIntH"], e)
201+
202+
203+func aC (ar) = makeString(["%s", ar, "wxPerLp"], e)
204+
205+
206+func aD (ar) = makeString(["%s", ar, "wxPerLpX18"], e)
207+
208+
209+func aE (ar,at) = makeString(["%s%s%s%s", ar, at, "uIntL"], e)
210+
211+
212+func aF (aG,at,aH) = makeString(["%s%s%s%s__history", aG, at, aH], e)
213+
214+
215+func aI (at,ar,aG,aJ) = makeString(["%s%s%s%d%d%d", at, ar, aG, toString(height), toString(lastBlock.timestamp), toString(aJ)], e)
216+
217+
218+func aK (aG,at,ar,aJ,aL) = StringEntry(aF(aG, at, toBase58String(aL)), aI(at, ar, aG, aJ))
219+
220+
221+let aM = q(D())
222+
223+let aN = addressFromStringValue(aM)
224+
225+let Z = X(aN)
226+
227+let aO = aa(Z)
228+
229+let aP = Y(Z)
230+
231+func aQ (aR,aS,aT,aU) = if (if ((aS == 0))
232+ then (aR > 0)
233+ else false)
234+ then 0
235+ else if ((aR == 0))
236+ then aT
237+ else if (if ((aS > 0))
238+ then (aR > 0)
239+ else false)
240+ then x(this, aU)
241+ else throw("calcWxPerLpIntegralUserLast: unexpected state")
242+
243+
244+func aV (aj,aW,aX) = {
245+ let aY = ak(aj)
246+ let aZ = ap(aY)
247+ let ba = getIntegerValue(aN, T(aW))
248+ let bb = x(aO, ae())
249+ let bc = 1000
250+ let bd = (x(aO, ac()) * bc)
251+ let be = fraction(bd, ba, (f * 3))
252+ let bf = ay(aj)
253+ let bg = az(aj)
254+ let bh = aC(aj)
255+ let bi = v(this, bg, bb)
256+ let bj = u(this, bf)
257+ let bk = 0
258+ let bl = max([(height - bi), 0])
259+ let bm = if ((bk != 0))
260+ then bk
261+ else fraction(be, b, aZ)
262+ let bn = (aZ + aX)
263+ let aT = (bj + (bm * bl))
264+ let bo = (be / bn)
265+ let bp = height
266+ let bq = makeString([toString(aT), toString(bl), toString(bm), toString(aZ), toString(be), toString(bd), toString(ba)], "::")
267+ $Tuple3(aT, [IntegerEntry(bf, aT), IntegerEntry(bg, bp), IntegerEntry(bh, bo)], bq)
61268 }
62269
63270
64-func s (t,u) = valueOrErrorMessage(getString(t, u), (("mandatory this." + u) + " is not defined"))
65-
66-
67-func v (t,u) = valueOrErrorMessage(getString(t, u), (((("mandatory " + toString(t)) + ".") + u) + " is not defined"))
68-
69-
70-func w (t,u) = valueOrElse(getInteger(t, u), 0)
71-
72-
73-func x (t,u,y) = valueOrElse(getInteger(t, u), y)
74-
75-
76-func z (t,u) = valueOrErrorMessage(getInteger(t, u), (("mandatory this." + u) + " is not defined"))
77-
78-
79-func A (t,u) = value(parseBigInt(valueOrElse(getString(t, u), "0")))
80-
81-
82-func B (t,u,y) = {
83- let k = getString(t, u)
84- if ($isInstanceOf(k, "String"))
85- then {
86- let C = k
87- value(parseBigInt(C))
88- }
89- else if ($isInstanceOf(k, "Unit"))
90- then y
91- else throw("Match error")
271+func br (aj,ai,aW,aX) = {
272+ let bs = aV(aj, aW, aX)
273+ let aT = bs._1
274+ let bt = bs._2
275+ let bu = bs._3
276+ let bc = 1000
277+ let bv = ah(ai, aj)
278+ let aR = ap(bv)
279+ let bw = aA(aj, ai)
280+ let bx = aB(aj, ai)
281+ let aU = aE(aj, ai)
282+ let by = u(this, bw)
283+ let aS = u(this, bx)
284+ let bz = aQ(aR, aS, aT, aU)
285+ let bA = (by + fraction((aT - bz), aR, (b * bc)))
286+ let bB = aT
287+ let bC = height
288+ let bq = makeString([toString(bA), toString(bz), toString(aR), bu, toString(height)], "::")
289+ $Tuple3(bA, (bt ++ [IntegerEntry(bw, bA), IntegerEntry(bx, bC), IntegerEntry(aU, bB)]), bq)
92290 }
93291
94292
95-func D (E,F) = fraction(toBigInt(E), d, toBigInt(F))
96-
97-
98-func G (j,H) = toInt(fraction(j, toBigInt(H), d))
99-
100-
101-func I () = "%s%s__config__factoryAddress"
102-
103-
104-let J = 1
105-
106-let K = 2
107-
108-let L = 3
109-
110-let M = 4
111-
112-let N = 5
113-
114-let O = 6
115-
116-let P = 7
117-
118-func Q () = "%s__factoryConfig"
119-
120-
121-func R () = "%s__managerPublicKey"
122-
123-
124-func S () = "%s__migratorPublicKey"
125-
126-
127-func T () = "%s__pendingManagerPublicKey"
128-
129-
130-func U () = "%s__stablePoolAddonAddr"
131-
132-
133-func V (W) = makeString(["%s%s%s", W, "mappings__lpAsset2PoolContract"], e)
134-
135-
136-func X () = "%s__lpTokensList"
137-
138-
139-func Y (W) = makeString(["%s%s%s", W, "mappings__lpAsset2PoolContract"], e)
140-
141-
142-func Z (aa) = makeString(["%s%s", "poolWeight", aa], e)
143-
144-
145-func ab (ac) = split(valueOrElse(getString(ac, X()), ""), e)
146-
147-
148-func ad (ac) = split(v(ac, Q()), e)
149-
150-
151-func ae (af) = addressFromStringValue(af[K])
152-
153-
154-func ag (af) = addressFromStringValue(af[N])
155-
156-
157-func ah (af) = addressFromStringValue(af[J])
158-
159-
160-func ai () = "%s%s__ratePerBlock__current"
161-
162-
163-func aj () = "%s%s__ratePerBlockMax__current"
164-
165-
166-func ak () = "%s%s__emission__startBlock"
167-
168-
169-func al () = "%s%s__emission__duration"
170-
171-
172-func am () = "%s%s__emission__endBlock"
173-
174-
175-func an (ao,ap) = makeString(["%s%s%s__staked", ao, ap], e)
176-
177-
178-func aq (ap) = ("%s%s%s__staked__total__" + ap)
179-
180-
181-func ar (ap,ao) = makeString(["%s%s%s__claimed", ao, ap], e)
182-
183-
184-func as (ap,ao) = makeString(["%s%s%s__claimedMinReward", ao, ap], e)
185-
186-
187-func at (ap,ao) = makeString(["%s%s%s__claimedBoostReward", ao, ap], e)
188-
189-
190-func au (ap) = makeString(["%s%s%s__claimed__total", ap], e)
191-
192-
193-func av (u) = valueOrElse(getInteger(this, u), 0)
194-
195-
196-func aw (ax) = makeString(["%s%s%s", ax, "total", "bal"], e)
197-
198-
199-func ay (ax,az) = makeString(["%s%s%s", ax, az, "bal"], e)
200-
201-
202-func aA (ax) = makeString(["%s%s%s", ax, "total", "balINT"], e)
203-
204-
205-func aB (ax,az) = makeString(["%s%s%s", ax, az, "balINT"], e)
206-
207-
208-func aC (ax) = makeString(["%s%s%s", ax, "total", "lastUpd"], e)
209-
210-
211-func aD (ax,az) = makeString(["%s%s%s", ax, az, "lastUpd"], e)
212-
213-
214-func aE (ax) = makeString(["%s%s%s%s", ax, "common", "lpInt"], e)
215-
216-
217-func aF (ax) = makeString(["%s%s%s%s", ax, "common", "lpIntH"], e)
218-
219-
220-func aG (ax,az) = makeString(["%s%s%s%s", ax, az, "lpInt"], e)
221-
222-
223-func aH (ax,az) = makeString(["%s%s%s%s", ax, az, "lpIntH"], e)
224-
225-
226-func aI (ax) = makeString(["%s", ax, "wxPerLp"], e)
227-
228-
229-func aJ (ax) = makeString(["%s", ax, "wxPerLpX18"], e)
230-
231-
232-func aK (ax,az) = makeString(["%s%s%s%s", ax, az, "uIntL"], e)
233-
234-
235-func aL (aM,az,aN) = makeString(["%s%s%s%s__history", aM, az, aN], e)
236-
237-
238-func aO (az,ax,aM,aP) = makeString(["%s%s%s%d%d%d", az, ax, aM, toString(height), toString(lastBlock.timestamp), toString(aP)], e)
239-
240-
241-func aQ (aM,az,ax,aP,aR) = StringEntry(aL(aM, az, toBase58String(aR)), aO(az, ax, aM, aP))
242-
243-
244-let aS = s(this, I())
245-
246-let aT = addressFromStringValue(aS)
247-
248-let af = ad(aT)
249-
250-let aU = ag(af)
251-
252-let aV = ae(af)
253-
254-func aW (aX,aY,aZ,ba) = if (if ((aY == g))
255- then (aX > g)
256- else false)
257- then g
258- else if ((aX == g))
259- then aZ
260- else if (if ((aY > g))
261- then (aX > g)
262- else false)
263- then value(parseBigInt(s(this, ba)))
264- else throw("calcWxPerLpIntegralUserLast: unexpected state")
265-
266-
267-func bb (ap,bc,bd) = {
268- let be = aq(ap)
269- let bf = toBigInt(av(be))
270- let bg = if ((bf == g))
271- then h
272- else bf
273- let bh = getIntegerValue(aT, Z(bc))
274- let bi = z(aU, ak())
275- let bj = 1000
276- let bk = (z(aU, ai()) * bj)
277- let bl = fraction(bk, bh, (f * 3))
278- let bm = aE(ap)
279- let bn = aF(ap)
280- let bo = aI(ap)
281- let bp = x(this, bn, bi)
282- let bq = A(this, bm)
283- let br = 0
284- let bs = max([(height - bp), 0])
285- let bt = if ((br != 0))
286- then toBigInt(br)
287- else fraction(toBigInt(bl), toBigInt(b), bg)
288- let bu = (bf + toBigInt(bd))
289- let bv = if ((bu == g))
290- then h
291- else bu
292- let aZ = (bq + (bt * toBigInt(bs)))
293- let bw = (toBigInt(bl) / bv)
294- let bx = height
295- let by = makeString(["wxPerLpIntegralNew=", toString(aZ), "dh=", toString(bs), "wxPerLpX3=", toString(bt), "stakedTotal=", toString(bf), "poolWxEmissionPerBlockX3=", toString(bl), "wxEmissionPerBlockX3=", toString(bk), "poolWeight=", toString(bh)], "::")
296- $Tuple3(aZ, [StringEntry(bm, toString(aZ)), IntegerEntry(bn, bx), StringEntry(bo, toString(bw))], by)
297- }
298-
299-
300-func bz (ap,ao,bc,bd) = {
301- let bA = bb(ap, bc, bd)
302- let aZ = bA._1
303- let bB = bA._2
304- let bC = bA._3
305- let bj = 1000
306- let bD = an(ao, ap)
307- let aX = av(bD)
308- let bE = aG(ap, ao)
309- let bF = aH(ap, ao)
310- let ba = aK(ap, ao)
311- let bG = A(this, bE)
312- let aY = w(this, bF)
313- let bH = aW(toBigInt(aX), toBigInt(aY), aZ, ba)
314- let bI = (b * bj)
315- let bJ = (bG + fraction((aZ - bH), toBigInt(aX), toBigInt(bI)))
316- let bK = aZ
317- let bL = height
318- let by = makeString(["wxPerLpIntegralUserLastUpdHeightOrZero=", toString(aY), "this.getStringOrFail(wxPerLpIntegralUserLastKEY).parseBigInt().value()=", toString(value(parseBigInt(s(this, ba)))), "wxPerLpIntegralNew=", toString(aZ), "wxToClaimUserNew=", toString(bJ), "wxPerLpIntegralUserLast=", toString(bH), "stakedByUser=", toString(aX), "poolDEBUG=", bC, "height=", toString(height)], "::")
319- $Tuple3(bJ, (bB ++ [StringEntry(bE, toString(bJ)), IntegerEntry(bF, bL), StringEntry(ba, toString(bK))]), by)
320- }
321-
322-
323-func bM () = {
324- let k = getString(R())
325- if ($isInstanceOf(k, "String"))
293+func bD () = {
294+ let i = getString(M())
295+ if ($isInstanceOf(i, "String"))
326296 then {
327- let C = k
328- fromBase58String(C)
297+ let bE = i
298+ fromBase58String(bE)
329299 }
330- else if ($isInstanceOf(k, "Unit"))
300+ else if ($isInstanceOf(i, "Unit"))
331301 then unit
332302 else throw("Match error")
333303 }
334304
335305
336-func bN () = {
337- let k = getString(S())
338- if ($isInstanceOf(k, "String"))
306+func bF () = {
307+ let i = getString(N())
308+ if ($isInstanceOf(i, "String"))
339309 then {
340- let C = k
341- fromBase58String(C)
310+ let bE = i
311+ fromBase58String(bE)
342312 }
343- else if ($isInstanceOf(k, "Unit"))
313+ else if ($isInstanceOf(i, "Unit"))
344314 then unit
345315 else throw("Match error")
346316 }
347317
348318
349-func bO () = {
350- let k = getString(T())
351- if ($isInstanceOf(k, "String"))
319+func bG (bH) = {
320+ let bI = throw("Permission denied")
321+ let i = bD()
322+ if ($isInstanceOf(i, "ByteVector"))
352323 then {
353- let C = k
354- fromBase58String(C)
324+ let bJ = i
325+ if ((bH.callerPublicKey == bJ))
326+ then true
327+ else bI
355328 }
356- else if ($isInstanceOf(k, "Unit"))
357- then unit
329+ else if ($isInstanceOf(i, "Unit"))
330+ then if ((bH.caller == this))
331+ then true
332+ else bI
358333 else throw("Match error")
359334 }
360335
361336
362-func bP (bQ) = {
363- let bR = throw("Permission denied")
364- let k = bM()
365- if ($isInstanceOf(k, "ByteVector"))
366- then {
367- let bS = k
368- if ((bQ.callerPublicKey == bS))
369- then true
370- else bR
371- }
372- else if ($isInstanceOf(k, "Unit"))
373- then if ((bQ.caller == this))
374- then true
375- else bR
376- else throw("Match error")
377- }
378-
379-
380-@Callable(bQ)
381-func constructor (bT) = {
382- let bU = bP(bQ)
383- if ((bU == bU))
384- then [StringEntry(I(), bT)]
337+@Callable(bH)
338+func constructor (bK) = {
339+ let bL = bG(bH)
340+ if ((bL == bL))
341+ then [StringEntry(D(), bK)]
385342 else throw("Strict value is not equal to itself.")
386343 }
387344
388345
389346
390-@Callable(bQ)
391-func setManager (bV) = {
392- let bU = bP(bQ)
393- if ((bU == bU))
347+@Callable(bH)
348+func setManager (bM) = {
349+ let bL = bG(bH)
350+ if ((bL == bL))
394351 then {
395- let bW = fromBase58String(bV)
396- if ((bW == bW))
397- then [StringEntry(T(), bV)]
352+ let bN = fromBase58String(bM)
353+ if ((bN == bN))
354+ then [StringEntry(N(), bM)]
398355 else throw("Strict value is not equal to itself.")
399356 }
400357 else throw("Strict value is not equal to itself.")
402359
403360
404361
405-@Callable(bQ)
362+@Callable(bH)
406363 func confirmManager () = {
407- let bX = bO()
408- let bY = if (isDefined(bX))
364+ let bO = bF()
365+ let bP = if (isDefined(bO))
409366 then true
410367 else throw("No pending manager")
411- if ((bY == bY))
368+ if ((bP == bP))
412369 then {
413- let bZ = if ((bQ.callerPublicKey == value(bX)))
370+ let bQ = if ((bH.callerPublicKey == value(bO)))
414371 then true
415372 else throw("You are not pending manager")
416- if ((bZ == bZ))
417- then [StringEntry(R(), toBase58String(value(bX))), DeleteEntry(T())]
373+ if ((bQ == bQ))
374+ then [StringEntry(M(), toBase58String(value(bO))), DeleteEntry(N())]
418375 else throw("Strict value is not equal to itself.")
419376 }
420377 else throw("Strict value is not equal to itself.")
422379
423380
424381
425-@Callable(bQ)
426-func stake () = if ((size(bQ.payments) != 1))
382+@Callable(bH)
383+func stake () = if ((size(bH.payments) != 1))
427384 then throw("invalid payment - exact one payment must be attached")
428385 else {
429- let ca = bQ.payments[0]
430- let ax = value(ca.assetId)
431- let ap = toBase58String(ax)
432- let aP = ca.amount
433- let bc = valueOrErrorMessage(getString(aT, V(ap)), ("unsupported lp asset " + ap))
434- let cb = toString(bQ.caller)
435- let ao = if ((cb == bc))
436- then toString(bQ.originCaller)
437- else cb
438- let bD = an(ao, ap)
439- let be = aq(ap)
440- let aX = av(bD)
441- let bf = av(be)
442- let cc = bz(ap, ao, bc, aP)
443- let bJ = cc._1
444- let cd = cc._2
445- let by = cc._3
446- ([IntegerEntry(bD, (aX + aP)), IntegerEntry(be, (bf + aP)), aQ("stake", ao, ap, aP, bQ.transactionId)] ++ cd)
386+ let bR = bH.payments[0]
387+ let ar = value(bR.assetId)
388+ let aj = toBase58String(ar)
389+ let aJ = bR.amount
390+ let aW = valueOrErrorMessage(getString(aN, P(aj)), ("unsupported lp asset " + aj))
391+ let bS = toString(bH.caller)
392+ let ai = if ((bS == aW))
393+ then toString(bH.originCaller)
394+ else bS
395+ let bv = ah(ai, aj)
396+ let aY = ak(aj)
397+ let aR = ap(bv)
398+ let aZ = ap(aY)
399+ let bT = br(aj, ai, aW, aJ)
400+ let bA = bT._1
401+ let bU = bT._2
402+ let bq = bT._3
403+ ([IntegerEntry(bv, (aR + aJ)), IntegerEntry(aY, (aZ + aJ)), aK("stake", ai, aj, aJ, bH.transactionId)] ++ bU)
447404 }
448405
449406
450407
451-@Callable(bQ)
452-func unstake (ap,aP) = {
453- let ax = fromBase58String(ap)
454- let bc = valueOrErrorMessage(getString(aT, V(ap)), ("unsupported lp asset " + ap))
455- let ce = valueOrElse(getString(this, U()), bc)
456- let cb = toString(bQ.caller)
457- let ao = if (if ((cb == bc))
408+@Callable(bH)
409+func unstake (aj,aJ) = {
410+ let ar = fromBase58String(aj)
411+ let aW = valueOrErrorMessage(getString(aN, P(aj)), ("unsupported lp asset " + aj))
412+ let bV = valueOrElse(getString(this, O()), aW)
413+ let bS = toString(bH.caller)
414+ let ai = if (if ((bS == aW))
458415 then true
459- else (cb == ce))
460- then toString(bQ.originCaller)
461- else cb
462- let bD = an(ao, ap)
463- let be = aq(ap)
464- let aX = av(bD)
465- let bf = av(be)
466- let cf = bz(ap, ao, bc, -(aP))
467- let bJ = cf._1
468- let cd = cf._2
469- let by = cf._3
470- if ((aP > aX))
416+ else (bS == bV))
417+ then toString(bH.originCaller)
418+ else bS
419+ let bv = ah(ai, aj)
420+ let aY = ak(aj)
421+ let aR = ap(bv)
422+ let aZ = ap(aY)
423+ let bW = br(aj, ai, aW, -(aJ))
424+ let bA = bW._1
425+ let bU = bW._2
426+ let bq = bW._3
427+ if ((aJ > aR))
471428 then throw("passed amount is less then available")
472- else ([IntegerEntry(bD, (aX - aP)), IntegerEntry(be, (bf - aP)), ScriptTransfer(bQ.caller, aP, ax), aQ("unstake", ao, ap, aP, bQ.transactionId)] ++ cd)
429+ else ([IntegerEntry(bv, (aR - aJ)), IntegerEntry(aY, (aZ - aJ)), ScriptTransfer(bH.caller, aJ, ar), aK("unstake", ai, aj, aJ, bH.transactionId)] ++ bU)
473430 }
474431
475432
476433
477-@Callable(bQ)
478-func claimWx (ap) = {
479- let az = bQ.caller
480- let ao = toString(bQ.caller)
481- let bc = v(aT, Y(ap))
482- let cg = ar(ap, ao)
483- let ch = au(ap)
484- let ci = as(ap, ao)
485- let cj = at(ap, ao)
486- let ck = toBigInt(w(this, cg))
487- let cl = toBigInt(w(this, ci))
488- let cm = toBigInt(w(this, cj))
489- let cn = A(this, ch)
490- let co = bz(ap, ao, bc, 0)
491- let bJ = co._1
492- let cd = co._2
493- let by = co._3
494- let cp = (bJ - ck)
495- if ((g >= cp))
434+@Callable(bH)
435+func claimWx (aj) = {
436+ let at = bH.caller
437+ let ai = toString(bH.caller)
438+ let aW = s(aN, S(aj))
439+ let bX = al(aj, ai)
440+ let bY = ao(aj)
441+ let bZ = am(aj, ai)
442+ let ca = an(aj, ai)
443+ let cb = u(this, bX)
444+ let cc = u(this, bZ)
445+ let cd = u(this, ca)
446+ let ce = u(this, bY)
447+ let cf = br(aj, ai, aW, 0)
448+ let bA = cf._1
449+ let bU = cf._2
450+ let bq = cf._3
451+ let cg = (bA - cb)
452+ if ((0 >= cg))
496453 then throw("nothing to claim")
497454 else {
498- let cq = m(i(invoke(aV, "claimWxBoost", [ap, ao], nil))[0])
499- let cr = cp
500- let cs = min([(cr * toBigInt(2)), toBigInt(cq)])
501- let ct = q(i(invoke(aU, "emit", [toInt(cr)], nil))[0])
502- let cu = i(invoke(aU, "emit", [toInt(cs)], nil))
503- if ((cu == cu))
504- then {
505- let cv = (ck + cp)
506- let cw = (cl + cr)
507- let cx = (cl + cr)
508- let cy = (cl + cr)
509-[StringEntry(cg, toString(cv)), StringEntry(ci, toString(cw)), StringEntry(cj, toString(cx)), StringEntry(ch, toString(cy)), ScriptTransfer(az, toInt(cr), ct), ScriptTransfer(az, toInt(cs), ct), aQ("claim", ao, ap, toInt(cp), bQ.transactionId)]
510- }
455+ let ch = k(g(invoke(aP, "claimWxBoost", [aj, ai], nil))[0])
456+ let ci = cg
457+ let cj = min([(ci * 2), ch])
458+ let ck = o(g(invoke(aO, "emit", [ci], nil))[0])
459+ let cl = g(invoke(aO, "emit", [cj], nil))
460+ if ((cl == cl))
461+ then [IntegerEntry(bX, (cb + cg)), IntegerEntry(bZ, (cc + ci)), IntegerEntry(ca, (cd + cj)), IntegerEntry(bY, (ce + cg)), ScriptTransfer(at, ci, ck), ScriptTransfer(at, cj, ck), aK("claim", ai, aj, cg, bH.transactionId)]
511462 else throw("Strict value is not equal to itself.")
512463 }
513464 }
514465
515466
516467
517-@Callable(bQ)
518-func claimWxREADONLY (ap,ao) = {
519- let bD = an(ao, ap)
520- let be = aq(ap)
521- let cg = ar(ap, ao)
522- let aX = av(bD)
523- let bf = av(be)
524- let ck = w(this, cg)
525- let bc = v(aT, Y(ap))
526- let bh = getIntegerValue(aT, Z(bc))
527- let cz = z(aU, ai())
528- let bi = z(aU, ak())
529- let cA = if ((bi > height))
468+@Callable(bH)
469+func claimWxREADONLY (aj,ai) = {
470+ let bv = ah(ai, aj)
471+ let aY = ak(aj)
472+ let bX = al(aj, ai)
473+ let aR = ap(bv)
474+ let aZ = ap(aY)
475+ let cb = u(this, bX)
476+ let aW = s(aN, S(aj))
477+ let ba = getIntegerValue(aN, T(aW))
478+ let cm = x(aO, ac())
479+ let bb = x(aO, ae())
480+ let cn = if ((bb > height))
530481 then 0
531- else (height - bi)
532- let cB = fraction((cz * cA), bh, f)
533- let cC = fraction(cB, aX, bf)
534- let cD = bz(ap, ao, bc, 0)
535- let bJ = cD._1
536- let cd = cD._2
537- let by = cD._3
538- let cp = (bJ - toBigInt(ck))
539- let cE = i(invoke(aV, "claimWxBoostREADONLY", [ap, ao], nil))
540- let cq = m(cE[0])
541- let cF = o(cE[1])
542- let cr = cp
543- let cs = min([(cr * toBigInt(2)), toBigInt(cq)])
544- let cG = (cr + cs)
545- $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", ap, ao, toString(cG), toString(ck), toString(cr), toString(cs), toString(cC)], e))
482+ else (height - bb)
483+ let co = fraction((cm * cn), ba, f)
484+ let cp = fraction(co, aR, aZ)
485+ let cq = br(aj, ai, aW, 0)
486+ let bA = cq._1
487+ let bU = cq._2
488+ let bq = cq._3
489+ let cg = (bA - cb)
490+ let cr = g(invoke(aP, "claimWxBoostREADONLY", [aj, ai], nil))
491+ let ch = k(cr[0])
492+ let cs = m(cr[1])
493+ let ci = cg
494+ let cj = min([(ci * 2), ch])
495+ let ct = (ci + cj)
496+ $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", aj, ai, toString(ct), toString(cb), toString(ci), toString(cj), ((((bq + "::") + toString(cp)) + "::BOOSTDEBUG::") + cs)], e))
546497 }
547498
548499
549500
550-@Callable(bQ)
551-func onModifyWeight (ap,bc) = if ((bQ.caller != aT))
501+@Callable(bH)
502+func onModifyWeight (aj,aW) = if ((bH.caller != aN))
552503 then throw("permissions denied")
553504 else {
554- let cH = bb(ap, bc, 0)
555- let aZ = cH._1
556- let bB = cH._2
557- let bC = cH._3
558- bB
505+ let cu = aV(aj, aW, 0)
506+ let aT = cu._1
507+ let bt = cu._2
508+ let bu = cu._3
509+ bt
559510 }
560511
561512
562-@Verifier(cI)
563-func cJ () = {
564- let cK = {
565- let k = bM()
566- if ($isInstanceOf(k, "ByteVector"))
513+@Verifier(cv)
514+func cw () = {
515+ let cx = {
516+ let i = bD()
517+ if ($isInstanceOf(i, "ByteVector"))
567518 then {
568- let bS = k
569- bS
519+ let bJ = i
520+ bJ
570521 }
571- else if ($isInstanceOf(k, "Unit"))
572- then cI.senderPublicKey
522+ else if ($isInstanceOf(i, "Unit"))
523+ then cv.senderPublicKey
573524 else throw("Match error")
574525 }
575- let cL = {
576- let k = bN()
577- if ($isInstanceOf(k, "ByteVector"))
578- then {
579- let bS = k
580- bS
581- }
582- else if ($isInstanceOf(k, "Unit"))
583- then cI.senderPublicKey
584- else throw("Match error")
585- }
586- if (sigVerify(cI.bodyBytes, cI.proofs[0], cK))
587- then true
588- else sigVerify(cI.bodyBytes, cI.proofs[0], cL)
526+ sigVerify(cv.bodyBytes, cv.proofs[0], cx)
589527 }
590528
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
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 = "__"
1313
1414 let f = b
1515
16-let g = toBigInt(0)
17-
18-let h = toBigInt(1)
19-
20-func i (j) = {
21- let k = j
22- if ($isInstanceOf(k, "List[Any]"))
16+func g (h) = {
17+ let i = h
18+ if ($isInstanceOf(i, "List[Any]"))
2319 then {
24- let l = k
25- l
20+ let j = i
21+ j
2622 }
2723 else throw("fail to cast into List[Any]")
2824 }
2925
3026
31-func m (j) = {
32- let k = j
33- if ($isInstanceOf(k, "Int"))
27+func k (h) = {
28+ let i = h
29+ if ($isInstanceOf(i, "Int"))
3430 then {
35- let n = k
31+ let l = i
32+ l
33+ }
34+ else throw("fail to cast into Int")
35+ }
36+
37+
38+func m (h) = {
39+ let i = h
40+ if ($isInstanceOf(i, "String"))
41+ then {
42+ let n = i
3643 n
3744 }
3845 else throw("fail to cast into Int")
3946 }
4047
4148
42-func o (j) = {
43- let k = j
44- if ($isInstanceOf(k, "String"))
49+func o (h) = {
50+ let i = h
51+ if ($isInstanceOf(i, "ByteVector"))
4552 then {
46- let p = k
53+ let p = i
4754 p
4855 }
4956 else throw("fail to cast into Int")
5057 }
5158
5259
53-func q (j) = {
54- let k = j
55- if ($isInstanceOf(k, "ByteVector"))
56- then {
57- let r = k
58- r
59- }
60- else throw("fail to cast into Int")
60+func q (r) = valueOrErrorMessage(getString(r), (("mandatory this." + r) + " is not defined"))
61+
62+
63+func s (t,r) = valueOrErrorMessage(getString(t, r), (((("mandatory " + toString(t)) + ".") + r) + " is not defined"))
64+
65+
66+func u (t,r) = valueOrElse(getInteger(t, r), 0)
67+
68+
69+func v (t,r,w) = valueOrElse(getInteger(t, r), w)
70+
71+
72+func x (t,r) = valueOrErrorMessage(getInteger(t, r), (("mandatory this." + r) + " is not defined"))
73+
74+
75+func y (z,A) = fraction(toBigInt(z), d, toBigInt(A))
76+
77+
78+func B (h,C) = toInt(fraction(h, toBigInt(C), d))
79+
80+
81+func D () = "%s%s__config__factoryAddress"
82+
83+
84+let E = 1
85+
86+let F = 2
87+
88+let G = 3
89+
90+let H = 4
91+
92+let I = 5
93+
94+let J = 6
95+
96+let K = 7
97+
98+func L () = "%s__factoryConfig"
99+
100+
101+func M () = "%s__managerPublicKey"
102+
103+
104+func N () = "%s__pendingManagerPublicKey"
105+
106+
107+func O () = "%s__stablePoolAddonAddr"
108+
109+
110+func P (Q) = makeString(["%s%s%s", Q, "mappings__lpAsset2PoolContract"], e)
111+
112+
113+func R () = "%s__lpTokensList"
114+
115+
116+func S (Q) = makeString(["%s%s%s", Q, "mappings__lpAsset2PoolContract"], e)
117+
118+
119+func T (U) = makeString(["%s%s", "poolWeight", U], e)
120+
121+
122+func V (W) = split(valueOrElse(getString(W, R()), ""), e)
123+
124+
125+func X (W) = split(s(W, L()), e)
126+
127+
128+func Y (Z) = addressFromStringValue(Z[F])
129+
130+
131+func aa (Z) = addressFromStringValue(Z[I])
132+
133+
134+func ab (Z) = addressFromStringValue(Z[E])
135+
136+
137+func ac () = "%s%s__ratePerBlock__current"
138+
139+
140+func ad () = "%s%s__ratePerBlockMax__current"
141+
142+
143+func ae () = "%s%s__emission__startBlock"
144+
145+
146+func af () = "%s%s__emission__duration"
147+
148+
149+func ag () = "%s%s__emission__endBlock"
150+
151+
152+func ah (ai,aj) = makeString(["%s%s%s__staked", ai, aj], e)
153+
154+
155+func ak (aj) = ("%s%s%s__staked__total__" + aj)
156+
157+
158+func al (aj,ai) = makeString(["%s%s%s__claimed", ai, aj], e)
159+
160+
161+func am (aj,ai) = makeString(["%s%s%s__claimedMinReward", ai, aj], e)
162+
163+
164+func an (aj,ai) = makeString(["%s%s%s__claimedBoostReward", ai, aj], e)
165+
166+
167+func ao (aj) = makeString(["%s%s%s__claimed", "total", aj], e)
168+
169+
170+func ap (r) = valueOrElse(getInteger(this, r), 0)
171+
172+
173+func aq (ar) = makeString(["%s%s%s", ar, "total", "bal"], e)
174+
175+
176+func as (ar,at) = makeString(["%s%s%s", ar, at, "bal"], e)
177+
178+
179+func au (ar) = makeString(["%s%s%s", ar, "total", "balINT"], e)
180+
181+
182+func av (ar,at) = makeString(["%s%s%s", ar, at, "balINT"], e)
183+
184+
185+func aw (ar) = makeString(["%s%s%s", ar, "total", "lastUpd"], e)
186+
187+
188+func ax (ar,at) = makeString(["%s%s%s", ar, at, "lastUpd"], e)
189+
190+
191+func ay (ar) = makeString(["%s%s%s%s", ar, "common", "lpInt"], e)
192+
193+
194+func az (ar) = makeString(["%s%s%s%s", ar, "common", "lpIntH"], e)
195+
196+
197+func aA (ar,at) = makeString(["%s%s%s%s", ar, at, "lpInt"], e)
198+
199+
200+func aB (ar,at) = makeString(["%s%s%s%s", ar, at, "lpIntH"], e)
201+
202+
203+func aC (ar) = makeString(["%s", ar, "wxPerLp"], e)
204+
205+
206+func aD (ar) = makeString(["%s", ar, "wxPerLpX18"], e)
207+
208+
209+func aE (ar,at) = makeString(["%s%s%s%s", ar, at, "uIntL"], e)
210+
211+
212+func aF (aG,at,aH) = makeString(["%s%s%s%s__history", aG, at, aH], e)
213+
214+
215+func aI (at,ar,aG,aJ) = makeString(["%s%s%s%d%d%d", at, ar, aG, toString(height), toString(lastBlock.timestamp), toString(aJ)], e)
216+
217+
218+func aK (aG,at,ar,aJ,aL) = StringEntry(aF(aG, at, toBase58String(aL)), aI(at, ar, aG, aJ))
219+
220+
221+let aM = q(D())
222+
223+let aN = addressFromStringValue(aM)
224+
225+let Z = X(aN)
226+
227+let aO = aa(Z)
228+
229+let aP = Y(Z)
230+
231+func aQ (aR,aS,aT,aU) = if (if ((aS == 0))
232+ then (aR > 0)
233+ else false)
234+ then 0
235+ else if ((aR == 0))
236+ then aT
237+ else if (if ((aS > 0))
238+ then (aR > 0)
239+ else false)
240+ then x(this, aU)
241+ else throw("calcWxPerLpIntegralUserLast: unexpected state")
242+
243+
244+func aV (aj,aW,aX) = {
245+ let aY = ak(aj)
246+ let aZ = ap(aY)
247+ let ba = getIntegerValue(aN, T(aW))
248+ let bb = x(aO, ae())
249+ let bc = 1000
250+ let bd = (x(aO, ac()) * bc)
251+ let be = fraction(bd, ba, (f * 3))
252+ let bf = ay(aj)
253+ let bg = az(aj)
254+ let bh = aC(aj)
255+ let bi = v(this, bg, bb)
256+ let bj = u(this, bf)
257+ let bk = 0
258+ let bl = max([(height - bi), 0])
259+ let bm = if ((bk != 0))
260+ then bk
261+ else fraction(be, b, aZ)
262+ let bn = (aZ + aX)
263+ let aT = (bj + (bm * bl))
264+ let bo = (be / bn)
265+ let bp = height
266+ let bq = makeString([toString(aT), toString(bl), toString(bm), toString(aZ), toString(be), toString(bd), toString(ba)], "::")
267+ $Tuple3(aT, [IntegerEntry(bf, aT), IntegerEntry(bg, bp), IntegerEntry(bh, bo)], bq)
61268 }
62269
63270
64-func s (t,u) = valueOrErrorMessage(getString(t, u), (("mandatory this." + u) + " is not defined"))
65-
66-
67-func v (t,u) = valueOrErrorMessage(getString(t, u), (((("mandatory " + toString(t)) + ".") + u) + " is not defined"))
68-
69-
70-func w (t,u) = valueOrElse(getInteger(t, u), 0)
71-
72-
73-func x (t,u,y) = valueOrElse(getInteger(t, u), y)
74-
75-
76-func z (t,u) = valueOrErrorMessage(getInteger(t, u), (("mandatory this." + u) + " is not defined"))
77-
78-
79-func A (t,u) = value(parseBigInt(valueOrElse(getString(t, u), "0")))
80-
81-
82-func B (t,u,y) = {
83- let k = getString(t, u)
84- if ($isInstanceOf(k, "String"))
85- then {
86- let C = k
87- value(parseBigInt(C))
88- }
89- else if ($isInstanceOf(k, "Unit"))
90- then y
91- else throw("Match error")
271+func br (aj,ai,aW,aX) = {
272+ let bs = aV(aj, aW, aX)
273+ let aT = bs._1
274+ let bt = bs._2
275+ let bu = bs._3
276+ let bc = 1000
277+ let bv = ah(ai, aj)
278+ let aR = ap(bv)
279+ let bw = aA(aj, ai)
280+ let bx = aB(aj, ai)
281+ let aU = aE(aj, ai)
282+ let by = u(this, bw)
283+ let aS = u(this, bx)
284+ let bz = aQ(aR, aS, aT, aU)
285+ let bA = (by + fraction((aT - bz), aR, (b * bc)))
286+ let bB = aT
287+ let bC = height
288+ let bq = makeString([toString(bA), toString(bz), toString(aR), bu, toString(height)], "::")
289+ $Tuple3(bA, (bt ++ [IntegerEntry(bw, bA), IntegerEntry(bx, bC), IntegerEntry(aU, bB)]), bq)
92290 }
93291
94292
95-func D (E,F) = fraction(toBigInt(E), d, toBigInt(F))
96-
97-
98-func G (j,H) = toInt(fraction(j, toBigInt(H), d))
99-
100-
101-func I () = "%s%s__config__factoryAddress"
102-
103-
104-let J = 1
105-
106-let K = 2
107-
108-let L = 3
109-
110-let M = 4
111-
112-let N = 5
113-
114-let O = 6
115-
116-let P = 7
117-
118-func Q () = "%s__factoryConfig"
119-
120-
121-func R () = "%s__managerPublicKey"
122-
123-
124-func S () = "%s__migratorPublicKey"
125-
126-
127-func T () = "%s__pendingManagerPublicKey"
128-
129-
130-func U () = "%s__stablePoolAddonAddr"
131-
132-
133-func V (W) = makeString(["%s%s%s", W, "mappings__lpAsset2PoolContract"], e)
134-
135-
136-func X () = "%s__lpTokensList"
137-
138-
139-func Y (W) = makeString(["%s%s%s", W, "mappings__lpAsset2PoolContract"], e)
140-
141-
142-func Z (aa) = makeString(["%s%s", "poolWeight", aa], e)
143-
144-
145-func ab (ac) = split(valueOrElse(getString(ac, X()), ""), e)
146-
147-
148-func ad (ac) = split(v(ac, Q()), e)
149-
150-
151-func ae (af) = addressFromStringValue(af[K])
152-
153-
154-func ag (af) = addressFromStringValue(af[N])
155-
156-
157-func ah (af) = addressFromStringValue(af[J])
158-
159-
160-func ai () = "%s%s__ratePerBlock__current"
161-
162-
163-func aj () = "%s%s__ratePerBlockMax__current"
164-
165-
166-func ak () = "%s%s__emission__startBlock"
167-
168-
169-func al () = "%s%s__emission__duration"
170-
171-
172-func am () = "%s%s__emission__endBlock"
173-
174-
175-func an (ao,ap) = makeString(["%s%s%s__staked", ao, ap], e)
176-
177-
178-func aq (ap) = ("%s%s%s__staked__total__" + ap)
179-
180-
181-func ar (ap,ao) = makeString(["%s%s%s__claimed", ao, ap], e)
182-
183-
184-func as (ap,ao) = makeString(["%s%s%s__claimedMinReward", ao, ap], e)
185-
186-
187-func at (ap,ao) = makeString(["%s%s%s__claimedBoostReward", ao, ap], e)
188-
189-
190-func au (ap) = makeString(["%s%s%s__claimed__total", ap], e)
191-
192-
193-func av (u) = valueOrElse(getInteger(this, u), 0)
194-
195-
196-func aw (ax) = makeString(["%s%s%s", ax, "total", "bal"], e)
197-
198-
199-func ay (ax,az) = makeString(["%s%s%s", ax, az, "bal"], e)
200-
201-
202-func aA (ax) = makeString(["%s%s%s", ax, "total", "balINT"], e)
203-
204-
205-func aB (ax,az) = makeString(["%s%s%s", ax, az, "balINT"], e)
206-
207-
208-func aC (ax) = makeString(["%s%s%s", ax, "total", "lastUpd"], e)
209-
210-
211-func aD (ax,az) = makeString(["%s%s%s", ax, az, "lastUpd"], e)
212-
213-
214-func aE (ax) = makeString(["%s%s%s%s", ax, "common", "lpInt"], e)
215-
216-
217-func aF (ax) = makeString(["%s%s%s%s", ax, "common", "lpIntH"], e)
218-
219-
220-func aG (ax,az) = makeString(["%s%s%s%s", ax, az, "lpInt"], e)
221-
222-
223-func aH (ax,az) = makeString(["%s%s%s%s", ax, az, "lpIntH"], e)
224-
225-
226-func aI (ax) = makeString(["%s", ax, "wxPerLp"], e)
227-
228-
229-func aJ (ax) = makeString(["%s", ax, "wxPerLpX18"], e)
230-
231-
232-func aK (ax,az) = makeString(["%s%s%s%s", ax, az, "uIntL"], e)
233-
234-
235-func aL (aM,az,aN) = makeString(["%s%s%s%s__history", aM, az, aN], e)
236-
237-
238-func aO (az,ax,aM,aP) = makeString(["%s%s%s%d%d%d", az, ax, aM, toString(height), toString(lastBlock.timestamp), toString(aP)], e)
239-
240-
241-func aQ (aM,az,ax,aP,aR) = StringEntry(aL(aM, az, toBase58String(aR)), aO(az, ax, aM, aP))
242-
243-
244-let aS = s(this, I())
245-
246-let aT = addressFromStringValue(aS)
247-
248-let af = ad(aT)
249-
250-let aU = ag(af)
251-
252-let aV = ae(af)
253-
254-func aW (aX,aY,aZ,ba) = if (if ((aY == g))
255- then (aX > g)
256- else false)
257- then g
258- else if ((aX == g))
259- then aZ
260- else if (if ((aY > g))
261- then (aX > g)
262- else false)
263- then value(parseBigInt(s(this, ba)))
264- else throw("calcWxPerLpIntegralUserLast: unexpected state")
265-
266-
267-func bb (ap,bc,bd) = {
268- let be = aq(ap)
269- let bf = toBigInt(av(be))
270- let bg = if ((bf == g))
271- then h
272- else bf
273- let bh = getIntegerValue(aT, Z(bc))
274- let bi = z(aU, ak())
275- let bj = 1000
276- let bk = (z(aU, ai()) * bj)
277- let bl = fraction(bk, bh, (f * 3))
278- let bm = aE(ap)
279- let bn = aF(ap)
280- let bo = aI(ap)
281- let bp = x(this, bn, bi)
282- let bq = A(this, bm)
283- let br = 0
284- let bs = max([(height - bp), 0])
285- let bt = if ((br != 0))
286- then toBigInt(br)
287- else fraction(toBigInt(bl), toBigInt(b), bg)
288- let bu = (bf + toBigInt(bd))
289- let bv = if ((bu == g))
290- then h
291- else bu
292- let aZ = (bq + (bt * toBigInt(bs)))
293- let bw = (toBigInt(bl) / bv)
294- let bx = height
295- let by = makeString(["wxPerLpIntegralNew=", toString(aZ), "dh=", toString(bs), "wxPerLpX3=", toString(bt), "stakedTotal=", toString(bf), "poolWxEmissionPerBlockX3=", toString(bl), "wxEmissionPerBlockX3=", toString(bk), "poolWeight=", toString(bh)], "::")
296- $Tuple3(aZ, [StringEntry(bm, toString(aZ)), IntegerEntry(bn, bx), StringEntry(bo, toString(bw))], by)
297- }
298-
299-
300-func bz (ap,ao,bc,bd) = {
301- let bA = bb(ap, bc, bd)
302- let aZ = bA._1
303- let bB = bA._2
304- let bC = bA._3
305- let bj = 1000
306- let bD = an(ao, ap)
307- let aX = av(bD)
308- let bE = aG(ap, ao)
309- let bF = aH(ap, ao)
310- let ba = aK(ap, ao)
311- let bG = A(this, bE)
312- let aY = w(this, bF)
313- let bH = aW(toBigInt(aX), toBigInt(aY), aZ, ba)
314- let bI = (b * bj)
315- let bJ = (bG + fraction((aZ - bH), toBigInt(aX), toBigInt(bI)))
316- let bK = aZ
317- let bL = height
318- let by = makeString(["wxPerLpIntegralUserLastUpdHeightOrZero=", toString(aY), "this.getStringOrFail(wxPerLpIntegralUserLastKEY).parseBigInt().value()=", toString(value(parseBigInt(s(this, ba)))), "wxPerLpIntegralNew=", toString(aZ), "wxToClaimUserNew=", toString(bJ), "wxPerLpIntegralUserLast=", toString(bH), "stakedByUser=", toString(aX), "poolDEBUG=", bC, "height=", toString(height)], "::")
319- $Tuple3(bJ, (bB ++ [StringEntry(bE, toString(bJ)), IntegerEntry(bF, bL), StringEntry(ba, toString(bK))]), by)
320- }
321-
322-
323-func bM () = {
324- let k = getString(R())
325- if ($isInstanceOf(k, "String"))
293+func bD () = {
294+ let i = getString(M())
295+ if ($isInstanceOf(i, "String"))
326296 then {
327- let C = k
328- fromBase58String(C)
297+ let bE = i
298+ fromBase58String(bE)
329299 }
330- else if ($isInstanceOf(k, "Unit"))
300+ else if ($isInstanceOf(i, "Unit"))
331301 then unit
332302 else throw("Match error")
333303 }
334304
335305
336-func bN () = {
337- let k = getString(S())
338- if ($isInstanceOf(k, "String"))
306+func bF () = {
307+ let i = getString(N())
308+ if ($isInstanceOf(i, "String"))
339309 then {
340- let C = k
341- fromBase58String(C)
310+ let bE = i
311+ fromBase58String(bE)
342312 }
343- else if ($isInstanceOf(k, "Unit"))
313+ else if ($isInstanceOf(i, "Unit"))
344314 then unit
345315 else throw("Match error")
346316 }
347317
348318
349-func bO () = {
350- let k = getString(T())
351- if ($isInstanceOf(k, "String"))
319+func bG (bH) = {
320+ let bI = throw("Permission denied")
321+ let i = bD()
322+ if ($isInstanceOf(i, "ByteVector"))
352323 then {
353- let C = k
354- fromBase58String(C)
324+ let bJ = i
325+ if ((bH.callerPublicKey == bJ))
326+ then true
327+ else bI
355328 }
356- else if ($isInstanceOf(k, "Unit"))
357- then unit
329+ else if ($isInstanceOf(i, "Unit"))
330+ then if ((bH.caller == this))
331+ then true
332+ else bI
358333 else throw("Match error")
359334 }
360335
361336
362-func bP (bQ) = {
363- let bR = throw("Permission denied")
364- let k = bM()
365- if ($isInstanceOf(k, "ByteVector"))
366- then {
367- let bS = k
368- if ((bQ.callerPublicKey == bS))
369- then true
370- else bR
371- }
372- else if ($isInstanceOf(k, "Unit"))
373- then if ((bQ.caller == this))
374- then true
375- else bR
376- else throw("Match error")
377- }
378-
379-
380-@Callable(bQ)
381-func constructor (bT) = {
382- let bU = bP(bQ)
383- if ((bU == bU))
384- then [StringEntry(I(), bT)]
337+@Callable(bH)
338+func constructor (bK) = {
339+ let bL = bG(bH)
340+ if ((bL == bL))
341+ then [StringEntry(D(), bK)]
385342 else throw("Strict value is not equal to itself.")
386343 }
387344
388345
389346
390-@Callable(bQ)
391-func setManager (bV) = {
392- let bU = bP(bQ)
393- if ((bU == bU))
347+@Callable(bH)
348+func setManager (bM) = {
349+ let bL = bG(bH)
350+ if ((bL == bL))
394351 then {
395- let bW = fromBase58String(bV)
396- if ((bW == bW))
397- then [StringEntry(T(), bV)]
352+ let bN = fromBase58String(bM)
353+ if ((bN == bN))
354+ then [StringEntry(N(), bM)]
398355 else throw("Strict value is not equal to itself.")
399356 }
400357 else throw("Strict value is not equal to itself.")
401358 }
402359
403360
404361
405-@Callable(bQ)
362+@Callable(bH)
406363 func confirmManager () = {
407- let bX = bO()
408- let bY = if (isDefined(bX))
364+ let bO = bF()
365+ let bP = if (isDefined(bO))
409366 then true
410367 else throw("No pending manager")
411- if ((bY == bY))
368+ if ((bP == bP))
412369 then {
413- let bZ = if ((bQ.callerPublicKey == value(bX)))
370+ let bQ = if ((bH.callerPublicKey == value(bO)))
414371 then true
415372 else throw("You are not pending manager")
416- if ((bZ == bZ))
417- then [StringEntry(R(), toBase58String(value(bX))), DeleteEntry(T())]
373+ if ((bQ == bQ))
374+ then [StringEntry(M(), toBase58String(value(bO))), DeleteEntry(N())]
418375 else throw("Strict value is not equal to itself.")
419376 }
420377 else throw("Strict value is not equal to itself.")
421378 }
422379
423380
424381
425-@Callable(bQ)
426-func stake () = if ((size(bQ.payments) != 1))
382+@Callable(bH)
383+func stake () = if ((size(bH.payments) != 1))
427384 then throw("invalid payment - exact one payment must be attached")
428385 else {
429- let ca = bQ.payments[0]
430- let ax = value(ca.assetId)
431- let ap = toBase58String(ax)
432- let aP = ca.amount
433- let bc = valueOrErrorMessage(getString(aT, V(ap)), ("unsupported lp asset " + ap))
434- let cb = toString(bQ.caller)
435- let ao = if ((cb == bc))
436- then toString(bQ.originCaller)
437- else cb
438- let bD = an(ao, ap)
439- let be = aq(ap)
440- let aX = av(bD)
441- let bf = av(be)
442- let cc = bz(ap, ao, bc, aP)
443- let bJ = cc._1
444- let cd = cc._2
445- let by = cc._3
446- ([IntegerEntry(bD, (aX + aP)), IntegerEntry(be, (bf + aP)), aQ("stake", ao, ap, aP, bQ.transactionId)] ++ cd)
386+ let bR = bH.payments[0]
387+ let ar = value(bR.assetId)
388+ let aj = toBase58String(ar)
389+ let aJ = bR.amount
390+ let aW = valueOrErrorMessage(getString(aN, P(aj)), ("unsupported lp asset " + aj))
391+ let bS = toString(bH.caller)
392+ let ai = if ((bS == aW))
393+ then toString(bH.originCaller)
394+ else bS
395+ let bv = ah(ai, aj)
396+ let aY = ak(aj)
397+ let aR = ap(bv)
398+ let aZ = ap(aY)
399+ let bT = br(aj, ai, aW, aJ)
400+ let bA = bT._1
401+ let bU = bT._2
402+ let bq = bT._3
403+ ([IntegerEntry(bv, (aR + aJ)), IntegerEntry(aY, (aZ + aJ)), aK("stake", ai, aj, aJ, bH.transactionId)] ++ bU)
447404 }
448405
449406
450407
451-@Callable(bQ)
452-func unstake (ap,aP) = {
453- let ax = fromBase58String(ap)
454- let bc = valueOrErrorMessage(getString(aT, V(ap)), ("unsupported lp asset " + ap))
455- let ce = valueOrElse(getString(this, U()), bc)
456- let cb = toString(bQ.caller)
457- let ao = if (if ((cb == bc))
408+@Callable(bH)
409+func unstake (aj,aJ) = {
410+ let ar = fromBase58String(aj)
411+ let aW = valueOrErrorMessage(getString(aN, P(aj)), ("unsupported lp asset " + aj))
412+ let bV = valueOrElse(getString(this, O()), aW)
413+ let bS = toString(bH.caller)
414+ let ai = if (if ((bS == aW))
458415 then true
459- else (cb == ce))
460- then toString(bQ.originCaller)
461- else cb
462- let bD = an(ao, ap)
463- let be = aq(ap)
464- let aX = av(bD)
465- let bf = av(be)
466- let cf = bz(ap, ao, bc, -(aP))
467- let bJ = cf._1
468- let cd = cf._2
469- let by = cf._3
470- if ((aP > aX))
416+ else (bS == bV))
417+ then toString(bH.originCaller)
418+ else bS
419+ let bv = ah(ai, aj)
420+ let aY = ak(aj)
421+ let aR = ap(bv)
422+ let aZ = ap(aY)
423+ let bW = br(aj, ai, aW, -(aJ))
424+ let bA = bW._1
425+ let bU = bW._2
426+ let bq = bW._3
427+ if ((aJ > aR))
471428 then throw("passed amount is less then available")
472- else ([IntegerEntry(bD, (aX - aP)), IntegerEntry(be, (bf - aP)), ScriptTransfer(bQ.caller, aP, ax), aQ("unstake", ao, ap, aP, bQ.transactionId)] ++ cd)
429+ else ([IntegerEntry(bv, (aR - aJ)), IntegerEntry(aY, (aZ - aJ)), ScriptTransfer(bH.caller, aJ, ar), aK("unstake", ai, aj, aJ, bH.transactionId)] ++ bU)
473430 }
474431
475432
476433
477-@Callable(bQ)
478-func claimWx (ap) = {
479- let az = bQ.caller
480- let ao = toString(bQ.caller)
481- let bc = v(aT, Y(ap))
482- let cg = ar(ap, ao)
483- let ch = au(ap)
484- let ci = as(ap, ao)
485- let cj = at(ap, ao)
486- let ck = toBigInt(w(this, cg))
487- let cl = toBigInt(w(this, ci))
488- let cm = toBigInt(w(this, cj))
489- let cn = A(this, ch)
490- let co = bz(ap, ao, bc, 0)
491- let bJ = co._1
492- let cd = co._2
493- let by = co._3
494- let cp = (bJ - ck)
495- if ((g >= cp))
434+@Callable(bH)
435+func claimWx (aj) = {
436+ let at = bH.caller
437+ let ai = toString(bH.caller)
438+ let aW = s(aN, S(aj))
439+ let bX = al(aj, ai)
440+ let bY = ao(aj)
441+ let bZ = am(aj, ai)
442+ let ca = an(aj, ai)
443+ let cb = u(this, bX)
444+ let cc = u(this, bZ)
445+ let cd = u(this, ca)
446+ let ce = u(this, bY)
447+ let cf = br(aj, ai, aW, 0)
448+ let bA = cf._1
449+ let bU = cf._2
450+ let bq = cf._3
451+ let cg = (bA - cb)
452+ if ((0 >= cg))
496453 then throw("nothing to claim")
497454 else {
498- let cq = m(i(invoke(aV, "claimWxBoost", [ap, ao], nil))[0])
499- let cr = cp
500- let cs = min([(cr * toBigInt(2)), toBigInt(cq)])
501- let ct = q(i(invoke(aU, "emit", [toInt(cr)], nil))[0])
502- let cu = i(invoke(aU, "emit", [toInt(cs)], nil))
503- if ((cu == cu))
504- then {
505- let cv = (ck + cp)
506- let cw = (cl + cr)
507- let cx = (cl + cr)
508- let cy = (cl + cr)
509-[StringEntry(cg, toString(cv)), StringEntry(ci, toString(cw)), StringEntry(cj, toString(cx)), StringEntry(ch, toString(cy)), ScriptTransfer(az, toInt(cr), ct), ScriptTransfer(az, toInt(cs), ct), aQ("claim", ao, ap, toInt(cp), bQ.transactionId)]
510- }
455+ let ch = k(g(invoke(aP, "claimWxBoost", [aj, ai], nil))[0])
456+ let ci = cg
457+ let cj = min([(ci * 2), ch])
458+ let ck = o(g(invoke(aO, "emit", [ci], nil))[0])
459+ let cl = g(invoke(aO, "emit", [cj], nil))
460+ if ((cl == cl))
461+ then [IntegerEntry(bX, (cb + cg)), IntegerEntry(bZ, (cc + ci)), IntegerEntry(ca, (cd + cj)), IntegerEntry(bY, (ce + cg)), ScriptTransfer(at, ci, ck), ScriptTransfer(at, cj, ck), aK("claim", ai, aj, cg, bH.transactionId)]
511462 else throw("Strict value is not equal to itself.")
512463 }
513464 }
514465
515466
516467
517-@Callable(bQ)
518-func claimWxREADONLY (ap,ao) = {
519- let bD = an(ao, ap)
520- let be = aq(ap)
521- let cg = ar(ap, ao)
522- let aX = av(bD)
523- let bf = av(be)
524- let ck = w(this, cg)
525- let bc = v(aT, Y(ap))
526- let bh = getIntegerValue(aT, Z(bc))
527- let cz = z(aU, ai())
528- let bi = z(aU, ak())
529- let cA = if ((bi > height))
468+@Callable(bH)
469+func claimWxREADONLY (aj,ai) = {
470+ let bv = ah(ai, aj)
471+ let aY = ak(aj)
472+ let bX = al(aj, ai)
473+ let aR = ap(bv)
474+ let aZ = ap(aY)
475+ let cb = u(this, bX)
476+ let aW = s(aN, S(aj))
477+ let ba = getIntegerValue(aN, T(aW))
478+ let cm = x(aO, ac())
479+ let bb = x(aO, ae())
480+ let cn = if ((bb > height))
530481 then 0
531- else (height - bi)
532- let cB = fraction((cz * cA), bh, f)
533- let cC = fraction(cB, aX, bf)
534- let cD = bz(ap, ao, bc, 0)
535- let bJ = cD._1
536- let cd = cD._2
537- let by = cD._3
538- let cp = (bJ - toBigInt(ck))
539- let cE = i(invoke(aV, "claimWxBoostREADONLY", [ap, ao], nil))
540- let cq = m(cE[0])
541- let cF = o(cE[1])
542- let cr = cp
543- let cs = min([(cr * toBigInt(2)), toBigInt(cq)])
544- let cG = (cr + cs)
545- $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", ap, ao, toString(cG), toString(ck), toString(cr), toString(cs), toString(cC)], e))
482+ else (height - bb)
483+ let co = fraction((cm * cn), ba, f)
484+ let cp = fraction(co, aR, aZ)
485+ let cq = br(aj, ai, aW, 0)
486+ let bA = cq._1
487+ let bU = cq._2
488+ let bq = cq._3
489+ let cg = (bA - cb)
490+ let cr = g(invoke(aP, "claimWxBoostREADONLY", [aj, ai], nil))
491+ let ch = k(cr[0])
492+ let cs = m(cr[1])
493+ let ci = cg
494+ let cj = min([(ci * 2), ch])
495+ let ct = (ci + cj)
496+ $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", aj, ai, toString(ct), toString(cb), toString(ci), toString(cj), ((((bq + "::") + toString(cp)) + "::BOOSTDEBUG::") + cs)], e))
546497 }
547498
548499
549500
550-@Callable(bQ)
551-func onModifyWeight (ap,bc) = if ((bQ.caller != aT))
501+@Callable(bH)
502+func onModifyWeight (aj,aW) = if ((bH.caller != aN))
552503 then throw("permissions denied")
553504 else {
554- let cH = bb(ap, bc, 0)
555- let aZ = cH._1
556- let bB = cH._2
557- let bC = cH._3
558- bB
505+ let cu = aV(aj, aW, 0)
506+ let aT = cu._1
507+ let bt = cu._2
508+ let bu = cu._3
509+ bt
559510 }
560511
561512
562-@Verifier(cI)
563-func cJ () = {
564- let cK = {
565- let k = bM()
566- if ($isInstanceOf(k, "ByteVector"))
513+@Verifier(cv)
514+func cw () = {
515+ let cx = {
516+ let i = bD()
517+ if ($isInstanceOf(i, "ByteVector"))
567518 then {
568- let bS = k
569- bS
519+ let bJ = i
520+ bJ
570521 }
571- else if ($isInstanceOf(k, "Unit"))
572- then cI.senderPublicKey
522+ else if ($isInstanceOf(i, "Unit"))
523+ then cv.senderPublicKey
573524 else throw("Match error")
574525 }
575- let cL = {
576- let k = bN()
577- if ($isInstanceOf(k, "ByteVector"))
578- then {
579- let bS = k
580- bS
581- }
582- else if ($isInstanceOf(k, "Unit"))
583- then cI.senderPublicKey
584- else throw("Match error")
585- }
586- if (sigVerify(cI.bodyBytes, cI.proofs[0], cK))
587- then true
588- else sigVerify(cI.bodyBytes, cI.proofs[0], cL)
526+ sigVerify(cv.bodyBytes, cv.proofs[0], cx)
589527 }
590528

github/deemru/w8io/03bedc9 
129.16 ms