ETH Price: $2,288.66 (-3.88%)

Token

TWOPercent (TPCT)
 

Overview

Max Total Supply

2,500,000,000 TPCT

Holders

2,890

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
307 TPCT

Value
$0.00
0xa63d4607598a44986ef3670a915571583982aa98
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
TWOPercent

Compiler Version
v0.5.7+commit.6da8b019

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-05-07
*/

pragma solidity ^0.5.7;

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;
    }
}

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(account != address(0));
        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(account != address(0));
        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 Ownable {
    address public owner;
    address public newOwner;
    address public crowdOwner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() public {
        owner = msg.sender;
        newOwner = address(0);
    }

    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }
    modifier onlyNewOwner() {
        require(msg.sender != address(0));
        require(msg.sender == newOwner);
        _;
    }
    
    modifier onlyCrowdOwner()
    {
        require(msg.sender == crowdOwner);
        _;
    }
    
    function isOwner(address account) public view returns (bool) {
        if( account == owner ){
            return true;
        }
        else {
            return false;
        }
    }

    function transferOwnership(address _newOwner) public onlyOwner {
        require(_newOwner != address(0));
        newOwner = _newOwner;
    }

    function acceptOwnership() public onlyNewOwner returns(bool) {
        emit OwnershipTransferred(owner, newOwner);        
        owner = newOwner;
        newOwner = address(0);
    }
    
    function transferCrowdOwner(address _newCrowdOwner) onlyOwner public {
        require(_newCrowdOwner != address(0));
        crowdOwner = _newCrowdOwner;
    }
}



contract PauserRole is Ownable{
    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)|| isOwner(msg.sender));
        _;
    }

    function isPauser(address account) public view returns (bool) {
        return _pausers.has(account);
    }

    function addPauser(address account) public onlyPauser {
        _addPauser(account);
    }
    
    function removePauser(address account) public onlyOwner {
        _removePauser(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 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 the owner to pause, triggers stopped state
     */
    function pause() public onlyPauser whenNotPaused {
        _paused = true;
        emit Paused(msg.sender);
    }

    /**
     * @dev called by the owner to unpause, returns to normal state
     */
    function unpause() public onlyPauser whenPaused {
        _paused = false;
        emit Unpaused(msg.sender);
    }
}

interface IERC20 {
    function transfer(address to, uint256 value) external returns (bool);

    function approve(address spender, uint256 value) external returns (bool);

    function transferFrom(address from, address to, uint256 value) external returns (bool);

    function totalSupply() external view returns (uint256);

    function balanceOf(address who) external view returns (uint256);

    function allowance(address owner, address spender) external view returns (uint256);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract ERC20 is IERC20 {
    using SafeMath for uint256;

    mapping (address => uint256) internal _balances;

    mapping (address => mapping (address => uint256)) internal _allowed;

    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 An uint256 representing the amount owned by the passed address.
    */
    function balanceOf(address owner) public view returns (uint256) {
        return _balances[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 for 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) {
        require(spender != address(0));

        _allowed[msg.sender][spender] = value;
        emit Approval(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) {
        _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value);
        _transfer(from, to, value);
        emit Approval(from, msg.sender, _allowed[from][msg.sender]);
        return true;
    }

    /**
     * @dev Increase the amount of tokens that an owner allowed to a spender.
     * approve should be called when allowed_[_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) {
        require(spender != address(0));

        _allowed[msg.sender][spender] = _allowed[msg.sender][spender].add(addedValue);
        emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
        return true;
    }

    /**
     * @dev Decrease the amount of tokens that an owner allowed to a spender.
     * approve should be called when allowed_[_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) {
        require(spender != address(0));

        _allowed[msg.sender][spender] = _allowed[msg.sender][spender].sub(subtractedValue);
        emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
        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);
    }

    /**
     * @dev Internal function that burns an amount of the token of a given
     * account, deducting from the sender's allowance for said account. Uses the
     * internal burn function.
     * Emits an Approval event (reflecting the reduced allowance).
     * @param account The account whose tokens will be burnt.
     * @param value The amount that will be burnt.
     */
    function _burnFrom(address account, uint256 value) internal {
        _allowed[account][msg.sender] = _allowed[account][msg.sender].sub(value);
        _burn(account, value);
        emit Approval(account, msg.sender, _allowed[account][msg.sender]);
    }
}



contract ERC20Pausable is ERC20, Pausable {
    function transfer(address to, uint256 value) public whenNotPaused returns (bool) {
        return super.transfer(to, value);
    }

    function transferFrom(address from, address to, uint256 value) public whenNotPaused returns (bool) {
        return super.transferFrom(from, to, value);
    }

    function approve(address spender, uint256 value) public whenNotPaused returns (bool) {
        return super.approve(spender, value);
    }
    
    function increaseAllowance(address spender, uint256 addedValue) public whenNotPaused returns (bool success) {
        return super.increaseAllowance(spender, addedValue);
    }
    
    function decreaseAllowance(address spender, uint256 subtractedValue) public whenNotPaused returns (bool success) {
        return super.decreaseAllowance(spender, subtractedValue);
    }
}

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;
    }
}

contract MinterRole is Ownable{
    using Roles for Roles.Role;

    event MinterAdded(address indexed account);
    event MinterRemoved(address indexed account);

    Roles.Role private _minters;

    constructor () internal {
        _addMinter(msg.sender);
    }

    modifier onlyMinter() {
        require(isMinter(msg.sender) || isOwner(msg.sender));
        _;
    }

    function isMinter(address account) public view returns (bool) {
        return _minters.has(account);
    }

    function addMinter(address account) public onlyMinter {
        _addMinter(account);
    }
    
    function removeMinter(address account) public onlyOwner {
        _removeMinter(account);
    }

    function renounceMinter() public {
        _removeMinter(msg.sender);
    }

    function _addMinter(address account) internal {
        _minters.add(account);
        emit MinterAdded(account);
    }

    function _removeMinter(address account) internal {
        _minters.remove(account);
        emit MinterRemoved(account);
    }
}

contract ERC20Mintable is ERC20, MinterRole {
    /**
     * @dev Function to mint tokens
     * @param to The address that will receive the minted tokens.
     * @param value The amount of tokens to mint.
     * @return A boolean that indicates if the operation was successful.
     */
    function mint(address to, uint256 value) public onlyMinter returns (bool) {
        _mint(to, value);
        return true;
    }
}

contract ERC20Burnable is ERC20 {
    /**
     * @dev Burns a specific amount of tokens.
     * @param value The amount of token to be burned.
     */
    function burn(uint256 value) public {
        _burn(msg.sender, value);
    }

    /**
     * @dev Burns a specific amount of tokens from the target address and decrements allowance
     * @param from address The address which you want to send tokens from
     * @param value uint256 The amount of token to be burned
     */
    function burnFrom(address from, uint256 value) public {
        _burnFrom(from, value);
    }
}


contract TWOPercent is ERC20Detailed, ERC20Pausable, ERC20Mintable, ERC20Burnable  {
    uint256 public INITIAL_SUPPLY = 2500000000;

    mapping(address => bool) public frozenAccount;

    event FrozenFunds(address target, bool frozen);
    event FrozenAll(bool stop);
    event Burn(address indexed from, uint256 value);
    event LockEvent(address from, address to, uint256 startLock, uint256 endLock, uint256 value);
    event Aborted();
    
    struct lockForAddr {
        uint256 startLock;
        uint256 endLock;
    }

    mapping(address => uint256) balances_locked;
    mapping(address => lockForAddr) lockForAddrs;
    
    
    function setLockForAddr(address _address, uint256 _startLock, uint256 _endLock) onlyOwner public {
        lockForAddrs[_address] = lockForAddr(_startLock, _endLock);
    }
    
    function getLockForAddr(address _address)  public view returns (uint, uint) {
        lockForAddr storage _lockForAddr = lockForAddrs[_address];
        return (_lockForAddr.startLock, _lockForAddr.endLock);
    }
    
    function getLockStartForAddr(address _address)  public view returns (uint) {
        lockForAddr storage _lockForAddr = lockForAddrs[_address];
        return _lockForAddr.startLock;
    }
    
    function getLockEndForAddr(address _address)  public view returns (uint) {
        lockForAddr storage _lockForAddr = lockForAddrs[_address];
        return _lockForAddr.endLock;
    }
    
    

    constructor() ERC20Detailed("TWOPercent", "TPCT", 18) public  {
        
        _mint(msg.sender, 2500000000 * (10 ** 18));
    }
    

    function _transfer(address _from, address _to, uint256 _value) internal {
        require(_to != address(0x0),"Receive address is 0x0"); // Prevent transfer to 0x0 address. Use burn() instead
        require(balanceOf(_from) >= _value,"Not enaugh balance"); 
        require(!frozenAccount[_from],"_from addresss is frozen"); 
        require(!frozenAccount[_to],"_to addresss is frozen"); 


        if(_balances[_from] >= _value) { // 잔액이 충분한 경우
            _balances[_from] = _balances[_from].sub(_value);    
        } else if (getLockStartForAddr(_from) > 0) {  // 락업이 걸려있다면//
            
            uint256 kstNow = now + 32400;

            require( kstNow < getLockStartForAddr(_from) || getLockEndForAddr(_from) < kstNow, "Token is locked");

        	uint256 shortfall = _value.sub(_balances[_from]);
            
            balances_locked[_from] = balances_locked[_from].sub(shortfall);
            _balances[_from] = 0;
                
        } else {
            //revert("Not enough balance");
            require(false,"Not enough balance");
        }
        
        if(msg.sender == crowdOwner)  balances_locked[_to] = balances_locked[_to].add(_value);
        else _balances[_to] = _balances[_to].add(_value);
        
        
        emit Transfer(_from, _to, _value);
    }

    function freezeAccount(address target, bool freeze) onlyOwner public {
        frozenAccount[target] = freeze;
        emit FrozenFunds(target, freeze);
    }
    
    function balanceOfDef(address _owner) public view returns(uint256 balance) {
        return _balances[_owner];
    }
     
    function balanceOf(address _owner) public view returns(uint256 balance) {
        return _balances[_owner].add(balances_locked[_owner]);
    }
    
    function balanceOfCrowd(address _owner) public view returns(uint256 balance) {
        return balances_locked[_owner];
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"removeMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isPauser","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"_startLock","type":"uint256"},{"name":"_endLock","type":"uint256"}],"name":"setLockForAddr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getLockStartForAddr","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"removePauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renouncePauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"value","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"crowdOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addPauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newCrowdOwner","type":"address"}],"name":"transferCrowdOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isMinter","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getLockEndForAddr","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"frozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getLockForAddr","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOfDef","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"freeze","type":"bool"}],"name":"freezeAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOfCrowd","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"},{"indexed":false,"name":"frozen","type":"bool"}],"name":"FrozenFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"stop","type":"bool"}],"name":"FrozenAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"startLock","type":"uint256"},{"indexed":false,"name":"endLock","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"LockEvent","type":"event"},{"anonymous":false,"inputs":[],"name":"Aborted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"PauserAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"PauserRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]

6080604052639502f900600c553480156200001957600080fd5b506040518060400160405280600a81526020017f54574f50657263656e74000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f545043540000000000000000000000000000000000000000000000000000000081525060128260009080519060200190620000a09291906200054a565b508160019080519060200190620000b99291906200054a565b5080600260006101000a81548160ff021916908360ff16021790555050505033600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200016c33620001bc60201b60201c565b6000600a60006101000a81548160ff02191690831515021790555062000198336200021d60201b60201c565b620001b6336b0813f3978f894098440000006200027e60201b60201c565b620005f9565b620001d7816009620003e160201b6200341d1790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b6200023881600b620003e160201b6200341d1790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620002b957600080fd5b620002d5816005546200049760201b6200266e1790919060201c565b6005819055506200033481600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200049760201b6200266e1790919060201c565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156200041c57600080fd5b6200042e8282620004b760201b60201c565b156200043957600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080828401905083811015620004ad57600080fd5b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620004f357600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200058d57805160ff1916838001178555620005be565b82800160010185558215620005be579182015b82811115620005bd578251825591602001919060010190620005a0565b5b509050620005cd9190620005d1565b5090565b620005f691905b80821115620005f2576000816000905550600101620005d8565b5090565b90565b6134f580620006096000396000f3fe608060405234801561001057600080fd5b50600436106102535760003560e01c806379cc679011610146578063a9059cbb116100c3578063dd62ed3e11610087578063dd62ed3e14610c2c578063e48f2e9b14610ca4578063e63da8dc14610d03578063e724529c14610d5b578063f2fde38b14610dab578063fb700f4614610def57610253565b8063a9059cbb14610a6c578063aa271e1a14610ad2578063b18d5bc714610b2e578063b414d4b614610b86578063d4ee1d9014610be257610253565b806395d89b411161010a57806395d89b41146108f1578063983b2d561461097457806398650275146109b8578063a457c2d7146109c2578063a67ae0bd14610a2857610253565b806379cc6790146107c15780637a9464691461080f57806382dc1ec4146108595780638456cb591461089d5780638da5cb5b146108a757610253565b806340c10f19116101d45780635c975abb116101985780635c975abb146106d75780636b2c0f55146106f95780636ef8d66d1461073d57806370a082311461074757806379ba50971461079f57610253565b806340c10f191461053757806342966c681461059d57806346fbf68e146105cb5780634ac3ec4e146106275780634ee0ed8e1461067f57610253565b80632ff2e9dc1161021b5780632ff2e9dc146104415780633092afd51461045f578063313ce567146104a357806339509351146104c75780633f4ba83a1461052d57610253565b806306fdde0314610258578063095ea7b3146102db57806318160ddd1461034157806323b872dd1461035f5780632f54bf6e146103e5575b600080fd5b610260610e47565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102a0578082015181840152602081019050610285565b50505050905090810190601f1680156102cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610327600480360360408110156102f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee9565b604051808215151515815260200191505060405180910390f35b610349610f17565b6040518082815260200191505060405180910390f35b6103cb6004803603606081101561037557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f21565b604051808215151515815260200191505060405180910390f35b610427600480360360208110156103fb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f51565b604051808215151515815260200191505060405180910390f35b610449610fbc565b6040518082815260200191505060405180910390f35b6104a16004803603602081101561047557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fc2565b005b6104ab611028565b604051808260ff1660ff16815260200191505060405180910390f35b610513600480360360408110156104dd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061103f565b604051808215151515815260200191505060405180910390f35b61053561106d565b005b6105836004803603604081101561054d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611128565b604051808215151515815260200191505060405180910390f35b6105c9600480360360208110156105b357600080fd5b8101908080359060200190929190505050611160565b005b61060d600480360360208110156105e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061116d565b604051808215151515815260200191505060405180910390f35b61067d6004803603606081101561063d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061118a565b005b6106c16004803603602081101561069557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611254565b6040518082815260200191505060405180910390f35b6106df6112a5565b604051808215151515815260200191505060405180910390f35b61073b6004803603602081101561070f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112bc565b005b610745611322565b005b6107896004803603602081101561075d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061132d565b6040518082815260200191505060405180910390f35b6107a76113c7565b604051808215151515815260200191505060405180910390f35b61080d600480360360408110156107d757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115a2565b005b6108176115b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61089b6004803603602081101561086f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115d6565b005b6108a5611604565b005b6108af6116c0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108f96116e6565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561093957808201518184015260208101905061091e565b50505050905090810190601f1680156109665780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6109b66004803603602081101561098a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611788565b005b6109c06117b6565b005b610a0e600480360360408110156109d857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117c1565b604051808215151515815260200191505060405180910390f35b610a6a60048036036020811015610a3e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117ef565b005b610ab860048036036040811015610a8257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118c7565b604051808215151515815260200191505060405180910390f35b610b1460048036036020811015610ae857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118f5565b604051808215151515815260200191505060405180910390f35b610b7060048036036020811015610b4457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611912565b6040518082815260200191505060405180910390f35b610bc860048036036020811015610b9c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611963565b604051808215151515815260200191505060405180910390f35b610bea611983565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610c8e60048036036040811015610c4257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119a9565b6040518082815260200191505060405180910390f35b610ce660048036036020811015610cba57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a30565b604051808381526020018281526020019250505060405180910390f35b610d4560048036036020811015610d1957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a8a565b6040518082815260200191505060405180910390f35b610da960048036036040811015610d7157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611ad3565b005b610ded60048036036020811015610dc157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bf7565b005b610e3160048036036020811015610e0557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ccf565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610edf5780601f10610eb457610100808354040283529160200191610edf565b820191906000526020600020905b815481529060010190602001808311610ec257829003601f168201915b5050505050905090565b6000600a60009054906101000a900460ff1615610f0557600080fd5b610f0f8383611d18565b905092915050565b6000600554905090565b6000600a60009054906101000a900460ff1615610f3d57600080fd5b610f48848484611e43565b90509392505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fb25760019050610fb7565b600090505b919050565b600c5481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461101c57600080fd5b6110258161204b565b50565b6000600260009054906101000a900460ff16905090565b6000600a60009054906101000a900460ff161561105b57600080fd5b61106583836120a5565b905092915050565b6110763361116d565b80611086575061108533610f51565b5b61108f57600080fd5b600a60009054906101000a900460ff166110a857600080fd5b6000600a60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000611133336118f5565b80611143575061114233610f51565b5b61114c57600080fd5b61115683836122da565b6001905092915050565b61116a338261242e565b50565b600061118382600961258290919063ffffffff16565b9050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111e457600080fd5b604051806040016040528083815260200182815250600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010155905050505050565b600080600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060000154915050919050565b6000600a60009054906101000a900460ff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461131657600080fd5b61131f81612614565b50565b61132b33612614565b565b60006113c0600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561140257600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461145c57600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090565b6115ac828261268d565b5050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6115df3361116d565b806115ef57506115ee33610f51565b5b6115f857600080fd5b6116018161288b565b50565b61160d3361116d565b8061161d575061161c33610f51565b5b61162657600080fd5b600a60009054906101000a900460ff161561164057600080fd5b6001600a60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561177e5780601f106117535761010080835404028352916020019161177e565b820191906000526020600020905b81548152906001019060200180831161176157829003601f168201915b5050505050905090565b611791336118f5565b806117a157506117a033610f51565b5b6117aa57600080fd5b6117b3816128e5565b50565b6117bf3361204b565b565b6000600a60009054906101000a900460ff16156117dd57600080fd5b6117e7838361293f565b905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461184957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561188357600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600a60009054906101000a900460ff16156118e357600080fd5b6118ed8383612b74565b905092915050565b600061190b82600b61258290919063ffffffff16565b9050919050565b600080600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010154915050919050565b600d6020528060005260406000206000915054906101000a900460ff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000806000600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000015481600101549250925050915091565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b2d57600080fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a58282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a15050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c5157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c8b57600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d5357600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000611ed482600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8b90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f5f848484612bab565b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600190509392505050565b61205f81600b61337290919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156120e057600080fd5b61216f82600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561231457600080fd5b6123298160055461266e90919063ffffffff16565b60058190555061238181600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561246857600080fd5b61247d81600554612b8b90919063ffffffff16565b6005819055506124d581600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8b90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125bd57600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61262881600961337290919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b60008082840190508381101561268357600080fd5b8091505092915050565b61271c81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8b90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127a6828261242e565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a35050565b61289f81600961341d90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b6128f981600b61341d90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561297a57600080fd5b612a0982600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8b90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000612b81338484612bab565b6001905092915050565b600082821115612b9a57600080fd5b600082840390508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c4e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f526563656976652061646472657373206973203078300000000000000000000081525060200191505060405180910390fd5b80612c588461132d565b1015612ccc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e617567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612d8c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f5f66726f6d2061646472657373732069732066726f7a656e000000000000000081525060200191505060405180910390fd5b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612e4c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f5f746f2061646472657373732069732066726f7a656e0000000000000000000081525060200191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612f2c57612ee481600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8b90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613182565b6000612f3784611254565b111561310c576000617e9042019050612f4f84611254565b811080612f63575080612f6185611912565b105b612fd5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f546f6b656e206973206c6f636b6564000000000000000000000000000000000081525060200191505060405180910390fd5b6000613029600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612b8b90919063ffffffff16565b905061307d81600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8b90919063ffffffff16565b600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050613181565b6000613180576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b5b5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156132725761322a81600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613308565b6132c481600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156133ac57600080fd5b6133b68282612582565b6133bf57600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561345757600080fd5b6134618282612582565b1561346b57600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505056fea165627a7a72305820ae21efc408949e1f687d4a9d6e796fb6e06b702d27412179a5d6e1da2a7be2760029

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102535760003560e01c806379cc679011610146578063a9059cbb116100c3578063dd62ed3e11610087578063dd62ed3e14610c2c578063e48f2e9b14610ca4578063e63da8dc14610d03578063e724529c14610d5b578063f2fde38b14610dab578063fb700f4614610def57610253565b8063a9059cbb14610a6c578063aa271e1a14610ad2578063b18d5bc714610b2e578063b414d4b614610b86578063d4ee1d9014610be257610253565b806395d89b411161010a57806395d89b41146108f1578063983b2d561461097457806398650275146109b8578063a457c2d7146109c2578063a67ae0bd14610a2857610253565b806379cc6790146107c15780637a9464691461080f57806382dc1ec4146108595780638456cb591461089d5780638da5cb5b146108a757610253565b806340c10f19116101d45780635c975abb116101985780635c975abb146106d75780636b2c0f55146106f95780636ef8d66d1461073d57806370a082311461074757806379ba50971461079f57610253565b806340c10f191461053757806342966c681461059d57806346fbf68e146105cb5780634ac3ec4e146106275780634ee0ed8e1461067f57610253565b80632ff2e9dc1161021b5780632ff2e9dc146104415780633092afd51461045f578063313ce567146104a357806339509351146104c75780633f4ba83a1461052d57610253565b806306fdde0314610258578063095ea7b3146102db57806318160ddd1461034157806323b872dd1461035f5780632f54bf6e146103e5575b600080fd5b610260610e47565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102a0578082015181840152602081019050610285565b50505050905090810190601f1680156102cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610327600480360360408110156102f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee9565b604051808215151515815260200191505060405180910390f35b610349610f17565b6040518082815260200191505060405180910390f35b6103cb6004803603606081101561037557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f21565b604051808215151515815260200191505060405180910390f35b610427600480360360208110156103fb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f51565b604051808215151515815260200191505060405180910390f35b610449610fbc565b6040518082815260200191505060405180910390f35b6104a16004803603602081101561047557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fc2565b005b6104ab611028565b604051808260ff1660ff16815260200191505060405180910390f35b610513600480360360408110156104dd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061103f565b604051808215151515815260200191505060405180910390f35b61053561106d565b005b6105836004803603604081101561054d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611128565b604051808215151515815260200191505060405180910390f35b6105c9600480360360208110156105b357600080fd5b8101908080359060200190929190505050611160565b005b61060d600480360360208110156105e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061116d565b604051808215151515815260200191505060405180910390f35b61067d6004803603606081101561063d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061118a565b005b6106c16004803603602081101561069557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611254565b6040518082815260200191505060405180910390f35b6106df6112a5565b604051808215151515815260200191505060405180910390f35b61073b6004803603602081101561070f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112bc565b005b610745611322565b005b6107896004803603602081101561075d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061132d565b6040518082815260200191505060405180910390f35b6107a76113c7565b604051808215151515815260200191505060405180910390f35b61080d600480360360408110156107d757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115a2565b005b6108176115b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61089b6004803603602081101561086f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115d6565b005b6108a5611604565b005b6108af6116c0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108f96116e6565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561093957808201518184015260208101905061091e565b50505050905090810190601f1680156109665780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6109b66004803603602081101561098a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611788565b005b6109c06117b6565b005b610a0e600480360360408110156109d857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117c1565b604051808215151515815260200191505060405180910390f35b610a6a60048036036020811015610a3e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117ef565b005b610ab860048036036040811015610a8257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118c7565b604051808215151515815260200191505060405180910390f35b610b1460048036036020811015610ae857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118f5565b604051808215151515815260200191505060405180910390f35b610b7060048036036020811015610b4457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611912565b6040518082815260200191505060405180910390f35b610bc860048036036020811015610b9c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611963565b604051808215151515815260200191505060405180910390f35b610bea611983565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610c8e60048036036040811015610c4257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119a9565b6040518082815260200191505060405180910390f35b610ce660048036036020811015610cba57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a30565b604051808381526020018281526020019250505060405180910390f35b610d4560048036036020811015610d1957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a8a565b6040518082815260200191505060405180910390f35b610da960048036036040811015610d7157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611ad3565b005b610ded60048036036020811015610dc157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bf7565b005b610e3160048036036020811015610e0557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ccf565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610edf5780601f10610eb457610100808354040283529160200191610edf565b820191906000526020600020905b815481529060010190602001808311610ec257829003601f168201915b5050505050905090565b6000600a60009054906101000a900460ff1615610f0557600080fd5b610f0f8383611d18565b905092915050565b6000600554905090565b6000600a60009054906101000a900460ff1615610f3d57600080fd5b610f48848484611e43565b90509392505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fb25760019050610fb7565b600090505b919050565b600c5481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461101c57600080fd5b6110258161204b565b50565b6000600260009054906101000a900460ff16905090565b6000600a60009054906101000a900460ff161561105b57600080fd5b61106583836120a5565b905092915050565b6110763361116d565b80611086575061108533610f51565b5b61108f57600080fd5b600a60009054906101000a900460ff166110a857600080fd5b6000600a60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000611133336118f5565b80611143575061114233610f51565b5b61114c57600080fd5b61115683836122da565b6001905092915050565b61116a338261242e565b50565b600061118382600961258290919063ffffffff16565b9050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111e457600080fd5b604051806040016040528083815260200182815250600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010155905050505050565b600080600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060000154915050919050565b6000600a60009054906101000a900460ff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461131657600080fd5b61131f81612614565b50565b61132b33612614565b565b60006113c0600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561140257600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461145c57600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090565b6115ac828261268d565b5050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6115df3361116d565b806115ef57506115ee33610f51565b5b6115f857600080fd5b6116018161288b565b50565b61160d3361116d565b8061161d575061161c33610f51565b5b61162657600080fd5b600a60009054906101000a900460ff161561164057600080fd5b6001600a60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561177e5780601f106117535761010080835404028352916020019161177e565b820191906000526020600020905b81548152906001019060200180831161176157829003601f168201915b5050505050905090565b611791336118f5565b806117a157506117a033610f51565b5b6117aa57600080fd5b6117b3816128e5565b50565b6117bf3361204b565b565b6000600a60009054906101000a900460ff16156117dd57600080fd5b6117e7838361293f565b905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461184957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561188357600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600a60009054906101000a900460ff16156118e357600080fd5b6118ed8383612b74565b905092915050565b600061190b82600b61258290919063ffffffff16565b9050919050565b600080600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010154915050919050565b600d6020528060005260406000206000915054906101000a900460ff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000806000600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000015481600101549250925050915091565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b2d57600080fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a58282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a15050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c5157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c8b57600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d5357600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000611ed482600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8b90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f5f848484612bab565b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600190509392505050565b61205f81600b61337290919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156120e057600080fd5b61216f82600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561231457600080fd5b6123298160055461266e90919063ffffffff16565b60058190555061238181600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561246857600080fd5b61247d81600554612b8b90919063ffffffff16565b6005819055506124d581600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8b90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125bd57600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61262881600961337290919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b60008082840190508381101561268357600080fd5b8091505092915050565b61271c81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8b90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127a6828261242e565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a35050565b61289f81600961341d90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b6128f981600b61341d90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561297a57600080fd5b612a0982600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8b90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000612b81338484612bab565b6001905092915050565b600082821115612b9a57600080fd5b600082840390508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c4e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f526563656976652061646472657373206973203078300000000000000000000081525060200191505060405180910390fd5b80612c588461132d565b1015612ccc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e617567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612d8c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f5f66726f6d2061646472657373732069732066726f7a656e000000000000000081525060200191505060405180910390fd5b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612e4c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f5f746f2061646472657373732069732066726f7a656e0000000000000000000081525060200191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612f2c57612ee481600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8b90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613182565b6000612f3784611254565b111561310c576000617e9042019050612f4f84611254565b811080612f63575080612f6185611912565b105b612fd5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f546f6b656e206973206c6f636b6564000000000000000000000000000000000081525060200191505060405180910390fd5b6000613029600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612b8b90919063ffffffff16565b905061307d81600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b8b90919063ffffffff16565b600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050613181565b6000613180576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b5b5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156132725761322a81600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613308565b6132c481600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156133ac57600080fd5b6133b68282612582565b6133bf57600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561345757600080fd5b6134618282612582565b1561346b57600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505056fea165627a7a72305820ae21efc408949e1f687d4a9d6e796fb6e06b702d27412179a5d6e1da2a7be2760029

Deployed Bytecode Sourcemap

17869:3595:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17869:3595:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15351: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;15351:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14454:140;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14454:140:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7272:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14286:160;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14286:160:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3334:193;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3334:193:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17959:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16374:97;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16374:97:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;15667:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14606:178;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14606:178:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6178:118;;;:::i;:::-;;17129:131;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17129:131:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17427:79;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17427:79:0;;;;;;;;;;;;;;;;;:::i;:::-;;4458:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4458:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18533:174;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18533:174:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18947:191;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18947:191:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5431:78;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4679:97;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4679:97:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;4784:77;;;:::i;:::-;;21179:144;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21179:144:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3688:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17765:95;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17765:95:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2775:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4575:92;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4575:92:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;5967:116;;;:::i;:::-;;2718:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15501: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;15501:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16270:92;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16270:92:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;16479:77;;;:::i;:::-;;14796:188;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14796:188:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3889:163;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3889:163:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;14146:132;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14146:132:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16153:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16153:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19150:187;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19150:187:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18010:45;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18010:45:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2745:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8024:131;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8024:131:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18719:216;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18719:216:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;21048:118;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21048:118:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20875:161;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20875:161:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3535:145;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3535:145:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;21335:126;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21335:126:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15351:83;15388:13;15421:5;15414:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15351:83;:::o;14454:140::-;14533:4;5668:7;;;;;;;;;;;5667:8;5659:17;;;;;;14557:29;14571:7;14580:5;14557:13;:29::i;:::-;14550:36;;14454:140;;;;:::o;7272:91::-;7316:7;7343:12;;7336:19;;7272:91;:::o;14286:160::-;14379:4;5668:7;;;;;;;;;;;5667:8;5659:17;;;;;;14403:35;14422:4;14428:2;14432:5;14403:18;:35::i;:::-;14396:42;;14286:160;;;;;:::o;3334:193::-;3389:4;3421:5;;;;;;;;;;;3410:16;;:7;:16;;;3406:114;;;3450:4;3443:11;;;;3406:114;3503:5;3496:12;;3334:193;;;;:::o;17959:42::-;;;;:::o;16374:97::-;3053:5;;;;;;;;;;;3039:19;;:10;:19;;;3031:28;;;;;;16441:22;16455:7;16441:13;:22::i;:::-;16374:97;:::o;15667:83::-;15708:5;15733:9;;;;;;;;;;;15726:16;;15667:83;:::o;14606:178::-;14700:12;5668:7;;;;;;;;;;;5667:8;5659:17;;;;;;14732:44;14756:7;14765:10;14732:23;:44::i;:::-;14725:51;;14606:178;;;;:::o;6178:118::-;4387:20;4396:10;4387:8;:20::i;:::-;:42;;;;4410:19;4418:10;4410:7;:19::i;:::-;4387:42;4379:51;;;;;;5847:7;;;;;;;;;;;5839:16;;;;;;6247:5;6237:7;;:15;;;;;;;;;;;;;;;;;;6268:20;6277:10;6268:20;;;;;;;;;;;;;;;;;;;;;;6178:118::o;17129:131::-;17197:4;16081:20;16090:10;16081:8;:20::i;:::-;:43;;;;16105:19;16113:10;16105:7;:19::i;:::-;16081:43;16073:52;;;;;;17214:16;17220:2;17224:5;17214;:16::i;:::-;17248:4;17241:11;;17129:131;;;;:::o;17427:79::-;17474:24;17480:10;17492:5;17474;:24::i;:::-;17427:79;:::o;4458:109::-;4514:4;4538:21;4551:7;4538:8;:12;;:21;;;;:::i;:::-;4531:28;;4458:109;;;:::o;18533:174::-;3053:5;;;;;;;;;;;3039:19;;:10;:19;;;3031:28;;;;;;18666:33;;;;;;;;18678:10;18666:33;;;;18690:8;18666:33;;;18641:12;:22;18654:8;18641:22;;;;;;;;;;;;;;;:58;;;;;;;;;;;;;;;;;;;18533:174;;;:::o;18947:191::-;19016:4;19033:32;19068:12;:22;19081:8;19068:22;;;;;;;;;;;;;;;19033:57;;19108:12;:22;;;19101:29;;;18947:191;;;:::o;5431:78::-;5470:4;5494:7;;;;;;;;;;;5487:14;;5431:78;:::o;4679:97::-;3053:5;;;;;;;;;;;3039:19;;:10;:19;;;3031:28;;;;;;4746:22;4760:7;4746:13;:22::i;:::-;4679:97;:::o;4784:77::-;4828:25;4842:10;4828:13;:25::i;:::-;4784:77::o;21179:144::-;21234:15;21269:46;21291:15;:23;21307:6;21291:23;;;;;;;;;;;;;;;;21269:9;:17;21279:6;21269:17;;;;;;;;;;;;;;;;:21;;:46;;;;:::i;:::-;21262:53;;21179:144;;;:::o;3688:189::-;3743:4;3150:1;3128:24;;:10;:24;;;;3120:33;;;;;;3186:8;;;;;;;;;;;3172:22;;:10;:22;;;3164:31;;;;;;3793:8;;;;;;;;;;;3765:37;;3786:5;;;;;;;;;;;3765:37;;;;;;;;;;;;3829:8;;;;;;;;;;;3821:5;;:16;;;;;;;;;;;;;;;;;;3867:1;3848:8;;:21;;;;;;;;;;;;;;;;;;3688:189;:::o;17765:95::-;17830:22;17840:4;17846:5;17830:9;:22::i;:::-;17765:95;;:::o;2775:25::-;;;;;;;;;;;;;:::o;4575:92::-;4387:20;4396:10;4387:8;:20::i;:::-;:42;;;;4410:19;4418:10;4410:7;:19::i;:::-;4387:42;4379:51;;;;;;4640:19;4651:7;4640:10;:19::i;:::-;4575:92;:::o;5967:116::-;4387:20;4396:10;4387:8;:20::i;:::-;:42;;;;4410:19;4418:10;4410:7;:19::i;:::-;4387:42;4379:51;;;;;;5668:7;;;;;;;;;;;5667:8;5659:17;;;;;;6037:4;6027:7;;:14;;;;;;;;;;;;;;;;;;6057:18;6064:10;6057:18;;;;;;;;;;;;;;;;;;;;;;5967:116::o;2718:20::-;;;;;;;;;;;;;:::o;15501:87::-;15540:13;15573:7;15566:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15501:87;:::o;16270:92::-;16081:20;16090:10;16081:8;:20::i;:::-;:43;;;;16105:19;16113:10;16105:7;:19::i;:::-;16081:43;16073:52;;;;;;16335:19;16346:7;16335:10;:19::i;:::-;16270:92;:::o;16479:77::-;16523:25;16537:10;16523:13;:25::i;:::-;16479:77::o;14796:188::-;14895:12;5668:7;;;;;;;;;;;5667:8;5659:17;;;;;;14927:49;14951:7;14960:15;14927:23;:49::i;:::-;14920:56;;14796:188;;;;:::o;3889:163::-;3053:5;;;;;;;;;;;3039:19;;:10;:19;;;3031:28;;;;;;4003:1;3977:28;;:14;:28;;;;3969:37;;;;;;4030:14;4017:10;;:27;;;;;;;;;;;;;;;;;;3889:163;:::o;14146:132::-;14221:4;5668:7;;;;;;;;;;;5667:8;5659:17;;;;;;14245:25;14260:2;14264:5;14245:14;:25::i;:::-;14238:32;;14146:132;;;;:::o;16153:109::-;16209:4;16233:21;16246:7;16233:8;:12;;:21;;;;:::i;:::-;16226:28;;16153:109;;;:::o;19150:187::-;19217:4;19234:32;19269:12;:22;19282:8;19269:22;;;;;;;;;;;;;;;19234:57;;19309:12;:20;;;19302:27;;;19150:187;;;:::o;18010:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;2745:23::-;;;;;;;;;;;;;:::o;8024:131::-;8096:7;8123:8;:15;8132:5;8123:15;;;;;;;;;;;;;;;:24;8139:7;8123:24;;;;;;;;;;;;;;;;8116:31;;8024:131;;;;:::o;18719:216::-;18783:4;18789;18806:32;18841:12;:22;18854:8;18841:22;;;;;;;;;;;;;;;18806:57;;18882:12;:22;;;18906:12;:20;;;18874:53;;;;;18719:216;;;:::o;21048:118::-;21106:15;21141:9;:17;21151:6;21141:17;;;;;;;;;;;;;;;;21134:24;;21048:118;;;:::o;20875:161::-;3053:5;;;;;;;;;;;3039:19;;:10;:19;;;3031:28;;;;;;20979:6;20955:13;:21;20969:6;20955:21;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;21001:27;21013:6;21021;21001:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20875:161;;:::o;3535:145::-;3053:5;;;;;;;;;;;3039:19;;:10;:19;;;3031:28;;;;;;3638:1;3617:23;;:9;:23;;;;3609:32;;;;;;3663:9;3652:8;;:20;;;;;;;;;;;;;;;;;;3535:145;:::o;21335:126::-;21395:15;21430;:23;21446:6;21430:23;;;;;;;;;;;;;;;;21423:30;;21335:126;;;:::o;9113:244::-;9178:4;9222:1;9203:21;;:7;:21;;;;9195:30;;;;;;9270:5;9238:8;:20;9247:10;9238:20;;;;;;;;;;;;;;;:29;9259:7;9238:29;;;;;;;;;;;;;;;:37;;;;9312:7;9291:36;;9300:10;9291:36;;;9321:5;9291:36;;;;;;;;;;;;;;;;;;9345:4;9338:11;;9113:244;;;;:::o;9830:299::-;9909:4;9955:37;9986:5;9955:8;:14;9964:4;9955:14;;;;;;;;;;;;;;;:26;9970:10;9955:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;9926:8;:14;9935:4;9926:14;;;;;;;;;;;;;;;:26;9941:10;9926:26;;;;;;;;;;;;;;;:66;;;;10003:26;10013:4;10019:2;10023:5;10003:9;:26::i;:::-;10060:10;10045:54;;10054:4;10045:54;;;10072:8;:14;10081:4;10072:14;;;;;;;;;;;;;;;:26;10087:10;10072:26;;;;;;;;;;;;;;;;10045:54;;;;;;;;;;;;;;;;;;10117:4;10110:11;;9830:299;;;;;:::o;16694:130::-;16754:24;16770:7;16754:8;:15;;:24;;;;:::i;:::-;16808:7;16794:22;;;;;;;;;;;;16694:130;:::o;10644:323::-;10724:4;10768:1;10749:21;;:7;:21;;;;10741:30;;;;;;10816:45;10850:10;10816:8;:20;10825:10;10816:20;;;;;;;;;;;;;;;:29;10837:7;10816:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;10784:8;:20;10793:10;10784:20;;;;;;;;;;;;;;;:29;10805:7;10784:29;;;;;;;;;;;;;;;:77;;;;10898:7;10877:60;;10886:10;10877:60;;;10907:8;:20;10916:10;10907:20;;;;;;;;;;;;;;;:29;10928:7;10907:29;;;;;;;;;;;;;;;;10877:60;;;;;;;;;;;;;;;;;;10955:4;10948:11;;10644:323;;;;:::o;12656:269::-;12750:1;12731:21;;:7;:21;;;;12723:30;;;;;;12781:23;12798:5;12781:12;;:16;;:23;;;;:::i;:::-;12766:12;:38;;;;12836:29;12859:5;12836:9;:18;12846:7;12836:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;12815:9;:18;12825:7;12815:18;;;;;;;;;;;;;;;:50;;;;12902:7;12881:36;;12898:1;12881:36;;;12911:5;12881:36;;;;;;;;;;;;;;;;;;12656:269;;:::o;13159:::-;13253:1;13234:21;;:7;:21;;;;13226:30;;;;;;13284:23;13301:5;13284:12;;:16;;:23;;;;:::i;:::-;13269:12;:38;;;;13339:29;13362:5;13339:9;:18;13349:7;13339:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;13318:9;:18;13328:7;13318:18;;;;;;;;;;;;;;;:50;;;;13410:1;13384:36;;13393:7;13384:36;;;13414:5;13384:36;;;;;;;;;;;;;;;;;;13159:269;;:::o;2522:165::-;2594:4;2638:1;2619:21;;:7;:21;;;;2611:30;;;;;;2659:4;:11;;:20;2671:7;2659:20;;;;;;;;;;;;;;;;;;;;;;;;;2652:27;;2522:165;;;;:::o;4999:130::-;5059:24;5075:7;5059:8;:15;;:24;;;;:::i;:::-;5113:7;5099:22;;;;;;;;;;;;4999:130;:::o;1376:150::-;1434:7;1454:9;1470:1;1466;:5;1454:17;;1495:1;1490;:6;;1482:15;;;;;;1517:1;1510:8;;;1376:150;;;;:::o;13827:259::-;13930:40;13964:5;13930:8;:17;13939:7;13930:17;;;;;;;;;;;;;;;:29;13948:10;13930:29;;;;;;;;;;;;;;;;:33;;:40;;;;:::i;:::-;13898:8;:17;13907:7;13898:17;;;;;;;;;;;;;;;:29;13916:10;13898:29;;;;;;;;;;;;;;;:72;;;;13981:21;13987:7;13996:5;13981;:21::i;:::-;14036:10;14018:60;;14027:7;14018:60;;;14048:8;:17;14057:7;14048:17;;;;;;;;;;;;;;;:29;14066:10;14048:29;;;;;;;;;;;;;;;;14018:60;;;;;;;;;;;;;;;;;;13827:259;;:::o;4869:122::-;4926:21;4939:7;4926:8;:12;;:21;;;;:::i;:::-;4975:7;4963:20;;;;;;;;;;;;4869:122;:::o;16564:::-;16621:21;16634:7;16621:8;:12;;:21;;;;:::i;:::-;16670:7;16658:20;;;;;;;;;;;;16564:122;:::o;11487:333::-;11572:4;11616:1;11597:21;;:7;:21;;;;11589:30;;;;;;11664:50;11698:15;11664:8;:20;11673:10;11664:20;;;;;;;;;;;;;;;:29;11685:7;11664:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;11632:8;:20;11641:10;11632:20;;;;;;;;;;;;;;;:29;11653:7;11632:29;;;;;;;;;;;;;;;:82;;;;11751:7;11730:60;;11739:10;11730:60;;;11760:8;:20;11769:10;11760:20;;;;;;;;;;;;;;;:29;11781:7;11760:29;;;;;;;;;;;;;;;;11730:60;;;;;;;;;;;;;;;;;;11808:4;11801:11;;11487:333;;;;:::o;8326:140::-;8387:4;8404:32;8414:10;8426:2;8430:5;8404:9;:32::i;:::-;8454:4;8447:11;;8326:140;;;;:::o;1140:150::-;1198:7;1231:1;1226;:6;;1218:15;;;;;;1244:9;1260:1;1256;:5;1244:17;;1281:1;1274:8;;;1140:150;;;;:::o;19504:1363::-;19610:3;19595:19;;:3;:19;;;;19587:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19734:6;19714:16;19724:5;19714:9;:16::i;:::-;:26;;19706:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19783:13;:20;19797:5;19783:20;;;;;;;;;;;;;;;;;;;;;;;;;19782:21;19774:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19852:13;:18;19866:3;19852:18;;;;;;;;;;;;;;;;;;;;;;;;;19851:19;19843:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19935:6;19915:9;:16;19925:5;19915:16;;;;;;;;;;;;;;;;:26;19912:719;;20007:28;20028:6;20007:9;:16;20017:5;20007:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;19988:9;:16;19998:5;19988:16;;;;;;;;;;;;;;;:47;;;;19912:719;;;20090:1;20061:26;20081:5;20061:19;:26::i;:::-;:30;20057:574;;;20154:14;20177:5;20171:3;:11;20154:28;;20217:26;20237:5;20217:19;:26::i;:::-;20208:6;:35;:72;;;;20274:6;20247:24;20265:5;20247:17;:24::i;:::-;:33;20208:72;20199:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20314:17;20334:28;20345:9;:16;20355:5;20345:16;;;;;;;;;;;;;;;;20334:6;:10;;:28;;;;:::i;:::-;20314:48;;20416:37;20443:9;20416:15;:22;20432:5;20416:22;;;;;;;;;;;;;;;;:26;;:37;;;;:::i;:::-;20391:15;:22;20407:5;20391:22;;;;;;;;;;;;;;;:62;;;;20487:1;20468:9;:16;20478:5;20468:16;;;;;;;;;;;;;;;:20;;;;20057:574;;;;;20592:5;20584:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20057:574;19912:719;20668:10;;;;;;;;;;;20654:24;;:10;:24;;;20651:144;;;20704:32;20729:6;20704:15;:20;20720:3;20704:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;20681:15;:20;20697:3;20681:20;;;;;;;;;;;;;;;:55;;;;20651:144;;;20769:26;20788:6;20769:9;:14;20779:3;20769:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;20752:9;:14;20762:3;20752:14;;;;;;;;;;;;;;;:43;;;;20651:144;20847:3;20831:28;;20840:5;20831:28;;;20852:6;20831:28;;;;;;;;;;;;;;;;;;19504:1363;;;:::o;2239:189::-;2338:1;2319:21;;:7;:21;;;;2311:30;;;;;;2360:18;2364:4;2370:7;2360:3;:18::i;:::-;2352:27;;;;;;2415:5;2392:4;:11;;:20;2404:7;2392:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;2239:189;;:::o;1974:186::-;2070:1;2051:21;;:7;:21;;;;2043:30;;;;;;2093:18;2097:4;2103:7;2093:3;:18::i;:::-;2092:19;2084:28;;;;;;2148:4;2125;:11;;:20;2137:7;2125:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;1974:186;;:::o

Swarm Source

bzzr://ae21efc408949e1f687d4a9d6e796fb6e06b702d27412179a5d6e1da2a7be276
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.