ERC-20
Overview
Max Total Supply
100,000,000 VTM
Holders
4
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
VTM
Compiler Version
v0.6.2+commit.bacdbe57
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-12-31 */ // SPDX-License-Identifier: MIT pragma solidity ^0.6.2; library EnumerableSet { struct Set { bytes32[] _values; mapping (bytes32 => uint256) _indexes; } function _add(Set storage set, bytes32 value) private returns (bool) { if (!_contains(set, value)) { set._values.push(value); set._indexes[value] = set._values.length; return true; } else { return false; } } function _remove(Set storage set, bytes32 value) private returns (bool) { uint256 valueIndex = set._indexes[value]; if (valueIndex != 0) { uint256 toDeleteIndex = valueIndex - 1; uint256 lastIndex = set._values.length - 1; bytes32 lastvalue = set._values[lastIndex]; set._values[toDeleteIndex] = lastvalue; set._indexes[lastvalue] = toDeleteIndex + 1; set._values.pop(); delete set._indexes[value]; return true; } else { return false; } } function _contains(Set storage set, bytes32 value) private view returns (bool) { return set._indexes[value] != 0; } function _length(Set storage set) private view returns (uint256) { return set._values.length; } function _at(Set storage set, uint256 index) private view returns (bytes32) { require(set._values.length > index, "EnumerableSet: index out of bounds"); return set._values[index]; } struct AddressSet { Set _inner; } function add(AddressSet storage set, address value) internal returns (bool) { return _add(set._inner, bytes32(uint256(value))); } function remove(AddressSet storage set, address value) internal returns (bool) { return _remove(set._inner, bytes32(uint256(value))); } function contains(AddressSet storage set, address value) internal view returns (bool) { return _contains(set._inner, bytes32(uint256(value))); } function length(AddressSet storage set) internal view returns (uint256) { return _length(set._inner); } function at(AddressSet storage set, uint256 index) internal view returns (address) { return address(uint256(_at(set._inner, index))); } struct UintSet { Set _inner; } function add(UintSet storage set, uint256 value) internal returns (bool) { return _add(set._inner, bytes32(value)); } function remove(UintSet storage set, uint256 value) internal returns (bool) { return _remove(set._inner, bytes32(value)); } function contains(UintSet storage set, uint256 value) internal view returns (bool) { return _contains(set._inner, bytes32(value)); } function length(UintSet storage set) internal view returns (uint256) { return _length(set._inner); } function at(UintSet storage set, uint256 index) internal view returns (uint256) { return uint256(_at(set._inner, index)); } } library Address { function isContract(address account) internal view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } 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"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } abstract contract AccessControl is Context { using EnumerableSet for EnumerableSet.AddressSet; using Address for address; struct RoleData { EnumerableSet.AddressSet members; bytes32 adminRole; } mapping (bytes32 => RoleData) private _roles; bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00; event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole); event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender); event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender); function hasRole(bytes32 role, address account) public view returns (bool) { return _roles[role].members.contains(account); } function getRoleMemberCount(bytes32 role) public view returns (uint256) { return _roles[role].members.length(); } function getRoleMember(bytes32 role, uint256 index) public view returns (address) { return _roles[role].members.at(index); } function getRoleAdmin(bytes32 role) public view returns (bytes32) { return _roles[role].adminRole; } function grantRole(bytes32 role, address account) public virtual { require(hasRole(_roles[role].adminRole, _msgSender()), "AccessControl: sender must be an admin to grant"); _grantRole(role, account); } function revokeRole(bytes32 role, address account) public virtual { require(hasRole(_roles[role].adminRole, _msgSender()), "AccessControl: sender must be an admin to revoke"); _revokeRole(role, account); } function renounceRole(bytes32 role, address account) public virtual { require(account == _msgSender(), "AccessControl: can only renounce roles for self"); _revokeRole(role, account); } function _setupRole(bytes32 role, address account) internal virtual { _grantRole(role, account); } function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual { emit RoleAdminChanged(role, _roles[role].adminRole, adminRole); _roles[role].adminRole = adminRole; } function _grantRole(bytes32 role, address account) private { if (_roles[role].members.add(account)) { emit RoleGranted(role, account, _msgSender()); } } function _revokeRole(bytes32 role, address account) private { if (_roles[role].members.remove(account)) { emit RoleRevoked(role, account, _msgSender()); } } } 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; // assert(a == b * c + a % b); // There is no case in which this doesn't hold 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; } } contract ERC20 is Context, IERC20 { using SafeMath for uint256; using Address for address; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; uint8 private _decimals; constructor (string memory name, string memory symbol) public { _name = name; _symbol = symbol; _decimals = 18; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _setupDecimals(uint8 decimals_) internal { _decimals = decimals_; } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } } abstract contract ERC20Burnable is Context, ERC20 { function burn(uint256 amount) public virtual { _burn(_msgSender(), amount); } function burnFrom(address account, uint256 amount) public virtual { uint256 decreasedAllowance = allowance(account, _msgSender()).sub(amount, "ERC20: burn amount exceeds allowance"); _approve(account, _msgSender(), decreasedAllowance); _burn(account, amount); } } contract Pausable is Context { event Paused(address account); event Unpaused(address account); bool private _paused; constructor () internal { _paused = false; } function paused() public view returns (bool) { return _paused; } modifier whenNotPaused() { require(!_paused, "Pausable: paused"); _; } modifier whenPaused() { require(_paused, "Pausable: not paused"); _; } function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } } abstract contract ERC20Pausable is ERC20, Pausable { function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual override { super._beforeTokenTransfer(from, to, amount); require(!paused(), "ERC20Pausable: token transfer while paused"); } } contract ERC20PresetMinterPauser is Context, AccessControl, ERC20Burnable, ERC20Pausable { bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE"); bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE"); constructor(string memory name, string memory symbol) public ERC20(name, symbol) { _setupRole(DEFAULT_ADMIN_ROLE, _msgSender()); _setupRole(MINTER_ROLE, _msgSender()); _setupRole(PAUSER_ROLE, _msgSender()); } function mint(address to, uint256 amount) public virtual { require(hasRole(MINTER_ROLE, _msgSender()), "ERC20PresetMinterPauser: must have minter role to mint"); _mint(to, amount); } function pause() public virtual { require(hasRole(PAUSER_ROLE, _msgSender()), "ERC20PresetMinterPauser: must have pauser role to pause"); _pause(); } function unpause() public virtual { require(hasRole(PAUSER_ROLE, _msgSender()), "ERC20PresetMinterPauser: must have pauser role to unpause"); _unpause(); } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual override(ERC20, ERC20Pausable) { super._beforeTokenTransfer(from, to, amount); } } 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(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract VTM is Ownable, ERC20PresetMinterPauser { constructor () ERC20PresetMinterPauser("VitaminToken", "VTM") public { mint(msg.sender, 1*(10**8)*(10**uint256(decimals())) ); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINTER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280600c81526020016b2b34ba30b6b4b72a37b5b2b760a11b8152506040518060400160405280600381526020016256544d60e81b8152508181600062000067620001c460201b60201c565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508151620000c6906005906020850190620005f2565b508051620000dc906006906020840190620005f2565b50506007805461ff001960ff19909116601217169055506200011b60006200010c6001600160e01b03620001c416565b6001600160e01b03620001c916565b604080516a4d494e5445525f524f4c4560a81b8152905190819003600b01902062000153906200010c6001600160e01b03620001c416565b604080516a5041555345525f524f4c4560a81b8152905190819003600b0190206200018b906200010c6001600160e01b03620001c416565b50620001be905033620001a66001600160e01b03620001e216565b60ff16600a0a6305f5e10002620001eb60201b60201c565b62000694565b335b90565b620001de82826001600160e01b036200028416565b5050565b60075460ff1690565b604080516a4d494e5445525f524f4c4560a81b8152905190819003600b0190206200023290620002236001600160e01b03620001c416565b6001600160e01b036200030816565b6200026f5760405162461bcd60e51b8152600401808060200182810382526036815260200180620022016036913960400191505060405180910390fd5b620001de82826001600160e01b036200033716565b6000828152600160209081526040909120620002ab918390620015ce62000453821b17901c565b15620001de57620002c46001600160e01b03620001c416565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260016020908152604082206200032e918490620015a362000473821b17901c565b90505b92915050565b6001600160a01b03821662000393576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b620003aa600083836001600160e01b036200049316565b620003c681600454620004b060201b6200120b1790919060201c565b6004556001600160a01b038216600090815260026020908152604090912054620003fb9183906200120b620004b0821b17901c565b6001600160a01b03831660008181526002602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60006200032e836001600160a01b0384166001600160e01b036200050b16565b60006200032e836001600160a01b0384166001600160e01b036200056316565b620004ab8383836200057b60201b620016ba1760201c565b505050565b6000828201838110156200032e576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006200052283836001600160e01b036200056316565b6200055a5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000331565b50600062000331565b60009081526001919091016020526040902054151590565b62000593838383620004ab60201b62000aa41760201c565b620005a66001600160e01b03620005e416565b15620004ab5760405162461bcd60e51b815260040180806020018281038252602a81526020018062002237602a913960400191505060405180910390fd5b600754610100900460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200063557805160ff191683800117855562000665565b8280016001018555821562000665579182015b828111156200066557825182559160200191906001019062000648565b506200067392915062000677565b5090565b620001c691905b808211156200067357600081556001016200067e565b611b5d80620006a46000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806379cc679011610104578063a457c2d7116100a2578063d547741f11610071578063d547741f14610568578063dd62ed3e14610594578063e63ab1e9146105c2578063f2fde38b146105ca576101da565b8063a457c2d7146104eb578063a9059cbb14610517578063ca15c87314610543578063d539139314610560576101da565b80639010d07c116100de5780639010d07c1461048c57806391d14854146104af57806395d89b41146104db578063a217fddf146104e3576101da565b806379cc6790146104345780638456cb59146104605780638da5cb5b14610468576101da565b806336568abe1161017c57806342966c681161014b57806342966c68146103e15780635c975abb146103fe57806370a0823114610406578063715018a61461042c576101da565b806336568abe1461035557806339509351146103815780633f4ba83a146103ad57806340c10f19146103b5576101da565b806323b872dd116101b857806323b872dd146102b6578063248a9ca3146102ec5780632f2ff15d14610309578063313ce56714610337576101da565b806306fdde03146101df578063095ea7b31461025c57806318160ddd1461029c575b600080fd5b6101e76105f0565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610221578181015183820152602001610209565b50505050905090810190601f16801561024e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102886004803603604081101561027257600080fd5b506001600160a01b038135169060200135610686565b604080519115158252519081900360200190f35b6102a46106a4565b60408051918252519081900360200190f35b610288600480360360608110156102cc57600080fd5b506001600160a01b038135811691602081013590911690604001356106aa565b6102a46004803603602081101561030257600080fd5b5035610737565b6103356004803603604081101561031f57600080fd5b50803590602001356001600160a01b031661074c565b005b61033f6107b8565b6040805160ff9092168252519081900360200190f35b6103356004803603604081101561036b57600080fd5b50803590602001356001600160a01b03166107c1565b6102886004803603604081101561039757600080fd5b506001600160a01b038135169060200135610822565b610335610876565b610335600480360360408110156103cb57600080fd5b506001600160a01b0381351690602001356108e7565b610335600480360360208110156103f757600080fd5b5035610958565b61028861096c565b6102a46004803603602081101561041c57600080fd5b50356001600160a01b031661097a565b610335610995565b6103356004803603604081101561044a57600080fd5b506001600160a01b038135169060200135610a49565b610335610aa9565b610470610b18565b604080516001600160a01b039092168252519081900360200190f35b610470600480360360408110156104a257600080fd5b5080359060200135610b27565b610288600480360360408110156104c557600080fd5b50803590602001356001600160a01b0316610b4c565b6101e7610b6a565b6102a4610bcb565b6102886004803603604081101561050157600080fd5b506001600160a01b038135169060200135610bd0565b6102886004803603604081101561052d57600080fd5b506001600160a01b038135169060200135610c3e565b6102a46004803603602081101561055957600080fd5b5035610c52565b6102a4610c69565b6103356004803603604081101561057e57600080fd5b50803590602001356001600160a01b0316610c8c565b6102a4600480360360408110156105aa57600080fd5b506001600160a01b0381358116916020013516610ce5565b6102a4610d10565b610335600480360360208110156105e057600080fd5b50356001600160a01b0316610d33565b60058054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561067c5780601f106106515761010080835404028352916020019161067c565b820191906000526020600020905b81548152906001019060200180831161065f57829003601f168201915b5050505050905090565b600061069a610693610e3d565b8484610e41565b5060015b92915050565b60045490565b60006106b7848484610f2d565b61072d846106c3610e3d565b61072885604051806060016040528060288152602001611987602891396001600160a01b038a16600090815260036020526040812090610701610e3d565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61109616565b610e41565b5060019392505050565b60009081526001602052604090206002015490565b60008281526001602052604090206002015461076f9061076a610e3d565b610b4c565b6107aa5760405162461bcd60e51b815260040180806020018281038252602f81526020018061185f602f913960400191505060405180910390fd5b6107b4828261112d565b5050565b60075460ff1690565b6107c9610e3d565b6001600160a01b0316816001600160a01b0316146108185760405162461bcd60e51b815260040180806020018281038252602f815260200180611acf602f913960400191505060405180910390fd5b6107b4828261119c565b600061069a61082f610e3d565b846107288560036000610840610e3d565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff61120b16565b604080516a5041555345525f524f4c4560a81b8152905190819003600b0190206108a29061076a610e3d565b6108dd5760405162461bcd60e51b81526004018080602001828103825260398152602001806118b06039913960400191505060405180910390fd5b6108e5611265565b565b604080516a4d494e5445525f524f4c4560a81b8152905190819003600b0190206109139061076a610e3d565b61094e5760405162461bcd60e51b81526004018080602001828103825260368152602001806119af6036913960400191505060405180910390fd5b6107b48282611309565b610969610963610e3d565b82611407565b50565b600754610100900460ff1690565b6001600160a01b031660009081526002602052604090205490565b61099d610e3d565b6000546001600160a01b039081169116146109ff576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000610a86826040518060600160405280602481526020016119e560249139610a7986610a74610e3d565b610ce5565b919063ffffffff61109616565b9050610a9a83610a94610e3d565b83610e41565b610aa48383611407565b505050565b604080516a5041555345525f524f4c4560a81b8152905190819003600b019020610ad59061076a610e3d565b610b105760405162461bcd60e51b8152600401808060200182810382526037815260200180611a736037913960400191505060405180910390fd5b6108e561150f565b6000546001600160a01b031690565b6000828152600160205260408120610b45908363ffffffff61159716565b9392505050565b6000828152600160205260408120610b45908363ffffffff6115a316565b60068054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561067c5780601f106106515761010080835404028352916020019161067c565b600081565b600061069a610bdd610e3d565b8461072885604051806060016040528060258152602001611aaa6025913960036000610c07610e3d565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61109616565b600061069a610c4b610e3d565b8484610f2d565b600081815260016020526040812061069e906115b8565b604080516a4d494e5445525f524f4c4560a81b8152905190819003600b01902081565b600082815260016020526040902060020154610caa9061076a610e3d565b6108185760405162461bcd60e51b81526004018080602001828103825260308152602001806119576030913960400191505060405180910390fd5b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b604080516a5041555345525f524f4c4560a81b8152905190819003600b01902081565b610d3b610e3d565b6000546001600160a01b03908116911614610d9d576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b038116610de25760405162461bcd60e51b81526004018080602001828103825260268152602001806118e96026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b6001600160a01b038316610e865760405162461bcd60e51b8152600401808060200182810382526024815260200180611a4f6024913960400191505060405180910390fd5b6001600160a01b038216610ecb5760405162461bcd60e51b815260040180806020018281038252602281526020018061190f6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260036020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610f725760405162461bcd60e51b8152600401808060200182810382526025815260200180611a2a6025913960400191505060405180910390fd5b6001600160a01b038216610fb75760405162461bcd60e51b815260040180806020018281038252602381526020018061183c6023913960400191505060405180910390fd5b610fc28383836115c3565b61100581604051806060016040528060268152602001611931602691396001600160a01b038616600090815260026020526040902054919063ffffffff61109616565b6001600160a01b03808516600090815260026020526040808220939093559084168152205461103a908263ffffffff61120b16565b6001600160a01b0380841660008181526002602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156111255760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156110ea5781810151838201526020016110d2565b50505050905090810190601f1680156111175780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082815260016020526040902061114b908263ffffffff6115ce16565b156107b457611158610e3d565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526001602052604090206111ba908263ffffffff6115e316565b156107b4576111c7610e3d565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b600082820183811015610b45576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600754610100900460ff166112b8576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6007805461ff00191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6112ec610e3d565b604080516001600160a01b039092168252519081900360200190a1565b6001600160a01b038216611364576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611370600083836115c3565b600454611383908263ffffffff61120b16565b6004556001600160a01b0382166000908152600260205260409020546113af908263ffffffff61120b16565b6001600160a01b03831660008181526002602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b03821661144c5760405162461bcd60e51b8152600401808060200182810382526021815260200180611a096021913960400191505060405180910390fd5b611458826000836115c3565b61149b8160405180606001604052806022815260200161188e602291396001600160a01b038516600090815260026020526040902054919063ffffffff61109616565b6001600160a01b0383166000908152600260205260409020556004546114c7908263ffffffff6115f816565b6004556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600754610100900460ff161561155f576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6007805461ff0019166101001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586112ec610e3d565b6000610b45838361163a565b6000610b45836001600160a01b03841661169e565b600061069e826116b6565b610aa48383836116ba565b6000610b45836001600160a01b038416611709565b6000610b45836001600160a01b038416611753565b6000610b4583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611096565b8154600090821061167c5760405162461bcd60e51b815260040180806020018281038252602281526020018061181a6022913960400191505060405180910390fd5b82600001828154811061168b57fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b6116c5838383610aa4565b6116cd61096c565b15610aa45760405162461bcd60e51b815260040180806020018281038252602a815260200180611afe602a913960400191505060405180910390fd5b6000611715838361169e565b61174b5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561069e565b50600061069e565b6000818152600183016020526040812054801561180f578354600019808301919081019060009087908390811061178657fe5b90600052602060002001549050808760000184815481106117a357fe5b6000918252602080832090910192909255828152600189810190925260409020908401905586548790806117d357fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061069e565b600091505061069e56fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e647345524332303a207472616e7366657220746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7445524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332305072657365744d696e7465725061757365723a206d75737420686176652070617573657220726f6c6520746f20756e70617573654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b6545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332305072657365744d696e7465725061757365723a206d7573742068617665206d696e74657220726f6c6520746f206d696e7445524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332305072657365744d696e7465725061757365723a206d75737420686176652070617573657220726f6c6520746f20706175736545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c6645524332305061757361626c653a20746f6b656e207472616e73666572207768696c6520706175736564a2646970667358221220b45ee6f810b602df3533a810e3802e561fc9002af3580ede1e36aa878347255464736f6c6343000602003345524332305072657365744d696e7465725061757365723a206d7573742068617665206d696e74657220726f6c6520746f206d696e7445524332305061757361626c653a20746f6b656e207472616e73666572207768696c6520706175736564
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101da5760003560e01c806379cc679011610104578063a457c2d7116100a2578063d547741f11610071578063d547741f14610568578063dd62ed3e14610594578063e63ab1e9146105c2578063f2fde38b146105ca576101da565b8063a457c2d7146104eb578063a9059cbb14610517578063ca15c87314610543578063d539139314610560576101da565b80639010d07c116100de5780639010d07c1461048c57806391d14854146104af57806395d89b41146104db578063a217fddf146104e3576101da565b806379cc6790146104345780638456cb59146104605780638da5cb5b14610468576101da565b806336568abe1161017c57806342966c681161014b57806342966c68146103e15780635c975abb146103fe57806370a0823114610406578063715018a61461042c576101da565b806336568abe1461035557806339509351146103815780633f4ba83a146103ad57806340c10f19146103b5576101da565b806323b872dd116101b857806323b872dd146102b6578063248a9ca3146102ec5780632f2ff15d14610309578063313ce56714610337576101da565b806306fdde03146101df578063095ea7b31461025c57806318160ddd1461029c575b600080fd5b6101e76105f0565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610221578181015183820152602001610209565b50505050905090810190601f16801561024e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102886004803603604081101561027257600080fd5b506001600160a01b038135169060200135610686565b604080519115158252519081900360200190f35b6102a46106a4565b60408051918252519081900360200190f35b610288600480360360608110156102cc57600080fd5b506001600160a01b038135811691602081013590911690604001356106aa565b6102a46004803603602081101561030257600080fd5b5035610737565b6103356004803603604081101561031f57600080fd5b50803590602001356001600160a01b031661074c565b005b61033f6107b8565b6040805160ff9092168252519081900360200190f35b6103356004803603604081101561036b57600080fd5b50803590602001356001600160a01b03166107c1565b6102886004803603604081101561039757600080fd5b506001600160a01b038135169060200135610822565b610335610876565b610335600480360360408110156103cb57600080fd5b506001600160a01b0381351690602001356108e7565b610335600480360360208110156103f757600080fd5b5035610958565b61028861096c565b6102a46004803603602081101561041c57600080fd5b50356001600160a01b031661097a565b610335610995565b6103356004803603604081101561044a57600080fd5b506001600160a01b038135169060200135610a49565b610335610aa9565b610470610b18565b604080516001600160a01b039092168252519081900360200190f35b610470600480360360408110156104a257600080fd5b5080359060200135610b27565b610288600480360360408110156104c557600080fd5b50803590602001356001600160a01b0316610b4c565b6101e7610b6a565b6102a4610bcb565b6102886004803603604081101561050157600080fd5b506001600160a01b038135169060200135610bd0565b6102886004803603604081101561052d57600080fd5b506001600160a01b038135169060200135610c3e565b6102a46004803603602081101561055957600080fd5b5035610c52565b6102a4610c69565b6103356004803603604081101561057e57600080fd5b50803590602001356001600160a01b0316610c8c565b6102a4600480360360408110156105aa57600080fd5b506001600160a01b0381358116916020013516610ce5565b6102a4610d10565b610335600480360360208110156105e057600080fd5b50356001600160a01b0316610d33565b60058054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561067c5780601f106106515761010080835404028352916020019161067c565b820191906000526020600020905b81548152906001019060200180831161065f57829003601f168201915b5050505050905090565b600061069a610693610e3d565b8484610e41565b5060015b92915050565b60045490565b60006106b7848484610f2d565b61072d846106c3610e3d565b61072885604051806060016040528060288152602001611987602891396001600160a01b038a16600090815260036020526040812090610701610e3d565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61109616565b610e41565b5060019392505050565b60009081526001602052604090206002015490565b60008281526001602052604090206002015461076f9061076a610e3d565b610b4c565b6107aa5760405162461bcd60e51b815260040180806020018281038252602f81526020018061185f602f913960400191505060405180910390fd5b6107b4828261112d565b5050565b60075460ff1690565b6107c9610e3d565b6001600160a01b0316816001600160a01b0316146108185760405162461bcd60e51b815260040180806020018281038252602f815260200180611acf602f913960400191505060405180910390fd5b6107b4828261119c565b600061069a61082f610e3d565b846107288560036000610840610e3d565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff61120b16565b604080516a5041555345525f524f4c4560a81b8152905190819003600b0190206108a29061076a610e3d565b6108dd5760405162461bcd60e51b81526004018080602001828103825260398152602001806118b06039913960400191505060405180910390fd5b6108e5611265565b565b604080516a4d494e5445525f524f4c4560a81b8152905190819003600b0190206109139061076a610e3d565b61094e5760405162461bcd60e51b81526004018080602001828103825260368152602001806119af6036913960400191505060405180910390fd5b6107b48282611309565b610969610963610e3d565b82611407565b50565b600754610100900460ff1690565b6001600160a01b031660009081526002602052604090205490565b61099d610e3d565b6000546001600160a01b039081169116146109ff576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000610a86826040518060600160405280602481526020016119e560249139610a7986610a74610e3d565b610ce5565b919063ffffffff61109616565b9050610a9a83610a94610e3d565b83610e41565b610aa48383611407565b505050565b604080516a5041555345525f524f4c4560a81b8152905190819003600b019020610ad59061076a610e3d565b610b105760405162461bcd60e51b8152600401808060200182810382526037815260200180611a736037913960400191505060405180910390fd5b6108e561150f565b6000546001600160a01b031690565b6000828152600160205260408120610b45908363ffffffff61159716565b9392505050565b6000828152600160205260408120610b45908363ffffffff6115a316565b60068054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561067c5780601f106106515761010080835404028352916020019161067c565b600081565b600061069a610bdd610e3d565b8461072885604051806060016040528060258152602001611aaa6025913960036000610c07610e3d565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61109616565b600061069a610c4b610e3d565b8484610f2d565b600081815260016020526040812061069e906115b8565b604080516a4d494e5445525f524f4c4560a81b8152905190819003600b01902081565b600082815260016020526040902060020154610caa9061076a610e3d565b6108185760405162461bcd60e51b81526004018080602001828103825260308152602001806119576030913960400191505060405180910390fd5b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b604080516a5041555345525f524f4c4560a81b8152905190819003600b01902081565b610d3b610e3d565b6000546001600160a01b03908116911614610d9d576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b038116610de25760405162461bcd60e51b81526004018080602001828103825260268152602001806118e96026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b6001600160a01b038316610e865760405162461bcd60e51b8152600401808060200182810382526024815260200180611a4f6024913960400191505060405180910390fd5b6001600160a01b038216610ecb5760405162461bcd60e51b815260040180806020018281038252602281526020018061190f6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260036020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610f725760405162461bcd60e51b8152600401808060200182810382526025815260200180611a2a6025913960400191505060405180910390fd5b6001600160a01b038216610fb75760405162461bcd60e51b815260040180806020018281038252602381526020018061183c6023913960400191505060405180910390fd5b610fc28383836115c3565b61100581604051806060016040528060268152602001611931602691396001600160a01b038616600090815260026020526040902054919063ffffffff61109616565b6001600160a01b03808516600090815260026020526040808220939093559084168152205461103a908263ffffffff61120b16565b6001600160a01b0380841660008181526002602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156111255760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156110ea5781810151838201526020016110d2565b50505050905090810190601f1680156111175780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082815260016020526040902061114b908263ffffffff6115ce16565b156107b457611158610e3d565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526001602052604090206111ba908263ffffffff6115e316565b156107b4576111c7610e3d565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b600082820183811015610b45576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600754610100900460ff166112b8576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6007805461ff00191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6112ec610e3d565b604080516001600160a01b039092168252519081900360200190a1565b6001600160a01b038216611364576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611370600083836115c3565b600454611383908263ffffffff61120b16565b6004556001600160a01b0382166000908152600260205260409020546113af908263ffffffff61120b16565b6001600160a01b03831660008181526002602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b03821661144c5760405162461bcd60e51b8152600401808060200182810382526021815260200180611a096021913960400191505060405180910390fd5b611458826000836115c3565b61149b8160405180606001604052806022815260200161188e602291396001600160a01b038516600090815260026020526040902054919063ffffffff61109616565b6001600160a01b0383166000908152600260205260409020556004546114c7908263ffffffff6115f816565b6004556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600754610100900460ff161561155f576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6007805461ff0019166101001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586112ec610e3d565b6000610b45838361163a565b6000610b45836001600160a01b03841661169e565b600061069e826116b6565b610aa48383836116ba565b6000610b45836001600160a01b038416611709565b6000610b45836001600160a01b038416611753565b6000610b4583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611096565b8154600090821061167c5760405162461bcd60e51b815260040180806020018281038252602281526020018061181a6022913960400191505060405180910390fd5b82600001828154811061168b57fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b6116c5838383610aa4565b6116cd61096c565b15610aa45760405162461bcd60e51b815260040180806020018281038252602a815260200180611afe602a913960400191505060405180910390fd5b6000611715838361169e565b61174b5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561069e565b50600061069e565b6000818152600183016020526040812054801561180f578354600019808301919081019060009087908390811061178657fe5b90600052602060002001549050808760000184815481106117a357fe5b6000918252602080832090910192909255828152600189810190925260409020908401905586548790806117d357fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061069e565b600091505061069e56fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e647345524332303a207472616e7366657220746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7445524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332305072657365744d696e7465725061757365723a206d75737420686176652070617573657220726f6c6520746f20756e70617573654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b6545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332305072657365744d696e7465725061757365723a206d7573742068617665206d696e74657220726f6c6520746f206d696e7445524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332305072657365744d696e7465725061757365723a206d75737420686176652070617573657220726f6c6520746f20706175736545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c6645524332305061757361626c653a20746f6b656e207472616e73666572207768696c6520706175736564a2646970667358221220b45ee6f810b602df3533a810e3802e561fc9002af3580ede1e36aa878347255464736f6c63430006020033
Deployed Bytecode Sourcemap
18555:224:0:-:0;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18555:224:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11070: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;11070:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11924:169;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11924:169:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;11347:100;;;:::i;:::-;;;;;;;;;;;;;;;;12101:321;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12101:321:0;;;;;;;;;;;;;;;;;:::i;6788:114::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6788:114:0;;:::i;6910:227::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6910:227:0;;;;;;-1:-1:-1;;;;;6910:227:0;;:::i;:::-;;11256:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7383:209;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7383:209:0;;;;;;-1:-1:-1;;;;;7383:209:0;;:::i;12430:218::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12430:218:0;;;;;;;;:::i;17229:178::-;;;:::i;16836:205::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;16836:205:0;;;;;;;;:::i;14900:91::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14900:91:0;;:::i;15508:78::-;;;:::i;11455:119::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11455:119:0;-1:-1:-1;;;;;11455:119:0;;:::i;18148:148::-;;;:::i;14999:295::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14999:295:0;;;;;;;;:::i;17049:172::-;;;:::i;17934:79::-;;;:::i;:::-;;;;-1:-1:-1;;;;;17934:79:0;;;;;;;;;;;;;;6642:138;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6642:138:0;;;;;;;:::i;6360:139::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6360:139:0;;;;;;-1:-1:-1;;;;;6360:139:0;;:::i;11161:87::-;;;:::i;5994:49::-;;;:::i;12656:269::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12656:269:0;;;;;;;;:::i;11582:175::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11582:175:0;;;;;;;;:::i;6507:127::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6507:127:0;;:::i;16448:62::-;;;:::i;7145:230::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7145:230:0;;;;;;-1:-1:-1;;;;;7145:230:0;;:::i;11765:151::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11765:151:0;;;;;;;;;;:::i;16517:62::-;;;:::i;18304:244::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18304:244:0;-1:-1:-1;;;;;18304:244:0;;:::i;11070:83::-;11140:5;11133:12;;;;;;;;-1:-1:-1;;11133:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11107:13;;11133:12;;11140:5;;11133:12;;11140:5;11133:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11070:83;:::o;11924:169::-;12007:4;12024:39;12033:12;:10;:12::i;:::-;12047:7;12056:6;12024:8;:39::i;:::-;-1:-1:-1;12081:4:0;11924:169;;;;;:::o;11347:100::-;11427:12;;11347:100;:::o;12101:321::-;12207:4;12224:36;12234:6;12242:9;12253:6;12224:9;:36::i;:::-;12271:121;12280:6;12288:12;:10;:12::i;:::-;12302:89;12340:6;12302:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12302:19:0;;;;;;:11;:19;;;;;;12322:12;:10;:12::i;:::-;-1:-1:-1;;;;;12302:33:0;;;;;;;;;;;;-1:-1:-1;12302:33:0;;;:89;;:37;:89;:::i;:::-;12271:8;:121::i;:::-;-1:-1:-1;12410:4:0;12101:321;;;;;:::o;6788:114::-;6845:7;6872:12;;;:6;:12;;;;;:22;;;;6788:114::o;6910:227::-;7002:12;;;;:6;:12;;;;;:22;;;6994:45;;7026:12;:10;:12::i;:::-;6994:7;:45::i;:::-;6986:105;;;;-1:-1:-1;;;6986:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7104:25;7115:4;7121:7;7104:10;:25::i;:::-;6910:227;;:::o;11256:83::-;11322:9;;;;11256:83;:::o;7383:209::-;7481:12;:10;:12::i;:::-;-1:-1:-1;;;;;7470:23:0;:7;-1:-1:-1;;;;;7470:23:0;;7462:83;;;;-1:-1:-1;;;7462:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7558:26;7570:4;7576:7;7558:11;:26::i;12430:218::-;12518:4;12535:83;12544:12;:10;:12::i;:::-;12558:7;12567:50;12606:10;12567:11;:25;12579:12;:10;:12::i;:::-;-1:-1:-1;;;;;12567:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;12567:25:0;;;:34;;;;;;;;;;;:50;:38;:50;:::i;17229:178::-;16555:24;;;-1:-1:-1;;;16555:24:0;;;;;;;;;;;;17282:34;;17303:12;:10;:12::i;17282:34::-;17274:104;;;;-1:-1:-1;;;17274:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17389:10;:8;:10::i;:::-;17229:178::o;16836:205::-;16486:24;;;-1:-1:-1;;;16486:24:0;;;;;;;;;;;;16912:34;;16933:12;:10;:12::i;16912:34::-;16904:101;;;;-1:-1:-1;;;16904:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17016:17;17022:2;17026:6;17016:5;:17::i;14900:91::-;14956:27;14962:12;:10;:12::i;:::-;14976:6;14956:5;:27::i;:::-;14900:91;:::o;15508:78::-;15571:7;;;;;;;;15508:78::o;11455:119::-;-1:-1:-1;;;;;11548:18:0;11521:7;11548:18;;;:9;:18;;;;;;;11455:119::o;18148:148::-;18071:12;:10;:12::i;:::-;18061:6;;-1:-1:-1;;;;;18061:6:0;;;:22;;;18053:67;;;;;-1:-1:-1;;;18053:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18255:1:::1;18239:6:::0;;18218:40:::1;::::0;-1:-1:-1;;;;;18239:6:0;;::::1;::::0;18218:40:::1;::::0;18255:1;;18218:40:::1;18286:1;18269:19:::0;;-1:-1:-1;;;;;;18269:19:0::1;::::0;;18148:148::o;14999:295::-;15076:26;15105:84;15142:6;15105:84;;;;;;;;;;;;;;;;;:32;15115:7;15124:12;:10;:12::i;:::-;15105:9;:32::i;:::-;:36;:84;;:36;:84;:::i;:::-;15076:113;;15202:51;15211:7;15220:12;:10;:12::i;:::-;15234:18;15202:8;:51::i;:::-;15264:22;15270:7;15279:6;15264:5;:22::i;:::-;14999:295;;;:::o;17049:172::-;16555:24;;;-1:-1:-1;;;16555:24:0;;;;;;;;;;;;17100:34;;17121:12;:10;:12::i;17100:34::-;17092:102;;;;-1:-1:-1;;;17092:102:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17205:8;:6;:8::i;17934:79::-;17972:7;17999:6;-1:-1:-1;;;;;17999:6:0;17934:79;:::o;6642:138::-;6715:7;6742:12;;;:6;:12;;;;;:30;;6766:5;6742:30;:23;:30;:::i;:::-;6735:37;6642:138;-1:-1:-1;;;6642:138:0:o;6360:139::-;6429:4;6453:12;;;:6;:12;;;;;:38;;6483:7;6453:38;:29;:38;:::i;11161:87::-;11233:7;11226:14;;;;;;;;-1:-1:-1;;11226:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11200:13;;11226:14;;11233:7;;11226:14;;11233:7;11226:14;;;;;;;;;;;;;;;;;;;;;;;;5994:49;6039:4;5994:49;:::o;12656:269::-;12749:4;12766:129;12775:12;:10;:12::i;:::-;12789:7;12798:96;12837:15;12798:96;;;;;;;;;;;;;;;;;:11;:25;12810:12;:10;:12::i;:::-;-1:-1:-1;;;;;12798:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;12798:25:0;;;:34;;;;;;;;;;;:96;;:38;:96;:::i;11582:175::-;11668:4;11685:42;11695:12;:10;:12::i;:::-;11709:9;11720:6;11685:9;:42::i;6507:127::-;6570:7;6597:12;;;:6;:12;;;;;:29;;:27;:29::i;16448:62::-;16486:24;;;-1:-1:-1;;;16486:24:0;;;;;;;;;;;;16448:62;:::o;7145:230::-;7238:12;;;;:6;:12;;;;;:22;;;7230:45;;7262:12;:10;:12::i;7230:45::-;7222:106;;;;-1:-1:-1;;;7222:106:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11765:151;-1:-1:-1;;;;;11881:18:0;;;11854:7;11881:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11765:151::o;16517:62::-;16555:24;;;-1:-1:-1;;;16555:24:0;;;;;;;;;;;;16517:62;:::o;18304:244::-;18071:12;:10;:12::i;:::-;18061:6;;-1:-1:-1;;;;;18061:6:0;;;:22;;;18053:67;;;;;-1:-1:-1;;;18053:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18393:22:0;::::1;18385:73;;;;-1:-1:-1::0;;;18385:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18495:6;::::0;;18474:38:::1;::::0;-1:-1:-1;;;;;18474:38:0;;::::1;::::0;18495:6;::::1;::::0;18474:38:::1;::::0;::::1;18523:6;:17:::0;;-1:-1:-1;;;;;;18523:17:0::1;-1:-1:-1::0;;;;;18523:17:0;;;::::1;::::0;;;::::1;::::0;;18304:244::o;5345:106::-;5433:10;5345:106;:::o;14292:346::-;-1:-1:-1;;;;;14394:19:0;;14386:68;;;;-1:-1:-1;;;14386:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14473:21:0;;14465:68;;;;-1:-1:-1;;;14465:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14546:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14598:32;;;;;;;;;;;;;;;;;14292:346;;;:::o;12933:539::-;-1:-1:-1;;;;;13039:20:0;;13031:70;;;;-1:-1:-1;;;13031:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13120:23:0;;13112:71;;;;-1:-1:-1;;;13112:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13196:47;13217:6;13225:9;13236:6;13196:20;:47::i;:::-;13276:71;13298:6;13276:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13276:17:0;;;;;;:9;:17;;;;;;;:71;;:21;:71;:::i;:::-;-1:-1:-1;;;;;13256:17:0;;;;;;;:9;:17;;;;;;:91;;;;13381:20;;;;;;;:32;;13406:6;13381:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;13358:20:0;;;;;;;:9;:20;;;;;;;;;:55;;;;13429:35;;;;;;;13358:20;;13429:35;;;;;;;;;;;;;12933:539;;;:::o;9358:192::-;9444:7;9480:12;9472:6;;;;9464:29;;;;-1:-1:-1;;;9464: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;9464:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9516:5:0;;;9358:192::o;7927:188::-;8001:12;;;;:6;:12;;;;;:33;;8026:7;8001:33;:24;:33;:::i;:::-;7997:111;;;8083:12;:10;:12::i;:::-;-1:-1:-1;;;;;8056:40:0;8074:7;-1:-1:-1;;;;;8056:40:0;8068:4;8056:40;;;;;;;;;;7927:188;;:::o;8123:192::-;8198:12;;;;:6;:12;;;;;:36;;8226:7;8198:36;:27;:36;:::i;:::-;8194:114;;;8283:12;:10;:12::i;:::-;-1:-1:-1;;;;;8256:40:0;8274:7;-1:-1:-1;;;;;8256:40:0;8268:4;8256:40;;;;;;;;;;8123:192;;:::o;9025:181::-;9083:7;9115:5;;;9139:6;;;;9131:46;;;;;-1:-1:-1;;;9131:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;15922:120;15736:7;;;;;;;15728:40;;;;;-1:-1:-1;;;15728:40:0;;;;;;;;;;;;-1:-1:-1;;;15728:40:0;;;;;;;;;;;;;;;15981:7:::1;:15:::0;;-1:-1:-1;;15981:15:0::1;::::0;;16012:22:::1;16021:12;:10;:12::i;:::-;16012:22;::::0;;-1:-1:-1;;;;;16012:22:0;;::::1;::::0;;;;;;;::::1;::::0;;::::1;15922:120::o:0;13480:378::-;-1:-1:-1;;;;;13564:21:0;;13556:65;;;;;-1:-1:-1;;;13556:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13634:49;13663:1;13667:7;13676:6;13634:20;:49::i;:::-;13711:12;;:24;;13728:6;13711:24;:16;:24;:::i;:::-;13696:12;:39;-1:-1:-1;;;;;13767:18:0;;;;;;:9;:18;;;;;;:30;;13790:6;13767:30;:22;:30;:::i;:::-;-1:-1:-1;;;;;13746:18:0;;;;;;:9;:18;;;;;;;;:51;;;;13813:37;;;;;;;13746:18;;;;13813:37;;;;;;;;;;13480:378;;:::o;13866:418::-;-1:-1:-1;;;;;13950:21:0;;13942:67;;;;-1:-1:-1;;;13942:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14022:49;14043:7;14060:1;14064:6;14022:20;:49::i;:::-;14105:68;14128:6;14105:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14105:18:0;;;;;;:9;:18;;;;;;;:68;;:22;:68;:::i;:::-;-1:-1:-1;;;;;14084:18:0;;;;;;:9;:18;;;;;:89;14199:12;;:24;;14216:6;14199:24;:16;:24;:::i;:::-;14184:12;:39;14239:37;;;;;;;;14265:1;;-1:-1:-1;;;;;14239:37:0;;;;;;;;;;;;13866:418;;:::o;15796:118::-;15639:7;;;;;;;15638:8;15630:37;;;;;-1:-1:-1;;;15630:37:0;;;;;;;;;;;;-1:-1:-1;;;15630:37:0;;;;;;;;;;;;;;;15856:7:::1;:14:::0;;-1:-1:-1;;15856:14:0::1;;;::::0;;15886:20:::1;15893:12;:10;:12::i;2225:149::-:0;2299:7;2342:22;2346:3;2358:5;2342:3;:22::i;1934:158::-;2014:4;2038:46;2048:3;-1:-1:-1;;;;;2068:14:0;;2038:9;:46::i;2100:117::-;2163:7;2190:19;2198:3;2190:7;:19::i;17415:183::-;17546:44;17573:4;17579:2;17583:6;17546:26;:44::i;1626:143::-;1696:4;1720:41;1725:3;-1:-1:-1;;;;;1745:14:0;;1720:4;:41::i;1777:149::-;1850:4;1874:44;1882:3;-1:-1:-1;;;;;1902:14:0;;1874:7;:44::i;9214:136::-;9272:7;9299:43;9303:1;9306;9299:43;;;;;;;;;;;;;;;;;:3;:43::i;1359:204::-;1454:18;;1426:7;;1454:26;-1:-1:-1;1446:73:0;;;;-1:-1:-1;;;1446:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1537:3;:11;;1549:5;1537:18;;;;;;;;;;;;;;;;1530:25;;1359:204;;;;:::o;1105:129::-;1178:4;1202:19;;;:12;;;;;:19;;;;;;:24;;;1105:129::o;1242:109::-;1325:18;;1242:109::o;16107:238::-;16216:44;16243:4;16249:2;16253:6;16216:26;:44::i;:::-;16282:8;:6;:8::i;:::-;16281:9;16273:64;;;;-1:-1:-1;;;16273:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;192:291;255:4;277:21;287:3;292:5;277:9;:21::i;:::-;272:204;;-1:-1:-1;27:10;;39:1;23:18;;;45:23;;315:11:0;:23;;;;;;;;;;;;;375:18;;353:19;;;:12;;;:19;;;;;;:40;;;;408:11;;272:204;-1:-1:-1;459:5:0;452:12;;491:606;557:4;595:19;;;:12;;;:19;;;;;;631:15;;627:463;;736:18;;-1:-1:-1;;687:14:0;;;;736:22;;;;663:21;;736:3;;:22;;795;;;;;;;;;;;;;;775:42;;863:9;834:3;:11;;846:13;834:26;;;;;;;;;;;;;;;;;;;:38;;;;887:23;;;929:1;887:12;;;:23;;;;;;913:17;;;887:43;;945:17;;887:3;;945:17;;;;;;;;;;;;;;;;;;;;;;986:3;:12;;:19;999:5;986:19;;;;;;;;;;;979:26;;;1029:4;1022:11;;;;;;;;627:463;1073:5;1066:12;;;;
Swarm Source
ipfs://b45ee6f810b602df3533a810e3802e561fc9002af3580ede1e36aa8783472554
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.