ETH Price: $3,389.62 (-1.36%)
Gas: 3 Gwei

Token

Pyrrhos Gold (PGOLD)
 

Overview

Max Total Supply

15,000,000 PGOLD

Holders

10,482

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 4 Decimals)

Filtered by Token Holder
Livepeer: LPT Token
Balance
300 PGOLD

Value
$0.00
0x58b6a8a3302369daec383334672404ee733ab239
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Pyrrhos Trust Company offers tokenized gold on the blockchain.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
MainToken

Compiler Version
v0.4.23+commit.124ca40d

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-01-11
*/

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

/*
 * This file was generated by MyWish Platform (https://mywish.io/)
 * The complete code could be found at https://github.com/MyWishPlatform/
 * Copyright (C) 2018 MyWish
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */
pragma solidity ^0.4.23;


/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
  function totalSupply() public view returns (uint256);
  function balanceOf(address who) public view returns (uint256);
  function transfer(address to, uint256 value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}



/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
    // Gas optimization: this is cheaper than asserting '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;
    }

    c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    // uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return a / b;
  }

  /**
  * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
    c = a + b;
    assert(c >= a);
    return c;
  }
}



/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is ERC20Basic {
  using SafeMath for uint256;

  mapping(address => uint256) balances;

  uint256 totalSupply_;

  /**
  * @dev total number of tokens in existence
  */
  function totalSupply() public view returns (uint256) {
    return totalSupply_;
  }

  /**
  * @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) {
    require(_to != address(0));
    require(_value <= balances[msg.sender]);

    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    emit Transfer(msg.sender, _to, _value);
    return true;
  }

  /**
  * @dev Gets the balance of the specified address.
  * @param _owner The address to query the 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];
  }

}


/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender)
    public view returns (uint256);

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

  function approve(address spender, uint256 value) public returns (bool);
  event Approval(
    address indexed owner,
    address indexed spender,
    uint256 value
  );
}


/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20, BasicToken {

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


  /**
   * @dev Transfer tokens from one address to another
   * @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)
  {
    require(_to != address(0));
    require(_value <= balances[_from]);
    require(_value <= allowed[_from][msg.sender]);

    balances[_from] = balances[_from].sub(_value);
    balances[_to] = balances[_to].add(_value);
    allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
    emit Transfer(_from, _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) {
    allowed[msg.sender][_spender] = _value;
    emit Approval(msg.sender, _spender, _value);
    return true;
  }

  /**
   * @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 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
   * @param _spender The address which will spend the funds.
   * @param _addedValue The amount of tokens to increase the allowance by.
   */
  function increaseApproval(
    address _spender,
    uint _addedValue
  )
    public
    returns (bool)
  {
    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
   * @param _spender The address which will spend the funds.
   * @param _subtractedValue The amount of tokens to decrease the allowance by.
   */
  function decreaseApproval(
    address _spender,
    uint _subtractedValue
  )
    public
    returns (bool)
  {
    uint oldValue = allowed[msg.sender][_spender];
    if (_subtractedValue > oldValue) {
      allowed[msg.sender][_spender] = 0;
    } else {
      allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
    }
    emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

}



/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;


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


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor() public {
    owner = msg.sender;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }

  /**
   * @dev Allows the current owner to relinquish control of the contract.
   */
  function renounceOwnership() public onlyOwner {
    emit OwnershipRenounced(owner);
    owner = address(0);
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function transferOwnership(address _newOwner) public onlyOwner {
    _transferOwnership(_newOwner);
  }

  /**
   * @dev Transfers control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function _transferOwnership(address _newOwner) internal {
    require(_newOwner != address(0));
    emit OwnershipTransferred(owner, _newOwner);
    owner = _newOwner;
  }
}


/**
 * @title Mintable token
 * @dev Simple ERC20 Token example, with mintable token creation
 * @dev Issue: * https://github.com/OpenZeppelin/openzeppelin-solidity/issues/120
 * Based on code by TokenMarketNet: https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol
 */
contract MintableToken is StandardToken, Ownable {
  event Mint(address indexed to, uint256 amount);
  event MintFinished();

  bool public mintingFinished = false;


  modifier canMint() {
    require(!mintingFinished);
    _;
  }

  modifier hasMintPermission() {
    require(msg.sender == owner);
    _;
  }

  /**
   * @dev Function to mint tokens
   * @param _to The address that will receive the minted tokens.
   * @param _amount The amount of tokens to mint.
   * @return A boolean that indicates if the operation was successful.
   */
  function mint(
    address _to,
    uint _amount
  )
    hasMintPermission
    public
    returns (bool)
  {
    totalSupply_ = totalSupply_.add(_amount);
    balances[_to] = balances[_to].add(_amount);
    emit Mint(_to, _amount);
    emit Transfer(address(0), _to, _amount);
    return true;
  }

  /**
   * @dev Function to stop minting new tokens.
   * @return True if the operation was successful.
   */
  function finishMinting() onlyOwner canMint public returns (bool) {
    mintingFinished = true;
    emit MintFinished();
    return true;
  }
}


contract FreezableToken is StandardToken {
    // freezing chains
    mapping (bytes32 => uint64) internal chains;
    // freezing amounts for each chain
    mapping (bytes32 => uint) internal freezings;
    // total freezing balance per address
    mapping (address => uint) internal freezingBalance;

    event Freezed(address indexed to, uint64 release, uint amount);
    event Released(address indexed owner, uint amount);

    /**
     * @dev Gets the balance of the specified address include freezing tokens.
     * @param _owner The address to query the the balance of.
     * @return An uint256 representing the amount owned by the passed address.
     */
    function balanceOf(address _owner) public view returns (uint256 balance) {
        return super.balanceOf(_owner) + freezingBalance[_owner];
    }

    /**
     * @dev Gets the balance of the specified address without freezing tokens.
     * @param _owner The address to query the the balance of.
     * @return An uint256 representing the amount owned by the passed address.
     */
    function actualBalanceOf(address _owner) public view returns (uint256 balance) {
        return super.balanceOf(_owner);
    }

    function freezingBalanceOf(address _owner) public view returns (uint256 balance) {
        return freezingBalance[_owner];
    }

    /**
     * @dev gets freezing count
     * @param _addr Address of freeze tokens owner.
     */
    function freezingCount(address _addr) public view returns (uint count) {
        uint64 release = chains[toKey(_addr, 0)];
        while (release != 0) {
            count++;
            release = chains[toKey(_addr, release)];
        }
    }

    /**
     * @dev gets freezing end date and freezing balance for the freezing portion specified by index.
     * @param _addr Address of freeze tokens owner.
     * @param _index Freezing portion index. It ordered by release date descending.
     */
    function getFreezing(address _addr, uint _index) public view returns (uint64 _release, uint _balance) {
        for (uint i = 0; i < _index + 1; i++) {
            _release = chains[toKey(_addr, _release)];
            if (_release == 0) {
                return;
            }
        }
        _balance = freezings[toKey(_addr, _release)];
    }

    /**
     * @dev freeze your tokens to the specified address.
     *      Be careful, gas usage is not deterministic,
     *      and depends on how many freezes _to address already has.
     * @param _to Address to which token will be freeze.
     * @param _amount Amount of token to freeze.
     * @param _until Release date, must be in future.
     */
    function freezeTo(address _to, uint _amount, uint64 _until) public {
        require(_to != address(0));
        require(_amount <= balances[msg.sender]);

        balances[msg.sender] = balances[msg.sender].sub(_amount);

        bytes32 currentKey = toKey(_to, _until);
        freezings[currentKey] = freezings[currentKey].add(_amount);
        freezingBalance[_to] = freezingBalance[_to].add(_amount);

        freeze(_to, _until);
        emit Transfer(msg.sender, _to, _amount);
        emit Freezed(_to, _until, _amount);
    }

    /**
     * @dev release first available freezing tokens.
     */
    function releaseOnce() public {
        bytes32 headKey = toKey(msg.sender, 0);
        uint64 head = chains[headKey];
        require(head != 0);
        require(uint64(block.timestamp) > head);
        bytes32 currentKey = toKey(msg.sender, head);

        uint64 next = chains[currentKey];

        uint amount = freezings[currentKey];
        delete freezings[currentKey];

        balances[msg.sender] = balances[msg.sender].add(amount);
        freezingBalance[msg.sender] = freezingBalance[msg.sender].sub(amount);

        if (next == 0) {
            delete chains[headKey];
        } else {
            chains[headKey] = next;
            delete chains[currentKey];
        }
        emit Released(msg.sender, amount);
    }

    /**
     * @dev release all available for release freezing tokens. Gas usage is not deterministic!
     * @return how many tokens was released
     */
    function releaseAll() public returns (uint tokens) {
        uint release;
        uint balance;
        (release, balance) = getFreezing(msg.sender, 0);
        while (release != 0 && block.timestamp > release) {
            releaseOnce();
            tokens += balance;
            (release, balance) = getFreezing(msg.sender, 0);
        }
    }

    function toKey(address _addr, uint _release) internal pure returns (bytes32 result) {
        // WISH masc to increase entropy
        result = 0x5749534800000000000000000000000000000000000000000000000000000000;
        assembly {
            result := or(result, mul(_addr, 0x10000000000000000))
            result := or(result, _release)
        }
    }

    function freeze(address _to, uint64 _until) internal {
        require(_until > block.timestamp);
        bytes32 key = toKey(_to, _until);
        bytes32 parentKey = toKey(_to, uint64(0));
        uint64 next = chains[parentKey];

        if (next == 0) {
            chains[parentKey] = _until;
            return;
        }

        bytes32 nextKey = toKey(_to, next);
        uint parent;

        while (next != 0 && _until > next) {
            parent = next;
            parentKey = nextKey;

            next = chains[nextKey];
            nextKey = toKey(_to, next);
        }

        if (_until == next) {
            return;
        }

        if (next != 0) {
            chains[key] = next;
        }

        chains[parentKey] = _until;
    }
}


/**
 * @title Burnable Token
 * @dev Token that can be irreversibly burned (destroyed).
 */
contract BurnableToken is BasicToken {

  event Burn(address indexed burner, uint256 value);

  /**
   * @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);
  }

  function _burn(address _who, uint256 _value) internal {
    require(_value <= balances[_who]);
    // no need to require value <= totalSupply, since that would imply the
    // sender's balance is greater than the totalSupply, which *should* be an assertion failure

    balances[_who] = balances[_who].sub(_value);
    totalSupply_ = totalSupply_.sub(_value);
    emit Burn(_who, _value);
    emit Transfer(_who, address(0), _value);
  }
}



/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Ownable {
  event Pause();
  event Unpause();

  bool public paused = false;


  /**
   * @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() onlyOwner whenNotPaused public {
    paused = true;
    emit Pause();
  }

  /**
   * @dev called by the owner to unpause, returns to normal state
   */
  function unpause() onlyOwner whenPaused public {
    paused = false;
    emit Unpause();
  }
}


contract FreezableMintableToken is FreezableToken, MintableToken {
    /**
     * @dev Mint the specified amount of token to the specified address and freeze it until the specified date.
     *      Be careful, gas usage is not deterministic,
     *      and depends on how many freezes _to address already has.
     * @param _to Address to which token will be freeze.
     * @param _amount Amount of token to mint and freeze.
     * @param _until Release date, must be in future.
     * @return A boolean that indicates if the operation was successful.
     */
    function mintAndFreeze(address _to, uint _amount, uint64 _until) public onlyOwner canMint returns (bool) {
        totalSupply_ = totalSupply_.add(_amount);

        bytes32 currentKey = toKey(_to, _until);
        freezings[currentKey] = freezings[currentKey].add(_amount);
        freezingBalance[_to] = freezingBalance[_to].add(_amount);

        freeze(_to, _until);
        emit Mint(_to, _amount);
        emit Freezed(_to, _until, _amount);
        emit Transfer(msg.sender, _to, _amount);
        return true;
    }
}



contract Consts {
    uint public constant TOKEN_DECIMALS = 4;
    uint8 public constant TOKEN_DECIMALS_UINT8 = 4;
    uint public constant TOKEN_DECIMAL_MULTIPLIER = 10 ** TOKEN_DECIMALS;

    string public constant TOKEN_NAME = "Pyrrhos Gold";
    string public constant TOKEN_SYMBOL = "PGOLD";
    bool public constant PAUSED = false;
    address public constant TARGET_USER = 0x5d799e0A223fd22618A06286dC48A4796F325F5A;
    
    bool public constant CONTINUE_MINTING = false;
}




contract MainToken is Consts, FreezableMintableToken, BurnableToken, Pausable
    
{
    
    event Initialized();
    bool public initialized = false;

    constructor() public {
        init();
        transferOwnership(msg.sender);
    }
    

    function name() public pure returns (string _name) {
        return TOKEN_NAME;
    }

    function symbol() public pure returns (string _symbol) {
        return TOKEN_SYMBOL;
    }

    function decimals() public pure returns (uint8 _decimals) {
        return TOKEN_DECIMALS_UINT8;
    }

    function transferFrom(address _from, address _to, uint256 _value) public returns (bool _success) {
        require(!paused);
        return super.transferFrom(_from, _to, _value);
    }

    function transfer(address _to, uint256 _value) public returns (bool _success) {
        require(!paused);
        return super.transfer(_to, _value);
    }

    
    function init() private {
        require(!initialized);
        initialized = true;

        if (PAUSED) {
            pause();
        }

        
        address[1] memory addresses = [address(0x5d799e0A223fd22618A06286dC48A4796F325F5A)];
        uint[1] memory amounts = [uint(10000000000000)];
        uint64[1] memory freezes = [uint64(0)];

        for (uint i = 0; i < addresses.length; i++) {
            if (freezes[i] == 0) {
                mint(addresses[i], amounts[i]);
            } else {
                mintAndFreeze(addresses[i], amounts[i], freezes[i]);
            }
        }
        

        if (!CONTINUE_MINTING) {
            finishMinting();
        }

        emit Initialized();
    }
    
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"CONTINUE_MINTING","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"},{"name":"_index","type":"uint256"}],"name":"getFreezing","outputs":[{"name":"_release","type":"uint64"},{"name":"_balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"_name","type":"string"}],"payable":false,"stateMutability":"pure","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":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_until","type":"uint64"}],"name":"mintAndFreeze","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"initialized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"actualBalanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_NAME","outputs":[{"name":"","type":"string"}],"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":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_SYMBOL","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"_decimals","type":"uint8"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_until","type":"uint64"}],"name":"freezeTo","outputs":[],"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":"_amount","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":"TOKEN_DECIMAL_MULTIPLIER","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_DECIMALS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"releaseAll","outputs":[{"name":"tokens","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"releaseOnce","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":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TARGET_USER","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finishMinting","outputs":[{"name":"","type":"bool"}],"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":"_symbol","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"_success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"PAUSED","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"freezingCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_DECIMALS_UINT8","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"freezingBalanceOf","outputs":[{"name":"balance","type":"uint256"}],"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":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[],"name":"MintFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","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":"to","type":"address"},{"indexed":false,"name":"release","type":"uint64"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Freezed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Released","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"},{"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"}]

60806040526000600660146101000a81548160ff0219169083151502179055506000600660156101000a81548160ff0219169083151502179055506000600660166101000a81548160ff0219169083151502179055503480156200006257600080fd5b5033600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000bd620000dd640100000000026401000000009004565b620000d73362000321640100000000026401000000009004565b62000e7f565b620000e762000e16565b620000f162000e39565b620000fb62000e5c565b6000600660169054906101000a900460ff161515156200011a57600080fd5b6001600660166101000a81548160ff0219169083151502179055506000156200015757620001566200039b640100000000026401000000009004565b5b602060405190810160405280735d799e0a223fd22618a06286dc48a4796f325f5a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525093506020604051908101604052806509184e72a0008152509250602060405190810160405280600067ffffffffffffffff1667ffffffffffffffff168152509150600090505b6001811015620002cb57600082826001811015156200020857fe5b602002015167ffffffffffffffff16141562000266576200025f84826001811015156200023157fe5b602002015184836001811015156200024557fe5b60200201516200045e640100000000026401000000009004565b50620002bd565b620002bb84826001811015156200027957fe5b602002015184836001811015156200028d57fe5b60200201518484600181101515620002a157fe5b602002015162000649640100000000026401000000009004565b505b8080600101915050620001ed565b60001515620002ef57620002ed6200095e640100000000026401000000009004565b505b7f5daa87a0e9463431830481fd4b6e3403442dfb9a12b9c07597e9f61d50b633c860405160405180910390a150505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200037e57600080fd5b620003988162000a28640100000000026401000000009004565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620003f857600080fd5b600660159054906101000a900460ff161515156200041557600080fd5b6001600660156101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620004bd57600080fd5b620004e28260015462000b2564010000000002620026ac179091906401000000009004565b60018190555062000549826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000b2564010000000002620026ac179091906401000000009004565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620006a957600080fd5b600660149054906101000a900460ff16151515620006c657600080fd5b620006eb8460015462000b2564010000000002620026ac179091906401000000009004565b60018190555062000716858467ffffffffffffffff1662000b42640100000000026401000000009004565b905062000756846004600084600019166000191681526020019081526020016000205462000b2564010000000002620026ac179091906401000000009004565b60046000836000191660001916815260200190815260200160002081905550620007d784600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000b2564010000000002620026ac179091906401000000009004565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000835858462000b85640100000000026401000000009004565b8473ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885856040518082815260200191505060405180910390a28473ffffffffffffffffffffffffffffffffffffffff167f2ecd071e4d10ed2221b04636ed0724cce66a873aa98c1a31b4bb0e6846d3aab48486604051808367ffffffffffffffff1667ffffffffffffffff1681526020018281526020019250505060405180910390a28473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019150509392505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620009bd57600080fd5b600660149054906101000a900460ff16151515620009da57600080fd5b6001600660146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151562000a6557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000818301905082811015151562000b3957fe5b80905092915050565b60007f5749534800000000000000000000000000000000000000000000000000000000600102905068010000000000000000830281179050818117905092915050565b6000806000806000428667ffffffffffffffff1611151562000ba657600080fd5b62000bcb878767ffffffffffffffff1662000b42640100000000026401000000009004565b945062000bf387600067ffffffffffffffff1662000b42640100000000026401000000009004565b935060036000856000191660001916815260200190815260200160002060009054906101000a900467ffffffffffffffff16925060008367ffffffffffffffff16141562000c83578560036000866000191660001916815260200190815260200160002060006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555062000e0d565b62000ca8878467ffffffffffffffff1662000b42640100000000026401000000009004565b91505b60008367ffffffffffffffff161415801562000cda57508267ffffffffffffffff168667ffffffffffffffff16115b1562000d4f578267ffffffffffffffff16905081935060036000836000191660001916815260200190815260200160002060009054906101000a900467ffffffffffffffff16925062000d47878467ffffffffffffffff1662000b42640100000000026401000000009004565b915062000cab565b8267ffffffffffffffff168667ffffffffffffffff16141562000d725762000e0d565b60008367ffffffffffffffff1614151562000dca578260036000876000191660001916815260200190815260200160002060006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b8560036000866000191660001916815260200190815260200160002060006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b50505050505050565b602060405190810160405280600190602082028038833980820191505090505090565b602060405190810160405280600190602082028038833980820191505090505090565b602060405190810160405280600190602082028038833980820191505090505090565b6132218062000e8f6000396000f3006080604052600436106101d7576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680623fd35a146101dc57806302d6f7301461020b57806305d2035b1461028757806306fdde03146102b6578063095ea7b3146103465780630bb2cd6b146103ab578063158ef93e1461042457806317a950ac1461045357806318160ddd146104aa57806318821400146104d557806323b872dd146105655780632a905318146105ea578063313ce5671461067a5780633be1e952146106ab5780633f4ba83a1461070c57806340c10f191461072357806342966c681461078857806356780085146107b55780635b7f415c146107e05780635be7fde81461080b5780635c975abb14610836578063661884631461086557806366a92cda146108ca57806370a08231146108e1578063715018a614610938578063726a431a1461094f5780637d64bcb4146109a65780638456cb59146109d55780638da5cb5b146109ec57806395d89b4114610a43578063a9059cbb14610ad3578063a9aad58c14610b38578063ca63b5b814610b67578063cf3b196714610bbe578063d73dd62314610bef578063d8aeedf514610c54578063dd62ed3e14610cab578063f2fde38b14610d22575b600080fd5b3480156101e857600080fd5b506101f1610d65565b604051808215151515815260200191505060405180910390f35b34801561021757600080fd5b50610256600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d6a565b604051808367ffffffffffffffff1667ffffffffffffffff1681526020018281526020019250505060405180910390f35b34801561029357600080fd5b5061029c610e22565b604051808215151515815260200191505060405180910390f35b3480156102c257600080fd5b506102cb610e35565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561030b5780820151818401526020810190506102f0565b50505050905090810190601f1680156103385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035257600080fd5b50610391600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e72565b604051808215151515815260200191505060405180910390f35b3480156103b757600080fd5b5061040a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803567ffffffffffffffff169060200190929190505050610f64565b604051808215151515815260200191505060405180910390f35b34801561043057600080fd5b50610439611225565b604051808215151515815260200191505060405180910390f35b34801561045f57600080fd5b50610494600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611238565b6040518082815260200191505060405180910390f35b3480156104b657600080fd5b506104bf61124a565b6040518082815260200191505060405180910390f35b3480156104e157600080fd5b506104ea611254565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561052a57808201518184015260208101905061050f565b50505050905090810190601f1680156105575780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561057157600080fd5b506105d0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061128d565b604051808215151515815260200191505060405180910390f35b3480156105f657600080fd5b506105ff6112bf565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561063f578082015181840152602081019050610624565b50505050905090810190601f16801561066c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561068657600080fd5b5061068f6112f8565b604051808260ff1660ff16815260200191505060405180910390f35b3480156106b757600080fd5b5061070a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803567ffffffffffffffff169060200190929190505050611301565b005b34801561071857600080fd5b506107216115f5565b005b34801561072f57600080fd5b5061076e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116b5565b604051808215151515815260200191505060405180910390f35b34801561079457600080fd5b506107b36004803603810190808035906020019092919050505061187f565b005b3480156107c157600080fd5b506107ca61188c565b6040518082815260200191505060405180910390f35b3480156107ec57600080fd5b506107f5611894565b6040518082815260200191505060405180910390f35b34801561081757600080fd5b50610820611899565b6040518082815260200191505060405180910390f35b34801561084257600080fd5b5061084b61190b565b604051808215151515815260200191505060405180910390f35b34801561087157600080fd5b506108b0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061191e565b604051808215151515815260200191505060405180910390f35b3480156108d657600080fd5b506108df611baf565b005b3480156108ed57600080fd5b50610922600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ef3565b6040518082815260200191505060405180910390f35b34801561094457600080fd5b5061094d611f46565b005b34801561095b57600080fd5b5061096461204b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109b257600080fd5b506109bb612063565b604051808215151515815260200191505060405180910390f35b3480156109e157600080fd5b506109ea61212b565b005b3480156109f857600080fd5b50610a016121ec565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a4f57600080fd5b50610a58612212565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a98578082015181840152602081019050610a7d565b50505050905090810190601f168015610ac55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610adf57600080fd5b50610b1e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061224f565b604051808215151515815260200191505060405180910390f35b348015610b4457600080fd5b50610b4d61227f565b604051808215151515815260200191505060405180910390f35b348015610b7357600080fd5b50610ba8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612284565b6040518082815260200191505060405180910390f35b348015610bca57600080fd5b50610bd3612330565b604051808260ff1660ff16815260200191505060405180910390f35b348015610bfb57600080fd5b50610c3a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612335565b604051808215151515815260200191505060405180910390f35b348015610c6057600080fd5b50610c95600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612531565b6040518082815260200191505060405180910390f35b348015610cb757600080fd5b50610d0c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061257a565b6040518082815260200191505060405180910390f35b348015610d2e57600080fd5b50610d63600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612601565b005b600081565b60008060008090505b60018401811015610de85760036000610d96878667ffffffffffffffff16612669565b6000191660001916815260200190815260200160002060009054906101000a900467ffffffffffffffff16925060008367ffffffffffffffff161415610ddb57610e1a565b8080600101915050610d73565b60046000610e00878667ffffffffffffffff16612669565b600019166000191681526020019081526020016000205491505b509250929050565b600660149054906101000a900460ff1681565b60606040805190810160405280600c81526020017f50797272686f7320476f6c640000000000000000000000000000000000000000815250905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fc357600080fd5b600660149054906101000a900460ff16151515610fdf57600080fd5b610ff4846001546126ac90919063ffffffff16565b60018190555061100e858467ffffffffffffffff16612669565b905061103e84600460008460001916600019168152602001908152602001600020546126ac90919063ffffffff16565b600460008360001916600019168152602001908152602001600020819055506110af84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ac90919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110fc85846126c8565b8473ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885856040518082815260200191505060405180910390a28473ffffffffffffffffffffffffffffffffffffffff167f2ecd071e4d10ed2221b04636ed0724cce66a873aa98c1a31b4bb0e6846d3aab48486604051808367ffffffffffffffff1667ffffffffffffffff1681526020018281526020019250505060405180910390a28473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019150509392505050565b600660169054906101000a900460ff1681565b60006112438261290c565b9050919050565b6000600154905090565b6040805190810160405280600c81526020017f50797272686f7320476f6c64000000000000000000000000000000000000000081525081565b6000600660159054906101000a900460ff161515156112ab57600080fd5b6112b6848484612954565b90509392505050565b6040805190810160405280600581526020017f50474f4c4400000000000000000000000000000000000000000000000000000081525081565b60006004905090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561133e57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561138b57600080fd5b6113dc836000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0e90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611432848367ffffffffffffffff16612669565b905061146283600460008460001916600019168152602001908152602001600020546126ac90919063ffffffff16565b600460008360001916600019168152602001908152602001600020819055506114d383600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ac90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061152084836126c8565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff167f2ecd071e4d10ed2221b04636ed0724cce66a873aa98c1a31b4bb0e6846d3aab48385604051808367ffffffffffffffff1667ffffffffffffffff1681526020018281526020019250505060405180910390a250505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561165157600080fd5b600660159054906101000a900460ff16151561166c57600080fd5b6000600660156101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561171357600080fd5b611728826001546126ac90919063ffffffff16565b60018190555061177f826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ac90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6118893382612d27565b50565b6004600a0a81565b600481565b60008060006118a9336000610d6a565b8167ffffffffffffffff16915080925081935050505b600082141580156118cf57508142115b15611906576118dc611baf565b80830192506118ec336000610d6a565b8167ffffffffffffffff16915080925081935050506118bf565b505090565b600660159054906101000a900460ff1681565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611a2f576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ac3565b611a428382612d0e90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000806000806000611bc2336000612669565b945060036000866000191660001916815260200190815260200160002060009054906101000a900467ffffffffffffffff16935060008467ffffffffffffffff1614151515611c1057600080fd5b8367ffffffffffffffff164267ffffffffffffffff16111515611c3257600080fd5b611c46338567ffffffffffffffff16612669565b925060036000846000191660001916815260200190815260200160002060009054906101000a900467ffffffffffffffff16915060046000846000191660001916815260200190815260200160002054905060046000846000191660001916815260200190815260200160002060009055611d08816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ac90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d9c81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0e90919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008267ffffffffffffffff161415611e295760036000866000191660001916815260200190815260200160002060006101000a81549067ffffffffffffffff0219169055611e9e565b8160036000876000191660001916815260200190815260200160002060006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060036000846000191660001916815260200190815260200160002060006101000a81549067ffffffffffffffff02191690555b3373ffffffffffffffffffffffffffffffffffffffff167fb21fb52d5749b80f3182f8c6992236b5e5576681880914484d7f4c9b062e619e826040518082815260200191505060405180910390a25050505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3e8361290c565b019050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611fa257600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b735d799e0a223fd22618a06286dc48a4796f325f5a81565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120c157600080fd5b600660149054906101000a900460ff161515156120dd57600080fd5b6001600660146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561218757600080fd5b600660159054906101000a900460ff161515156121a357600080fd5b6001600660156101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040805190810160405280600581526020017f50474f4c44000000000000000000000000000000000000000000000000000000815250905090565b6000600660159054906101000a900460ff1615151561226d57600080fd5b6122778383612eda565b905092915050565b600081565b60008060036000612296856000612669565b6000191660001916815260200190815260200160002060009054906101000a900467ffffffffffffffff1690505b60008167ffffffffffffffff1614151561232a578180600101925050600360006122f8858467ffffffffffffffff16612669565b6000191660001916815260200190815260200160002060009054906101000a900467ffffffffffffffff1690506122c4565b50919050565b600481565b60006123c682600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ac90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561265d57600080fd5b612666816130f9565b50565b60007f5749534800000000000000000000000000000000000000000000000000000000600102905068010000000000000000830281179050818117905092915050565b600081830190508281101515156126bf57fe5b80905092915050565b6000806000806000428667ffffffffffffffff161115156126e857600080fd5b6126fc878767ffffffffffffffff16612669565b945061271387600067ffffffffffffffff16612669565b935060036000856000191660001916815260200190815260200160002060009054906101000a900467ffffffffffffffff16925060008367ffffffffffffffff1614156127a1578560036000866000191660001916815260200190815260200160002060006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550612903565b6127b5878467ffffffffffffffff16612669565b91505b60008367ffffffffffffffff16141580156127e657508267ffffffffffffffff168667ffffffffffffffff16115b15612848578267ffffffffffffffff16905081935060036000836000191660001916815260200190815260200160002060009054906101000a900467ffffffffffffffff169250612841878467ffffffffffffffff16612669565b91506127b8565b8267ffffffffffffffff168667ffffffffffffffff16141561286957612903565b60008367ffffffffffffffff161415156128c0578260036000876000191660001916815260200190815260200160002060006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b8560036000866000191660001916815260200190815260200160002060006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561299157600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156129de57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515612a6957600080fd5b612aba826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0e90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b4d826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ac90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c1e82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0e90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000828211151515612d1c57fe5b818303905092915050565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515612d7457600080fd5b612dc5816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0e90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e1c81600154612d0e90919063ffffffff16565b6001819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612f1757600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515612f6457600080fd5b612fb5826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0e90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613048826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ac90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561313557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820e41832c55147909ae6b832431342bbf94dc42a22a54996100681e1cd053af9ce0029

Deployed Bytecode

0x6080604052600436106101d7576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680623fd35a146101dc57806302d6f7301461020b57806305d2035b1461028757806306fdde03146102b6578063095ea7b3146103465780630bb2cd6b146103ab578063158ef93e1461042457806317a950ac1461045357806318160ddd146104aa57806318821400146104d557806323b872dd146105655780632a905318146105ea578063313ce5671461067a5780633be1e952146106ab5780633f4ba83a1461070c57806340c10f191461072357806342966c681461078857806356780085146107b55780635b7f415c146107e05780635be7fde81461080b5780635c975abb14610836578063661884631461086557806366a92cda146108ca57806370a08231146108e1578063715018a614610938578063726a431a1461094f5780637d64bcb4146109a65780638456cb59146109d55780638da5cb5b146109ec57806395d89b4114610a43578063a9059cbb14610ad3578063a9aad58c14610b38578063ca63b5b814610b67578063cf3b196714610bbe578063d73dd62314610bef578063d8aeedf514610c54578063dd62ed3e14610cab578063f2fde38b14610d22575b600080fd5b3480156101e857600080fd5b506101f1610d65565b604051808215151515815260200191505060405180910390f35b34801561021757600080fd5b50610256600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d6a565b604051808367ffffffffffffffff1667ffffffffffffffff1681526020018281526020019250505060405180910390f35b34801561029357600080fd5b5061029c610e22565b604051808215151515815260200191505060405180910390f35b3480156102c257600080fd5b506102cb610e35565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561030b5780820151818401526020810190506102f0565b50505050905090810190601f1680156103385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035257600080fd5b50610391600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e72565b604051808215151515815260200191505060405180910390f35b3480156103b757600080fd5b5061040a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803567ffffffffffffffff169060200190929190505050610f64565b604051808215151515815260200191505060405180910390f35b34801561043057600080fd5b50610439611225565b604051808215151515815260200191505060405180910390f35b34801561045f57600080fd5b50610494600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611238565b6040518082815260200191505060405180910390f35b3480156104b657600080fd5b506104bf61124a565b6040518082815260200191505060405180910390f35b3480156104e157600080fd5b506104ea611254565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561052a57808201518184015260208101905061050f565b50505050905090810190601f1680156105575780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561057157600080fd5b506105d0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061128d565b604051808215151515815260200191505060405180910390f35b3480156105f657600080fd5b506105ff6112bf565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561063f578082015181840152602081019050610624565b50505050905090810190601f16801561066c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561068657600080fd5b5061068f6112f8565b604051808260ff1660ff16815260200191505060405180910390f35b3480156106b757600080fd5b5061070a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803567ffffffffffffffff169060200190929190505050611301565b005b34801561071857600080fd5b506107216115f5565b005b34801561072f57600080fd5b5061076e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116b5565b604051808215151515815260200191505060405180910390f35b34801561079457600080fd5b506107b36004803603810190808035906020019092919050505061187f565b005b3480156107c157600080fd5b506107ca61188c565b6040518082815260200191505060405180910390f35b3480156107ec57600080fd5b506107f5611894565b6040518082815260200191505060405180910390f35b34801561081757600080fd5b50610820611899565b6040518082815260200191505060405180910390f35b34801561084257600080fd5b5061084b61190b565b604051808215151515815260200191505060405180910390f35b34801561087157600080fd5b506108b0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061191e565b604051808215151515815260200191505060405180910390f35b3480156108d657600080fd5b506108df611baf565b005b3480156108ed57600080fd5b50610922600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ef3565b6040518082815260200191505060405180910390f35b34801561094457600080fd5b5061094d611f46565b005b34801561095b57600080fd5b5061096461204b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109b257600080fd5b506109bb612063565b604051808215151515815260200191505060405180910390f35b3480156109e157600080fd5b506109ea61212b565b005b3480156109f857600080fd5b50610a016121ec565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a4f57600080fd5b50610a58612212565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a98578082015181840152602081019050610a7d565b50505050905090810190601f168015610ac55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610adf57600080fd5b50610b1e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061224f565b604051808215151515815260200191505060405180910390f35b348015610b4457600080fd5b50610b4d61227f565b604051808215151515815260200191505060405180910390f35b348015610b7357600080fd5b50610ba8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612284565b6040518082815260200191505060405180910390f35b348015610bca57600080fd5b50610bd3612330565b604051808260ff1660ff16815260200191505060405180910390f35b348015610bfb57600080fd5b50610c3a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612335565b604051808215151515815260200191505060405180910390f35b348015610c6057600080fd5b50610c95600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612531565b6040518082815260200191505060405180910390f35b348015610cb757600080fd5b50610d0c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061257a565b6040518082815260200191505060405180910390f35b348015610d2e57600080fd5b50610d63600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612601565b005b600081565b60008060008090505b60018401811015610de85760036000610d96878667ffffffffffffffff16612669565b6000191660001916815260200190815260200160002060009054906101000a900467ffffffffffffffff16925060008367ffffffffffffffff161415610ddb57610e1a565b8080600101915050610d73565b60046000610e00878667ffffffffffffffff16612669565b600019166000191681526020019081526020016000205491505b509250929050565b600660149054906101000a900460ff1681565b60606040805190810160405280600c81526020017f50797272686f7320476f6c640000000000000000000000000000000000000000815250905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fc357600080fd5b600660149054906101000a900460ff16151515610fdf57600080fd5b610ff4846001546126ac90919063ffffffff16565b60018190555061100e858467ffffffffffffffff16612669565b905061103e84600460008460001916600019168152602001908152602001600020546126ac90919063ffffffff16565b600460008360001916600019168152602001908152602001600020819055506110af84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ac90919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110fc85846126c8565b8473ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885856040518082815260200191505060405180910390a28473ffffffffffffffffffffffffffffffffffffffff167f2ecd071e4d10ed2221b04636ed0724cce66a873aa98c1a31b4bb0e6846d3aab48486604051808367ffffffffffffffff1667ffffffffffffffff1681526020018281526020019250505060405180910390a28473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019150509392505050565b600660169054906101000a900460ff1681565b60006112438261290c565b9050919050565b6000600154905090565b6040805190810160405280600c81526020017f50797272686f7320476f6c64000000000000000000000000000000000000000081525081565b6000600660159054906101000a900460ff161515156112ab57600080fd5b6112b6848484612954565b90509392505050565b6040805190810160405280600581526020017f50474f4c4400000000000000000000000000000000000000000000000000000081525081565b60006004905090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561133e57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561138b57600080fd5b6113dc836000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0e90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611432848367ffffffffffffffff16612669565b905061146283600460008460001916600019168152602001908152602001600020546126ac90919063ffffffff16565b600460008360001916600019168152602001908152602001600020819055506114d383600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ac90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061152084836126c8565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff167f2ecd071e4d10ed2221b04636ed0724cce66a873aa98c1a31b4bb0e6846d3aab48385604051808367ffffffffffffffff1667ffffffffffffffff1681526020018281526020019250505060405180910390a250505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561165157600080fd5b600660159054906101000a900460ff16151561166c57600080fd5b6000600660156101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561171357600080fd5b611728826001546126ac90919063ffffffff16565b60018190555061177f826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ac90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6118893382612d27565b50565b6004600a0a81565b600481565b60008060006118a9336000610d6a565b8167ffffffffffffffff16915080925081935050505b600082141580156118cf57508142115b15611906576118dc611baf565b80830192506118ec336000610d6a565b8167ffffffffffffffff16915080925081935050506118bf565b505090565b600660159054906101000a900460ff1681565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611a2f576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ac3565b611a428382612d0e90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000806000806000611bc2336000612669565b945060036000866000191660001916815260200190815260200160002060009054906101000a900467ffffffffffffffff16935060008467ffffffffffffffff1614151515611c1057600080fd5b8367ffffffffffffffff164267ffffffffffffffff16111515611c3257600080fd5b611c46338567ffffffffffffffff16612669565b925060036000846000191660001916815260200190815260200160002060009054906101000a900467ffffffffffffffff16915060046000846000191660001916815260200190815260200160002054905060046000846000191660001916815260200190815260200160002060009055611d08816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ac90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d9c81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0e90919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008267ffffffffffffffff161415611e295760036000866000191660001916815260200190815260200160002060006101000a81549067ffffffffffffffff0219169055611e9e565b8160036000876000191660001916815260200190815260200160002060006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060036000846000191660001916815260200190815260200160002060006101000a81549067ffffffffffffffff02191690555b3373ffffffffffffffffffffffffffffffffffffffff167fb21fb52d5749b80f3182f8c6992236b5e5576681880914484d7f4c9b062e619e826040518082815260200191505060405180910390a25050505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3e8361290c565b019050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611fa257600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b735d799e0a223fd22618a06286dc48a4796f325f5a81565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120c157600080fd5b600660149054906101000a900460ff161515156120dd57600080fd5b6001600660146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561218757600080fd5b600660159054906101000a900460ff161515156121a357600080fd5b6001600660156101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040805190810160405280600581526020017f50474f4c44000000000000000000000000000000000000000000000000000000815250905090565b6000600660159054906101000a900460ff1615151561226d57600080fd5b6122778383612eda565b905092915050565b600081565b60008060036000612296856000612669565b6000191660001916815260200190815260200160002060009054906101000a900467ffffffffffffffff1690505b60008167ffffffffffffffff1614151561232a578180600101925050600360006122f8858467ffffffffffffffff16612669565b6000191660001916815260200190815260200160002060009054906101000a900467ffffffffffffffff1690506122c4565b50919050565b600481565b60006123c682600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ac90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561265d57600080fd5b612666816130f9565b50565b60007f5749534800000000000000000000000000000000000000000000000000000000600102905068010000000000000000830281179050818117905092915050565b600081830190508281101515156126bf57fe5b80905092915050565b6000806000806000428667ffffffffffffffff161115156126e857600080fd5b6126fc878767ffffffffffffffff16612669565b945061271387600067ffffffffffffffff16612669565b935060036000856000191660001916815260200190815260200160002060009054906101000a900467ffffffffffffffff16925060008367ffffffffffffffff1614156127a1578560036000866000191660001916815260200190815260200160002060006101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550612903565b6127b5878467ffffffffffffffff16612669565b91505b60008367ffffffffffffffff16141580156127e657508267ffffffffffffffff168667ffffffffffffffff16115b15612848578267ffffffffffffffff16905081935060036000836000191660001916815260200190815260200160002060009054906101000a900467ffffffffffffffff169250612841878467ffffffffffffffff16612669565b91506127b8565b8267ffffffffffffffff168667ffffffffffffffff16141561286957612903565b60008367ffffffffffffffff161415156128c0578260036000876000191660001916815260200190815260200160002060006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b8560036000866000191660001916815260200190815260200160002060006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561299157600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156129de57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515612a6957600080fd5b612aba826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0e90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b4d826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ac90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c1e82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0e90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000828211151515612d1c57fe5b818303905092915050565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515612d7457600080fd5b612dc5816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0e90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e1c81600154612d0e90919063ffffffff16565b6001819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612f1757600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515612f6457600080fd5b612fb5826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d0e90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613048826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ac90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561313557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820e41832c55147909ae6b832431342bbf94dc42a22a54996100681e1cd053af9ce0029

Deployed Bytecode Sourcemap

20809:1691:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20750:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20750:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;13608:355;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13608:355:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10614:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10614:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;21073:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21073:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;21073:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6254:192;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6254:192:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19761:535;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19761:535:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20933:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20933:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;12715:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12715:128:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3062:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3062:85:0;;;;;;;;;;;;;;;;;;;;;;;20506:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20506:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;20506:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21381:188;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21381:188:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20563:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20563:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;20563:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21269:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21269:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;14337:547;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14337:547:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19081:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19081:95:0;;;;;;11051:310;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11051:310:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17730:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17730:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;20429:68;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20429:68:0;;;;;;;;;;;;;;;;;;;;;;;20330:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20330:39:0;;;;;;;;;;;;;;;;;;;;;;;15887:357;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15887:357:0;;;;;;;;;;;;;;;;;;;;;;;18460:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18460:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8182:440;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8182:440:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14964:756;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14964:756:0;;;;;;12318:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12318:148:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9470:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9470:114:0;;;;;;20657:80;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20657:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;11481:144;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11481:144:0;;;;;;;;;;;;;;;;;;;;;;;;;;;18901:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18901:93:0;;;;;;8852:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8852:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;21168:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21168:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;21168:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21577:158;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21577:158:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20615:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20615:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;13093:249;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13093:249:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20376:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20376:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;7404:304;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7404:304:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12851:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12851:130:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6773:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6773:162:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9752:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9752:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;20750:45;20790:5;20750:45;:::o;13608:355::-;13678:15;13695:13;13726:6;13735:1;13726:10;;13721:180;13751:1;13742:6;:10;13738:1;:14;13721:180;;;13785:6;:30;13792:22;13798:5;13805:8;13792:22;;:5;:22::i;:::-;13785:30;;;;;;;;;;;;;;;;;;;;;;;;;;;13774:41;;13846:1;13834:8;:13;;;13830:60;;;13868:7;;13830:60;13754:3;;;;;;;13721:180;;;13922:9;:33;13932:22;13938:5;13945:8;13932:22;;:5;:22::i;:::-;13922:33;;;;;;;;;;;;;;;;;;13911:44;;13608:355;;;;;;;:::o;10614:35::-;;;;;;;;;;;;;:::o;21073:87::-;21110:12;21142:10;;;;;;;;;;;;;;;;;;21135:17;;21073:87;:::o;6254:192::-;6321:4;6366:6;6334:7;:19;6342:10;6334:19;;;;;;;;;;;;;;;:29;6354:8;6334:29;;;;;;;;;;;;;;;:38;;;;6405:8;6384:38;;6393:10;6384:38;;;6415:6;6384:38;;;;;;;;;;;;;;;;;;6436:4;6429:11;;6254:192;;;;:::o;19761:535::-;19860:4;19930:18;9355:5;;;;;;;;;;;9341:19;;:10;:19;;;9333:28;;;;;;;;10693:15;;;;;;;;;;;10692:16;10684:25;;;;;;;;19892;19909:7;19892:12;;:16;;:25;;;;:::i;:::-;19877:12;:40;;;;19951:18;19957:3;19962:6;19951:18;;:5;:18::i;:::-;19930:39;;20004:34;20030:7;20004:9;:21;20014:10;20004:21;;;;;;;;;;;;;;;;;;:25;;:34;;;;:::i;:::-;19980:9;:21;19990:10;19980:21;;;;;;;;;;;;;;;;;:58;;;;20072:33;20097:7;20072:15;:20;20088:3;20072:20;;;;;;;;;;;;;;;;:24;;:33;;;;:::i;:::-;20049:15;:20;20065:3;20049:20;;;;;;;;;;;;;;;:56;;;;20118:19;20125:3;20130:6;20118;:19::i;:::-;20158:3;20153:18;;;20163:7;20153:18;;;;;;;;;;;;;;;;;;20195:3;20187:29;;;20200:6;20208:7;20187:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;20253:3;20232:34;;20241:10;20232:34;;;20258:7;20232:34;;;;;;;;;;;;;;;;;;20284:4;20277:11;;19761:535;;;;;;:::o;20933:31::-;;;;;;;;;;;;;:::o;12715:128::-;12777:15;12812:23;12828:6;12812:15;:23::i;:::-;12805:30;;12715:128;;;:::o;3062:85::-;3106:7;3129:12;;3122:19;;3062:85;:::o;20506:50::-;;;;;;;;;;;;;;;;;;;;:::o;21381:188::-;21463:13;21498:6;;;;;;;;;;;21497:7;21489:16;;;;;;;;21523:38;21542:5;21549:3;21554:6;21523:18;:38::i;:::-;21516:45;;21381:188;;;;;:::o;20563:45::-;;;;;;;;;;;;;;;;;;;;:::o;21269:104::-;21310:15;20421:1;21338:27;;21269:104;:::o;14337:547::-;14574:18;14438:1;14423:17;;:3;:17;;;;14415:26;;;;;;;;14471:8;:20;14480:10;14471:20;;;;;;;;;;;;;;;;14460:7;:31;;14452:40;;;;;;;;14528:33;14553:7;14528:8;:20;14537:10;14528:20;;;;;;;;;;;;;;;;:24;;:33;;;;:::i;:::-;14505:8;:20;14514:10;14505:20;;;;;;;;;;;;;;;:56;;;;14595:18;14601:3;14606:6;14595:18;;:5;:18::i;:::-;14574:39;;14648:34;14674:7;14648:9;:21;14658:10;14648:21;;;;;;;;;;;;;;;;;;:25;;:34;;;;:::i;:::-;14624:9;:21;14634:10;14624:21;;;;;;;;;;;;;;;;;:58;;;;14716:33;14741:7;14716:15;:20;14732:3;14716:20;;;;;;;;;;;;;;;;:24;;:33;;;;:::i;:::-;14693:15;:20;14709:3;14693:20;;;;;;;;;;;;;;;:56;;;;14762:19;14769:3;14774:6;14762;:19::i;:::-;14818:3;14797:34;;14806:10;14797:34;;;14823:7;14797:34;;;;;;;;;;;;;;;;;;14855:3;14847:29;;;14860:6;14868:7;14847:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;14337:547;;;;:::o;19081:95::-;9355:5;;;;;;;;;;;9341:19;;:10;:19;;;9333:28;;;;;;;;18796:6;;;;;;;;;;;18788:15;;;;;;;;19144:5;19135:6;;:14;;;;;;;;;;;;;;;;;;19161:9;;;;;;;;;;19081:95::o;11051:310::-;11156:4;10787:5;;;;;;;;;;;10773:19;;:10;:19;;;10765:28;;;;;;;;11187:25;11204:7;11187:12;;:16;;:25;;;;:::i;:::-;11172:12;:40;;;;11235:26;11253:7;11235:8;:13;11244:3;11235:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;11219:8;:13;11228:3;11219:13;;;;;;;;;;;;;;;:42;;;;11278:3;11273:18;;;11283:7;11273:18;;;;;;;;;;;;;;;;;;11324:3;11303:34;;11320:1;11303:34;;;11329:7;11303:34;;;;;;;;;;;;;;;;;;11351:4;11344:11;;11051:310;;;;:::o;17730:75::-;17774:25;17780:10;17792:6;17774:5;:25::i;:::-;17730:75;:::o;20429:68::-;20368:1;20477:2;:20;20429:68;:::o;20330:39::-;20368:1;20330:39;:::o;15887:357::-;15925:11;15949:12;15972;16016:26;16028:10;16040:1;16016:11;:26::i;:::-;15995:47;;;;;;;;;;;;;16053:184;16071:1;16060:7;:12;;:41;;;;;16094:7;16076:15;:25;16060:41;16053:184;;;16118:13;:11;:13::i;:::-;16156:7;16146:17;;;;16199:26;16211:10;16223:1;16199:11;:26::i;:::-;16178:47;;;;;;;;;;;;;16053:184;;;15887:357;;;:::o;18460:26::-;;;;;;;;;;;;;:::o;8182:440::-;8290:4;8306:13;8322:7;:19;8330:10;8322:19;;;;;;;;;;;;;;;:29;8342:8;8322:29;;;;;;;;;;;;;;;;8306:45;;8381:8;8362:16;:27;8358:168;;;8432:1;8400:7;:19;8408:10;8400:19;;;;;;;;;;;;;;;:29;8420:8;8400:29;;;;;;;;;;;;;;;:33;;;;8358:168;;;8488:30;8501:16;8488:8;:12;;:30;;;;:::i;:::-;8456:7;:19;8464:10;8456:19;;;;;;;;;;;;;;;:29;8476:8;8456:29;;;;;;;;;;;;;;;:62;;;;8358:168;8558:8;8537:61;;8546:10;8537:61;;;8568:7;:19;8576:10;8568:19;;;;;;;;;;;;;;;:29;8588:8;8568:29;;;;;;;;;;;;;;;;8537:61;;;;;;;;;;;;;;;;;;8612:4;8605:11;;8182:440;;;;;:::o;14964:756::-;15005:15;15054:11;15173:18;15230:11;15275;15023:20;15029:10;15041:1;15023:5;:20::i;:::-;15005:38;;15068:6;:15;15075:7;15068:15;;;;;;;;;;;;;;;;;;;;;;;;;;;15054:29;;15110:1;15102:4;:9;;;;15094:18;;;;;;;;15157:4;15131:30;;15138:15;15131:30;;;15123:39;;;;;;;;15194:23;15200:10;15212:4;15194:23;;:5;:23::i;:::-;15173:44;;15244:6;:18;15251:10;15244:18;;;;;;;;;;;;;;;;;;;;;;;;;;;15230:32;;15289:9;:21;15299:10;15289:21;;;;;;;;;;;;;;;;;;15275:35;;15328:9;:21;15338:10;15328:21;;;;;;;;;;;;;;;;;15321:28;;;15385:32;15410:6;15385:8;:20;15394:10;15385:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15362:8;:20;15371:10;15362:20;;;;;;;;;;;;;;;:55;;;;15458:39;15490:6;15458:15;:27;15474:10;15458:27;;;;;;;;;;;;;;;;:31;;:39;;;;:::i;:::-;15428:15;:27;15444:10;15428:27;;;;;;;;;;;;;;;:69;;;;15522:1;15514:4;:9;;;15510:159;;;15547:6;:15;15554:7;15547:15;;;;;;;;;;;;;;;;;;15540:22;;;;;;;;;;;15510:159;;;15613:4;15595:6;:15;15602:7;15595:15;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;15639:6;:18;15646:10;15639:18;;;;;;;;;;;;;;;;;;15632:25;;;;;;;;;;;15510:159;15693:10;15684:28;;;15705:6;15684:28;;;;;;;;;;;;;;;;;;14964:756;;;;;:::o;12318:148::-;12374:15;12435;:23;12451:6;12435:23;;;;;;;;;;;;;;;;12409;12425:6;12409:15;:23::i;:::-;:49;12402:56;;12318:148;;;:::o;9470:114::-;9355:5;;;;;;;;;;;9341:19;;:10;:19;;;9333:28;;;;;;;;9547:5;;;;;;;;;;;9528:25;;;;;;;;;;;;9576:1;9560:5;;:18;;;;;;;;;;;;;;;;;;9470:114::o;20657:80::-;20695:42;20657:80;:::o;11481:144::-;11540:4;9355:5;;;;;;;;;;;9341:19;;:10;:19;;;9333:28;;;;;;;;10693:15;;;;;;;;;;;10692:16;10684:25;;;;;;;;11571:4;11553:15;;:22;;;;;;;;;;;;;;;;;;11587:14;;;;;;;;;;11615:4;11608:11;;11481:144;:::o;18901:93::-;9355:5;;;;;;;;;;;9341:19;;:10;:19;;;9333:28;;;;;;;;18636:6;;;;;;;;;;;18635:7;18627:16;;;;;;;;18965:4;18956:6;;:13;;;;;;;;;;;;;;;;;;18981:7;;;;;;;;;;18901:93::o;8852:20::-;;;;;;;;;;;;;:::o;21168:93::-;21207:14;21241:12;;;;;;;;;;;;;;;;;;21234:19;;21168:93;:::o;21577:158::-;21640:13;21675:6;;;;;;;;;;;21674:7;21666:16;;;;;;;;21700:27;21715:3;21720:6;21700:14;:27::i;:::-;21693:34;;21577:158;;;;:::o;20615:35::-;20645:5;20615:35;:::o;13093:249::-;13152:10;13175:14;13192:6;:23;13199:15;13205:5;13212:1;13199:5;:15::i;:::-;13192:23;;;;;;;;;;;;;;;;;;;;;;;;;;;13175:40;;13226:109;13244:1;13233:7;:12;;;;13226:109;;;13262:7;;;;;;;13294:6;:29;13301:21;13307:5;13314:7;13301:21;;:5;:21::i;:::-;13294:29;;;;;;;;;;;;;;;;;;;;;;;;;;;13284:39;;13226:109;;;13093:249;;;;:::o;20376:46::-;20421:1;20376:46;:::o;7404:304::-;7507:4;7564:46;7598:11;7564:7;:19;7572:10;7564:19;;;;;;;;;;;;;;;:29;7584:8;7564:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;7523:7;:19;7531:10;7523:19;;;;;;;;;;;;;;;:29;7543:8;7523:29;;;;;;;;;;;;;;;:88;;;;7644:8;7623:61;;7632:10;7623:61;;;7654:7;:19;7662:10;7654:19;;;;;;;;;;;;;;;:29;7674:8;7654:29;;;;;;;;;;;;;;;;7623:61;;;;;;;;;;;;;;;;;;7698:4;7691:11;;7404:304;;;;:::o;12851:130::-;12915:15;12950;:23;12966:6;12950:23;;;;;;;;;;;;;;;;12943:30;;12851:130;;;:::o;6773:162::-;6878:7;6904;:15;6912:6;6904:15;;;;;;;;;;;;;;;:25;6920:8;6904:25;;;;;;;;;;;;;;;;6897:32;;6773:162;;;;:::o;9752:105::-;9355:5;;;;;;;;;;;9341:19;;:10;:19;;;9333:28;;;;;;;;9822:29;9841:9;9822:18;:29::i;:::-;9752:105;:::o;16252:362::-;16320:14;16398:66;16389:75;;;;16531:19;16524:5;16520:31;16512:6;16509:43;16499:53;;16587:8;16579:6;16576:20;16566:30;;16484:123;;;;:::o;2629:127::-;2687:9;2713:1;2709;:5;2705:9;;2733:1;2728;:6;;2721:14;;;;;;2749:1;2742:8;;2629:127;;;;:::o;16622:789::-;16730:11;16773:17;16825:11;16970:15;17015:11;16703:15;16694:6;:24;;;16686:33;;;;;;;;16744:18;16750:3;16755:6;16744:18;;:5;:18::i;:::-;16730:32;;16793:21;16799:3;16811:1;16793:21;;:5;:21::i;:::-;16773:41;;16839:6;:17;16846:9;16839:17;;;;;;;;;;;;;;;;;;;;;;;;;;;16825:31;;16881:1;16873:4;:9;;;16869:89;;;16919:6;16899;:17;16906:9;16899:17;;;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;16940:7;;16869:89;16988:16;16994:3;16999:4;16988:16;;:5;:16::i;:::-;16970:34;;17039:189;17054:1;17046:4;:9;;;;:26;;;;;17068:4;17059:13;;:6;:13;;;17046:26;17039:189;;;17098:4;17089:13;;;;17129:7;17117:19;;17160:6;:15;17167:7;17160:15;;;;;;;;;;;;;;;;;;;;;;;;;;;17153:22;;17200:16;17206:3;17211:4;17200:16;;:5;:16::i;:::-;17190:26;;17039:189;;;17254:4;17244:14;;:6;:14;;;17240:53;;;17275:7;;17240:53;17317:1;17309:4;:9;;;;17305:60;;;17349:4;17335:6;:11;17342:3;17335:11;;;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;;;;;;;17305:60;17397:6;17377;:17;17384:9;17377:17;;;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;16622:789;;;;;;;;:::o;3846:101::-;3902:7;3925:8;:16;3934:6;3925:16;;;;;;;;;;;;;;;;3918:23;;3846:101;;;:::o;5132:487::-;5244:4;5283:1;5268:17;;:3;:17;;;;5260:26;;;;;;;;5311:8;:15;5320:5;5311:15;;;;;;;;;;;;;;;;5301:6;:25;;5293:34;;;;;;;;5352:7;:14;5360:5;5352:14;;;;;;;;;;;;;;;:26;5367:10;5352:26;;;;;;;;;;;;;;;;5342:6;:36;;5334:45;;;;;;;;5406:27;5426:6;5406:8;:15;5415:5;5406:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;5388:8;:15;5397:5;5388:15;;;;;;;;;;;;;;;:45;;;;5456:25;5474:6;5456:8;:13;5465:3;5456:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;5440:8;:13;5449:3;5440:13;;;;;;;;;;;;;;;:41;;;;5517:38;5548:6;5517:7;:14;5525:5;5517:14;;;;;;;;;;;;;;;:26;5532:10;5517:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;5488:7;:14;5496:5;5488:14;;;;;;;;;;;;;;;:26;5503:10;5488:26;;;;;;;;;;;;;;;:67;;;;5583:3;5567:28;;5576:5;5567:28;;;5588:6;5567:28;;;;;;;;;;;;;;;;;;5609:4;5602:11;;5132:487;;;;;:::o;2449:113::-;2507:7;2535:1;2530;:6;;2523:14;;;;;;2555:1;2551;:5;2544:12;;2449:113;;;;:::o;17811:447::-;17890:8;:14;17899:4;17890:14;;;;;;;;;;;;;;;;17880:6;:24;;17872:33;;;;;;;;18104:26;18123:6;18104:8;:14;18113:4;18104:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;18087:8;:14;18096:4;18087:14;;;;;;;;;;;;;;;:43;;;;18152:24;18169:6;18152:12;;:16;;:24;;;;:::i;:::-;18137:12;:39;;;;18193:4;18188:18;;;18199:6;18188:18;;;;;;;;;;;;;;;;;;18241:1;18218:34;;18227:4;18218:34;;;18245:6;18218:34;;;;;;;;;;;;;;;;;;17811:447;;:::o;3308:329::-;3371:4;3407:1;3392:17;;:3;:17;;;;3384:26;;;;;;;;3435:8;:20;3444:10;3435:20;;;;;;;;;;;;;;;;3425:6;:30;;3417:39;;;;;;;;3488:32;3513:6;3488:8;:20;3497:10;3488:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;3465:8;:20;3474:10;3465:20;;;;;;;;;;;;;;;:55;;;;3543:25;3561:6;3543:8;:13;3552:3;3543:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;3527:8;:13;3536:3;3527:13;;;;;;;;;;;;;;;:41;;;;3601:3;3580:33;;3589:10;3580:33;;;3606:6;3580:33;;;;;;;;;;;;;;;;;;3627:4;3620:11;;3308:329;;;;:::o;9998:175::-;10090:1;10069:23;;:9;:23;;;;10061:32;;;;;;;;10133:9;10105:38;;10126:5;;;;;;;;;;;10105:38;;;;;;;;;;;;10158:9;10150:5;;:17;;;;;;;;;;;;;;;;;;9998:175;:::o

Swarm Source

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