ERC-20
Overview
Max Total Supply
1,000,000,000 HOO
Holders
57
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 8 Decimals)
Balance
0.00002651 HOOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
HooToken
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-02-01 */ pragma solidity ^0.5.7; /** * @title ERC20 interface * @dev see https://eips.ethereum.org/EIPS/eip-20 */ interface IERC20 { function transfer(address to, uint256 value) external returns (bool); function approve(address spender, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 value) external returns (bool); function totalSupply() external view returns (uint256); function balanceOf(address who) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); event Freeze(address indexed from, uint256 value); event Unfreeze(address indexed from, uint256 value); } /** * @title SafeMath * @dev Unsigned math operations with safety checks that revert on error. */ library SafeMath { /** * @dev Multiplies two unsigned integers, reverts on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b); return c; } /** * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a); uint256 c = a - b; return c; } /** * @dev Adds two unsigned integers, reverts on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a); return c; } /** * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo), * reverts when dividing by zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0); return a % b; } } contract Context { // Empty internal constructor, to prevent people from mistakenly deploying // an instance of this contract, which should be used via inheritance. constructor () internal { } // solhint-disable-previous-line no-empty-blocks function _msgSender() internal view returns (address payable) { return msg.sender; } function _msgData() internal view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @title Standard ERC20 token * * @dev Implementation of the basic standard token. * https://eips.ethereum.org/EIPS/eip-20 * Originally based on code by FirstBlood: * https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol * * This implementation emits additional Approval events, allowing applications to reconstruct the allowance status for * all accounts just by listening to said events. Note that this isn't required by the specification, and other * compliant implementations may not do it. */ contract ERC20 is IERC20 { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowed; mapping (address => uint256) private _freezeOf; uint256 private _totalSupply; /** * @dev Total number of tokens in existence. */ function totalSupply() public view returns (uint256) { return _totalSupply; } /** * @dev Gets the balance of the specified address. * @param owner The address to query the balance of. * @return A uint256 representing the amount owned by the passed address. */ function balanceOf(address owner) public view returns (uint256) { return _balances[owner]; } /** * @dev Gets the balance of the specified freeze address. * @param owner The address to query the balance of. * @return A uint256 representing the amount owned by the freeze address. */ function freezeOf(address owner) public view returns (uint256) { return _freezeOf[owner]; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param owner address The address which owns the funds. * @param spender address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance(address owner, address spender) public view returns (uint256) { return _allowed[owner][spender]; } /** * @dev Transfer token to a specified address. * @param to The address to transfer to. * @param value The amount to be transferred. */ function transfer(address to, uint256 value) public returns (bool) { _transfer(msg.sender, to, value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * Beware that changing an allowance with this method brings the risk that someone may use both the old * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * @param spender The address which will spend the funds. * @param value The amount of tokens to be spent. */ function approve(address spender, uint256 value) public returns (bool) { _approve(msg.sender, spender, value); return true; } /** * @dev Transfer tokens from one address to another. * Note that while this function emits an Approval event, this is not required as per the specification, * and other compliant implementations may not emit the event. * @param from address The address which you want to send tokens from * @param to address The address which you want to transfer to * @param value uint256 the amount of tokens to be transferred */ function transferFrom(address from, address to, uint256 value) public returns (bool) { _transfer(from, to, value); _approve(from, msg.sender, _allowed[from][msg.sender].sub(value)); return true; } /** * @dev Increase the amount of tokens that an owner allowed to a spender. * approve should be called when _allowed[msg.sender][spender] == 0. To increment * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * Emits an Approval event. * @param spender The address which will spend the funds. * @param addedValue The amount of tokens to increase the allowance by. */ function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { _approve(msg.sender, spender, _allowed[msg.sender][spender].add(addedValue)); return true; } /** * @dev Decrease the amount of tokens that an owner allowed to a spender. * approve should be called when _allowed[msg.sender][spender] == 0. To decrement * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * Emits an Approval event. * @param spender The address which will spend the funds. * @param subtractedValue The amount of tokens to decrease the allowance by. */ function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { _approve(msg.sender, spender, _allowed[msg.sender][spender].sub(subtractedValue)); return true; } /** * @dev Transfer token for a specified addresses. * @param from The address to transfer from. * @param to The address to transfer to. * @param value The amount to be transferred. */ function _transfer(address from, address to, uint256 value) internal { require(to != address(0)); _balances[from] = _balances[from].sub(value); _balances[to] = _balances[to].add(value); emit Transfer(from, to, value); } /** * @dev Internal function that mints an amount of the token and assigns it to * an account. This encapsulates the modification of balances such that the * proper events are emitted. * @param account The account that will receive the created tokens. * @param value The amount that will be created. */ function _mint(address account, uint256 value) internal { require(account != address(0)); _totalSupply = _totalSupply.add(value); _balances[account] = _balances[account].add(value); emit Transfer(address(0), account, value); } /** * @dev Internal function that burns an amount of the token of a given * account. * @param account The account whose tokens will be burnt. * @param value The amount that will be burnt. */ function _burn(address account, uint256 value) internal { require(account != address(0)); _totalSupply = _totalSupply.sub(value); _balances[account] = _balances[account].sub(value); emit Transfer(account, address(0), value); } function _freeze(uint256 value) internal { require(_balances[msg.sender]>=value); // Check if the sender has enough require(value > 0); _balances[msg.sender] = _balances[msg.sender].sub(value); _freezeOf[msg.sender] = _freezeOf[msg.sender].add(value); emit Freeze(msg.sender, value); } function _unfreeze(uint256 value) internal{ require(_freezeOf[msg.sender]>=value); require(value > 0); _freezeOf[msg.sender] = _freezeOf[msg.sender].sub(value); _balances[msg.sender] = _balances[msg.sender].add(value); emit Unfreeze(msg.sender, value); } /** * @dev Approve an address to spend another addresses' tokens. * @param owner The address that owns the tokens. * @param spender The address that will spend the tokens. * @param value The number of tokens that can be spent. */ function _approve(address owner, address spender, uint256 value) internal { require(spender != address(0)); require(owner != address(0)); _allowed[owner][spender] = value; emit Approval(owner, spender, value); } } /** * @title ERC20Detailed token * @dev The decimals are only for visualization purposes. * All the operations are done using the smallest and indivisible token unit, * just as on Ethereum all the operations are done in wei. */ contract ERC20Detailed is IERC20 { string private _name; string private _symbol; uint8 private _decimals; constructor (string memory name, string memory symbol, uint8 decimals) public { _name = name; _symbol = symbol; _decimals = decimals; } /** * @return the name of the token. */ function name() public view returns (string memory) { return _name; } /** * @return the symbol of the token. */ function symbol() public view returns (string memory) { return _symbol; } /** * @return the number of decimals of the token. */ function decimals() public view returns (uint8) { return _decimals; } } /** * @title Roles * @dev Library for managing addresses assigned to a Role. */ library Roles { struct Role { mapping (address => bool) bearer; } /** * @dev Give an account access to this role. */ function add(Role storage role, address account) internal { require(!has(role, account)); role.bearer[account] = true; } /** * @dev Remove an account's access to this role. */ function remove(Role storage role, address account) internal { require(has(role, account)); role.bearer[account] = false; } /** * @dev Check if an account has this role. * @return bool */ function has(Role storage role, address account) internal view returns (bool) { require(account != address(0)); return role.bearer[account]; } } contract PauserRole { using Roles for Roles.Role; event PauserAdded(address indexed account); event PauserRemoved(address indexed account); Roles.Role private _pausers; constructor () internal { _addPauser(msg.sender); } modifier onlyPauser() { require(isPauser(msg.sender)); _; } function isPauser(address account) public view returns (bool) { return _pausers.has(account); } function addPauser(address account) public onlyPauser { _addPauser(account); } function renouncePauser() public { _removePauser(msg.sender); } function _addPauser(address account) internal { _pausers.add(account); emit PauserAdded(account); } function _removePauser(address account) internal { _pausers.remove(account); emit PauserRemoved(account); } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(isOwner(), "Ownable: caller is not the owner"); _; } /** * @dev Returns true if the caller is the current owner. */ function isOwner() public view returns (bool) { return _msgSender() == _owner; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). */ function _transferOwnership(address newOwner) internal { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } /** * @title Pausable * @dev Base contract which allows children to implement an emergency stop mechanism. */ contract Pausable is PauserRole { event Paused(address account); event Unpaused(address account); bool private _paused; constructor () internal { _paused = false; } /** * @return True if the contract is paused, false otherwise. */ function paused() public view returns (bool) { return _paused; } /** * @dev Modifier to make a function callable only when the contract is not paused. */ modifier whenNotPaused() { require(!_paused); _; } /** * @dev Modifier to make a function callable only when the contract is paused. */ modifier whenPaused() { require(_paused); _; } /** * @dev Called by a pauser to pause, triggers stopped state. */ function pause() public onlyPauser whenNotPaused { _paused = true; emit Paused(msg.sender); } /** * @dev Called by a pauser to unpause, returns to normal state. */ function unpause() public onlyPauser whenPaused { _paused = false; emit Unpaused(msg.sender); } } /** * @title Pausable * @dev Base contract which allows children to implement an emergency stop mechanism. */ contract Lockable is PauserRole{ mapping (address => bool) private lockers; event LockAccount(address account, bool islock); /** * @dev Check if the account is locked. * @param account specific account address. */ function isLock(address account) public view returns (bool) { return lockers[account]; } /** * @dev Lock or thaw account address * @param account specific account address. * @param islock true lock, false thaw. */ function lock(address account, bool islock) public onlyPauser { lockers[account] = islock; emit LockAccount(account, islock); } } /** * @title Pausable token * @dev ERC20 modified with pausable transfers. */ contract ERC20Pausable is ERC20, Pausable,Lockable { function transfer(address to, uint256 value) public whenNotPaused returns (bool) { require(!isLock(msg.sender)); require(!isLock(to)); return super.transfer(to, value); } function transferFrom(address from, address to, uint256 value) public whenNotPaused returns (bool) { require(!isLock(msg.sender)); require(!isLock(from)); require(!isLock(to)); return super.transferFrom(from, to, value); } function approve(address spender, uint256 value) public whenNotPaused returns (bool) { require(!isLock(msg.sender)); require(!isLock(spender)); return super.approve(spender, value); } function increaseAllowance(address spender, uint addedValue) public whenNotPaused returns (bool) { require(!isLock(msg.sender)); require(!isLock(spender)); return super.increaseAllowance(spender, addedValue); } function decreaseAllowance(address spender, uint subtractedValue) public whenNotPaused returns (bool) { require(!isLock(msg.sender)); require(!isLock(spender)); return super.decreaseAllowance(spender, subtractedValue); } } contract HooToken is ERC20, ERC20Detailed, ERC20Pausable, Ownable { // metadata string public constant tokenName = "HooToken"; string public constant tokenSymbol = "HOO"; uint8 public constant decimalUnits = 8; uint256 public constant initialSupply = 1000000000; // address private _owner; constructor(address _addr) ERC20Pausable() ERC20Detailed(tokenName, tokenSymbol, decimalUnits) ERC20() Ownable() public { require(initialSupply > 0); _mint(_addr, initialSupply * (10 ** uint256(decimals()))); } function mint(uint256 value) public whenNotPaused onlyOwner{ _mint(msg.sender, value * (10 ** uint256(decimals()))); } /** * @dev Burns a specific amount of tokens. * @param value The amount of token to be burned. */ function burn(uint256 value) public whenNotPaused { require(!isLock(msg.sender)); _burn(msg.sender, value); } /** * @dev Freeze a specific amount of tokens. * @param value The amount of token to be Freeze. */ function freeze(uint256 value) public whenNotPaused { require(!isLock(msg.sender)); _freeze(value); } /** * @dev unFreeze a specific amount of tokens. * @param value The amount of token to be unFreeze. */ function unfreeze(uint256 value) public whenNotPaused { require(!isLock(msg.sender)); _unfreeze(value); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"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":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Freeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"islock","type":"bool"}],"name":"LockAccount","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":"address","name":"account","type":"address"}],"name":"PauserAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"PauserRemoved","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":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Unfreeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addPauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","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":true,"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimalUnits","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"freeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"freezeOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"initialSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isLock","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":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isPauser","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"islock","type":"bool"}],"name":"lock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renouncePauser","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":"tokenName","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenSymbol","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":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","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":false,"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"unfreeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162002bab38038062002bab833981810160405260208110156200003757600080fd5b81019080805190602001909291905050506040518060400160405280600881526020017f486f6f546f6b656e0000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f484f4f000000000000000000000000000000000000000000000000000000000081525060088260049080519060200190620000ce92919062000538565b508160059080519060200190620000e792919062000538565b5080600660006101000a81548160ff021916908360ff16021790555050505062000117336200022960201b60201c565b6000600860006101000a81548160ff0219169083151502179055506000620001446200028a60201b60201c565b905080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000633b9aca0011620001f557600080fd5b62000222816200020a6200029260201b60201c565b60ff16600a0a633b9aca0002620002a960201b60201c565b50620005e7565b620002448160076200040a60201b620024e71790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b600033905090565b6000600660009054906101000a900460ff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620002e457600080fd5b62000300816003546200048560201b620024571790919060201c565b6003819055506200035e816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200048560201b620024571790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6200041c8282620004a560201b60201c565b156200042757600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000808284019050838110156200049b57600080fd5b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620004e157600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200057b57805160ff1916838001178555620005ac565b82800160010185558215620005ac579182015b82811115620005ab5782518255916020019190600101906200058e565b5b509050620005bb9190620005bf565b5090565b620005e491905b80821115620005e0576000816000905550600101620005c6565b5090565b90565b6125b480620005f76000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80636ef8d66d1161010f57806395d89b41116100a2578063cd4217c111610071578063cd4217c114610987578063d7a78db8146109df578063dd62ed3e14610a0d578063f2fde38b14610a85576101f0565b806395d89b411461080a578063a0712d681461088d578063a457c2d7146108bb578063a9059cbb14610921576101f0565b806382dc1ec4116100de57806382dc1ec4146107505780638456cb59146107945780638da5cb5b1461079e5780638f32d59b146107e8576101f0565b80636ef8d66d1461066157806370a082311461066b578063715018a6146106c35780637b61c320146106cd576101f0565b80633f4ba83a116101875780635c975abb116101565780635c975abb1461053e5780635f8f9c5d146105605780636623fc46146105b05780636c02a931146105de576101f0565b80633f4ba83a1461044e57806342966c681461045857806346fbf68e146104865780635016128e146104e2576101f0565b806323b872dd116101c357806323b872dd14610320578063313ce567146103a6578063378dc3dc146103ca57806339509351146103e8576101f0565b806306fdde03146101f5578063095ea7b31461027857806318160ddd146102de5780631caba41f146102fc575b600080fd5b6101fd610ac9565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023d578082015181840152602081019050610222565b50505050905090810190601f16801561026a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102c46004803603604081101561028e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b6b565b604051808215151515815260200191505060405180910390f35b6102e6610bbf565b6040518082815260200191505060405180910390f35b610304610bc9565b604051808260ff1660ff16815260200191505060405180910390f35b61038c6004803603606081101561033657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bce565b604051808215151515815260200191505060405180910390f35b6103ae610c37565b604051808260ff1660ff16815260200191505060405180910390f35b6103d2610c4e565b6040518082815260200191505060405180910390f35b610434600480360360408110156103fe57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c56565b604051808215151515815260200191505060405180910390f35b610456610caa565b005b6104846004803603602081101561046e57600080fd5b8101908080359060200190929190505050610d55565b005b6104c86004803603602081101561049c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d8f565b604051808215151515815260200191505060405180910390f35b610524600480360360208110156104f857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dac565b604051808215151515815260200191505060405180910390f35b610546610e02565b604051808215151515815260200191505060405180910390f35b6105ae6004803603604081101561057657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610e19565b005b6105dc600480360360208110156105c657600080fd5b8101908080359060200190929190505050610ef5565b005b6105e6610f2e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561062657808201518184015260208101905061060b565b50505050905090810190601f1680156106535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610669610f67565b005b6106ad6004803603602081101561068157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f72565b6040518082815260200191505060405180910390f35b6106cb610fba565b005b6106d56110f5565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107155780820151818401526020810190506106fa565b50505050905090810190601f1680156107425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107926004803603602081101561076657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061112e565b005b61079c61114c565b005b6107a66111f8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107f0611222565b604051808215151515815260200191505060405180910390f35b610812611281565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610852578082015181840152602081019050610837565b50505050905090810190601f16801561087f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6108b9600480360360208110156108a357600080fd5b8101908080359060200190929190505050611323565b005b610907600480360360408110156108d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113d3565b604051808215151515815260200191505060405180910390f35b61096d6004803603604081101561093757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611427565b604051808215151515815260200191505060405180910390f35b6109c96004803603602081101561099d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061147b565b6040518082815260200191505060405180910390f35b610a0b600480360360208110156109f557600080fd5b81019080803590602001909291905050506114c4565b005b610a6f60048036036040811015610a2357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114fd565b6040518082815260200191505060405180910390f35b610ac760048036036020811015610a9b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611584565b005b606060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b615780601f10610b3657610100808354040283529160200191610b61565b820191906000526020600020905b815481529060010190602001808311610b4457829003601f168201915b5050505050905090565b6000600860009054906101000a900460ff1615610b8757600080fd5b610b9033610dac565b15610b9a57600080fd5b610ba383610dac565b15610bad57600080fd5b610bb7838361160a565b905092915050565b6000600354905090565b600881565b6000600860009054906101000a900460ff1615610bea57600080fd5b610bf333610dac565b15610bfd57600080fd5b610c0684610dac565b15610c1057600080fd5b610c1983610dac565b15610c2357600080fd5b610c2e848484611621565b90509392505050565b6000600660009054906101000a900460ff16905090565b633b9aca0081565b6000600860009054906101000a900460ff1615610c7257600080fd5b610c7b33610dac565b15610c8557600080fd5b610c8e83610dac565b15610c9857600080fd5b610ca283836116d2565b905092915050565b610cb333610d8f565b610cbc57600080fd5b600860009054906101000a900460ff16610cd557600080fd5b6000600860006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600860009054906101000a900460ff1615610d6f57600080fd5b610d7833610dac565b15610d8257600080fd5b610d8c3382611777565b50565b6000610da58260076118c990919063ffffffff16565b9050919050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600860009054906101000a900460ff16905090565b610e2233610d8f565b610e2b57600080fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f44470762d57decc756f36bb9c7381b522388c21b7b48a4b012357d29611386128282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a15050565b600860009054906101000a900460ff1615610f0f57600080fd5b610f1833610dac565b15610f2257600080fd5b610f2b8161195b565b50565b6040518060400160405280600881526020017f486f6f546f6b656e00000000000000000000000000000000000000000000000081525081565b610f7033611b2d565b565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610fc2611222565b611034576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6040518060400160405280600381526020017f484f4f000000000000000000000000000000000000000000000000000000000081525081565b61113733610d8f565b61114057600080fd5b61114981611b87565b50565b61115533610d8f565b61115e57600080fd5b600860009054906101000a900460ff161561117857600080fd5b6001600860006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611265611be1565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113195780601f106112ee57610100808354040283529160200191611319565b820191906000526020600020905b8154815290600101906020018083116112fc57829003601f168201915b5050505050905090565b600860009054906101000a900460ff161561133d57600080fd5b611345611222565b6113b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6113d0336113c3610c37565b60ff16600a0a8302611be9565b50565b6000600860009054906101000a900460ff16156113ef57600080fd5b6113f833610dac565b1561140257600080fd5b61140b83610dac565b1561141557600080fd5b61141f8383611d3b565b905092915050565b6000600860009054906101000a900460ff161561144357600080fd5b61144c33610dac565b1561145657600080fd5b61145f83610dac565b1561146957600080fd5b6114738383611de0565b905092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600860009054906101000a900460ff16156114de57600080fd5b6114e733610dac565b156114f157600080fd5b6114fa81611df7565b50565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61158c611222565b6115fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61160781611fc8565b50565b600061161733848461210e565b6001905092915050565b600061162e84848461226d565b6116c784336116c285600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243790919063ffffffff16565b61210e565b600190509392505050565b600061176d338461176885600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245790919063ffffffff16565b61210e565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117b157600080fd5b6117c68160035461243790919063ffffffff16565b60038190555061181d816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561190457600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156119a757600080fd5b600081116119b457600080fd5b611a0681600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a9a816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245790919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f2cfce4af01bcb9d6cf6c84ee1b7c491100b8695368264146a94d71e10a63083f826040518082815260200191505060405180910390a250565b611b4181600761247690919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b611b9b8160076124e790919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c2357600080fd5b611c388160035461245790919063ffffffff16565b600381905550611c8f816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000611dd63384611dd185600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243790919063ffffffff16565b61210e565b6001905092915050565b6000611ded33848461226d565b6001905092915050565b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611e4257600080fd5b60008111611e4f57600080fd5b611ea0816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243790919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f3481600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e0826040518082815260200191505060405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561204e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061255a6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561214857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561218257600080fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156122a757600080fd5b6122f8816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243790919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061238b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008282111561244657600080fd5b600082840390508091505092915050565b60008082840190508381101561246c57600080fd5b8091505092915050565b61248082826118c9565b61248957600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6124f182826118c9565b156124fb57600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a265627a7a723158205557e44db2bc84bd03fea4f1d2b0b06530c4cdb00ab9534e3b33839b7d78bfff64736f6c63430005110032000000000000000000000000aadbe22eb2b2355b2236f8c0e50e481265328232
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80636ef8d66d1161010f57806395d89b41116100a2578063cd4217c111610071578063cd4217c114610987578063d7a78db8146109df578063dd62ed3e14610a0d578063f2fde38b14610a85576101f0565b806395d89b411461080a578063a0712d681461088d578063a457c2d7146108bb578063a9059cbb14610921576101f0565b806382dc1ec4116100de57806382dc1ec4146107505780638456cb59146107945780638da5cb5b1461079e5780638f32d59b146107e8576101f0565b80636ef8d66d1461066157806370a082311461066b578063715018a6146106c35780637b61c320146106cd576101f0565b80633f4ba83a116101875780635c975abb116101565780635c975abb1461053e5780635f8f9c5d146105605780636623fc46146105b05780636c02a931146105de576101f0565b80633f4ba83a1461044e57806342966c681461045857806346fbf68e146104865780635016128e146104e2576101f0565b806323b872dd116101c357806323b872dd14610320578063313ce567146103a6578063378dc3dc146103ca57806339509351146103e8576101f0565b806306fdde03146101f5578063095ea7b31461027857806318160ddd146102de5780631caba41f146102fc575b600080fd5b6101fd610ac9565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023d578082015181840152602081019050610222565b50505050905090810190601f16801561026a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102c46004803603604081101561028e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b6b565b604051808215151515815260200191505060405180910390f35b6102e6610bbf565b6040518082815260200191505060405180910390f35b610304610bc9565b604051808260ff1660ff16815260200191505060405180910390f35b61038c6004803603606081101561033657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bce565b604051808215151515815260200191505060405180910390f35b6103ae610c37565b604051808260ff1660ff16815260200191505060405180910390f35b6103d2610c4e565b6040518082815260200191505060405180910390f35b610434600480360360408110156103fe57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c56565b604051808215151515815260200191505060405180910390f35b610456610caa565b005b6104846004803603602081101561046e57600080fd5b8101908080359060200190929190505050610d55565b005b6104c86004803603602081101561049c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d8f565b604051808215151515815260200191505060405180910390f35b610524600480360360208110156104f857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dac565b604051808215151515815260200191505060405180910390f35b610546610e02565b604051808215151515815260200191505060405180910390f35b6105ae6004803603604081101561057657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610e19565b005b6105dc600480360360208110156105c657600080fd5b8101908080359060200190929190505050610ef5565b005b6105e6610f2e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561062657808201518184015260208101905061060b565b50505050905090810190601f1680156106535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610669610f67565b005b6106ad6004803603602081101561068157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f72565b6040518082815260200191505060405180910390f35b6106cb610fba565b005b6106d56110f5565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107155780820151818401526020810190506106fa565b50505050905090810190601f1680156107425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107926004803603602081101561076657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061112e565b005b61079c61114c565b005b6107a66111f8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107f0611222565b604051808215151515815260200191505060405180910390f35b610812611281565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610852578082015181840152602081019050610837565b50505050905090810190601f16801561087f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6108b9600480360360208110156108a357600080fd5b8101908080359060200190929190505050611323565b005b610907600480360360408110156108d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113d3565b604051808215151515815260200191505060405180910390f35b61096d6004803603604081101561093757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611427565b604051808215151515815260200191505060405180910390f35b6109c96004803603602081101561099d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061147b565b6040518082815260200191505060405180910390f35b610a0b600480360360208110156109f557600080fd5b81019080803590602001909291905050506114c4565b005b610a6f60048036036040811015610a2357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114fd565b6040518082815260200191505060405180910390f35b610ac760048036036020811015610a9b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611584565b005b606060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b615780601f10610b3657610100808354040283529160200191610b61565b820191906000526020600020905b815481529060010190602001808311610b4457829003601f168201915b5050505050905090565b6000600860009054906101000a900460ff1615610b8757600080fd5b610b9033610dac565b15610b9a57600080fd5b610ba383610dac565b15610bad57600080fd5b610bb7838361160a565b905092915050565b6000600354905090565b600881565b6000600860009054906101000a900460ff1615610bea57600080fd5b610bf333610dac565b15610bfd57600080fd5b610c0684610dac565b15610c1057600080fd5b610c1983610dac565b15610c2357600080fd5b610c2e848484611621565b90509392505050565b6000600660009054906101000a900460ff16905090565b633b9aca0081565b6000600860009054906101000a900460ff1615610c7257600080fd5b610c7b33610dac565b15610c8557600080fd5b610c8e83610dac565b15610c9857600080fd5b610ca283836116d2565b905092915050565b610cb333610d8f565b610cbc57600080fd5b600860009054906101000a900460ff16610cd557600080fd5b6000600860006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600860009054906101000a900460ff1615610d6f57600080fd5b610d7833610dac565b15610d8257600080fd5b610d8c3382611777565b50565b6000610da58260076118c990919063ffffffff16565b9050919050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600860009054906101000a900460ff16905090565b610e2233610d8f565b610e2b57600080fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f44470762d57decc756f36bb9c7381b522388c21b7b48a4b012357d29611386128282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a15050565b600860009054906101000a900460ff1615610f0f57600080fd5b610f1833610dac565b15610f2257600080fd5b610f2b8161195b565b50565b6040518060400160405280600881526020017f486f6f546f6b656e00000000000000000000000000000000000000000000000081525081565b610f7033611b2d565b565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610fc2611222565b611034576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6040518060400160405280600381526020017f484f4f000000000000000000000000000000000000000000000000000000000081525081565b61113733610d8f565b61114057600080fd5b61114981611b87565b50565b61115533610d8f565b61115e57600080fd5b600860009054906101000a900460ff161561117857600080fd5b6001600860006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611265611be1565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113195780601f106112ee57610100808354040283529160200191611319565b820191906000526020600020905b8154815290600101906020018083116112fc57829003601f168201915b5050505050905090565b600860009054906101000a900460ff161561133d57600080fd5b611345611222565b6113b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6113d0336113c3610c37565b60ff16600a0a8302611be9565b50565b6000600860009054906101000a900460ff16156113ef57600080fd5b6113f833610dac565b1561140257600080fd5b61140b83610dac565b1561141557600080fd5b61141f8383611d3b565b905092915050565b6000600860009054906101000a900460ff161561144357600080fd5b61144c33610dac565b1561145657600080fd5b61145f83610dac565b1561146957600080fd5b6114738383611de0565b905092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600860009054906101000a900460ff16156114de57600080fd5b6114e733610dac565b156114f157600080fd5b6114fa81611df7565b50565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61158c611222565b6115fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61160781611fc8565b50565b600061161733848461210e565b6001905092915050565b600061162e84848461226d565b6116c784336116c285600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243790919063ffffffff16565b61210e565b600190509392505050565b600061176d338461176885600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245790919063ffffffff16565b61210e565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117b157600080fd5b6117c68160035461243790919063ffffffff16565b60038190555061181d816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561190457600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156119a757600080fd5b600081116119b457600080fd5b611a0681600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a9a816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245790919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f2cfce4af01bcb9d6cf6c84ee1b7c491100b8695368264146a94d71e10a63083f826040518082815260200191505060405180910390a250565b611b4181600761247690919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b611b9b8160076124e790919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c2357600080fd5b611c388160035461245790919063ffffffff16565b600381905550611c8f816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000611dd63384611dd185600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243790919063ffffffff16565b61210e565b6001905092915050565b6000611ded33848461226d565b6001905092915050565b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611e4257600080fd5b60008111611e4f57600080fd5b611ea0816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243790919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f3481600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e0826040518082815260200191505060405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561204e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061255a6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561214857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561218257600080fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156122a757600080fd5b6122f8816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243790919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061238b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008282111561244657600080fd5b600082840390508091505092915050565b60008082840190508381101561246c57600080fd5b8091505092915050565b61248082826118c9565b61248957600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6124f182826118c9565b156124fb57600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a265627a7a723158205557e44db2bc84bd03fea4f1d2b0b06530c4cdb00ab9534e3b33839b7d78bfff64736f6c63430005110032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000aadbe22eb2b2355b2236f8c0e50e481265328232
-----Decoded View---------------
Arg [0] : _addr (address): 0xaaDBe22Eb2b2355b2236f8c0E50e481265328232
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000aadbe22eb2b2355b2236f8c0e50e481265328232
Deployed Bytecode Sourcemap
20049:1512:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20049:1512:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12280:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12280:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19315:215;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19315:215:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4347:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20240:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19044:263;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19044:263:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12596:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;20285:50;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19538:242;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19538:242:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17724:118;;;:::i;:::-;;20892:132;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20892:132:0;;;;;;;;;;;;;;;;;:::i;:::-;;13938:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13938:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18246:102;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18246:102:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16977:78;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18514:151;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18514:151:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21424:128;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21424:128:0;;;;;;;;;;;;;;;;;:::i;:::-;;20139:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;20139:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14155:77;;;:::i;:::-;;4657:106;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4657:106:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15819:140;;;:::i;:::-;;20191:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;20191:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14055:92;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14055:92:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;17513:116;;;:::i;:::-;;15008:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15374:94;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12430:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12430:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20627:132;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20627:132:0;;;;;;;;;;;;;;;;;:::i;:::-;;19788:252;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19788:252:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18834:202;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18834:202:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4993:105;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4993:105:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21158:124;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21158:124:0;;;;;;;;;;;;;;;;;:::i;:::-;;5437:131;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5437:131:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16114:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16114:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;12280:83;12317:13;12350:5;12343:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12280:83;:::o;19315:215::-;19394:4;17214:7;;;;;;;;;;;17213:8;17205:17;;;;;;19420:18;19427:10;19420:6;:18::i;:::-;19419:19;19411:28;;;;;;19459:15;19466:7;19459:6;:15::i;:::-;19458:16;19450:25;;;;;;19493:29;19507:7;19516:5;19493:13;:29::i;:::-;19486:36;;19315:215;;;;:::o;4347:91::-;4391:7;4418:12;;4411:19;;4347:91;:::o;20240:38::-;20277:1;20240:38;:::o;19044:263::-;19137:4;17214:7;;;;;;;;;;;17213:8;17205:17;;;;;;19163:18;19170:10;19163:6;:18::i;:::-;19162:19;19154:28;;;;;;19202:12;19209:4;19202:6;:12::i;:::-;19201:13;19193:22;;;;;;19235:10;19242:2;19235:6;:10::i;:::-;19234:11;19226:20;;;;;;19264:35;19283:4;19289:2;19293:5;19264:18;:35::i;:::-;19257:42;;19044:263;;;;;:::o;12596:83::-;12637:5;12662:9;;;;;;;;;;;12655:16;;12596:83;:::o;20285:50::-;20325:10;20285:50;:::o;19538:242::-;19629:4;17214:7;;;;;;;;;;;17213:8;17205:17;;;;;;19655:18;19662:10;19655:6;:18::i;:::-;19654:19;19646:28;;;;;;19694:15;19701:7;19694:6;:15::i;:::-;19693:16;19685:25;;;;;;19728:44;19752:7;19761:10;19728:23;:44::i;:::-;19721:51;;19538:242;;;;:::o;17724:118::-;13889:20;13898:10;13889:8;:20::i;:::-;13881:29;;;;;;17393:7;;;;;;;;;;;17385:16;;;;;;17793:5;17783:7;;:15;;;;;;;;;;;;;;;;;;17814:20;17823:10;17814:20;;;;;;;;;;;;;;;;;;;;;;17724:118::o;20892:132::-;17214:7;;;;;;;;;;;17213:8;17205:17;;;;;;20962:18;20969:10;20962:6;:18::i;:::-;20961:19;20953:28;;;;;;20992:24;20998:10;21010:5;20992;:24::i;:::-;20892:132;:::o;13938:109::-;13994:4;14018:21;14031:7;14018:8;:12;;:21;;;;:::i;:::-;14011:28;;13938:109;;;:::o;18246:102::-;18300:4;18324:7;:16;18332:7;18324:16;;;;;;;;;;;;;;;;;;;;;;;;;18317:23;;18246:102;;;:::o;16977:78::-;17016:4;17040:7;;;;;;;;;;;17033:14;;16977:78;:::o;18514:151::-;13889:20;13898:10;13889:8;:20::i;:::-;13881:29;;;;;;18607:6;18588:7;:16;18596:7;18588:16;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;18629:28;18641:7;18650:6;18629:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18514:151;;:::o;21424:128::-;17214:7;;;;;;;;;;;17213:8;17205:17;;;;;;21498:18;21505:10;21498:6;:18::i;:::-;21497:19;21489:28;;;;;;21528:16;21538:5;21528:9;:16::i;:::-;21424:128;:::o;20139:45::-;;;;;;;;;;;;;;;;;;;:::o;14155:77::-;14199:25;14213:10;14199:13;:25::i;:::-;14155:77::o;4657:106::-;4712:7;4739:9;:16;4749:5;4739:16;;;;;;;;;;;;;;;;4732:23;;4657:106;;;:::o;15819:140::-;15220:9;:7;:9::i;:::-;15212:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15918:1;15881:40;;15902:6;;;;;;;;;;;15881:40;;;;;;;;;;;;15949:1;15932:6;;:19;;;;;;;;;;;;;;;;;;15819:140::o;20191:42::-;;;;;;;;;;;;;;;;;;;:::o;14055:92::-;13889:20;13898:10;13889:8;:20::i;:::-;13881:29;;;;;;14120:19;14131:7;14120:10;:19::i;:::-;14055:92;:::o;17513:116::-;13889:20;13898:10;13889:8;:20::i;:::-;13881:29;;;;;;17214:7;;;;;;;;;;;17213:8;17205:17;;;;;;17583:4;17573:7;;:14;;;;;;;;;;;;;;;;;;17603:18;17610:10;17603:18;;;;;;;;;;;;;;;;;;;;;;17513:116::o;15008:79::-;15046:7;15073:6;;;;;;;;;;;15066:13;;15008:79;:::o;15374:94::-;15414:4;15454:6;;;;;;;;;;;15438:22;;:12;:10;:12::i;:::-;:22;;;15431:29;;15374:94;:::o;12430:87::-;12469:13;12502:7;12495:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12430:87;:::o;20627:132::-;17214:7;;;;;;;;;;;17213:8;17205:17;;;;;;15220:9;:7;:9::i;:::-;15212:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20697;20703:10;20738;:8;:10::i;:::-;20730:19;;20724:2;:25;20715:5;:35;20697:5;:54::i;:::-;20627:132;:::o;19788:252::-;19884:4;17214:7;;;;;;;;;;;17213:8;17205:17;;;;;;19910:18;19917:10;19910:6;:18::i;:::-;19909:19;19901:28;;;;;;19949:15;19956:7;19949:6;:15::i;:::-;19948:16;19940:25;;;;;;19983:49;20007:7;20016:15;19983:23;:49::i;:::-;19976:56;;19788:252;;;;:::o;18834:202::-;18909:4;17214:7;;;;;;;;;;;17213:8;17205:17;;;;;;18935:18;18942:10;18935:6;:18::i;:::-;18934:19;18926:28;;;;;;18974:10;18981:2;18974:6;:10::i;:::-;18973:11;18965:20;;;;;;19003:25;19018:2;19022:5;19003:14;:25::i;:::-;18996:32;;18834:202;;;;:::o;4993:105::-;5047:7;5074:9;:16;5084:5;5074:16;;;;;;;;;;;;;;;;5067:23;;4993:105;;;:::o;21158:124::-;17214:7;;;;;;;;;;;17213:8;17205:17;;;;;;21230:18;21237:10;21230:6;:18::i;:::-;21229:19;21221:28;;;;;;21260:14;21268:5;21260:7;:14::i;:::-;21158:124;:::o;5437:131::-;5509:7;5536:8;:15;5545:5;5536:15;;;;;;;;;;;;;;;:24;5552:7;5536:24;;;;;;;;;;;;;;;;5529:31;;5437:131;;;;:::o;16114:109::-;15220:9;:7;:9::i;:::-;15212:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16187:28;16206:8;16187:18;:28::i;:::-;16114:109;:::o;6530:148::-;6595:4;6612:36;6621:10;6633:7;6642:5;6612:8;:36::i;:::-;6666:4;6659:11;;6530:148;;;;:::o;7151:228::-;7230:4;7247:26;7257:4;7263:2;7267:5;7247:9;:26::i;:::-;7284:65;7293:4;7299:10;7311:37;7342:5;7311:8;:14;7320:4;7311:14;;;;;;;;;;;;;;;:26;7326:10;7311:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;7284:8;:65::i;:::-;7367:4;7360:11;;7151:228;;;;;:::o;7905:203::-;7985:4;8002:76;8011:10;8023:7;8032:45;8066:10;8032:8;:20;8041:10;8032:20;;;;;;;;;;;;;;;:29;8053:7;8032:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;8002:8;:76::i;:::-;8096:4;8089:11;;7905:203;;;;:::o;10195:277::-;10289:1;10270:21;;:7;:21;;;;10262:30;;;;;;10328:23;10345:5;10328:12;;:16;;:23;;;;:::i;:::-;10313:12;:38;;;;10383:29;10406:5;10383:9;:18;10393:7;10383:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;10362:9;:18;10372:7;10362:18;;;;;;;;;;;;;;;:50;;;;10454:1;10428:36;;10437:7;10428:36;;;10458:5;10428:36;;;;;;;;;;;;;;;;;;10195:277;;:::o;13401:165::-;13473:4;13517:1;13498:21;;:7;:21;;;;13490:30;;;;;;13538:4;:11;;:20;13550:7;13538:20;;;;;;;;;;;;;;;;;;;;;;;;;13531:27;;13401:165;;;;:::o;10831:308::-;10915:5;10892:9;:21;10902:10;10892:21;;;;;;;;;;;;;;;;:28;;10884:37;;;;;;10949:1;10941:5;:9;10933:18;;;;;;10986:32;11012:5;10986:9;:21;10996:10;10986:21;;;;;;;;;;;;;;;;:25;;:32;;;;:::i;:::-;10962:9;:21;10972:10;10962:21;;;;;;;;;;;;;;;:56;;;;11054:32;11080:5;11054:9;:21;11064:10;11054:21;;;;;;;;;;;;;;;;:25;;:32;;;;:::i;:::-;11030:9;:21;11040:10;11030:21;;;;;;;;;;;;;;;:56;;;;11111:10;11102:27;;;11123:5;11102:27;;;;;;;;;;;;;;;;;;10831:308;:::o;14370:130::-;14430:24;14446:7;14430:8;:15;;:24;;;;:::i;:::-;14484:7;14470:22;;;;;;;;;;;;14370:130;:::o;14240:122::-;14297:21;14310:7;14297:8;:12;;:21;;;;:::i;:::-;14346:7;14334:20;;;;;;;;;;;;14240:122;:::o;3088:98::-;3133:15;3168:10;3161:17;;3088:98;:::o;9694:267::-;9788:1;9769:21;;:7;:21;;;;9761:30;;;;;;9817:23;9834:5;9817:12;;:16;;:23;;;;:::i;:::-;9802:12;:38;;;;9872:29;9895:5;9872:9;:18;9882:7;9872:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;9851:9;:18;9861:7;9851:18;;;;;;;;;;;;;;;:50;;;;9938:7;9917:36;;9934:1;9917:36;;;9947:5;9917:36;;;;;;;;;;;;;;;;;;9694:267;;:::o;8639:213::-;8724:4;8741:81;8750:10;8762:7;8771:50;8805:15;8771:8;:20;8780:10;8771:20;;;;;;;;;;;;;;;:29;8792:7;8771:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;8741:8;:81::i;:::-;8840:4;8833:11;;8639:213;;;;:::o;5743:140::-;5804:4;5821:32;5831:10;5843:2;5847:5;5821:9;:32::i;:::-;5871:4;5864:11;;5743:140;;;;:::o;10484:335::-;10567:5;10544:9;:21;10554:10;10544:21;;;;;;;;;;;;;;;;:28;;10536:37;;;;;;10634:1;10626:5;:9;10618:18;;;;;;10671:32;10697:5;10671:9;:21;10681:10;10671:21;;;;;;;;;;;;;;;;:25;;:32;;;;:::i;:::-;10647:9;:21;10657:10;10647:21;;;;;;;;;;;;;;;:56;;;;10738:32;10764:5;10738:9;:21;10748:10;10738:21;;;;;;;;;;;;;;;;:25;;:32;;;;:::i;:::-;10714:9;:21;10724:10;10714:21;;;;;;;;;;;;;;;:56;;;;10793:10;10786:25;;;10805:5;10786:25;;;;;;;;;;;;;;;;;;10484:335;:::o;16329:229::-;16423:1;16403:22;;:8;:22;;;;16395:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16513:8;16484:38;;16505:6;;;;;;;;;;;16484:38;;;;;;;;;;;;16542:8;16533:6;;:17;;;;;;;;;;;;;;;;;;16329:229;:::o;11416:254::-;11528:1;11509:21;;:7;:21;;;;11501:30;;;;;;11567:1;11550:19;;:5;:19;;;;11542:28;;;;;;11610:5;11583:8;:15;11592:5;11583:15;;;;;;;;;;;;;;;:24;11599:7;11583:24;;;;;;;;;;;;;;;:32;;;;11647:7;11631:31;;11640:5;11631:31;;;11656:5;11631:31;;;;;;;;;;;;;;;;;;11416:254;;;:::o;9080:262::-;9182:1;9168:16;;:2;:16;;;;9160:25;;;;;;9216:26;9236:5;9216:9;:15;9226:4;9216:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;9198:9;:15;9208:4;9198:15;;;;;;;;;;;;;;;:44;;;;9269:24;9287:5;9269:9;:13;9279:2;9269:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;9253:9;:13;9263:2;9253:13;;;;;;;;;;;;;;;:40;;;;9324:2;9309:25;;9318:4;9309:25;;;9328:5;9309:25;;;;;;;;;;;;;;;;;;9080:262;;;:::o;2139:150::-;2197:7;2230:1;2225;:6;;2217:15;;;;;;2243:9;2259:1;2255;:5;2243:17;;2280:1;2273:8;;;2139:150;;;;:::o;2377:::-;2435:7;2455:9;2471:1;2467;:5;2455:17;;2496:1;2491;:6;;2483:15;;;;;;2518:1;2511:8;;;2377:150;;;;:::o;13158:148::-;13238:18;13242:4;13248:7;13238:3;:18::i;:::-;13230:27;;;;;;13293:5;13270:4;:11;;:20;13282:7;13270:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;13158:148;;:::o;12933:145::-;13011:18;13015:4;13021:7;13011:3;:18::i;:::-;13010:19;13002:28;;;;;;13066:4;13043;:11;;:20;13055:7;13043:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;12933:145;;:::o
Swarm Source
bzzr://5557e44db2bc84bd03fea4f1d2b0b06530c4cdb00ab9534e3b33839b7d78bfff
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.