Token MSQUARE
Overview ERC-20
Price
$0.00 @ 0.000000 MATIC
Fully Diluted Market Cap
Total Supply:
25,916,431 MSQ
Holders:
2,340 addresses
Transfers:
-
Contract:
Decimals:
18
[ Download CSV Export ]
[ Download CSV Export ]
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
MSQUARE
Compiler Version
v0.5.2+commit.1df8f40c
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-03-02 */ pragma solidity ^0.5.2; library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0); uint256 c = a / b; return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a); uint256 c = a - b; return c; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a); return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0); return a % b; } } interface IERC20 { function transfer(address to, uint256 value) external returns (bool); function approve(address spender, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 value) external returns (bool); function totalSupply() external view returns (uint256); function balanceOf(address who) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract ERC20Detailed is IERC20 { string private _name; string private _symbol; uint8 private _decimals; constructor (string memory name, string memory symbol, uint8 decimals) public { _name = name; _symbol = symbol; _decimals = decimals; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } } contract ERC20 is IERC20 { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowed; uint256 private _totalSupply; function totalSupply() public view returns (uint256) { return _totalSupply; } function balanceOf(address owner) public view returns (uint256) { return _balances[owner]; } function allowance(address owner, address spender) public view returns (uint256) { return _allowed[owner][spender]; } function transfer(address to, uint256 value) public returns (bool) { _transfer(msg.sender, to, value); return true; } function approve(address spender, uint256 value) public returns (bool) { _approve(msg.sender, spender, value); return true; } function transferFrom(address from, address to, uint256 value) public returns (bool) { _transfer(from, to, value); _approve(from, msg.sender, _allowed[from][msg.sender].sub(value)); return true; } function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { _approve(msg.sender, spender, _allowed[msg.sender][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { _approve(msg.sender, spender, _allowed[msg.sender][spender].sub(subtractedValue)); return true; } function _transfer(address from, address to, uint256 value) internal { require(to != address(0)); _balances[from] = _balances[from].sub(value); _balances[to] = _balances[to].add(value); emit Transfer(from, to, value); } function _mint(address account, uint256 value) internal { require(account != address(0)); _totalSupply = _totalSupply.add(value); _balances[account] = _balances[account].add(value); emit Transfer(address(0), account, value); } function _burn(address account, uint256 value) internal { require(account != address(0)); _totalSupply = _totalSupply.sub(value); _balances[account] = _balances[account].sub(value); emit Transfer(account, address(0), value); } function _approve(address owner, address spender, uint256 value) internal { require(spender != address(0)); require(owner != address(0)); _allowed[owner][spender] = value; emit Approval(owner, spender, value); } function _burnFrom(address account, uint256 value) internal { _burn(account, value); _approve(account, msg.sender, _allowed[account][msg.sender].sub(value)); } } contract MSQUARE is ERC20, ERC20Detailed { uint8 public constant DECIMALS = 18; uint256 public constant INITIAL_SUPPLY = 25916431 * (10 ** uint256(DECIMALS)); constructor () public ERC20Detailed("MSQUARE", "MSQ", DECIMALS) { _mint(msg.sender, INITIAL_SUPPLY); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"DECIMALS","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040805190810160405280600781526020017f4d535155415245000000000000000000000000000000000000000000000000008152506040805190810160405280600381526020017f4d53510000000000000000000000000000000000000000000000000000000000815250601282600390805190602001906200009892919062000295565b508160049080519060200190620000b192919062000295565b5080600560006101000a81548160ff021916908360ff160217905550505050620000f833601260ff16600a0a63018b740f02620000fe640100000000026401000000009004565b62000344565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156200013b57600080fd5b6200016081600254620002736401000000000262000d2d179091906401000000009004565b600281905550620001c7816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620002736401000000000262000d2d179091906401000000009004565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008082840190508381101515156200028b57600080fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002d857805160ff191683800117855562000309565b8280016001018555821562000309579182015b8281111562000308578251825591602001919060010190620002eb565b5b5090506200031891906200031c565b5090565b6200034191905b808211156200033d57600081600090555060010162000323565b5090565b90565b610d7a80620003546000396000f3fe608060405234801561001057600080fd5b50600436106100ec576000357c010000000000000000000000000000000000000000000000000000000090048063313ce567116100a957806395d89b411161008357806395d89b41146103a2578063a457c2d714610425578063a9059cbb1461048b578063dd62ed3e146104f1576100ec565b8063313ce567146102c057806339509351146102e457806370a082311461034a576100ec565b806306fdde03146100f1578063095ea7b31461017457806318160ddd146101da57806323b872dd146101f85780632e0f26251461027e5780632ff2e9dc146102a2575b600080fd5b6100f9610569565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561013957808201518184015260208101905061011e565b50505050905090810190601f1680156101665780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c06004803603604081101561018a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061060b565b604051808215151515815260200191505060405180910390f35b6101e2610622565b6040518082815260200191505060405180910390f35b6102646004803603606081101561020e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061062c565b604051808215151515815260200191505060405180910390f35b6102866106dd565b604051808260ff1660ff16815260200191505060405180910390f35b6102aa6106e2565b6040518082815260200191505060405180910390f35b6102c86106f3565b604051808260ff1660ff16815260200191505060405180910390f35b610330600480360360408110156102fa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061070a565b604051808215151515815260200191505060405180910390f35b61038c6004803603602081101561036057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107af565b6040518082815260200191505060405180910390f35b6103aa6107f7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103ea5780820151818401526020810190506103cf565b50505050905090810190601f1680156104175780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104716004803603604081101561043b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610899565b604051808215151515815260200191505060405180910390f35b6104d7600480360360408110156104a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061093e565b604051808215151515815260200191505060405180910390f35b6105536004803603604081101561050757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610955565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106015780601f106105d657610100808354040283529160200191610601565b820191906000526020600020905b8154815290600101906020018083116105e457829003601f168201915b5050505050905090565b60006106183384846109dc565b6001905092915050565b6000600254905090565b6000610639848484610b3f565b6106d284336106cd85600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d0b90919063ffffffff16565b6109dc565b600190509392505050565b601281565b601260ff16600a0a63018b740f0281565b6000600560009054906101000a900460ff16905090565b60006107a533846107a085600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d2d90919063ffffffff16565b6109dc565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561088f5780601f106108645761010080835404028352916020019161088f565b820191906000526020600020905b81548152906001019060200180831161087257829003601f168201915b5050505050905090565b6000610934338461092f85600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d0b90919063ffffffff16565b6109dc565b6001905092915050565b600061094b338484610b3f565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610a1857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610a5457600080fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610b7b57600080fd5b610bcc816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d0b90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c5f816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d2d90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000828211151515610d1c57600080fd5b600082840390508091505092915050565b6000808284019050838110151515610d4457600080fd5b809150509291505056fea165627a7a72305820e164eafd691d1493b1a2d151e0cfe2bcec370d540739af77a685016ba0421c280029
Deployed ByteCode Sourcemap
4958:295:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4958:295:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1851:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1851:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2859:148;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2859:148:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2359:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3015:228;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3015:228:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5006:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5048:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2037:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3251:203;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3251:203:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2458:106;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2458:106:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1942:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1942:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3462:213;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3462:213:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2711:140;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2711:140:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2572:131;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2572:131:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1851:83;1888:13;1921:5;1914:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1851:83;:::o;2859:148::-;2924:4;2941:36;2950:10;2962:7;2971:5;2941:8;:36::i;:::-;2995:4;2988:11;;2859:148;;;;:::o;2359:91::-;2403:7;2430:12;;2423:19;;2359:91;:::o;3015:228::-;3094:4;3111:26;3121:4;3127:2;3131:5;3111:9;:26::i;:::-;3148:65;3157:4;3163:10;3175:37;3206:5;3175:8;:14;3184:4;3175:14;;;;;;;;;;;;;;;:26;3190:10;3175:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;3148:8;:65::i;:::-;3231:4;3224:11;;3015:228;;;;;:::o;5006:35::-;5039:2;5006:35;:::o;5048:77::-;5039:2;5107:17;;5101:2;:23;5089:8;:36;5048:77;:::o;2037:83::-;2078:5;2103:9;;;;;;;;;;;2096:16;;2037:83;:::o;3251:203::-;3331:4;3348:76;3357:10;3369:7;3378:45;3412:10;3378:8;:20;3387:10;3378:20;;;;;;;;;;;;;;;:29;3399:7;3378:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;3348:8;:76::i;:::-;3442:4;3435:11;;3251:203;;;;:::o;2458:106::-;2513:7;2540:9;:16;2550:5;2540:16;;;;;;;;;;;;;;;;2533:23;;2458:106;;;:::o;1942:87::-;1981:13;2014:7;2007:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1942:87;:::o;3462:213::-;3547:4;3564:81;3573:10;3585:7;3594:50;3628:15;3594:8;:20;3603:10;3594:20;;;;;;;;;;;;;;;:29;3615:7;3594:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;3564:8;:81::i;:::-;3663:4;3656:11;;3462:213;;;;:::o;2711:140::-;2772:4;2789:32;2799:10;2811:2;2815:5;2789:9;:32::i;:::-;2839:4;2832:11;;2711:140;;;;:::o;2572:131::-;2644:7;2671:8;:15;2680:5;2671:15;;;;;;;;;;;;;;;:24;2687:7;2671:24;;;;;;;;;;;;;;;;2664:31;;2572:131;;;;:::o;4507:254::-;4619:1;4600:21;;:7;:21;;;;4592:30;;;;;;;;4658:1;4641:19;;:5;:19;;;;4633:28;;;;;;;;4701:5;4674:8;:15;4683:5;4674:15;;;;;;;;;;;;;;;:24;4690:7;4674:24;;;;;;;;;;;;;;;:32;;;;4738:7;4722:31;;4731:5;4722:31;;;4747:5;4722:31;;;;;;;;;;;;;;;;;;4507:254;;;:::o;3683:262::-;3785:1;3771:16;;:2;:16;;;;3763:25;;;;;;;;3819:26;3839:5;3819:9;:15;3829:4;3819:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;3801:9;:15;3811:4;3801:15;;;;;;;;;;;;;;;:44;;;;3872:24;3890:5;3872:9;:13;3882:2;3872:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;3856:9;:13;3866:2;3856:13;;;;;;;;;;;;;;;:40;;;;3927:2;3912:25;;3921:4;3912:25;;;3931:5;3912:25;;;;;;;;;;;;;;;;;;3683:262;;;:::o;433:150::-;491:7;524:1;519;:6;;511:15;;;;;;;;537:9;553:1;549;:5;537:17;;574:1;567:8;;;433:150;;;;:::o;591:::-;649:7;669:9;685:1;681;:5;669:17;;710:1;705;:6;;697:15;;;;;;;;732:1;725:8;;;591:150;;;;:::o
Swarm Source
bzzr://e164eafd691d1493b1a2d151e0cfe2bcec370d540739af77a685016ba0421c28