tx · GeaVVXAdA946rHRcuLweSG7TKyCxwxGpDk9pSCh8iUFC

3P5ji1wvrDLQxgK5c3cGbiSwiZfu5x1S3VR:  +0.02450375 Waves
3PEJXRvhfGWwVKnABJxq7awp9ErpHuMBM29:  +0.95140842 Puzzle
———————————————————————————————————:  -1.81661312 Waves
3P4kBiU4wr2yV1S5gMfu3MdkVvy7kxXHsKe:  +0.00382475 Puzzle
3PBQTUbhaWojsQctAiTXmJ9z7seyA9RnFRg:  +0.00095618 Puzzle
3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz:  +0.33276848 Waves
———————————————————————————————————:  -0.95618935 Puzzle
———————————————————————————————————:  +1.34871952 sWAVES
3PEjHv3JGjcWNpYEEkif2w8NXV4kbhnoGgu:  +0.00357421 Waves
3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt:  -1.45076668 Waves (GENERATOR)
———————————————————————————————————:  +1.45076668 Waves
3PDETXtiaErZncMduS8h9G6aopcjT7wheqj:  +1.45076668 Waves (GENERATOR)

2023.07.24 13:31 [3745453] transfer 3P9gSXPSMJPuFKVdQA69yVDg91LkZaybuDN > 3P5NsLwjzAmDwChRouCrBjGxzu8rgkR25Xx z() 1.78710937 Waves
2023.07.24 13:31 [3745453] transfer 3P9gSXPSMJPuFKVdQA69yVDg91LkZaybuDN > 3P5ji1wvrDLQxgK5c3cGbiSwiZfu5x1S3VR z() 0.02950375 Waves
2023.07.24 13:31 [3745453] transfer 3PEJXRvhfGWwVKnABJxq7awp9ErpHuMBM29 > 3P4kBiU4wr2yV1S5gMfu3MdkVvy7kxXHsKe swap() 0.00382475 Puzzle
2023.07.24 13:31 [3745453] transfer 3PEJXRvhfGWwVKnABJxq7awp9ErpHuMBM29 > 3PBQTUbhaWojsQctAiTXmJ9z7seyA9RnFRg swap() 0.00095618 Puzzle
2023.07.24 13:31 [3745453] transfer 3PEJXRvhfGWwVKnABJxq7awp9ErpHuMBM29 > 3P9gSXPSMJPuFKVdQA69yVDg91LkZaybuDN swap() 1.81661312 Waves
2023.07.24 13:31 [3745453] invoke 3P9gSXPSMJPuFKVdQA69yVDg91LkZaybuDN > 3PEJXRvhfGWwVKnABJxq7awp9ErpHuMBM29 swap() 0.95618935 Puzzle
2023.07.24 13:31 [3745453] transfer 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz swap() 0.00357421 Waves
2023.07.24 13:31 [3745453] transfer 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PEjHv3JGjcWNpYEEkif2w8NXV4kbhnoGgu swap() 0.00357421 Waves
2023.07.24 13:31 [3745453] transfer 3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz > 3P9gSXPSMJPuFKVdQA69yVDg91LkZaybuDN calculateAmountOutForSwapAndSendTokens() 0.95618935 Puzzle
2023.07.24 13:31 [3745453] invoke 3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolLeaseConfigREADONLY()
2023.07.24 13:31 [3745453] transfer 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn > 3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz deposit() 1.34871952 sWAVES
2023.07.24 13:31 [3745453] transfer 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn deposit() 1.34871952 sWAVES
2023.07.24 13:31 [3745453] reissue 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > SELF deposit() 1.34871952 sWAVES
2023.07.24 13:31 [3745453] lease 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt > 3PDETXtiaErZncMduS8h9G6aopcjT7wheqj stake() 356647.80737998 Waves
2023.07.24 13:31 [3745453] unlease 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt > 3PDETXtiaErZncMduS8h9G6aopcjT7wheqj stake() +356646.35661330 Waves
2023.07.24 13:31 [3745453] invoke 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt stake() 1.45076668 Waves
2023.07.24 13:31 [3745453] invoke 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt claimReward()
2023.07.24 13:31 [3745453] invoke 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn > 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV deposit() 1.45076668 Waves
2023.07.24 13:31 [3745453] invoke 3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz > 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn deposit() 1.45076668 Waves
2023.07.24 13:31 [3745453] invoke 3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolLeaseConfigREADONLY()
2023.07.24 13:31 [3745453] invoke 3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getSwapContractREADONLY()
2023.07.24 13:31 [3745453] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz calculateAmountOutForSwapAndSendTokens() 1.77996095 Waves
2023.07.24 13:31 [3745453] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolStatusREADONLY()
2023.07.24 13:31 [3745453] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolAddressFromLpAssetREADONLY()
2023.07.24 13:31 [3745453] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getLpAssetFromPoolAssetsREADONLY()
2023.07.24 13:31 [3745453] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getLpAssetFromPoolAssetsREADONLY()
2023.07.24 13:31 [3745453] invoke 3P9gSXPSMJPuFKVdQA69yVDg91LkZaybuDN > 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 swap() 1.78710937 Waves
2023.07.24 13:31 [3745453] transfer 3P5NsLwjzAmDwChRouCrBjGxzu8rgkR25Xx > 3P9gSXPSMJPuFKVdQA69yVDg91LkZaybuDN borrow() 1.78710937 Waves
2023.07.24 13:31 [3745453] invoke 3P9gSXPSMJPuFKVdQA69yVDg91LkZaybuDN > 3P5NsLwjzAmDwChRouCrBjGxzu8rgkR25Xx borrow()
2023.07.24 13:31 [3745453] invoke 3P5ji1wvrDLQxgK5c3cGbiSwiZfu5x1S3VR > 3P9gSXPSMJPuFKVdQA69yVDg91LkZaybuDN z()

3PEJXRvhfGWwVKnABJxq7awp9ErpHuMBM29: global_volume: 66580477541 -> 66618655064
3PEJXRvhfGWwVKnABJxq7awp9ErpHuMBM29: global_earnedByOwner: 356091970 -> 356187588
3PEJXRvhfGWwVKnABJxq7awp9ErpHuMBM29: hello: "world" == "world"
3PEJXRvhfGWwVKnABJxq7awp9ErpHuMBM29: global_HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS_balance: 5196451276 -> 5290157833
3PEJXRvhfGWwVKnABJxq7awp9ErpHuMBM29: global_WAVES_balance: 10153843588 -> 9972182276
3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz: %s%s__shareAssetBalance__YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7: 409689589542 -> 409824461494
3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz: %s%s__stakedBalance__WAVES: 438276685768 -> 438421762436
3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV: STAKING_AMOUNT: 35664635661330 -> 35664780737998
3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV: LAST_HEIGHT: 3745453 == 3745453
3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV: CURRENT_RATE: "base64:AKGI" -> "base64:AKGH"
3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV: LAST_RATE: "base64:APpyd2WJ" == "base64:APpyd2WJ"
3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt: LEASE_AMOUNT: 35664635661330 -> 35664780737998
3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt: LEASE_ID: "0x5cf2adf690819e03f6e086c123495eb18acdf2f8c8dc78a183de4032a16effb9" -> "0x6d82f613a4624e2debcc8f68f286fc0d11d1de9988601db091a2bf8252497525"

{ "type": 16, "id": "GeaVVXAdA946rHRcuLweSG7TKyCxwxGpDk9pSCh8iUFC", "fee": 500000, "feeAssetId": null, "timestamp": 1690194749872, "version": 2, "chainId": 87, "sender": "3P5ji1wvrDLQxgK5c3cGbiSwiZfu5x1S3VR", "senderPublicKey": "FicaUXdehwNmQKivDXCuzB1o6qC2M2dbrCVmfpbZkTmR", "proofs": [ "5vhLHG4TvzSwHnUYBBR14f5ZkXEX8maxAw96jxkSMPYvSArJBrR91vyxiXTAHjnn4eqwxAKxBEGr48Ukm1n75HAQ" ], "dApp": "3P9gSXPSMJPuFKVdQA69yVDg91LkZaybuDN", "payment": [], "call": { "function": "z", "args": [ { "type": "string", "value": "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS_WAVES_1_178710937_L|3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz_W|3PEJXRvhfGWwVKnABJxq7awp9ErpHuMBM29_P|x" } ] }, "height": 3745453, "applicationStatus": "succeeded", "spentComplexity": 3824, "stateChanges": { "data": [], "transfers": [ { "address": "3P5ji1wvrDLQxgK5c3cGbiSwiZfu5x1S3VR", "asset": null, "amount": 2950375 }, { "address": "3P5NsLwjzAmDwChRouCrBjGxzu8rgkR25Xx", "asset": null, "amount": 178710937 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3P5NsLwjzAmDwChRouCrBjGxzu8rgkR25Xx", "call": { "function": "borrow", "args": [ { "type": "Int", "value": 178710937 } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [ { "address": "3P9gSXPSMJPuFKVdQA69yVDg91LkZaybuDN", "asset": null, "amount": 178710937 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93", "call": { "function": "swap", "args": [ { "type": "Int", "value": 1 }, { "type": "String", "value": "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS" }, { "type": "String", "value": "3P9gSXPSMJPuFKVdQA69yVDg91LkZaybuDN" } ] }, "payment": [ { "assetId": null, "amount": 178710937 } ], "stateChanges": { "data": [], "transfers": [ { "address": "3PEjHv3JGjcWNpYEEkif2w8NXV4kbhnoGgu", "asset": null, "amount": 357421 }, { "address": "3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz", "asset": null, "amount": 357421 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getLpAssetFromPoolAssetsREADONLY", "args": [ { "type": "String", "value": "WAVES" }, { "type": "String", "value": "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getLpAssetFromPoolAssetsREADONLY", "args": [ { "type": "String", "value": "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS" }, { "type": "String", "value": "WAVES" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getPoolAddressFromLpAssetREADONLY", "args": [ { "type": "String", "value": "7G687ui3m59oAd6qkyni2vt77bHF4bbA6xcPfDo3uiTu" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getPoolStatusREADONLY", "args": [ { "type": "String", "value": "3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz", "call": { "function": "calculateAmountOutForSwapAndSendTokens", "args": [ { "type": "Int", "value": 177996095 }, { "type": "Boolean", "value": true }, { "type": "Int", "value": 1 }, { "type": "String", "value": "3P9gSXPSMJPuFKVdQA69yVDg91LkZaybuDN" }, { "type": "Int", "value": 357421 } ] }, "payment": [ { "assetId": null, "amount": 177996095 } ], "stateChanges": { "data": [ { "key": "%s%s__stakedBalance__WAVES", "type": "integer", "value": 438421762436 }, { "key": "%s%s__shareAssetBalance__YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7", "type": "integer", "value": 409824461494 } ], "transfers": [ { "address": "3P9gSXPSMJPuFKVdQA69yVDg91LkZaybuDN", "asset": "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS", "amount": 95618935 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getSwapContractREADONLY", "args": [] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getPoolLeaseConfigREADONLY", "args": [ { "type": "String", "value": "3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz" }, { "type": "String", "value": "WAVES" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn", "call": { "function": "deposit", "args": [] }, "payment": [ { "assetId": null, "amount": 145076668 } ], "stateChanges": { "data": [], "transfers": [ { "address": "3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz", "asset": "YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7", "amount": 134871952 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV", "call": { "function": "deposit", "args": [] }, "payment": [ { "assetId": null, "amount": 145076668 } ], "stateChanges": { "data": [ { "key": "LAST_RATE", "type": "binary", "value": "base64:APpyd2WJ" }, { "key": "CURRENT_RATE", "type": "binary", "value": "base64:AKGH" }, { "key": "LAST_HEIGHT", "type": "integer", "value": 3745453 }, { "key": "STAKING_AMOUNT", "type": "integer", "value": 35664780737998 } ], "transfers": [ { "address": "3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn", "asset": "YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7", "amount": 134871952 } ], "issues": [], "reissues": [ { "assetId": "YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7", "isReissuable": true, "quantity": 134871952 } ], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt", "call": { "function": "claimReward", "args": [] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } }, { "dApp": "3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt", "call": { "function": "stake", "args": [] }, "payment": [ { "assetId": null, "amount": 145076668 } ], "stateChanges": { "data": [ { "key": "LEASE_ID", "type": "binary", "value": "base64:bYL2E6RiTi3rzI9o8ob8DRHR3pmIYB2wkaK/glJJdSU=" }, { "key": "LEASE_AMOUNT", "type": "integer", "value": 35664780737998 } ], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [ { "id": "8NVGBpkNf184RjW53pWXQCebG9royyhRZ72Q8YYQUpnG", "originTransactionId": "GeaVVXAdA946rHRcuLweSG7TKyCxwxGpDk9pSCh8iUFC", "sender": "3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt", "recipient": "3PDETXtiaErZncMduS8h9G6aopcjT7wheqj", "amount": 35664780737998, "height": 3745453, "status": "canceled", "cancelHeight": 3745454, "cancelTransactionId": "CYz3fH2rcth2U9Au8vv3TPiUeSEWEiReXsrzcbdLKSjY" } ], "leaseCancels": [ { "id": "7Fq8qrbS9MNjcVSDeAZduuPWaj98tbBJgsVgVbjnmvXA", "originTransactionId": "APWLsayYhBYf7zcHYvdk1ZtkPRhAR9BFyeigzhfusc4a", "sender": "3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt", "recipient": "3PDETXtiaErZncMduS8h9G6aopcjT7wheqj", "amount": 35664635661330, "height": 3745453, "status": "canceled", "cancelHeight": 3745453, "cancelTransactionId": "GeaVVXAdA946rHRcuLweSG7TKyCxwxGpDk9pSCh8iUFC" } ], "invokes": [] } } ] } } ] } }, { "dApp": "3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv", "call": { "function": "getPoolLeaseConfigREADONLY", "args": [ { "type": "String", "value": "3PQaYm4pbRVrNTTnL8pDJZTxhcmD4jRskrz" }, { "type": "String", "value": "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } } ] } } ] } }, { "dApp": "3PEJXRvhfGWwVKnABJxq7awp9ErpHuMBM29", "call": { "function": "swap", "args": [ { "type": "String", "value": "WAVES" }, { "type": "Int", "value": 1 } ] }, "payment": [ { "assetId": "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS", "amount": 95618935 } ], "stateChanges": { "data": [ { "key": "global_WAVES_balance", "type": "integer", "value": 9972182276 }, { "key": "global_HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS_balance", "type": "integer", "value": 5290157833 }, { "key": "hello", "type": "string", "value": "world" }, { "key": "global_earnedByOwner", "type": "integer", "value": 356187588 }, { "key": "global_volume", "type": "integer", "value": 66618655064 } ], "transfers": [ { "address": "3P9gSXPSMJPuFKVdQA69yVDg91LkZaybuDN", "asset": null, "amount": 181661312 }, { "address": "3PBQTUbhaWojsQctAiTXmJ9z7seyA9RnFRg", "asset": "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS", "amount": 95618 }, { "address": "3P4kBiU4wr2yV1S5gMfu3MdkVvy7kxXHsKe", "asset": "HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS", "amount": 382475 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } } ] } }

github/deemru/w8io/3ef1775 
22.18 ms