Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
982,841.627550582990397806 SRX
Holders
307
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.000000000000007761 SRXValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
SmartexToken
Compiler Version
v0.5.12+commit.7709ece9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-03-19 */ pragma solidity ^0.5.0; contract Context { constructor () internal { } function _msgSender() internal view returns (address payable) { return msg.sender; } function _msgData() internal view returns (bytes memory) { this; return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(isOwner(), "Ownable: caller is not the owner"); _; } function isOwner() public view returns (bool) { return _msgSender() == _owner; } function renounceOwnership() public onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IERC777 { function name() external view returns (string memory); function symbol() external view returns (string memory); function granularity() external view returns (uint256); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function send(address recipient, uint256 amount, bytes calldata data) external; function burn(uint256 amount, bytes calldata data) external; function isOperatorFor(address operator, address tokenHolder) external view returns (bool); function authorizeOperator(address operator) external; function revokeOperator(address operator) external; function defaultOperators() external view returns (address[] memory); function operatorSend( address sender, address recipient, uint256 amount, bytes calldata data, bytes calldata operatorData ) external; function operatorBurn( address account, uint256 amount, bytes calldata data, bytes calldata operatorData ) external; event Sent( address indexed operator, address indexed from, address indexed to, uint256 amount, bytes data, bytes operatorData ); event Minted(address indexed operator, address indexed to, uint256 amount, bytes data, bytes operatorData); event Burned(address indexed operator, address indexed from, uint256 amount, bytes data, bytes operatorData); event AuthorizedOperator(address indexed operator, address indexed tokenHolder); event RevokedOperator(address indexed operator, address indexed tokenHolder); } interface IERC777Recipient { function tokensReceived( address operator, address from, address to, uint256 amount, bytes calldata userData, bytes calldata operatorData ) external; } interface IERC777Sender { function tokensToSend( address operator, address from, address to, uint256 amount, bytes calldata userData, bytes calldata operatorData ) external; } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function toPayable(address account) internal pure returns (address payable) { return address(uint160(account)); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call.value(amount)(""); require(success, "Address: unable to send value, recipient may have reverted"); } } interface IERC1820Registry { function setManager(address account, address newManager) external; function getManager(address account) external view returns (address); function setInterfaceImplementer(address account, bytes32 interfaceHash, address implementer) external; function getInterfaceImplementer(address account, bytes32 interfaceHash) external view returns (address); function interfaceHash(string calldata interfaceName) external pure returns (bytes32); function updateERC165Cache(address account, bytes4 interfaceId) external; function implementsERC165Interface(address account, bytes4 interfaceId) external view returns (bool); function implementsERC165InterfaceNoCache(address account, bytes4 interfaceId) external view returns (bool); event InterfaceImplementerSet(address indexed account, bytes32 indexed interfaceHash, address indexed implementer); event ManagerChanged(address indexed account, address indexed newManager); } contract ERC777 is Context, IERC777, IERC20 { using SafeMath for uint256; using Address for address; IERC1820Registry constant internal ERC1820_REGISTRY = IERC1820Registry(0x1820a4B7618BdE71Dce8cdc73aAB6C95905faD24); mapping(address => uint256) private _balances; uint256 private _totalSupply; string private _name; string private _symbol; bytes32 constant private TOKENS_SENDER_INTERFACE_HASH = 0x29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe895; bytes32 constant private TOKENS_RECIPIENT_INTERFACE_HASH = 0xb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b; address[] private _defaultOperatorsArray; mapping(address => bool) private _defaultOperators; mapping(address => mapping(address => bool)) private _operators; mapping(address => mapping(address => bool)) private _revokedDefaultOperators; mapping (address => mapping (address => uint256)) private _allowances; constructor( string memory name, string memory symbol, address[] memory defaultOperators ) public { _name = name; _symbol = symbol; _defaultOperatorsArray = defaultOperators; for (uint256 i = 0; i < _defaultOperatorsArray.length; i++) { _defaultOperators[_defaultOperatorsArray[i]] = true; } ERC1820_REGISTRY.setInterfaceImplementer(address(this), keccak256("ERC777Token"), address(this)); ERC1820_REGISTRY.setInterfaceImplementer(address(this), keccak256("ERC20Token"), address(this)); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return 18; } function granularity() public view returns (uint256) { return 1; } function totalSupply() public view returns (uint256) { return _totalSupply; } function balanceOf(address tokenHolder) public view returns (uint256) { return _balances[tokenHolder]; } function send(address recipient, uint256 amount, bytes memory data) public { _send(_msgSender(), _msgSender(), recipient, amount, data, "", true); } function transfer(address recipient, uint256 amount) public returns (bool) { require(recipient != address(0), "ERC777: transfer to the zero address"); address from = _msgSender(); _callTokensToSend(from, from, recipient, amount, "", ""); _move(from, from, recipient, amount, "", ""); _callTokensReceived(from, from, recipient, amount, "", "", false); return true; } function burn(uint256 amount, bytes memory data) public { _burn(_msgSender(), _msgSender(), amount, data, ""); } function isOperatorFor( address operator, address tokenHolder ) public view returns (bool) { return operator == tokenHolder || (_defaultOperators[operator] && !_revokedDefaultOperators[tokenHolder][operator]) || _operators[tokenHolder][operator]; } function authorizeOperator(address operator) public { require(_msgSender() != operator, "ERC777: authorizing self as operator"); if (_defaultOperators[operator]) { delete _revokedDefaultOperators[_msgSender()][operator]; } else { _operators[_msgSender()][operator] = true; } emit AuthorizedOperator(operator, _msgSender()); } function revokeOperator(address operator) public { require(operator != _msgSender(), "ERC777: revoking self as operator"); if (_defaultOperators[operator]) { _revokedDefaultOperators[_msgSender()][operator] = true; } else { delete _operators[_msgSender()][operator]; } emit RevokedOperator(operator, _msgSender()); } function defaultOperators() public view returns (address[] memory) { return _defaultOperatorsArray; } function operatorSend( address sender, address recipient, uint256 amount, bytes memory data, bytes memory operatorData ) public { require(isOperatorFor(_msgSender(), sender), "ERC777: caller is not an operator for holder"); _send(_msgSender(), sender, recipient, amount, data, operatorData, true); } function operatorBurn(address account, uint256 amount, bytes memory data, bytes memory operatorData) public { require(isOperatorFor(_msgSender(), account), "ERC777: caller is not an operator for holder"); _burn(_msgSender(), account, amount, data, operatorData); } function allowance(address holder, address spender) public view returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 value) public returns (bool) { address holder = _msgSender(); _approve(holder, spender, value); return true; } function transferFrom(address holder, address recipient, uint256 amount) public returns (bool) { require(recipient != address(0), "ERC777: transfer to the zero address"); require(holder != address(0), "ERC777: transfer from the zero address"); address spender = _msgSender(); _callTokensToSend(spender, holder, recipient, amount, "", ""); _move(spender, holder, recipient, amount, "", ""); _approve(holder, spender, _allowances[holder][spender].sub(amount, "ERC777: transfer amount exceeds allowance")); _callTokensReceived(spender, holder, recipient, amount, "", "", false); return true; } function _mint( address operator, address account, uint256 amount, bytes memory userData, bytes memory operatorData ) internal { require(account != address(0), "ERC777: mint to the zero address"); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); _callTokensReceived(operator, address(0), account, amount, userData, operatorData, true); emit Minted(operator, account, amount, userData, operatorData); emit Transfer(address(0), account, amount); } function _send( address operator, address from, address to, uint256 amount, bytes memory userData, bytes memory operatorData, bool requireReceptionAck ) internal { require(from != address(0), "ERC777: send from the zero address"); require(to != address(0), "ERC777: send to the zero address"); _callTokensToSend(operator, from, to, amount, userData, operatorData); _move(operator, from, to, amount, userData, operatorData); _callTokensReceived(operator, from, to, amount, userData, operatorData, requireReceptionAck); } function _burn( address operator, address from, uint256 amount, bytes memory data, bytes memory operatorData ) internal { require(from != address(0), "ERC777: burn from the zero address"); _callTokensToSend(operator, from, address(0), amount, data, operatorData); _balances[from] = _balances[from].sub(amount, "ERC777: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Burned(operator, from, amount, data, operatorData); emit Transfer(from, address(0), amount); } function _move( address operator, address from, address to, uint256 amount, bytes memory userData, bytes memory operatorData ) private { _balances[from] = _balances[from].sub(amount, "ERC777: transfer amount exceeds balance"); _balances[to] = _balances[to].add(amount); emit Sent(operator, from, to, amount, userData, operatorData); emit Transfer(from, to, amount); } function _approve(address holder, address spender, uint256 value) internal { require(spender != address(0), "ERC777: approve to the zero address"); _allowances[holder][spender] = value; emit Approval(holder, spender, value); } function _callTokensToSend( address operator, address from, address to, uint256 amount, bytes memory userData, bytes memory operatorData ) internal { address implementer = ERC1820_REGISTRY.getInterfaceImplementer(from, TOKENS_SENDER_INTERFACE_HASH); if (implementer != address(0)) { IERC777Sender(implementer).tokensToSend(operator, from, to, amount, userData, operatorData); } } function _callTokensReceived( address operator, address from, address to, uint256 amount, bytes memory userData, bytes memory operatorData, bool requireReceptionAck ) internal { address implementer = ERC1820_REGISTRY.getInterfaceImplementer(to, TOKENS_RECIPIENT_INTERFACE_HASH); if (implementer != address(0)) { IERC777Recipient(implementer).tokensReceived(operator, from, to, amount, userData, operatorData); } else if (requireReceptionAck) { require(!to.isContract(), "ERC777: token recipient contract has no implementer for ERC777TokensRecipient"); } } } contract SmartexToken is ERC777, Ownable { bool private _transferable = false; mapping (address => bool) public authorizedAccounts; mapping (address => bool) public minters; modifier onlyMinter() { require(_msgSender() == owner() || minters[_msgSender()], "SmartexToken: caller is not a minter"); _; } constructor() public ERC777("SmartexToken", "SRX", new address[](0)) { _mint(address(0), _msgSender(), 1000000 * (10 ** uint256(decimals())), '', ''); } function setTransferable(bool transferable) public onlyOwner { _transferable = transferable; } function transferable() public view returns (bool) { return _transferable; } function setAuthorization(address account, bool allowed) public onlyOwner { authorizedAccounts[account] = allowed; } function setMinter(address minter, bool allowed) public onlyOwner { minters[minter] = allowed; } function mint(address account, uint256 amount, bytes memory data) public onlyMinter { _mint(_msgSender(), account, amount, data, ''); } function send(address recipient, uint256 amount, bytes memory data) public { require( _transferable || _isAuthorizedAccount(_msgSender()) || _isAuthorizedAccount(recipient), "Send: sender/recipient is not authorized" ); super.send(recipient, amount, data); } function transfer(address recipient, uint256 amount) public returns (bool) { require( _transferable || _isAuthorizedAccount(_msgSender()) || _isAuthorizedAccount(recipient), "Transfer: sender/recipient is not authorized" ); return super.transfer(recipient, amount); } function burn(uint256 amount, bytes memory data) public { require( _transferable || _isAuthorizedAccount(_msgSender()), "Burn: sender is not authorized" ); super.burn(amount, data); } function operatorSend(address sender, address recipient, uint256 amount, bytes memory data, bytes memory operatorData) public { require( _transferable || _isAuthorizedAccount(_msgSender()) || _isAuthorizedAccount(sender) || _isAuthorizedAccount(recipient), "OperatorSend: sender/recipient is not authorized" ); super.operatorSend(sender, recipient, amount, data, operatorData); } function operatorBurn(address account, uint256 amount, bytes memory data, bytes memory operatorData) public { require( _transferable || _isAuthorizedAccount(_msgSender()) || _isAuthorizedAccount(account), "OperatorBurn: sender is not authorized" ); super.operatorBurn(account, amount, data, operatorData); } function transferFrom(address holder, address recipient, uint256 amount) public returns (bool) { require( _transferable || _isAuthorizedAccount(_msgSender()) || _isAuthorizedAccount(holder) || _isAuthorizedAccount(recipient), "TransferFrom: sender/recipient is not authorized" ); return super.transferFrom(holder, recipient, amount); } function _isAuthorizedAccount(address account) internal view returns (bool) { return account == owner() || authorizedAccounts[account]; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"tokenHolder","type":"address"}],"name":"AuthorizedOperator","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"operatorData","type":"bytes"}],"name":"Burned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"operatorData","type":"bytes"}],"name":"Minted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"tokenHolder","type":"address"}],"name":"RevokedOperator","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"operatorData","type":"bytes"}],"name":"Sent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"authorizeOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"authorizedAccounts","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"tokenHolder","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"defaultOperators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"granularity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"tokenHolder","type":"address"}],"name":"isOperatorFor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"minters","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"operatorData","type":"bytes"}],"name":"operatorBurn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"operatorData","type":"bytes"}],"name":"operatorSend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"revokeOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"send","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"setAuthorization","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"minter","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"setMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bool","name":"transferable","type":"bool"}],"name":"setTransferable","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"transferable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040526009805460ff60a01b191690553480156200001e57600080fd5b50604080518082018252600c81527f536d6172746578546f6b656e0000000000000000000000000000000000000000602080830191825283518085018552600381527f53525800000000000000000000000000000000000000000000000000000000008183015284516000815291820190945282519293929091620000a791600291906200099e565b508151620000bd9060039060208501906200099e565b508051620000d390600490602084019062000a23565b5060005b600454811015620001335760016005600060048481548110620000f657fe5b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff1916911515919091179055600101620000d7565b50604080517f455243373737546f6b656e0000000000000000000000000000000000000000008152815190819003600b0181207f29965a1d0000000000000000000000000000000000000000000000000000000082523060048301819052602483019190915260448201529051731820a4b7618bde71dce8cdc73aab6c95905fad24916329965a1d91606480830192600092919082900301818387803b158015620001dd57600080fd5b505af1158015620001f2573d6000803e3d6000fd5b5050604080517f4552433230546f6b656e000000000000000000000000000000000000000000008152815190819003600a0181207f29965a1d0000000000000000000000000000000000000000000000000000000082523060048301819052602483019190915260448201529051731820a4b7618bde71dce8cdc73aab6c95905fad2493506329965a1d9250606480830192600092919082900301818387803b1580156200029f57600080fd5b505af1158015620002b4573d6000803e3d6000fd5b505050505050506000620002cd6200038460201b60201c565b600980546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506200037e6000620003346001600160e01b036200038416565b620003476001600160e01b036200038916565b60ff16600a0a620f42400260405180602001604052806000815250604051806020016040528060008152506200038e60201b60201c565b62000acd565b335b90565b601290565b6001600160a01b0384166200040457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433737373a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b6200042083600154620005f560201b6200251a1790919060201c565b6001556001600160a01b03841660009081526020818152604090912054620004539185906200251a620005f5821b17901c565b6001600160a01b0385166000908152602081905260408120919091556200048b9086908686868660016001600160e01b036200067116565b836001600160a01b0316856001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d858585604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156200050c578181015183820152602001620004f2565b50505050905090810190601f1680156200053a5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156200056f57818101518382015260200162000555565b50505050905090810190601f1680156200059d5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a36040805184815290516001600160a01b038616916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050505050565b6000828201838110156200066a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b604080517faabbb8ca0000000000000000000000000000000000000000000000000000000081526001600160a01b03871660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b60248201529051600091731820a4b7618bde71dce8cdc73aab6c95905fad249163aabbb8ca91604480820192602092909190829003018186803b1580156200070f57600080fd5b505afa15801562000724573d6000803e3d6000fd5b505050506040513d60208110156200073b57600080fd5b505190506001600160a01b03811615620008d957806001600160a01b03166223de298989898989896040518763ffffffff1660e01b815260040180876001600160a01b03166001600160a01b03168152602001866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b031681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101562000803578181015183820152602001620007e9565b50505050905090810190601f168015620008315780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015620008665781810151838201526020016200084c565b50505050905090810190601f168015620008945780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b158015620008ba57600080fd5b505af1158015620008cf573d6000803e3d6000fd5b5050505062000957565b81156200095757620008ff866001600160a01b03166200096160201b620027a11760201c565b1562000957576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d81526020018062003654604d913960600191505060405180910390fd5b5050505050505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906200099657508115155b949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620009e157805160ff191683800117855562000a11565b8280016001018555821562000a11579182015b8281111562000a11578251825591602001919060010190620009f4565b5062000a1f92915062000a89565b5090565b82805482825590600052602060002090810192821562000a7b579160200282015b8281111562000a7b57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000a44565b5062000a1f92915062000aa6565b6200038691905b8082111562000a1f576000815560010162000a90565b6200038691905b8082111562000a1f5780546001600160a01b031916815560010162000aad565b612b778062000add6000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c806394d008ef11610104578063d95b6371116100a2578063f46eccc411610071578063f46eccc4146107fb578063fad8b32a14610821578063fc673c4f14610847578063fe9d930314610985576101cf565b8063d95b63711461074b578063dd62ed3e14610779578063eecea000146107a7578063f2fde38b146107d5576101cf565b80639bd9bbc6116100de5780639bd9bbc6146106195780639cd23707146106d2578063a9059cbb146106f1578063cf456ae71461071d576101cf565b806394d008ef14610532578063959b8c3f146105eb57806395d89b4114610611576101cf565b8063556f0dc711610171578063715018a61161014b578063715018a6146104f65780638da5cb5b146104fe5780638f32d59b1461052257806392ff0d311461052a576101cf565b8063556f0dc71461037d57806362ad1b831461038557806370a08231146104d0576101cf565b806318160ddd116101ad57806318160ddd146102e957806323b872dd1461030357806324ba588414610339578063313ce5671461035f576101cf565b806306e48538146101d457806306fdde031461022c578063095ea7b3146102a9575b600080fd5b6101dc610a30565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610218578181015183820152602001610200565b505050509050019250505060405180910390f35b610234610a92565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561026e578181015183820152602001610256565b50505050905090810190601f16801561029b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102d5600480360360408110156102bf57600080fd5b506001600160a01b038135169060200135610b1c565b604080519115158252519081900360200190f35b6102f1610b3e565b60408051918252519081900360200190f35b6102d56004803603606081101561031957600080fd5b506001600160a01b03813581169160208101359091169060400135610b44565b6102d56004803603602081101561034f57600080fd5b50356001600160a01b0316610bd6565b610367610beb565b6040805160ff9092168252519081900360200190f35b6102f1610bf0565b6104ce600480360360a081101561039b57600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b8111156103d557600080fd5b8201836020820111156103e757600080fd5b803590602001918460018302840111600160201b8311171561040857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561045a57600080fd5b82018360208201111561046c57600080fd5b803590602001918460018302840111600160201b8311171561048d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610bf5945050505050565b005b6102f1600480360360208110156104e657600080fd5b50356001600160a01b0316610c80565b6104ce610c9b565b610506610d2c565b604080516001600160a01b039092168252519081900360200190f35b6102d5610d3b565b6102d5610d61565b6104ce6004803603606081101561054857600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561057757600080fd5b82018360208201111561058957600080fd5b803590602001918460018302840111600160201b831117156105aa57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610d71945050505050565b6104ce6004803603602081101561060157600080fd5b50356001600160a01b0316610e27565b610234610f73565b6104ce6004803603606081101561062f57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561065e57600080fd5b82018360208201111561067057600080fd5b803590602001918460018302840111600160201b8311171561069157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610fd4945050505050565b6104ce600480360360208110156106e857600080fd5b50351515611047565b6102d56004803603604081101561070757600080fd5b506001600160a01b0381351690602001356110ac565b6104ce6004803603604081101561073357600080fd5b506001600160a01b0381351690602001351515611128565b6102d56004803603604081101561076157600080fd5b506001600160a01b038135811691602001351661119a565b6102f16004803603604081101561078f57600080fd5b506001600160a01b038135811691602001351661123b565b6104ce600480360360408110156107bd57600080fd5b506001600160a01b0381351690602001351515611266565b6104ce600480360360208110156107eb57600080fd5b50356001600160a01b03166112d8565b6102d56004803603602081101561081157600080fd5b50356001600160a01b031661132b565b6104ce6004803603602081101561083757600080fd5b50356001600160a01b0316611340565b6104ce6004803603608081101561085d57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561088c57600080fd5b82018360208201111561089e57600080fd5b803590602001918460018302840111600160201b831117156108bf57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561091157600080fd5b82018360208201111561092357600080fd5b803590602001918460018302840111600160201b8311171561094457600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061148c945050505050565b6104ce6004803603604081101561099b57600080fd5b81359190810190604081016020820135600160201b8111156109bc57600080fd5b8201836020820111156109ce57600080fd5b803590602001918460018302840111600160201b831117156109ef57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611506945050505050565b60606004805480602002602001604051908101604052809291908181526020018280548015610a8857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a6a575b5050505050905090565b60028054604080516020601f6000196101006001871615020190941685900493840181900481028201810190925282815260609390929091830182828015610a885780601f10610af057610100808354040283529160200191610a88565b820191906000526020600020905b815481529060010190602001808311610afe57509395945050505050565b600080610b27611583565b9050610b34818585611587565b5060019392505050565b60015490565b600954600090600160a01b900460ff1680610b6a5750610b6a610b65611583565b61162e565b80610b795750610b798461162e565b80610b885750610b888361162e565b610bc35760405162461bcd60e51b81526004018080602001828103825260308152602001806129676030913960400191505060405180910390fd5b610bce848484611675565b949350505050565b600a6020526000908152604090205460ff1681565b601290565b600190565b600954600160a01b900460ff1680610c135750610c13610b65611583565b80610c225750610c228561162e565b80610c315750610c318461162e565b610c6c5760405162461bcd60e51b815260040180806020018281038252603081526020018061288c6030913960400191505060405180910390fd5b610c7985858585856117f8565b5050505050565b6001600160a01b031660009081526020819052604090205490565b610ca3610d3b565b610ce2576040805162461bcd60e51b81526020600482018190526024820152600080516020612947833981519152604482015290519081900360640190fd5b6009546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600980546001600160a01b0319169055565b6009546001600160a01b031690565b6009546000906001600160a01b0316610d52611583565b6001600160a01b031614905090565b600954600160a01b900460ff1690565b610d79610d2c565b6001600160a01b0316610d8a611583565b6001600160a01b03161480610dc45750600b6000610da6611583565b6001600160a01b0316815260208101919091526040016000205460ff165b610dff5760405162461bcd60e51b81526004018080602001828103825260248152602001806129236024913960400191505060405180910390fd5b610e22610e0a611583565b8484846040518060200160405280600081525061185b565b505050565b806001600160a01b0316610e39611583565b6001600160a01b03161415610e7f5760405162461bcd60e51b81526004018080602001828103825260248152602001806128de6024913960400191505060405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615610ee25760076000610eac611583565b6001600160a01b03908116825260208083019390935260409182016000908120918516815292529020805460ff19169055610f29565b600160066000610ef0611583565b6001600160a01b03908116825260208083019390935260409182016000908120918616815292529020805460ff19169115159190911790555b610f31611583565b6001600160a01b0316816001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a350565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610a885780601f10610af057610100808354040283529160200191610a88565b600954600160a01b900460ff1680610ff25750610ff2610b65611583565b8061100157506110018361162e565b61103c5760405162461bcd60e51b8152600401808060200182810382526028815260200180612a346028913960400191505060405180910390fd5b610e22838383611a86565b61104f610d3b565b61108e576040805162461bcd60e51b81526020600482018190526024820152600080516020612947833981519152604482015290519081900360640190fd5b60098054911515600160a01b0260ff60a01b19909216919091179055565b600954600090600160a01b900460ff16806110cd57506110cd610b65611583565b806110dc57506110dc8361162e565b6111175760405162461bcd60e51b815260040180806020018281038252602c815260200180612a08602c913960400191505060405180910390fd5b6111218383611ab3565b9392505050565b611130610d3b565b61116f576040805162461bcd60e51b81526020600482018190526024820152600080516020612947833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000816001600160a01b0316836001600160a01b0316148061120557506001600160a01b03831660009081526005602052604090205460ff16801561120557506001600160a01b0380831660009081526007602090815260408083209387168352929052205460ff16155b806111215750506001600160a01b0390811660009081526006602090815260408083209490931682529290925290205460ff1690565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b61126e610d3b565b6112ad576040805162461bcd60e51b81526020600482018190526024820152600080516020612947833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6112e0610d3b565b61131f576040805162461bcd60e51b81526020600482018190526024820152600080516020612947833981519152604482015290519081900360640190fd5b61132881611b8c565b50565b600b6020526000908152604090205460ff1681565b611348611583565b6001600160a01b0316816001600160a01b031614156113985760405162461bcd60e51b81526004018080602001828103825260218152602001806129026021913960400191505060405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615611404576001600760006113c7611583565b6001600160a01b03908116825260208083019390935260409182016000908120918616815292529020805460ff1916911515919091179055611442565b60066000611410611583565b6001600160a01b03908116825260208083019390935260409182016000908120918516815292529020805460ff191690555b61144a611583565b6001600160a01b0316816001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a350565b600954600160a01b900460ff16806114aa57506114aa610b65611583565b806114b957506114b98461162e565b6114f45760405162461bcd60e51b8152600401808060200182810382526026815260200180612ab16026913960400191505060405180910390fd5b61150084848484611c2d565b50505050565b600954600160a01b900460ff16806115245750611524610b65611583565b611575576040805162461bcd60e51b815260206004820152601e60248201527f4275726e3a2073656e646572206973206e6f7420617574686f72697a65640000604482015290519081900360640190fd5b61157f8282611c8d565b5050565b3390565b6001600160a01b0382166115cc5760405162461bcd60e51b8152600401808060200182810382526023815260200180612b206023913960400191505060405180910390fd5b6001600160a01b03808416600081815260086020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000611638610d2c565b6001600160a01b0316826001600160a01b0316148061166f57506001600160a01b0382166000908152600a602052604090205460ff165b92915050565b60006001600160a01b0383166116bc5760405162461bcd60e51b81526004018080602001828103825260248152602001806129e46024913960400191505060405180910390fd5b6001600160a01b0384166117015760405162461bcd60e51b8152600401808060200182810382526026815260200180612ad76026913960400191505060405180910390fd5b600061170b611583565b9050611739818686866040518060200160405280600081525060405180602001604052806000815250611cb7565b611765818686866040518060200160405280600081525060405180602001604052806000815250611eff565b6117bf85826117ba86604051806060016040528060298152602001612a88602991396001600160a01b03808c166000908152600860209081526040808320938b1683529290522054919063ffffffff61211816565b611587565b6117ed81868686604051806020016040528060008152506040518060200160405280600081525060006121af565b506001949350505050565b611809611803611583565b8661119a565b6118445760405162461bcd60e51b815260040180806020018281038252602c815260200180612a5c602c913960400191505060405180910390fd5b610c7961184f611583565b8686868686600161244f565b6001600160a01b0384166118b6576040805162461bcd60e51b815260206004820181905260248201527f4552433737373a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b6001546118c9908463ffffffff61251a16565b6001556001600160a01b0384166000908152602081905260409020546118f5908463ffffffff61251a16565b6001600160a01b0385166000908152602081905260408120919091556119229086908686868660016121af565b836001600160a01b0316856001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d858585604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156119a1578181015183820152602001611989565b50505050905090810190601f1680156119ce5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611a015781810151838201526020016119e9565b50505050905090810190601f168015611a2e5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a36040805184815290516001600160a01b038616916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050505050565b610e22611a91611583565b611a99611583565b85858560405180602001604052806000815250600161244f565b60006001600160a01b038316611afa5760405162461bcd60e51b81526004018080602001828103825260248152602001806129e46024913960400191505060405180910390fd5b6000611b04611583565b9050611b32818286866040518060200160405280600081525060405180602001604052806000815250611cb7565b611b5e818286866040518060200160405280600081525060405180602001604052806000815250611eff565b610b3481828686604051806020016040528060008152506040518060200160405280600081525060006121af565b6001600160a01b038116611bd15760405162461bcd60e51b81526004018080602001828103825260268152602001806128666026913960400191505060405180910390fd5b6009546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b611c3e611c38611583565b8561119a565b611c795760405162461bcd60e51b815260040180806020018281038252602c815260200180612a5c602c913960400191505060405180910390fd5b611500611c84611583565b85858585612574565b61157f611c98611583565b611ca0611583565b848460405180602001604052806000815250612574565b6040805163555ddc6560e11b81526001600160a01b03871660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe89560248201529051600091731820a4b7618bde71dce8cdc73aab6c95905fad249163aabbb8ca91604480820192602092909190829003018186803b158015611d3b57600080fd5b505afa158015611d4f573d6000803e3d6000fd5b505050506040513d6020811015611d6557600080fd5b505190506001600160a01b03811615611ef657806001600160a01b03166375ab97828888888888886040518763ffffffff1660e01b815260040180876001600160a01b03166001600160a01b03168152602001866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b031681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015611e2b578181015183820152602001611e13565b50505050905090810190601f168015611e585780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611e8b578181015183820152602001611e73565b50505050905090810190601f168015611eb85780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b158015611edd57600080fd5b505af1158015611ef1573d6000803e3d6000fd5b505050505b50505050505050565b611f428360405180606001604052806027815260200161283f602791396001600160a01b038816600090815260208190526040902054919063ffffffff61211816565b6001600160a01b038087166000908152602081905260408082209390935590861681522054611f77908463ffffffff61251a16565b600080866001600160a01b03166001600160a01b0316815260200190815260200160002081905550836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987868686604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015612028578181015183820152602001612010565b50505050905090810190601f1680156120555780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015612088578181015183820152602001612070565b50505050905090810190601f1680156120b55780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a4836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050565b600081848411156121a75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561216c578181015183820152602001612154565b50505050905090810190601f1680156121995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6040805163555ddc6560e11b81526001600160a01b03871660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b60248201529051600091731820a4b7618bde71dce8cdc73aab6c95905fad249163aabbb8ca91604480820192602092909190829003018186803b15801561223357600080fd5b505afa158015612247573d6000803e3d6000fd5b505050506040513d602081101561225d57600080fd5b505190506001600160a01b038116156123f157806001600160a01b03166223de298989898989896040518763ffffffff1660e01b815260040180876001600160a01b03166001600160a01b03168152602001866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b031681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561232257818101518382015260200161230a565b50505050905090810190601f16801561234f5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561238257818101518382015260200161236a565b50505050905090810190601f1680156123af5780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b1580156123d457600080fd5b505af11580156123e8573d6000803e3d6000fd5b50505050612445565b811561244557612409866001600160a01b03166127a1565b156124455760405162461bcd60e51b815260040180806020018281038252604d815260200180612997604d913960600191505060405180910390fd5b5050505050505050565b6001600160a01b0386166124945760405162461bcd60e51b815260040180806020018281038252602281526020018061281d6022913960400191505060405180910390fd5b6001600160a01b0385166124ef576040805162461bcd60e51b815260206004820181905260248201527f4552433737373a2073656e6420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b6124fd878787878787611cb7565b61250b878787878787611eff565b611ef6878787878787876121af565b600082820183811015611121576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b0384166125b95760405162461bcd60e51b81526004018080602001828103825260228152602001806128bc6022913960400191505060405180910390fd5b6125c885856000868686611cb7565b61260b83604051806060016040528060238152602001612afd602391396001600160a01b038716600090815260208190526040902054919063ffffffff61211816565b6001600160a01b038516600090815260208190526040902055600154612637908463ffffffff6127da16565b600181905550836001600160a01b0316856001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098858585604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156126bc5781810151838201526020016126a4565b50505050905090810190601f1680156126e95780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561271c578181015183820152602001612704565b50505050905090810190601f1680156127495780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a36040805184815290516000916001600160a01b038716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610bce575050151592915050565b600061112183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061211856fe4552433737373a2073656e642066726f6d20746865207a65726f20616464726573734552433737373a207472616e7366657220616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f70657261746f7253656e643a2073656e6465722f726563697069656e74206973206e6f7420617574686f72697a65644552433737373a206275726e2066726f6d20746865207a65726f20616464726573734552433737373a20617574686f72697a696e672073656c66206173206f70657261746f724552433737373a207265766f6b696e672073656c66206173206f70657261746f72536d6172746578546f6b656e3a2063616c6c6572206973206e6f742061206d696e7465724f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725472616e7366657246726f6d3a2073656e6465722f726563697069656e74206973206e6f7420617574686f72697a65644552433737373a20746f6b656e20726563697069656e7420636f6e747261637420686173206e6f20696d706c656d656e74657220666f7220455243373737546f6b656e73526563697069656e744552433737373a207472616e7366657220746f20746865207a65726f20616464726573735472616e736665723a2073656e6465722f726563697069656e74206973206e6f7420617574686f72697a656453656e643a2073656e6465722f726563697069656e74206973206e6f7420617574686f72697a65644552433737373a2063616c6c6572206973206e6f7420616e206f70657261746f7220666f7220686f6c6465724552433737373a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f70657261746f724275726e3a2073656e646572206973206e6f7420617574686f72697a65644552433737373a207472616e736665722066726f6d20746865207a65726f20616464726573734552433737373a206275726e20616d6f756e7420657863656564732062616c616e63654552433737373a20617070726f766520746f20746865207a65726f2061646472657373a265627a7a723158208e26b66d6f4ce87ce700529a14a43476f834f11af3c58f346faf60d407fda4c864736f6c634300050c00324552433737373a20746f6b656e20726563697069656e7420636f6e747261637420686173206e6f20696d706c656d656e74657220666f7220455243373737546f6b656e73526563697069656e74
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c806394d008ef11610104578063d95b6371116100a2578063f46eccc411610071578063f46eccc4146107fb578063fad8b32a14610821578063fc673c4f14610847578063fe9d930314610985576101cf565b8063d95b63711461074b578063dd62ed3e14610779578063eecea000146107a7578063f2fde38b146107d5576101cf565b80639bd9bbc6116100de5780639bd9bbc6146106195780639cd23707146106d2578063a9059cbb146106f1578063cf456ae71461071d576101cf565b806394d008ef14610532578063959b8c3f146105eb57806395d89b4114610611576101cf565b8063556f0dc711610171578063715018a61161014b578063715018a6146104f65780638da5cb5b146104fe5780638f32d59b1461052257806392ff0d311461052a576101cf565b8063556f0dc71461037d57806362ad1b831461038557806370a08231146104d0576101cf565b806318160ddd116101ad57806318160ddd146102e957806323b872dd1461030357806324ba588414610339578063313ce5671461035f576101cf565b806306e48538146101d457806306fdde031461022c578063095ea7b3146102a9575b600080fd5b6101dc610a30565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610218578181015183820152602001610200565b505050509050019250505060405180910390f35b610234610a92565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561026e578181015183820152602001610256565b50505050905090810190601f16801561029b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102d5600480360360408110156102bf57600080fd5b506001600160a01b038135169060200135610b1c565b604080519115158252519081900360200190f35b6102f1610b3e565b60408051918252519081900360200190f35b6102d56004803603606081101561031957600080fd5b506001600160a01b03813581169160208101359091169060400135610b44565b6102d56004803603602081101561034f57600080fd5b50356001600160a01b0316610bd6565b610367610beb565b6040805160ff9092168252519081900360200190f35b6102f1610bf0565b6104ce600480360360a081101561039b57600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b8111156103d557600080fd5b8201836020820111156103e757600080fd5b803590602001918460018302840111600160201b8311171561040857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561045a57600080fd5b82018360208201111561046c57600080fd5b803590602001918460018302840111600160201b8311171561048d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610bf5945050505050565b005b6102f1600480360360208110156104e657600080fd5b50356001600160a01b0316610c80565b6104ce610c9b565b610506610d2c565b604080516001600160a01b039092168252519081900360200190f35b6102d5610d3b565b6102d5610d61565b6104ce6004803603606081101561054857600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561057757600080fd5b82018360208201111561058957600080fd5b803590602001918460018302840111600160201b831117156105aa57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610d71945050505050565b6104ce6004803603602081101561060157600080fd5b50356001600160a01b0316610e27565b610234610f73565b6104ce6004803603606081101561062f57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561065e57600080fd5b82018360208201111561067057600080fd5b803590602001918460018302840111600160201b8311171561069157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610fd4945050505050565b6104ce600480360360208110156106e857600080fd5b50351515611047565b6102d56004803603604081101561070757600080fd5b506001600160a01b0381351690602001356110ac565b6104ce6004803603604081101561073357600080fd5b506001600160a01b0381351690602001351515611128565b6102d56004803603604081101561076157600080fd5b506001600160a01b038135811691602001351661119a565b6102f16004803603604081101561078f57600080fd5b506001600160a01b038135811691602001351661123b565b6104ce600480360360408110156107bd57600080fd5b506001600160a01b0381351690602001351515611266565b6104ce600480360360208110156107eb57600080fd5b50356001600160a01b03166112d8565b6102d56004803603602081101561081157600080fd5b50356001600160a01b031661132b565b6104ce6004803603602081101561083757600080fd5b50356001600160a01b0316611340565b6104ce6004803603608081101561085d57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561088c57600080fd5b82018360208201111561089e57600080fd5b803590602001918460018302840111600160201b831117156108bf57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561091157600080fd5b82018360208201111561092357600080fd5b803590602001918460018302840111600160201b8311171561094457600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061148c945050505050565b6104ce6004803603604081101561099b57600080fd5b81359190810190604081016020820135600160201b8111156109bc57600080fd5b8201836020820111156109ce57600080fd5b803590602001918460018302840111600160201b831117156109ef57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611506945050505050565b60606004805480602002602001604051908101604052809291908181526020018280548015610a8857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a6a575b5050505050905090565b60028054604080516020601f6000196101006001871615020190941685900493840181900481028201810190925282815260609390929091830182828015610a885780601f10610af057610100808354040283529160200191610a88565b820191906000526020600020905b815481529060010190602001808311610afe57509395945050505050565b600080610b27611583565b9050610b34818585611587565b5060019392505050565b60015490565b600954600090600160a01b900460ff1680610b6a5750610b6a610b65611583565b61162e565b80610b795750610b798461162e565b80610b885750610b888361162e565b610bc35760405162461bcd60e51b81526004018080602001828103825260308152602001806129676030913960400191505060405180910390fd5b610bce848484611675565b949350505050565b600a6020526000908152604090205460ff1681565b601290565b600190565b600954600160a01b900460ff1680610c135750610c13610b65611583565b80610c225750610c228561162e565b80610c315750610c318461162e565b610c6c5760405162461bcd60e51b815260040180806020018281038252603081526020018061288c6030913960400191505060405180910390fd5b610c7985858585856117f8565b5050505050565b6001600160a01b031660009081526020819052604090205490565b610ca3610d3b565b610ce2576040805162461bcd60e51b81526020600482018190526024820152600080516020612947833981519152604482015290519081900360640190fd5b6009546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600980546001600160a01b0319169055565b6009546001600160a01b031690565b6009546000906001600160a01b0316610d52611583565b6001600160a01b031614905090565b600954600160a01b900460ff1690565b610d79610d2c565b6001600160a01b0316610d8a611583565b6001600160a01b03161480610dc45750600b6000610da6611583565b6001600160a01b0316815260208101919091526040016000205460ff165b610dff5760405162461bcd60e51b81526004018080602001828103825260248152602001806129236024913960400191505060405180910390fd5b610e22610e0a611583565b8484846040518060200160405280600081525061185b565b505050565b806001600160a01b0316610e39611583565b6001600160a01b03161415610e7f5760405162461bcd60e51b81526004018080602001828103825260248152602001806128de6024913960400191505060405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615610ee25760076000610eac611583565b6001600160a01b03908116825260208083019390935260409182016000908120918516815292529020805460ff19169055610f29565b600160066000610ef0611583565b6001600160a01b03908116825260208083019390935260409182016000908120918616815292529020805460ff19169115159190911790555b610f31611583565b6001600160a01b0316816001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a350565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610a885780601f10610af057610100808354040283529160200191610a88565b600954600160a01b900460ff1680610ff25750610ff2610b65611583565b8061100157506110018361162e565b61103c5760405162461bcd60e51b8152600401808060200182810382526028815260200180612a346028913960400191505060405180910390fd5b610e22838383611a86565b61104f610d3b565b61108e576040805162461bcd60e51b81526020600482018190526024820152600080516020612947833981519152604482015290519081900360640190fd5b60098054911515600160a01b0260ff60a01b19909216919091179055565b600954600090600160a01b900460ff16806110cd57506110cd610b65611583565b806110dc57506110dc8361162e565b6111175760405162461bcd60e51b815260040180806020018281038252602c815260200180612a08602c913960400191505060405180910390fd5b6111218383611ab3565b9392505050565b611130610d3b565b61116f576040805162461bcd60e51b81526020600482018190526024820152600080516020612947833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000816001600160a01b0316836001600160a01b0316148061120557506001600160a01b03831660009081526005602052604090205460ff16801561120557506001600160a01b0380831660009081526007602090815260408083209387168352929052205460ff16155b806111215750506001600160a01b0390811660009081526006602090815260408083209490931682529290925290205460ff1690565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b61126e610d3b565b6112ad576040805162461bcd60e51b81526020600482018190526024820152600080516020612947833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6112e0610d3b565b61131f576040805162461bcd60e51b81526020600482018190526024820152600080516020612947833981519152604482015290519081900360640190fd5b61132881611b8c565b50565b600b6020526000908152604090205460ff1681565b611348611583565b6001600160a01b0316816001600160a01b031614156113985760405162461bcd60e51b81526004018080602001828103825260218152602001806129026021913960400191505060405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615611404576001600760006113c7611583565b6001600160a01b03908116825260208083019390935260409182016000908120918616815292529020805460ff1916911515919091179055611442565b60066000611410611583565b6001600160a01b03908116825260208083019390935260409182016000908120918516815292529020805460ff191690555b61144a611583565b6001600160a01b0316816001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a350565b600954600160a01b900460ff16806114aa57506114aa610b65611583565b806114b957506114b98461162e565b6114f45760405162461bcd60e51b8152600401808060200182810382526026815260200180612ab16026913960400191505060405180910390fd5b61150084848484611c2d565b50505050565b600954600160a01b900460ff16806115245750611524610b65611583565b611575576040805162461bcd60e51b815260206004820152601e60248201527f4275726e3a2073656e646572206973206e6f7420617574686f72697a65640000604482015290519081900360640190fd5b61157f8282611c8d565b5050565b3390565b6001600160a01b0382166115cc5760405162461bcd60e51b8152600401808060200182810382526023815260200180612b206023913960400191505060405180910390fd5b6001600160a01b03808416600081815260086020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000611638610d2c565b6001600160a01b0316826001600160a01b0316148061166f57506001600160a01b0382166000908152600a602052604090205460ff165b92915050565b60006001600160a01b0383166116bc5760405162461bcd60e51b81526004018080602001828103825260248152602001806129e46024913960400191505060405180910390fd5b6001600160a01b0384166117015760405162461bcd60e51b8152600401808060200182810382526026815260200180612ad76026913960400191505060405180910390fd5b600061170b611583565b9050611739818686866040518060200160405280600081525060405180602001604052806000815250611cb7565b611765818686866040518060200160405280600081525060405180602001604052806000815250611eff565b6117bf85826117ba86604051806060016040528060298152602001612a88602991396001600160a01b03808c166000908152600860209081526040808320938b1683529290522054919063ffffffff61211816565b611587565b6117ed81868686604051806020016040528060008152506040518060200160405280600081525060006121af565b506001949350505050565b611809611803611583565b8661119a565b6118445760405162461bcd60e51b815260040180806020018281038252602c815260200180612a5c602c913960400191505060405180910390fd5b610c7961184f611583565b8686868686600161244f565b6001600160a01b0384166118b6576040805162461bcd60e51b815260206004820181905260248201527f4552433737373a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b6001546118c9908463ffffffff61251a16565b6001556001600160a01b0384166000908152602081905260409020546118f5908463ffffffff61251a16565b6001600160a01b0385166000908152602081905260408120919091556119229086908686868660016121af565b836001600160a01b0316856001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d858585604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156119a1578181015183820152602001611989565b50505050905090810190601f1680156119ce5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611a015781810151838201526020016119e9565b50505050905090810190601f168015611a2e5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a36040805184815290516001600160a01b038616916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050505050565b610e22611a91611583565b611a99611583565b85858560405180602001604052806000815250600161244f565b60006001600160a01b038316611afa5760405162461bcd60e51b81526004018080602001828103825260248152602001806129e46024913960400191505060405180910390fd5b6000611b04611583565b9050611b32818286866040518060200160405280600081525060405180602001604052806000815250611cb7565b611b5e818286866040518060200160405280600081525060405180602001604052806000815250611eff565b610b3481828686604051806020016040528060008152506040518060200160405280600081525060006121af565b6001600160a01b038116611bd15760405162461bcd60e51b81526004018080602001828103825260268152602001806128666026913960400191505060405180910390fd5b6009546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b611c3e611c38611583565b8561119a565b611c795760405162461bcd60e51b815260040180806020018281038252602c815260200180612a5c602c913960400191505060405180910390fd5b611500611c84611583565b85858585612574565b61157f611c98611583565b611ca0611583565b848460405180602001604052806000815250612574565b6040805163555ddc6560e11b81526001600160a01b03871660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe89560248201529051600091731820a4b7618bde71dce8cdc73aab6c95905fad249163aabbb8ca91604480820192602092909190829003018186803b158015611d3b57600080fd5b505afa158015611d4f573d6000803e3d6000fd5b505050506040513d6020811015611d6557600080fd5b505190506001600160a01b03811615611ef657806001600160a01b03166375ab97828888888888886040518763ffffffff1660e01b815260040180876001600160a01b03166001600160a01b03168152602001866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b031681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015611e2b578181015183820152602001611e13565b50505050905090810190601f168015611e585780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611e8b578181015183820152602001611e73565b50505050905090810190601f168015611eb85780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b158015611edd57600080fd5b505af1158015611ef1573d6000803e3d6000fd5b505050505b50505050505050565b611f428360405180606001604052806027815260200161283f602791396001600160a01b038816600090815260208190526040902054919063ffffffff61211816565b6001600160a01b038087166000908152602081905260408082209390935590861681522054611f77908463ffffffff61251a16565b600080866001600160a01b03166001600160a01b0316815260200190815260200160002081905550836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987868686604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015612028578181015183820152602001612010565b50505050905090810190601f1680156120555780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015612088578181015183820152602001612070565b50505050905090810190601f1680156120b55780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a4836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050565b600081848411156121a75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561216c578181015183820152602001612154565b50505050905090810190601f1680156121995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6040805163555ddc6560e11b81526001600160a01b03871660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b60248201529051600091731820a4b7618bde71dce8cdc73aab6c95905fad249163aabbb8ca91604480820192602092909190829003018186803b15801561223357600080fd5b505afa158015612247573d6000803e3d6000fd5b505050506040513d602081101561225d57600080fd5b505190506001600160a01b038116156123f157806001600160a01b03166223de298989898989896040518763ffffffff1660e01b815260040180876001600160a01b03166001600160a01b03168152602001866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b031681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561232257818101518382015260200161230a565b50505050905090810190601f16801561234f5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561238257818101518382015260200161236a565b50505050905090810190601f1680156123af5780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b1580156123d457600080fd5b505af11580156123e8573d6000803e3d6000fd5b50505050612445565b811561244557612409866001600160a01b03166127a1565b156124455760405162461bcd60e51b815260040180806020018281038252604d815260200180612997604d913960600191505060405180910390fd5b5050505050505050565b6001600160a01b0386166124945760405162461bcd60e51b815260040180806020018281038252602281526020018061281d6022913960400191505060405180910390fd5b6001600160a01b0385166124ef576040805162461bcd60e51b815260206004820181905260248201527f4552433737373a2073656e6420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b6124fd878787878787611cb7565b61250b878787878787611eff565b611ef6878787878787876121af565b600082820183811015611121576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b0384166125b95760405162461bcd60e51b81526004018080602001828103825260228152602001806128bc6022913960400191505060405180910390fd5b6125c885856000868686611cb7565b61260b83604051806060016040528060238152602001612afd602391396001600160a01b038716600090815260208190526040902054919063ffffffff61211816565b6001600160a01b038516600090815260208190526040902055600154612637908463ffffffff6127da16565b600181905550836001600160a01b0316856001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098858585604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156126bc5781810151838201526020016126a4565b50505050905090810190601f1680156126e95780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561271c578181015183820152602001612704565b50505050905090810190601f1680156127495780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a36040805184815290516000916001600160a01b038716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610bce575050151592915050565b600061112183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061211856fe4552433737373a2073656e642066726f6d20746865207a65726f20616464726573734552433737373a207472616e7366657220616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f70657261746f7253656e643a2073656e6465722f726563697069656e74206973206e6f7420617574686f72697a65644552433737373a206275726e2066726f6d20746865207a65726f20616464726573734552433737373a20617574686f72697a696e672073656c66206173206f70657261746f724552433737373a207265766f6b696e672073656c66206173206f70657261746f72536d6172746578546f6b656e3a2063616c6c6572206973206e6f742061206d696e7465724f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725472616e7366657246726f6d3a2073656e6465722f726563697069656e74206973206e6f7420617574686f72697a65644552433737373a20746f6b656e20726563697069656e7420636f6e747261637420686173206e6f20696d706c656d656e74657220666f7220455243373737546f6b656e73526563697069656e744552433737373a207472616e7366657220746f20746865207a65726f20616464726573735472616e736665723a2073656e6465722f726563697069656e74206973206e6f7420617574686f72697a656453656e643a2073656e6465722f726563697069656e74206973206e6f7420617574686f72697a65644552433737373a2063616c6c6572206973206e6f7420616e206f70657261746f7220666f7220686f6c6465724552433737373a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f70657261746f724275726e3a2073656e646572206973206e6f7420617574686f72697a65644552433737373a207472616e736665722066726f6d20746865207a65726f20616464726573734552433737373a206275726e20616d6f756e7420657863656564732062616c616e63654552433737373a20617070726f766520746f20746865207a65726f2061646472657373a265627a7a723158208e26b66d6f4ce87ce700529a14a43476f834f11af3c58f346faf60d407fda4c864736f6c634300050c0032
Deployed Bytecode Sourcemap
17478:3298:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17478:3298:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11759:115;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11759:115:0;;;;;;;;;;;;;;;;;9294:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9294:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12711:184;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12711:184:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;9652:91;;;:::i;:::-;;;;;;;;;;;;;;;;20232:390;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;20232:390:0;;;;;;;;;;;;;;;;;:::i;17565:51::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17565:51:0;-1:-1:-1;;;;;17565:51:0;;:::i;9480:76::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9564:80;;;:::i;19431:434::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;19431:434:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;19431:434:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;19431:434:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;19431:434:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;19431:434:0;;;;;;;;-1:-1:-1;19431:434:0;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;19431:434:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;19431:434:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;19431:434:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;19431:434:0;;-1:-1:-1;19431:434:0;;-1:-1:-1;;;;;19431:434:0:i;:::-;;9751:118;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9751:118:0;-1:-1:-1;;;;;9751:118:0;;:::i;937:140::-;;;:::i;634:79::-;;;:::i;:::-;;;;-1:-1:-1;;;;;634:79:0;;;;;;;;;;;;;;835:94;;;:::i;18088:84::-;;;:::i;18418:143::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;18418:143:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;18418:143:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;18418:143:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;18418:143:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;18418:143:0;;-1:-1:-1;18418:143:0;;-1:-1:-1;;;;;18418:143:0:i;10942:405::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10942:405:0;-1:-1:-1;;;;;10942:405:0;;:::i;9385:87::-;;;:::i;18567:306::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;18567:306:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;18567:306:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;18567:306:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;18567:306:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;18567:306:0;;-1:-1:-1;18567:306:0;;-1:-1:-1;;;;;18567:306:0:i;17980:102::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17980:102:0;;;;:::i;18879:315::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18879:315:0;;;;;;;;:::i;18308:104::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18308:104:0;;;;;;;;;;:::i;10623:311::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10623:311:0;;;;;;;;;;:::i;12567:136::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12567:136:0;;;;;;;;;;:::i;18178:124::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18178:124:0;;;;;;;;;;:::i;1085:109::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1085:109:0;-1:-1:-1;;;;;1085:109:0;;:::i;17621:40::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17621:40:0;-1:-1:-1;;;;;17621:40:0;;:::i;11355:396::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11355:396:0;-1:-1:-1;;;;;11355:396:0;;:::i;19871:355::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;19871:355:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;19871:355:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;19871:355:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;19871:355:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;19871:355:0;;;;;;;;-1:-1:-1;19871:355:0;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;19871:355:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;19871:355:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;19871:355:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;19871:355:0;;-1:-1:-1;19871:355:0;;-1:-1:-1;;;;;19871:355:0:i;19200:225::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19200:225:0;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;19200:225:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;19200:225:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;19200:225:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;19200:225:0;;-1:-1:-1;19200:225:0;;-1:-1:-1;;;;;19200:225:0:i;11759:115::-;11808:16;11844:22;11837:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11837:29:0;;;;;;;;;;;;;;;;;;;;;;;11759:115;:::o;9294:83::-;9364:5;9357:12;;;;;;;-1:-1:-1;;9357:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9331:13;;9357:12;;9364:5;;9357:12;;9364:5;9357:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9357:12:0;;9294:83;-1:-1:-1;;;;;9294:83:0:o;12711:184::-;12776:4;12793:14;12810:12;:10;:12::i;:::-;12793:29;;12833:32;12842:6;12850:7;12859:5;12833:8;:32::i;:::-;-1:-1:-1;12883:4:0;;12711:184;-1:-1:-1;;;12711:184:0:o;9652:91::-;9723:12;;9652:91;:::o;20232:390::-;20350:13;;20321:4;;-1:-1:-1;;;20350:13:0;;;;;:58;;;20374:34;20395:12;:10;:12::i;:::-;20374:20;:34::i;:::-;20350:97;;;;20419:28;20440:6;20419:20;:28::i;:::-;20350:139;;;;20458:31;20479:9;20458:20;:31::i;:::-;20334:221;;;;-1:-1:-1;;;20334:221:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20571:45;20590:6;20598:9;20609:6;20571:18;:45::i;:::-;20564:52;20232:390;-1:-1:-1;;;;20232:390:0:o;17565:51::-;;;;;;;;;;;;;;;:::o;9480:76::-;9546:2;9480:76;:::o;9564:80::-;9635:1;9564:80;:::o;19431:434::-;19580:13;;-1:-1:-1;;;19580:13:0;;;;;:58;;;19604:34;19625:12;:10;:12::i;19604:34::-;19580:97;;;;19649:28;19670:6;19649:20;:28::i;:::-;19580:139;;;;19688:31;19709:9;19688:20;:31::i;:::-;19564:221;;;;-1:-1:-1;;;19564:221:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19794:65;19813:6;19821:9;19832:6;19840:4;19846:12;19794:18;:65::i;:::-;19431:434;;;;;:::o;9751:118::-;-1:-1:-1;;;;;9839:22:0;9812:7;9839:22;;;;;;;;;;;;9751:118::o;937:140::-;761:9;:7;:9::i;:::-;753:54;;;;;-1:-1:-1;;;753:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;753:54:0;;;;;;;;;;;;;;;1020:6;;999:40;;1036:1;;-1:-1:-1;;;;;1020:6:0;;999:40;;1036:1;;999:40;1050:6;:19;;-1:-1:-1;;;;;;1050:19:0;;;937:140::o;634:79::-;699:6;;-1:-1:-1;;;;;699:6:0;634:79;:::o;835:94::-;915:6;;875:4;;-1:-1:-1;;;;;915:6:0;899:12;:10;:12::i;:::-;-1:-1:-1;;;;;899:22:0;;892:29;;835:94;:::o;18088:84::-;18153:13;;-1:-1:-1;;;18153:13:0;;;;;18088:84::o;18418:143::-;17721:7;:5;:7::i;:::-;-1:-1:-1;;;;;17705:23:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;17705:23:0;;:48;;;;17732:7;:21;17740:12;:10;:12::i;:::-;-1:-1:-1;;;;;17732:21:0;;;;;;;;;;;;-1:-1:-1;17732:21:0;;;;17705:48;17697:97;;;;-1:-1:-1;;;17697:97:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18509:46;18515:12;:10;:12::i;:::-;18529:7;18538:6;18546:4;18509:46;;;;;;;;;;;;:5;:46::i;:::-;18418:143;;;:::o;10942:405::-;11029:8;-1:-1:-1;;;;;11013:24:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;11013:24:0;;;11005:73;;;;-1:-1:-1;;;11005:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11095:27:0;;;;;;:17;:27;;;;;;;;11091:189;;;11146:24;:38;11171:12;:10;:12::i;:::-;-1:-1:-1;;;;;11146:38:0;;;;;;;;;;;;;;;;;-1:-1:-1;11146:38:0;;;:48;;;;;;;;;11139:55;;-1:-1:-1;;11139:55:0;;;11091:189;;;11264:4;11227:10;:24;11238:12;:10;:12::i;:::-;-1:-1:-1;;;;;11227:24:0;;;;;;;;;;;;;;;;;-1:-1:-1;11227:24:0;;;:34;;;;;;;;;:41;;-1:-1:-1;;11227:41:0;;;;;;;;;;11091:189;11326:12;:10;:12::i;:::-;-1:-1:-1;;;;;11297:42:0;11316:8;-1:-1:-1;;;;;11297:42:0;;;;;;;;;;;10942:405;:::o;9385:87::-;9457:7;9450:14;;;;;;;;-1:-1:-1;;9450:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9424:13;;9450:14;;9457:7;;9450:14;;9457:7;9450:14;;;;;;;;;;;;;;;;;;;;;;;;18567:306;18665:13;;-1:-1:-1;;;18665:13:0;;;;;:58;;;18689:34;18710:12;:10;:12::i;18689:34::-;18665:100;;;;18734:31;18755:9;18734:20;:31::i;:::-;18649:174;;;;-1:-1:-1;;;18649:174:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18832:35;18843:9;18854:6;18862:4;18832:10;:35::i;17980:102::-;761:9;:7;:9::i;:::-;753:54;;;;;-1:-1:-1;;;753:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;753:54:0;;;;;;;;;;;;;;;18048:13;:28;;;;;-1:-1:-1;;;18048:28:0;-1:-1:-1;;;;18048:28:0;;;;;;;;;17980:102::o;18879:315::-;18977:13;;18948:4;;-1:-1:-1;;;18977:13:0;;;;;:58;;;19001:34;19022:12;:10;:12::i;19001:34::-;18977:100;;;;19046:31;19067:9;19046:20;:31::i;:::-;18961:178;;;;-1:-1:-1;;;18961:178:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19155:33;19170:9;19181:6;19155:14;:33::i;:::-;19148:40;18879:315;-1:-1:-1;;;18879:315:0:o;18308:104::-;761:9;:7;:9::i;:::-;753:54;;;;;-1:-1:-1;;;753:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;753:54:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;18381:15:0;;;;;;;;:7;:15;;;;;:25;;-1:-1:-1;;18381:25:0;;;;;;;;;;18308:104::o;10623:311::-;10731:4;10767:11;-1:-1:-1;;;;;10755:23:0;:8;-1:-1:-1;;;;;10755:23:0;;:121;;;-1:-1:-1;;;;;;10796:27:0;;;;;;:17;:27;;;;;;;;:79;;;;-1:-1:-1;;;;;;10828:37:0;;;;;;;:24;:37;;;;;;;;:47;;;;;;;;;;;;10827:48;10796:79;10755:171;;;-1:-1:-1;;;;;;;10893:23:0;;;;;;;:10;:23;;;;;;;;:33;;;;;;;;;;;;;;;;10623:311::o;12567:136::-;-1:-1:-1;;;;;12667:19:0;;;12640:7;12667:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;12567:136::o;18178:124::-;761:9;:7;:9::i;:::-;753:54;;;;;-1:-1:-1;;;753:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;753:54:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;18259:27:0;;;;;;;;:18;:27;;;;;:37;;-1:-1:-1;;18259:37:0;;;;;;;;;;18178:124::o;1085:109::-;761:9;:7;:9::i;:::-;753:54;;;;;-1:-1:-1;;;753:54:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;753:54:0;;;;;;;;;;;;;;;1158:28;1177:8;1158:18;:28::i;:::-;1085:109;:::o;17621:40::-;;;;;;;;;;;;;;;:::o;11355:396::-;11435:12;:10;:12::i;:::-;-1:-1:-1;;;;;11423:24:0;:8;-1:-1:-1;;;;;11423:24:0;;;11415:70;;;;-1:-1:-1;;;11415:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11502:27:0;;;;;;:17;:27;;;;;;;;11498:189;;;11597:4;11546:24;:38;11571:12;:10;:12::i;:::-;-1:-1:-1;;;;;11546:38:0;;;;;;;;;;;;;;;;;-1:-1:-1;11546:38:0;;;:48;;;;;;;;;:55;;-1:-1:-1;;11546:55:0;;;;;;;;;;11498:189;;;11641:10;:24;11652:12;:10;:12::i;:::-;-1:-1:-1;;;;;11641:24:0;;;;;;;;;;;;;;;;;-1:-1:-1;11641:24:0;;;:34;;;;;;;;;11634:41;;-1:-1:-1;;11634:41:0;;;11498:189;11730:12;:10;:12::i;:::-;-1:-1:-1;;;;;11704:39:0;11720:8;-1:-1:-1;;;;;11704:39:0;;;;;;;;;;;11355:396;:::o;19871:355::-;20002:13;;-1:-1:-1;;;20002:13:0;;;;;:58;;;20026:34;20047:12;:10;:12::i;20026:34::-;20002:98;;;;20071:29;20092:7;20071:20;:29::i;:::-;19986:170;;;;-1:-1:-1;;;19986:170:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20165:55;20184:7;20193:6;20201:4;20207:12;20165:18;:55::i;:::-;19871:355;;;;:::o;19200:225::-;19280:13;;-1:-1:-1;;;19280:13:0;;;;;:58;;;19304:34;19325:12;:10;:12::i;19304:34::-;19264:122;;;;;-1:-1:-1;;;19264:122:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;19395:24;19406:6;19414:4;19395:10;:24::i;:::-;19200:225;;:::o;86:98::-;166:10;86:98;:::o;15994:260::-;-1:-1:-1;;;;;16088:21:0;;16080:69;;;;-1:-1:-1;;;16080:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16162:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:36;;;16214:32;;;;;;;;;;;;;;;;;15994:260;;;:::o;20628:145::-;20698:4;20729:7;:5;:7::i;:::-;-1:-1:-1;;;;;20718:18:0;:7;-1:-1:-1;;;;;20718:18:0;;:49;;;-1:-1:-1;;;;;;20740:27:0;;;;;;:18;:27;;;;;;;;20718:49;20711:56;20628:145;-1:-1:-1;;20628:145:0:o;12903:677::-;12992:4;-1:-1:-1;;;;;13017:23:0;;13009:72;;;;-1:-1:-1;;;13009:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13100:20:0;;13092:71;;;;-1:-1:-1;;;13092:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13176:15;13194:12;:10;:12::i;:::-;13176:30;;13219:61;13237:7;13246:6;13254:9;13265:6;13219:61;;;;;;;;;;;;;;;;;;;;;;;;:17;:61::i;:::-;13293:49;13299:7;13308:6;13316:9;13327:6;13293:49;;;;;;;;;;;;;;;;;;;;;;;;:5;:49::i;:::-;13353:112;13362:6;13370:7;13379:85;13412:6;13379:85;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13379:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;:85;;:32;:85;:::i;:::-;13353:8;:112::i;:::-;13478:70;13498:7;13507:6;13515:9;13526:6;13478:70;;;;;;;;;;;;;;;;;;;;;;;;13542:5;13478:19;:70::i;:::-;-1:-1:-1;13568:4:0;;12903:677;-1:-1:-1;;;;12903:677:0:o;11882:382::-;12089:35;12103:12;:10;:12::i;:::-;12117:6;12089:13;:35::i;:::-;12081:92;;;;-1:-1:-1;;;12081:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12184:72;12190:12;:10;:12::i;:::-;12204:6;12212:9;12223:6;12231:4;12237:12;12251:4;12184:5;:72::i;13588:615::-;-1:-1:-1;;;;;13794:21:0;;13786:66;;;;;-1:-1:-1;;;13786:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13880:12;;:24;;13897:6;13880:24;:16;:24;:::i;:::-;13865:12;:39;-1:-1:-1;;;;;13936:18:0;;:9;:18;;;;;;;;;;;:30;;13959:6;13936:30;:22;:30;:::i;:::-;-1:-1:-1;;;;;13915:18:0;;:9;:18;;;;;;;;;;:51;;;;13979:88;;13999:8;;13925:7;14030:6;14038:8;14048:12;14062:4;13979:19;:88::i;:::-;14102:7;-1:-1:-1;;;;;14085:57:0;14092:8;-1:-1:-1;;;;;14085:57:0;;14111:6;14119:8;14129:12;14085:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;14085:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14085:57:0;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;14085:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14158:37;;;;;;;;-1:-1:-1;;;;;14158:37:0;;;14175:1;;14158:37;;;;;;;;;13588:615;;;;;:::o;9877:162::-;9963:68;9969:12;:10;:12::i;:::-;9983;:10;:12::i;:::-;9997:9;10008:6;10016:4;9963:68;;;;;;;;;;;;10026:4;9963:5;:68::i;10047:434::-;10116:4;-1:-1:-1;;;;;10141:23:0;;10133:72;;;;-1:-1:-1;;;10133:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10218:12;10233;:10;:12::i;:::-;10218:27;;10258:56;10276:4;10282;10288:9;10299:6;10258:56;;;;;;;;;;;;;;;;;;;;;;;;:17;:56::i;:::-;10327:44;10333:4;10339;10345:9;10356:6;10327:44;;;;;;;;;;;;;;;;;;;;;;;;:5;:44::i;:::-;10384:65;10404:4;10410;10416:9;10427:6;10384:65;;;;;;;;;;;;;;;;;;;;;;;;10443:5;10384:19;:65::i;1202:229::-;-1:-1:-1;;;;;1276:22:0;;1268:73;;;;-1:-1:-1;;;1268:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1378:6;;1357:38;;-1:-1:-1;;;;;1357:38:0;;;;1378:6;;1357:38;;1378:6;;1357:38;1406:6;:17;;-1:-1:-1;;;;;;1406:17:0;-1:-1:-1;;;;;1406:17:0;;;;;;;;;;1202:229::o;12272:287::-;12399:36;12413:12;:10;:12::i;:::-;12427:7;12399:13;:36::i;:::-;12391:93;;;;-1:-1:-1;;;12391:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12495:56;12501:12;:10;:12::i;:::-;12515:7;12524:6;12532:4;12538:12;12495:5;:56::i;10489:126::-;10556:51;10562:12;:10;:12::i;:::-;10576;:10;:12::i;:::-;10590:6;10598:4;10556:51;;;;;;;;;;;;:5;:51::i;16262:497::-;16516:76;;;-1:-1:-1;;;16516:76:0;;-1:-1:-1;;;;;16516:76:0;;;;;;8121:66;16516:76;;;;;;16494:19;;7855:42;;16516:40;;:76;;;;;;;;;;;;;;;7855:42;16516:76;;;5:2:-1;;;;30:1;27;20:12;5:2;16516:76:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16516:76:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16516:76:0;;-1:-1:-1;;;;;;16607:25:0;;;16603:149;;16663:11;-1:-1:-1;;;;;16649:39:0;;16689:8;16699:4;16705:2;16709:6;16717:8;16727:12;16649:91;;;;;;;;;;;;;-1:-1:-1;;;;;16649:91:0;-1:-1:-1;;;;;16649:91:0;;;;;;-1:-1:-1;;;;;16649:91:0;-1:-1:-1;;;;;16649:91:0;;;;;;-1:-1:-1;;;;;16649:91:0;-1:-1:-1;;;;;16649:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;16649:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16649:91:0;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;16649:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16649:91:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16649:91:0;;;;16603:149;16262:497;;;;;;;:::o;15503:483::-;15740:70;15760:6;15740:70;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15740:15:0;;:9;:15;;;;;;;;;;;;:70;;:19;:70;:::i;:::-;-1:-1:-1;;;;;15722:15:0;;;:9;:15;;;;;;;;;;;:88;;;;15837:13;;;;;;;:25;;15855:6;15837:25;:17;:25;:::i;:::-;15821:9;:13;15831:2;-1:-1:-1;;;;;15821:13:0;-1:-1:-1;;;;;15821:13:0;;;;;;;;;;;;:41;;;;15901:2;-1:-1:-1;;;;;15880:56:0;15895:4;-1:-1:-1;;;;;15880:56:0;15885:8;-1:-1:-1;;;;;15880:56:0;;15905:6;15913:8;15923:12;15880:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;15880:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15880:56:0;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;15880:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15967:2;-1:-1:-1;;;;;15952:26:0;15961:4;-1:-1:-1;;;;;15952:26:0;;15971:6;15952:26;;;;;;;;;;;;;;;;;;15503:483;;;;;;:::o;4739:192::-;4825:7;4861:12;4853:6;;;;4845:29;;;;-1:-1:-1;;;4845:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4845:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4897:5:0;;;4739:192::o;16767:704::-;17058:77;;;-1:-1:-1;;;17058:77:0;;-1:-1:-1;;;;;17058:77:0;;;;;;8264:66;17058:77;;;;;;17036:19;;7855:42;;17058:40;;:77;;;;;;;;;;;;;;;7855:42;17058:77;;;5:2:-1;;;;30:1;27;20:12;5:2;17058:77:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17058:77:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17058:77:0;;-1:-1:-1;;;;;;17150:25:0;;;17146:318;;17209:11;-1:-1:-1;;;;;17192:44:0;;17237:8;17247:4;17253:2;17257:6;17265:8;17275:12;17192:96;;;;;;;;;;;;;-1:-1:-1;;;;;17192:96:0;-1:-1:-1;;;;;17192:96:0;;;;;;-1:-1:-1;;;;;17192:96:0;-1:-1:-1;;;;;17192:96:0;;;;;;-1:-1:-1;;;;;17192:96:0;-1:-1:-1;;;;;17192:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;17192:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17192:96:0;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;17192:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17192:96:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17192:96:0;;;;17146:318;;;17310:19;17306:158;;;17355:15;:2;-1:-1:-1;;;;;17355:13:0;;:15::i;:::-;17354:16;17346:106;;;;-1:-1:-1;;;17346:106:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16767:704;;;;;;;;:::o;14211:657::-;-1:-1:-1;;;;;14474:18:0;;14466:65;;;;-1:-1:-1;;;14466:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14550:16:0;;14542:61;;;;;-1:-1:-1;;;14542:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14616:69;14634:8;14644:4;14650:2;14654:6;14662:8;14672:12;14616:17;:69::i;:::-;14698:57;14704:8;14714:4;14720:2;14724:6;14732:8;14742:12;14698:5;:57::i;:::-;14768:92;14788:8;14798:4;14804:2;14808:6;14816:8;14826:12;14840:19;14768;:92::i;4406:181::-;4464:7;4496:5;;;4520:6;;;;4512:46;;;;;-1:-1:-1;;;4512:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;14876:619;-1:-1:-1;;;;;15079:18:0;;15071:65;;;;-1:-1:-1;;;15071:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15149:73;15167:8;15177:4;15191:1;15195:6;15203:4;15209:12;15149:17;:73::i;:::-;15253:66;15273:6;15253:66;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15253:15:0;;:9;:15;;;;;;;;;;;;:66;;:19;:66;:::i;:::-;-1:-1:-1;;;;;15235:15:0;;:9;:15;;;;;;;;;;:84;15345:12;;:24;;15362:6;15345:24;:16;:24;:::i;:::-;15330:12;:39;;;;15404:4;-1:-1:-1;;;;;15387:50:0;15394:8;-1:-1:-1;;;;;15387:50:0;;15410:6;15418:4;15424:12;15387:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;15387:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15387:50:0;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;15387:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15453:34;;;;;;;;15476:1;;-1:-1:-1;;;;;15453:34:0;;;;;;;;;;;;14876:619;;;;;:::o;5870:317::-;5930:4;6096:20;;5996:66;6136:23;;;;;;:42;;-1:-1:-1;;6163:15:0;;;6128:51;-1:-1:-1;;5870:317:0:o;4595:136::-;4653:7;4680:43;4684:1;4687;4680:43;;;;;;;;;;;;;;;;;:3;:43::i
Swarm Source
bzzr://8e26b66d6f4ce87ce700529a14a43476f834f11af3c58f346faf60d407fda4c8
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.