2024.06.16 21:54 [4219690] transfer 3PNtsdimWavmTuTmQYnmaqVVAfKYRvR7NXX > 3PGTtiuB3r44ykWwNq1fXJVSsjb2MsUdies 6935.80686827 Waves
2024.06.16 21:53 [4219689] fees GENERATOR > 3PQ9hZ36dyXGcqabcrHXsjP9PaQMqy69yeE 0.02080000 Waves
2024.06.16 21:53 [4219689] reward 3PQ9hZ36dyXGcqabcrHXsjP9PaQMqy69yeE > 3PFjHWuH6WXNJbwnfLHqNFBpwBS5dkYjTfv 2.00000000 Waves
2024.06.16 21:53 [4219689] reward 3PQ9hZ36dyXGcqabcrHXsjP9PaQMqy69yeE > 3PEgG7eZHLFhcfsTSaYxgRhZsh4AxMvA4Ms 2.00000000 Waves
2024.06.16 21:53 [4219689] reward GENERATOR > 3PQ9hZ36dyXGcqabcrHXsjP9PaQMqy69yeE 6.00000000 Waves
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv isPoolSwapDisabledREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv isPoolOneTokenOperationsDisabledREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getOutFeeREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getInFeeREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PEtzvd7onMdQ3RiQLhkE8we5jSWxzcZ6UM fromX18WrapperREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PEtzvd7onMdQ3RiQLhkE8we5jSWxzcZ6UM fromX18WrapperREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PEtzvd7onMdQ3RiQLhkE8we5jSWxzcZ6UM calcPricesWrapperREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PEtzvd7onMdQ3RiQLhkE8we5jSWxzcZ6UM getAccBalanceWrapperREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PEtzvd7onMdQ3RiQLhkE8we5jSWxzcZ6UM getAccBalanceWrapperREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PEtzvd7onMdQ3RiQLhkE8we5jSWxzcZ6UM getPoolConfigWrapperREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolStatusREADONLY()
2024.06.16 21:53 [4219689] invoke 3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP > 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW poolStatsREADONLY()
2024.06.16 21:53 [4219689] invoke 3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP > 3P56jNQzECXnrWpnbbSJKw7Eooo6fkUaMPp calcGetAmountCPMM()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv isPoolSwapDisabledREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv isPoolOneTokenOperationsDisabledREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getOutFeeREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getInFeeREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3P7Z7X5kKXN4TpZ2SmqP2xyLGuotAqht1pU fromX18WrapperREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3P7Z7X5kKXN4TpZ2SmqP2xyLGuotAqht1pU fromX18WrapperREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3P7Z7X5kKXN4TpZ2SmqP2xyLGuotAqht1pU calcPricesWrapperREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3P7Z7X5kKXN4TpZ2SmqP2xyLGuotAqht1pU getAccBalanceWrapperREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3P7Z7X5kKXN4TpZ2SmqP2xyLGuotAqht1pU getAccBalanceWrapperREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3P7Z7X5kKXN4TpZ2SmqP2xyLGuotAqht1pU getPoolConfigWrapperREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolStatusREADONLY()
2024.06.16 21:53 [4219689] invoke 3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP > 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW poolStatsREADONLY()
2024.06.16 21:53 [4219689] invoke 3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP > 3P56jNQzECXnrWpnbbSJKw7Eooo6fkUaMPp calcGetAmountCPMM()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv isPoolSwapDisabledREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv isPoolOneTokenOperationsDisabledREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getOutFeeREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getInFeeREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PFzaH2ghpwANHFgjeva83N1yxzErELx2eh fromX18WrapperREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PFzaH2ghpwANHFgjeva83N1yxzErELx2eh fromX18WrapperREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PFzaH2ghpwANHFgjeva83N1yxzErELx2eh calcPricesWrapperREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PFzaH2ghpwANHFgjeva83N1yxzErELx2eh getAccBalanceWrapperREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PFzaH2ghpwANHFgjeva83N1yxzErELx2eh getAccBalanceWrapperREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PFzaH2ghpwANHFgjeva83N1yxzErELx2eh getPoolConfigWrapperREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolStatusREADONLY()
2024.06.16 21:53 [4219689] invoke 3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP > 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW poolStatsREADONLY()
2024.06.16 21:53 [4219689] invoke 3P668fL3YmMRajtfdengdu3Mkbz1PYjnSnV > 3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP finalizeCurrentPrice()
2024.06.16 21:53 [4219689] transfer 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PFzaH2ghpwANHFgjeva83N1yxzErELx2eh swap() 0.02199180 Waves.Exchange
2024.06.16 21:53 [4219689] transfer 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PEjHv3JGjcWNpYEEkif2w8NXV4kbhnoGgu swap() 0.02199180 Waves.Exchange
2024.06.16 21:53 [4219689] transfer 3PFzaH2ghpwANHFgjeva83N1yxzErELx2eh > 3PDo11Cw38pXptJYUxpCwaVaLdhJHuQ32Xa calculateAmountOutForSwapAndSendTokens() 0.04198131 Waves
2024.06.16 21:53 [4219689] transfer 3PFzaH2ghpwANHFgjeva83N1yxzErELx2eh > 3PCoDJZ4R95qFdiAwdhjf9y2jtTiskJ9STo calculateAmountOutForSwapAndSendTokens() 0.00014841 sWAVES
2024.06.16 21:53 [4219689] transfer 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn > 3PFzaH2ghpwANHFgjeva83N1yxzErELx2eh withdraw() 0.03358503 Waves
2024.06.16 21:53 [4219689] transfer 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn withdraw() 0.03358503 Waves
2024.06.16 21:53 [4219689] burn 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > SELF withdraw() 0.02986507 sWAVES
2024.06.16 21:53 [4219689] transfer 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt > 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV unstake() 0.03358503 Waves
2024.06.16 21:53 [4219689] lease 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt > 3PDETXtiaErZncMduS8h9G6aopcjT7wheqj unstake() 1646575.64316554 Waves
2024.06.16 21:53 [4219689] unlease 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt > 3PDETXtiaErZncMduS8h9G6aopcjT7wheqj unstake() +1646575.67675057 Waves
2024.06.16 21:53 [4219689] invoke 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt unstake()
2024.06.16 21:53 [4219689] invoke 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt claimReward()
2024.06.16 21:53 [4219689] invoke 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn > 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV withdraw() 0.02986507 sWAVES
2024.06.16 21:53 [4219689] invoke 3PFzaH2ghpwANHFgjeva83N1yxzErELx2eh > 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn withdraw() 0.02986507 sWAVES
2024.06.16 21:53 [4219689] invoke 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn > 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV getRate()
2024.06.16 21:53 [4219689] invoke 3PFzaH2ghpwANHFgjeva83N1yxzErELx2eh > 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn getRate()
2024.06.16 21:53 [4219689] invoke 3PFzaH2ghpwANHFgjeva83N1yxzErELx2eh > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolLeaseConfigREADONLY()
2024.06.16 21:53 [4219689] invoke 3PFzaH2ghpwANHFgjeva83N1yxzErELx2eh > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolLeaseConfigREADONLY()
2024.06.16 21:53 [4219689] invoke 3PFzaH2ghpwANHFgjeva83N1yxzErELx2eh > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getSwapContractREADONLY()
2024.06.16 21:53 [4219689] invoke 3PFzaH2ghpwANHFgjeva83N1yxzErELx2eh > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv isPoolSwapDisabledREADONLY()
2024.06.16 21:53 [4219689] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PFzaH2ghpwANHFgjeva83N1yxzErELx2eh calculateAmountOutForSwapAndSendTokens() 10.95191693 Waves.Exchange
2024.06.16 21:53 [4219689] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getSwapFeeREADONLY()
2024.06.16 21:53 [4219689] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolStatusREADONLY()
2024.06.16 21:53 [4219689] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolAddressFromLpAssetREADONLY()
2024.06.16 21:53 [4219689] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getLpAssetFromPoolAssetsREADONLY()
2024.06.16 21:53 [4219689] invoke 3PDo11Cw38pXptJYUxpCwaVaLdhJHuQ32Xa > 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 swap() 10.99590053 Waves.Exchange
2024.06.16 21:53 [4219689] invoke 3P668fL3YmMRajtfdengdu3Mkbz1PYjnSnV > 3PKkojKdd6BBzTf1RXbQVfUDraNFXXHKzQF finalizeDORA2()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv isPoolSwapDisabledREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv isPoolOneTokenOperationsDisabledREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getOutFeeREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getInFeeREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PDi7Qq8pLQYvtKyTfQuqqPUWyhoYbU957t fromX18WrapperREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PDi7Qq8pLQYvtKyTfQuqqPUWyhoYbU957t fromX18WrapperREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PDi7Qq8pLQYvtKyTfQuqqPUWyhoYbU957t calcPricesWrapperREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PDi7Qq8pLQYvtKyTfQuqqPUWyhoYbU957t getAccBalanceWrapperREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PDi7Qq8pLQYvtKyTfQuqqPUWyhoYbU957t getAccBalanceWrapperREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PDi7Qq8pLQYvtKyTfQuqqPUWyhoYbU957t getPoolConfigWrapperREADONLY()
2024.06.16 21:53 [4219689] invoke 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolStatusREADONLY()
2024.06.16 21:53 [4219689] invoke 3PKkojKdd6BBzTf1RXbQVfUDraNFXXHKzQF > 3P8MoPnsaurofk1VyhsdAFkeQ6ijpJYXCpW poolStatsREADONLY()
2024.06.16 21:53 [4219689] invoke 3PKkojKdd6BBzTf1RXbQVfUDraNFXXHKzQF > 3P56jNQzECXnrWpnbbSJKw7Eooo6fkUaMPp calcGetAmountCPMM()
2024.06.16 21:53 [4219689] invoke 3P668fL3YmMRajtfdengdu3Mkbz1PYjnSnV > 3PKkojKdd6BBzTf1RXbQVfUDraNFXXHKzQF finalizeDORA2()
2024.06.16 21:53 [4219689] exchange 3P3XGTN6s292g9iwYhs3TEqJqHiffQYojuE > 3PFYNXj7Tfo6FGWf3393SZqum1QTcXRfbhL 69.62194733 WETH/Waves 0.98189155 Waves
2024.06.16 21:53 [4219689] exchange 3PFYNXj7Tfo6FGWf3393SZqum1QTcXRfbhL > 3P3XGTN6s292g9iwYhs3TEqJqHiffQYojuE 69.62194733 WETH/Waves 0.01410319 WETH
2024.06.16 21:53 [4219689] matcher MATCHER > 3PEjHv3JGjcWNpYEEkif2w8NXV4kbhnoGgu 0.00001410 WETH
2024.06.16 21:53 [4219689] matcher MATCHER > 3PEjHv3JGjcWNpYEEkif2w8NXV4kbhnoGgu +0.00300000 Waves
2024.06.16 21:53 [4219689] transfer 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU > 3PB4FMrvGctW97FTsNpiM5RMZEgkJRqQM1t swap() 0.06055944 WETH
2024.06.16 21:53 [4219689] transfer 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee > 3PLk7wu8tovkaszYGLZy4g4yKMMRMuHeUwg exchange() 0.00000270 Puzzle
2024.06.16 21:53 [4219689] transfer 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee > 3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp exchange() 0.00000946 Puzzle
2024.06.16 21:53 [4219689] transfer 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee > 3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW exchange() 0.00447816 Puzzle
2024.06.16 21:53 [4219689] transfer 3PFTbywqxtFfukX3HyT881g4iW5K4QL3FAS > 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee unStake() 0.00449032 Puzzle
2024.06.16 21:53 [4219689] invoke 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee > 3PFTbywqxtFfukX3HyT881g4iW5K4QL3FAS unStake()
2024.06.16 21:53 [4219689] invoke 3PBFHAHS4PZaXpS7gT5SPLnuPh7YPoJgCfE > 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee stakeUnstake()
2024.06.16 21:53 [4219689] invoke 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee > 3PBFHAHS4PZaXpS7gT5SPLnuPh7YPoJgCfE exchange()
2024.06.16 21:53 [4219689] invoke 3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW > 3PBHyEwmERR1CEkrTNbPj2bgyisTfPRqfee exchange() 0.592832 XTN.
2024.06.16 21:53 [4219689] invoke 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU > 3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW topUpReward() 0.592832 XTN.
2024.06.16 21:53 [4219689] transfer 3P35XEvckG1QwwpH6Zct7u7EL65LZap49hE > 3PFWAVKmXjfHXyzJb12jCbhP4Uhi9t4uWiD swap() 0.001899 XTN.
...

github/deemru/w8io/3ef1775 
8.42 ms