ETH Price: $3,269.38 (+3.10%)
Gas: 2 Gwei

Token

CNEXCHANGE (CNEX)
 

Overview

Max Total Supply

340,000,000 CNEX

Holders

1,509 (0.00%)

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

CNExchange is a project by QuickX Team for a community-centric exchange.

IEO Information

IEO Address : 0x65e5C276dBbb76fF153e116631b9e958E9Cdae15
IEO Start Date : Jun 1, 2019
IEO End Date : Sep 28, 2019
IEO Price : $0.03
Public Sale Allocation : 200000000 CNEX
Raised : $4,500,000
Token Distribution Date : Sep 29, 2019

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
CNEXToken

Compiler Version
v0.5.11+commit.c082d0b4

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-09-11
*/

pragma solidity ^0.5.11;


library SafeMath {

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

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

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }
    
    function add(uint256 a, uint256 b) internal pure returns (uint256) {

        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}


contract ERC223Interface {
    uint public totalSupply;
    function balanceOf(address who) public view returns (uint);
    function transfer(address to, uint value) public returns (bool success);
    function transfer(address to, uint value, bytes memory data) public returns (bool success);
    event Transfer(address indexed from, address indexed to, uint value, bytes data);
    event Transfer(address indexed from, address indexed to, uint value);
}


/**
 * @title Contract that will work with ERC223 tokens.
 * source: https://github.com/ethereum/EIPs/issues/223
 */
interface ERC223ReceivingContract {
    /**
     * @dev Standard ERC223 function that will handle incoming token transfers.
     *
     * @param from  Token sender address.
     * @param value Amount of tokens.
     * @param data  Transaction metadata.
     */
    function tokenFallback( address from, uint value, bytes calldata data ) external;
}


/**
 * @title Ownership
 * @author Prashant Prabhakar Singh
 * @dev Contract that allows to hande ownership of contract
 */
contract Ownership {

    address public owner;
    event LogOwnershipTransferred(address indexed oldOwner, address indexed newOwner);


    constructor() public {
        owner = msg.sender;
        emit LogOwnershipTransferred(address(0), owner);
    }

    modifier onlyOwner {
        require(msg.sender == owner, "Only owner is allowed");
        _;
    }

    /**
     * @dev Transfers ownership of contract to other address
     * @param _newOwner address The address of new owner
     */
    function transferOwnership(address _newOwner)
        public
        onlyOwner
    {
        require(_newOwner != address(0), "Zero address not allowed");
        address oldOwner = owner;
        owner = _newOwner;
        emit LogOwnershipTransferred(oldOwner, _newOwner);
    }

    /**
     * @dev Removes owner from the contract.
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     * @param _code uint that prevents accidental calling of the function
     */
    function renounceOwnership(uint _code)
      public
      onlyOwner
    {
        require(_code == 1234567890, "Invalid code");
        owner = address(0);
        emit LogOwnershipTransferred(owner, address(0));
    }

}

/**
 * @title Freezable
 * @author Prashant Prabhakar Singh
 * @dev Contract that allows freezing/unfreezing an address or complete contract
 */
contract Freezable is Ownership {

    bool public emergencyFreeze;
    mapping(address => bool) public frozen;

    event LogFreezed(address indexed target, bool freezeStatus);
    event LogEmergencyFreezed(bool emergencyFreezeStatus);

    modifier unfreezed(address _account) {
        require(!frozen[_account], "Account is freezed");
        _;
    }

    modifier noEmergencyFreeze() {
        require(!emergencyFreeze, "Contract is emergency freezed");
        _;
    }

    /**
     * @dev Freezes or unfreezes an addreess
     * this does not check for previous state before applying new state
     * @param _target the address which will be feeezed.
     * @param _freeze boolean status. Use true to freeze and false to unfreeze.
     */
    function freezeAccount (address _target, bool _freeze)
        public
        onlyOwner
    {
        require(_target != address(0), "Zero address not allowed");
        frozen[_target] = _freeze;
        emit LogFreezed(_target, _freeze);
    }

   /**
     * @dev Freezes or unfreezes the contract
     * this does not check for previous state before applying new state
     * @param _freeze boolean status. Use true to freeze and false to unfreeze.
     */
    function emergencyFreezeAllAccounts (bool _freeze)
        public
        onlyOwner
    {
        emergencyFreeze = _freeze;
        emit LogEmergencyFreezed(_freeze);
    }
}


/**
 * @title Standard Token
 * @author Prashant Prabhakar Singh
 * @dev A Standard Token contract that follows ERC-223 standard
 */
contract StandardToken is ERC223Interface, Freezable {

    using SafeMath for uint;

    string public name;
    string public symbol;
    uint public decimals;
    uint public totalSupply;
    uint public maxSupply;

    mapping(address => uint) internal balances;
    mapping(address => mapping(address => uint)) private  _allowed;

    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);

    constructor () public {
        name = 'CNEXCHANGE';
        symbol = 'CNEX';
        decimals = 8;
        maxSupply = 400000000 * ( 10 ** decimals ); // 400 million
    }

    /**
     * @dev Transfer the specified amount of tokens to the specified address.
     *      Invokes the `tokenFallback` function if the recipient is a contract.
     *      The token transfer fails if the recipient is a contract
     *      but does not implement the `tokenFallback` function
     *      or the fallback function to receive funds.
     *
     *   Compitable wit ERC-20 Standard
     *
     * @param _to    Receiver address.
     * @param _value Amount of tokens that will be transferred.
     */
    function transfer(address _to, uint _value)
        public
        unfreezed(_to)
        unfreezed(msg.sender)
        noEmergencyFreeze()
        returns (bool success)
    {
        bytes memory _data;
        _transfer223(msg.sender, _to, _value, _data);
        return true;
    }

    /**
     * @dev Transfer the specified amount of tokens to the specified address.
     *      Invokes the `tokenFallback` function if the recipient is a contract.
     *      The token transfer fails if the recipient is a contract
     *      but does not implement the `tokenFallback` function
     *      or the fallback function to receive funds.
     *
     * @param _to    Receiver address.
     * @param _value Amount of tokens that will be transferred.
     * @param _data  Transaction metadata.
     */
    function transfer(address _to, uint _value, bytes memory _data)
        public
        unfreezed(_to)
        unfreezed(msg.sender)
        noEmergencyFreeze()
        returns (bool success)
    {
        _transfer223(msg.sender, _to, _value, _data);
        return true;
    }

    /**
     * @dev Utility method to check if an address is contract address
     *
     * @param _addr address which is being checked.
     * @return true if address belongs to a contract else returns false
     */
    function isContract(address _addr )
        private
        view
        returns (bool)
    {
        uint length;
        assembly { length := extcodesize(_addr) }
        return (length > 0);
    }

    /**
     * @dev To change the approve amount you first have to reduce the addresses
     * allowance to zero by calling `approve(_spender, 0)` if it is not
     * already 0 to mitigate the race condition described here
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     * Recommended is to use increase approval and decrease approval instead
     *
     * Requires either that _value of allwance is 0
     * @param _spender address who is allowed to spend
     * @param _value the no of tokens spender can spend
     * @return true if everything goes well
     */
    function approve(address _spender, uint _value)
        public
        unfreezed(_spender)
        unfreezed(msg.sender)
        noEmergencyFreeze()
        returns (bool success)
    {
        require((_value == 0) || (_allowed[msg.sender][_spender] == 0), "Approval needs to be 0 first");
        require(_spender != msg.sender, "Can not approve to self");
        _allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    /**
     * @dev increases current allowance
     *
     * @param _spender address who is allowed to spend
     * @param _addedValue the no of tokens added to previous allowance
     * @return true if everything goes well
     */
    function increaseApproval(address _spender, uint _addedValue)
        public
        unfreezed(_spender)
        unfreezed(msg.sender)
        noEmergencyFreeze()
        returns (bool success)
    {
        require(_spender != msg.sender, "Can not approve to self");
        _allowed[msg.sender][_spender] = _allowed[msg.sender][_spender].add(_addedValue);
        emit Approval(msg.sender, _spender, _allowed[msg.sender][_spender]);
        return true;
    }

    /**
     * @dev decrease current allowance
     * @param _spender address who is allowed to spend
     * @param _subtractedValue the no of tokens deducted to previous allowance
     * If _subtractedValue is greater than prev allowance, allowance becomes 0
     * @return true if everything goes well
     */
    function decreaseApproval(address _spender, uint _subtractedValue)
        public
        unfreezed(_spender)
        unfreezed(msg.sender)
        noEmergencyFreeze()
        returns (bool success)
    {
        require(_spender != msg.sender, "Can not approve to self");
        uint oldAllowance = _allowed[msg.sender][_spender];
        if (_subtractedValue > oldAllowance) {
            _allowed[msg.sender][_spender] = 0;
        } else {
            _allowed[msg.sender][_spender] = oldAllowance.sub(_subtractedValue);
        }
        emit Approval(msg.sender, _spender, _allowed[msg.sender][_spender]);
        return true;
    }

    /**
     * @dev Transfer tokens from one address to another.
     * @param _from address The address from which you want to send tokens.
     * @param _to address The address to which you want to transfer tokens.
     * @param _value uint256 the amount of tokens to be transferred.
     */
    function transferFrom(address _from, address _to, uint _value)
        public
        unfreezed(_to)
        unfreezed(msg.sender)
        unfreezed(_from)
        noEmergencyFreeze()
        returns (bool success)
    {
        require(_value <= _allowed[_from][msg.sender], "Insufficient allowance");
        _allowed[_from][msg.sender] = _allowed[_from][msg.sender].sub(_value);
        bytes memory _data;
        _transfer223(_from, _to, _value, _data);
        return true;
    }

    /**
     * @dev Transfer tokens from one address to another.
     * @param _from address The address from which you want to send tokens.
     * @param _to address The address to which you want to transfer tokens.
     * @param _value uint256 the amount of tokens to be transferred
     * @param _data bytes Transaction metadata.
     */
    function transferFrom(address _from, address _to, uint _value, bytes memory _data)
        public
        unfreezed(_to)
        unfreezed(msg.sender)
        unfreezed(_from)
        noEmergencyFreeze()
        returns (bool success)
    {
        require(_value <= _allowed[_from][msg.sender], "Insufficient allowance");
        _allowed[_from][msg.sender] = _allowed[_from][msg.sender].sub(_value);
        _transfer223(_from, _to, _value, _data);
        return true;
    }


    /**
     * @dev Function that burns an amount of the token of a sender.
     * reduces total and max supply.
     * only owner is allowed to burn tokens.
     *
     * @param _value The amount that will be burn.
     */
    function burn(uint256 _value)
        public
        unfreezed(msg.sender)
        noEmergencyFreeze()
        onlyOwner
        returns (bool success)
    {
        require(balances[msg.sender] >= _value, "Insufficient balance");
        balances[msg.sender] = balances[msg.sender].sub(_value);
        totalSupply = totalSupply.sub(_value);
        bytes memory _data;
        emit Transfer(msg.sender, address(0), _value, _data);
        emit Transfer(msg.sender, address(0), _value);
        return true;
    }


    /**
     * @dev Gets the balance of the specified address.
     * @param _tokenOwner The address to query the balance of.
     * @return A uint256 representing the amount owned by the passed address.
     */
    function balanceOf(address _tokenOwner) public view returns (uint) {
        return balances[_tokenOwner];
    }

    /**
     * @dev Function to check the amount of tokens that an owner allowed to a spender.
     * @param _tokenOwner 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 _tokenOwner, address _spender) public view returns (uint) {
        return _allowed[_tokenOwner][_spender];
    }

    /**
     * @dev Function to withdraw any accidently sent ERC20 token.
     * the value should be pre-multiplied by decimals of token wthdrawan
     * @param _tokenAddress address The contract address of ERC20 token.
     * @param _value uint amount to tokens to be withdrawn
     */
    function transferAnyERC20Token(address _tokenAddress, uint _value)
        public
        onlyOwner
    {
        ERC223Interface(_tokenAddress).transfer(owner, _value);
    }

    /**
     * @dev Transfer the specified amount of tokens to the specified address.
     *      Invokes the `tokenFallback` function if the recipient is a contract.
     *      The token transfer fails if the recipient is a contract
     *      but does not implement the `tokenFallback` function
     *      or the fallback function to receive funds.
     *
     * @param _from Sender address.
     * @param _to    Receiver address.
     * @param _value Amount of tokens that will be transferred.
     * @param _data  Transaction metadata.
     */
    function _transfer223(address _from, address _to, uint _value, bytes memory _data)
        private
    {
        require(_to != address(0), "Zero address not allowed");
        require(balances[_from] >= _value, "Insufficient balance");
        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(_value);
        if (isContract(_to)) {
            ERC223ReceivingContract receiver = ERC223ReceivingContract(_to);
            receiver.tokenFallback(msg.sender, _value, _data);
        }
        emit Transfer(_from, _to, _value, _data); // ERC223-compat version
        emit Transfer(_from, _to, _value); // ERC20-compat version
    }

}

/**
 * @title CNEX Token
 * @author Prashant Prabhakar Singh
 * @dev CNEX implementation of ERC-223 standard token
 */
contract CNEXToken is StandardToken {

    uint public icoFunds;
    uint public consumerProtectionFund;
    uint public ecoSystemDevelopmentAndOperationFund;
    uint public teamAndFounderFund;

    bool public consumerProtectionFundAllocated = false;
    bool public ecoSystemDevelopmentAndOperationFundAllocated = false;
    bool public teamAndFounderFundAllocated = false;

    uint public tokenDeploymentTime;

    constructor() public{
        icoFunds = 200000000 * (10 ** decimals); // 200 million
        consumerProtectionFund = 60000000 * (10 ** decimals); // 60 million
        ecoSystemDevelopmentAndOperationFund = 100000000 * (10 ** decimals); // 100 million
        teamAndFounderFund = 40000000 * (10 ** decimals); // 40 million
        tokenDeploymentTime = now;
        _mint(msg.sender, icoFunds);
    }

    /**
     * @dev Function to mint tokens allocated for consumer
     * protection to owner address. Owner then sends them
     * to responsible parties
     */
    function allocateConsumerProtectionFund()
        public
        onlyOwner
    {
        require(!consumerProtectionFundAllocated, "Already allocated");
        consumerProtectionFundAllocated = true;
        _mint(owner, consumerProtectionFund);
    }

    /**
     * @dev Function to mint tokens allocated for Ecosystem development
     * and operations to owner address. Owner then sends them
     * to responsible parties
     */
    function allocateEcoSystemDevelopmentAndOperationFund()
        public
        onlyOwner
    {
        require(!ecoSystemDevelopmentAndOperationFundAllocated, "Already allocated");
        ecoSystemDevelopmentAndOperationFundAllocated = true;
        _mint(owner, ecoSystemDevelopmentAndOperationFund);
    }

    /**
     * @dev Function to mint tokens allocated for team
     * and founders to owner address. Owner then sends them
     * to responsible parties.
     * Tokens are locked for 1 year and can be claimed after 1 year
     * from date of deployment
     */
    function allocateTeamAndFounderFund()
        public
        onlyOwner
    {
        require(!teamAndFounderFundAllocated, "Already allocated");
        require(now > tokenDeploymentTime + 365 days, "Vesting period not over yet");
        teamAndFounderFundAllocated = true;
        _mint(owner, teamAndFounderFund);
    }

    /**
     * @dev Function to mint tokens
     * @param _to The address that will receive the minted tokens.
     * @param _value The amount of tokens to mint.
     */
    function _mint(address _to, uint _value)
        private
        onlyOwner
    {
        require(totalSupply.add(_value) <= maxSupply, "Exceeds max supply");
        balances[_to] = balances[_to].add(_value);
        totalSupply = totalSupply.add(_value);
        bytes memory _data;
        emit Transfer(address(0), _to, _value, _data);
        emit Transfer(address(0), _to, _value);

    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"allocateEcoSystemDevelopmentAndOperationFund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ecoSystemDevelopmentAndOperationFund","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ecoSystemDevelopmentAndOperationFundAllocated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"allocateTeamAndFounderFund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"teamAndFounderFundAllocated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bool","name":"_freeze","type":"bool"}],"name":"emergencyFreezeAllAccounts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"consumerProtectionFund","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_code","type":"uint256"}],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenDeploymentTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"teamAndFounderFund","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"consumerProtectionFundAllocated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"allocateConsumerProtectionFund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"frozen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_tokenOwner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"bool","name":"_freeze","type":"bool"}],"name":"freezeAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"icoFunds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"emergencyFreeze","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"tokenOwner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"bool","name":"freezeStatus","type":"bool"}],"name":"LogFreezed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"emergencyFreezeStatus","type":"bool"}],"name":"LogEmergencyFreezed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"LogOwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

60806040526000600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff0219169083151502179055506000600e60026101000a81548160ff0219169083151502179055503480156200006257600080fd5b5033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fdb6d05f3295cede580affa301a1eb5297528f3b3f6a56b075887ce6f61c45f2160405160405180910390a36040518060400160405280600a81526020017f434e45584348414e474500000000000000000000000000000000000000000000815250600390805190602001906200016e929190620005b6565b506040518060400160405280600481526020017f434e45580000000000000000000000000000000000000000000000000000000081525060049080519060200190620001bc929190620005b6565b506008600581905550600554600a0a6317d7840002600781905550600554600a0a630bebc20002600a81905550600554600a0a630393870002600b81905550600554600a0a6305f5e10002600c81905550600554600a0a6302625a0002600d8190555042600f819055506200023a33600a546200024060201b60201c565b62000665565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161462000304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4f6e6c79206f776e657220697320616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b60075462000323826006546200059960201b6200464b1790919060201c565b111562000398576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f45786365656473206d617820737570706c79000000000000000000000000000081525060200191505060405180910390fd5b620003f181600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200059960201b6200464b1790919060201c565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000450816006546200059960201b6200464b1790919060201c565b60068190555060608273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1684846040518083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015620004f2578082015181840152602081019050620004d5565b50505050905090810190601f168015620005205780820380516001836020036101000a031916815260200191505b50935050505060405180910390a38273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3505050565b600080828401905083811015620005ac57fe5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620005f957805160ff19168380011785556200062a565b828001600101855582156200062a579182015b82811115620006295782518255916020019190600101906200060c565b5b5090506200063991906200063d565b5090565b6200066291905b808211156200065e57600081600090555060010162000644565b5090565b90565b6146af80620006756000396000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80638f76abcb1161011a578063d0516650116100ad578063dd62ed3e1161007c578063dd62ed3e14610a8f578063e724529c14610b07578063f2cc0bc314610b57578063f2fde38b14610b75578063f3d4b94214610bb957610206565b8063d051665014610961578063d5abeb01146109bd578063d73dd623146109db578063dc39d06d14610a4157610206565b8063ab67aa58116100e9578063ab67aa581461071b578063be45fd6214610838578063be9f90dd14610935578063c190adb11461095757610206565b80638f76abcb146105f657806395d89b4114610614578063a9059cbb14610697578063a950b9b2146106fd57610206565b80635cc73faa1161019d57806370a082311161016c57806370a08231146104d85780637898278f1461053057806379f0755c146105605780637d654c7f1461057e5780638da5cb5b146105ac57610206565b80635cc73faa14610424578063600a35d414610446578063661884631461045057806368bf427b146104b657610206565b80632a6f344b116101d95780632a6f344b14610398578063313ce567146103a257806342966c68146103c057806343b459321461040657610206565b806306fdde031461020b578063095ea7b31461028e57806318160ddd146102f457806323b872dd14610312575b600080fd5b610213610bdb565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610253578082015181840152602081019050610238565b50505050905090810190601f1680156102805780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102da600480360360408110156102a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c79565b604051808215151515815260200191505060405180910390f35b6102fc611111565b6040518082815260200191505060405180910390f35b61037e6004803603606081101561032857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611117565b604051808215151515815260200191505060405180910390f35b6103a06115fd565b005b6103aa61178e565b6040518082815260200191505060405180910390f35b6103ec600480360360208110156103d657600080fd5b8101908080359060200190929190505050611794565b604051808215151515815260200191505060405180910390f35b61040e611c48565b6040518082815260200191505060405180910390f35b61042c611c4e565b604051808215151515815260200191505060405180910390f35b61044e611c61565b005b61049c6004803603604081101561046657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e6f565b604051808215151515815260200191505060405180910390f35b6104be6123aa565b604051808215151515815260200191505060405180910390f35b61051a600480360360208110156104ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123bd565b6040518082815260200191505060405180910390f35b61055e6004803603602081101561054657600080fd5b81019080803515159060200190929190505050612406565b005b610568612521565b6040518082815260200191505060405180910390f35b6105aa6004803603602081101561059457600080fd5b8101908080359060200190929190505050612527565b005b6105b4612725565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105fe61274b565b6040518082815260200191505060405180910390f35b61061c612751565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561065c578082015181840152602081019050610641565b50505050905090810190601f1680156106895780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106e3600480360360408110156106ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506127ef565b604051808215151515815260200191505060405180910390f35b610705612a11565b6040518082815260200191505060405180910390f35b61081e6004803603608081101561073157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561079857600080fd5b8201836020820111156107aa57600080fd5b803590602001918460018302840111640100000000831117156107cc57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612a17565b604051808215151515815260200191505060405180910390f35b61091b6004803603606081101561084e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561089557600080fd5b8201836020820111156108a757600080fd5b803590602001918460018302840111640100000000831117156108c957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612efb565b604051808215151515815260200191505060405180910390f35b61093d61311b565b604051808215151515815260200191505060405180910390f35b61095f61312e565b005b6109a36004803603602081101561097757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506132bf565b604051808215151515815260200191505060405180910390f35b6109c56132df565b6040518082815260200191505060405180910390f35b610a27600480360360408110156109f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506132e5565b604051808215151515815260200191505060405180910390f35b610a8d60048036036040811015610a5757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061378a565b005b610af160048036036040811015610aa557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613936565b6040518082815260200191505060405180910390f35b610b5560048036036040811015610b1d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506139bd565b005b610b5f613bd0565b6040518082815260200191505060405180910390f35b610bb760048036036020811015610b8b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613bd6565b005b610bc1613e02565b604051808215151515815260200191505060405180910390f35b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c715780601f10610c4657610100808354040283529160200191610c71565b820191906000526020600020905b815481529060010190602001808311610c5457829003601f168201915b505050505081565b600082600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610d3c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610dfd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff1615610e80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f6e747261637420697320656d657267656e637920667265657a656400000081525060200191505060405180910390fd5b6000841480610f0b57506000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610f7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f417070726f76616c206e6565647320746f20626520302066697273740000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561101f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616e206e6f7420617070726f766520746f2073656c6600000000000000000081525060200191505060405180910390fd5b83600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925866040518082815260200191505060405180910390a360019250505092915050565b60065481565b600082600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156111da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561129b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b85600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561135c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff16156113df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f6e747261637420697320656d657267656e637920667265657a656400000081525060200191505060405180910390fd5b600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548511156114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f496e73756666696369656e7420616c6c6f77616e63650000000000000000000081525060200191505060405180910390fd5b61156085600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e1590919063ffffffff16565b600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060606115ee88888884613e2c565b60019450505050509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4f6e6c79206f776e657220697320616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b600e60019054906101000a900460ff1615611743576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f416c726561647920616c6c6f636174656400000000000000000000000000000081525060200191505060405180910390fd5b6001600e60016101000a81548160ff02191690831515021790555061178c600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c5461430c565b565b60055481565b600033600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611857576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff16156118da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f6e747261637420697320656d657267656e637920667265657a656400000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461199d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4f6e6c79206f776e657220697320616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b82600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611a52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f496e73756666696369656e742062616c616e636500000000000000000000000081525060200191505060405180910390fd5b611aa483600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e1590919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611afc83600654613e1590919063ffffffff16565b6006819055506060600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1686846040518083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611b9c578082015181840152602081019050611b81565b50505050905090810190601f168015611bc95780820380516001836020036101000a031916815260200191505b50935050505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3600192505050919050565b600c5481565b600e60019054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d24576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4f6e6c79206f776e657220697320616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b600e60029054906101000a900460ff1615611da7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f416c726561647920616c6c6f636174656400000000000000000000000000000081525060200191505060405180910390fd5b6301e13380600f54014211611e24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f56657374696e6720706572696f64206e6f74206f76657220796574000000000081525060200191505060405180910390fd5b6001600e60026101000a81548160ff021916908315150217905550611e6d600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d5461430c565b565b600082600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f32576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611ff3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff1615612076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f6e747261637420697320656d657267656e637920667265657a656400000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415612118576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616e206e6f7420617070726f766520746f2073656c6600000000000000000081525060200191505060405180910390fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080851115612228576000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122bc565b61223b8582613e1590919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001935050505092915050565b600e60029054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146124c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4f6e6c79206f776e657220697320616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b80600160146101000a81548160ff0219169083151502179055507f580548506bb4255fa3aac48e0b760d26bf3b05333e738393bbca5dfb440054c881604051808215151515815260200191505060405180910390a150565b600b5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146125ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4f6e6c79206f776e657220697320616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b63499602d28114612663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f496e76616c696420636f6465000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fdb6d05f3295cede580affa301a1eb5297528f3b3f6a56b075887ce6f61c45f2160405160405180910390a350565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127e75780601f106127bc576101008083540402835291602001916127e7565b820191906000526020600020905b8154815290600101906020018083116127ca57829003601f168201915b505050505081565b600082600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156128b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612973576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff16156129f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f6e747261637420697320656d657267656e637920667265657a656400000081525060200191505060405180910390fd5b6060612a0433878784613e2c565b6001935050505092915050565b600d5481565b600083600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612ada576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612b9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b86600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612c5c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff1615612cdf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f6e747261637420697320656d657267656e637920667265657a656400000081525060200191505060405180910390fd5b600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054861115612dd1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f496e73756666696369656e7420616c6c6f77616e63650000000000000000000081525060200191505060405180910390fd5b612e6086600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e1590919063ffffffff16565b600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612eec88888888613e2c565b60019350505050949350505050565b600083600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612fbe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561307f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff1615613102576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f6e747261637420697320656d657267656e637920667265657a656400000081525060200191505060405180910390fd5b61310e33878787613e2c565b6001925050509392505050565b600e60009054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146131f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4f6e6c79206f776e657220697320616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b600e60009054906101000a900460ff1615613274576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f416c726561647920616c6c6f636174656400000000000000000000000000000081525060200191505060405180910390fd5b6001600e60006101000a81548160ff0219169083151502179055506132bd600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b5461430c565b565b60026020528060005260406000206000915054906101000a900460ff1681565b60075481565b600082600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156133a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613469576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff16156134ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f6e747261637420697320656d657267656e637920667265657a656400000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561358e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616e206e6f7420617070726f766520746f2073656c6600000000000000000081525060200191505060405180910390fd5b61361d84600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461464b90919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a360019250505092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461384d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4f6e6c79206f776e657220697320616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156138f657600080fd5b505af115801561390a573d6000803e3d6000fd5b505050506040513d602081101561392057600080fd5b8101908080519060200190929190505050505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613a80576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4f6e6c79206f776e657220697320616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613b23576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f5a65726f2061646472657373206e6f7420616c6c6f776564000000000000000081525060200191505060405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fdad2539b39cdbb96eb5dac852bf880a471c22b0e9d698aa1d48eae8d014ea8f482604051808215151515815260200191505060405180910390a25050565b600a5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613c99576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4f6e6c79206f776e657220697320616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613d3c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f5a65726f2061646472657373206e6f7420616c6c6f776564000000000000000081525060200191505060405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fdb6d05f3295cede580affa301a1eb5297528f3b3f6a56b075887ce6f61c45f2160405160405180910390a35050565b600160149054906101000a900460ff1681565b600082821115613e2157fe5b818303905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613ecf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f5a65726f2061646472657373206e6f7420616c6c6f776564000000000000000081525060200191505060405180910390fd5b81600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613f84576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f496e73756666696369656e742062616c616e636500000000000000000000000081525060200191505060405180910390fd5b613fd682600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e1590919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061406b82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461464b90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506140b783614667565b156141cf5760008390508073ffffffffffffffffffffffffffffffffffffffff1663c0ee0b8a3385856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561416757808201518184015260208101905061414c565b50505050905090810190601f1680156141945780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156141b557600080fd5b505af11580156141c9573d6000803e3d6000fd5b50505050505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1684846040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561426657808201518184015260208101905061424b565b50505050905090810190601f1680156142935780820380516001836020036101000a031916815260200191505b50935050505060405180910390a38273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146143cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4f6e6c79206f776e657220697320616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b6007546143e78260065461464b90919063ffffffff16565b111561445b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f45786365656473206d617820737570706c79000000000000000000000000000081525060200191505060405180910390fd5b6144ad81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461464b90919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506145058160065461464b90919063ffffffff16565b60068190555060608273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1684846040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156145a557808201518184015260208101905061458a565b50505050905090810190601f1680156145d25780820380516001836020036101000a031916815260200191505b50935050505060405180910390a38273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3505050565b60008082840190508381101561465d57fe5b8091505092915050565b600080823b90506000811191505091905056fea265627a7a72315820ecd383786a8c992fa5da7366459a2fb5c505e748f3700398df0499bff5d42b7a64736f6c634300050b0032

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102065760003560e01c80638f76abcb1161011a578063d0516650116100ad578063dd62ed3e1161007c578063dd62ed3e14610a8f578063e724529c14610b07578063f2cc0bc314610b57578063f2fde38b14610b75578063f3d4b94214610bb957610206565b8063d051665014610961578063d5abeb01146109bd578063d73dd623146109db578063dc39d06d14610a4157610206565b8063ab67aa58116100e9578063ab67aa581461071b578063be45fd6214610838578063be9f90dd14610935578063c190adb11461095757610206565b80638f76abcb146105f657806395d89b4114610614578063a9059cbb14610697578063a950b9b2146106fd57610206565b80635cc73faa1161019d57806370a082311161016c57806370a08231146104d85780637898278f1461053057806379f0755c146105605780637d654c7f1461057e5780638da5cb5b146105ac57610206565b80635cc73faa14610424578063600a35d414610446578063661884631461045057806368bf427b146104b657610206565b80632a6f344b116101d95780632a6f344b14610398578063313ce567146103a257806342966c68146103c057806343b459321461040657610206565b806306fdde031461020b578063095ea7b31461028e57806318160ddd146102f457806323b872dd14610312575b600080fd5b610213610bdb565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610253578082015181840152602081019050610238565b50505050905090810190601f1680156102805780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102da600480360360408110156102a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c79565b604051808215151515815260200191505060405180910390f35b6102fc611111565b6040518082815260200191505060405180910390f35b61037e6004803603606081101561032857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611117565b604051808215151515815260200191505060405180910390f35b6103a06115fd565b005b6103aa61178e565b6040518082815260200191505060405180910390f35b6103ec600480360360208110156103d657600080fd5b8101908080359060200190929190505050611794565b604051808215151515815260200191505060405180910390f35b61040e611c48565b6040518082815260200191505060405180910390f35b61042c611c4e565b604051808215151515815260200191505060405180910390f35b61044e611c61565b005b61049c6004803603604081101561046657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e6f565b604051808215151515815260200191505060405180910390f35b6104be6123aa565b604051808215151515815260200191505060405180910390f35b61051a600480360360208110156104ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123bd565b6040518082815260200191505060405180910390f35b61055e6004803603602081101561054657600080fd5b81019080803515159060200190929190505050612406565b005b610568612521565b6040518082815260200191505060405180910390f35b6105aa6004803603602081101561059457600080fd5b8101908080359060200190929190505050612527565b005b6105b4612725565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105fe61274b565b6040518082815260200191505060405180910390f35b61061c612751565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561065c578082015181840152602081019050610641565b50505050905090810190601f1680156106895780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106e3600480360360408110156106ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506127ef565b604051808215151515815260200191505060405180910390f35b610705612a11565b6040518082815260200191505060405180910390f35b61081e6004803603608081101561073157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561079857600080fd5b8201836020820111156107aa57600080fd5b803590602001918460018302840111640100000000831117156107cc57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612a17565b604051808215151515815260200191505060405180910390f35b61091b6004803603606081101561084e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561089557600080fd5b8201836020820111156108a757600080fd5b803590602001918460018302840111640100000000831117156108c957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612efb565b604051808215151515815260200191505060405180910390f35b61093d61311b565b604051808215151515815260200191505060405180910390f35b61095f61312e565b005b6109a36004803603602081101561097757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506132bf565b604051808215151515815260200191505060405180910390f35b6109c56132df565b6040518082815260200191505060405180910390f35b610a27600480360360408110156109f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506132e5565b604051808215151515815260200191505060405180910390f35b610a8d60048036036040811015610a5757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061378a565b005b610af160048036036040811015610aa557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613936565b6040518082815260200191505060405180910390f35b610b5560048036036040811015610b1d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506139bd565b005b610b5f613bd0565b6040518082815260200191505060405180910390f35b610bb760048036036020811015610b8b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613bd6565b005b610bc1613e02565b604051808215151515815260200191505060405180910390f35b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c715780601f10610c4657610100808354040283529160200191610c71565b820191906000526020600020905b815481529060010190602001808311610c5457829003601f168201915b505050505081565b600082600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610d3c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610dfd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff1615610e80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f6e747261637420697320656d657267656e637920667265657a656400000081525060200191505060405180910390fd5b6000841480610f0b57506000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610f7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f417070726f76616c206e6565647320746f20626520302066697273740000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561101f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616e206e6f7420617070726f766520746f2073656c6600000000000000000081525060200191505060405180910390fd5b83600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925866040518082815260200191505060405180910390a360019250505092915050565b60065481565b600082600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156111da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561129b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b85600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561135c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff16156113df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f6e747261637420697320656d657267656e637920667265657a656400000081525060200191505060405180910390fd5b600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548511156114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f496e73756666696369656e7420616c6c6f77616e63650000000000000000000081525060200191505060405180910390fd5b61156085600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e1590919063ffffffff16565b600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060606115ee88888884613e2c565b60019450505050509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4f6e6c79206f776e657220697320616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b600e60019054906101000a900460ff1615611743576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f416c726561647920616c6c6f636174656400000000000000000000000000000081525060200191505060405180910390fd5b6001600e60016101000a81548160ff02191690831515021790555061178c600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c5461430c565b565b60055481565b600033600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611857576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff16156118da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f6e747261637420697320656d657267656e637920667265657a656400000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461199d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4f6e6c79206f776e657220697320616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b82600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611a52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f496e73756666696369656e742062616c616e636500000000000000000000000081525060200191505060405180910390fd5b611aa483600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e1590919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611afc83600654613e1590919063ffffffff16565b6006819055506060600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1686846040518083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611b9c578082015181840152602081019050611b81565b50505050905090810190601f168015611bc95780820380516001836020036101000a031916815260200191505b50935050505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3600192505050919050565b600c5481565b600e60019054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d24576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4f6e6c79206f776e657220697320616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b600e60029054906101000a900460ff1615611da7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f416c726561647920616c6c6f636174656400000000000000000000000000000081525060200191505060405180910390fd5b6301e13380600f54014211611e24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f56657374696e6720706572696f64206e6f74206f76657220796574000000000081525060200191505060405180910390fd5b6001600e60026101000a81548160ff021916908315150217905550611e6d600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d5461430c565b565b600082600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f32576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611ff3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff1615612076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f6e747261637420697320656d657267656e637920667265657a656400000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415612118576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616e206e6f7420617070726f766520746f2073656c6600000000000000000081525060200191505060405180910390fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080851115612228576000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122bc565b61223b8582613e1590919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001935050505092915050565b600e60029054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146124c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4f6e6c79206f776e657220697320616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b80600160146101000a81548160ff0219169083151502179055507f580548506bb4255fa3aac48e0b760d26bf3b05333e738393bbca5dfb440054c881604051808215151515815260200191505060405180910390a150565b600b5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146125ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4f6e6c79206f776e657220697320616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b63499602d28114612663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f496e76616c696420636f6465000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fdb6d05f3295cede580affa301a1eb5297528f3b3f6a56b075887ce6f61c45f2160405160405180910390a350565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127e75780601f106127bc576101008083540402835291602001916127e7565b820191906000526020600020905b8154815290600101906020018083116127ca57829003601f168201915b505050505081565b600082600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156128b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612973576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff16156129f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f6e747261637420697320656d657267656e637920667265657a656400000081525060200191505060405180910390fd5b6060612a0433878784613e2c565b6001935050505092915050565b600d5481565b600083600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612ada576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612b9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b86600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612c5c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff1615612cdf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f6e747261637420697320656d657267656e637920667265657a656400000081525060200191505060405180910390fd5b600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054861115612dd1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f496e73756666696369656e7420616c6c6f77616e63650000000000000000000081525060200191505060405180910390fd5b612e6086600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e1590919063ffffffff16565b600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612eec88888888613e2c565b60019350505050949350505050565b600083600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612fbe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561307f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff1615613102576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f6e747261637420697320656d657267656e637920667265657a656400000081525060200191505060405180910390fd5b61310e33878787613e2c565b6001925050509392505050565b600e60009054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146131f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4f6e6c79206f776e657220697320616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b600e60009054906101000a900460ff1615613274576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f416c726561647920616c6c6f636174656400000000000000000000000000000081525060200191505060405180910390fd5b6001600e60006101000a81548160ff0219169083151502179055506132bd600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b5461430c565b565b60026020528060005260406000206000915054906101000a900460ff1681565b60075481565b600082600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156133a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613469576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4163636f756e7420697320667265657a6564000000000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff16156134ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f6e747261637420697320656d657267656e637920667265657a656400000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561358e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616e206e6f7420617070726f766520746f2073656c6600000000000000000081525060200191505060405180910390fd5b61361d84600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461464b90919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a360019250505092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461384d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4f6e6c79206f776e657220697320616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156138f657600080fd5b505af115801561390a573d6000803e3d6000fd5b505050506040513d602081101561392057600080fd5b8101908080519060200190929190505050505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613a80576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4f6e6c79206f776e657220697320616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613b23576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f5a65726f2061646472657373206e6f7420616c6c6f776564000000000000000081525060200191505060405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fdad2539b39cdbb96eb5dac852bf880a471c22b0e9d698aa1d48eae8d014ea8f482604051808215151515815260200191505060405180910390a25050565b600a5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613c99576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4f6e6c79206f776e657220697320616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613d3c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f5a65726f2061646472657373206e6f7420616c6c6f776564000000000000000081525060200191505060405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fdb6d05f3295cede580affa301a1eb5297528f3b3f6a56b075887ce6f61c45f2160405160405180910390a35050565b600160149054906101000a900460ff1681565b600082821115613e2157fe5b818303905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613ecf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f5a65726f2061646472657373206e6f7420616c6c6f776564000000000000000081525060200191505060405180910390fd5b81600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613f84576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f496e73756666696369656e742062616c616e636500000000000000000000000081525060200191505060405180910390fd5b613fd682600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e1590919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061406b82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461464b90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506140b783614667565b156141cf5760008390508073ffffffffffffffffffffffffffffffffffffffff1663c0ee0b8a3385856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561416757808201518184015260208101905061414c565b50505050905090810190601f1680156141945780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156141b557600080fd5b505af11580156141c9573d6000803e3d6000fd5b50505050505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1684846040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561426657808201518184015260208101905061424b565b50505050905090810190601f1680156142935780820380516001836020036101000a031916815260200191505b50935050505060405180910390a38273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146143cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4f6e6c79206f776e657220697320616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b6007546143e78260065461464b90919063ffffffff16565b111561445b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f45786365656473206d617820737570706c79000000000000000000000000000081525060200191505060405180910390fd5b6144ad81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461464b90919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506145058160065461464b90919063ffffffff16565b60068190555060608273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1684846040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156145a557808201518184015260208101905061458a565b50505050905090810190601f1680156145d25780820380516001836020036101000a031916815260200191505b50935050505060405180910390a38273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3505050565b60008082840190508381101561465d57fe5b8091505092915050565b600080823b90506000811191505091905056fea265627a7a72315820ecd383786a8c992fa5da7366459a2fb5c505e748f3700398df0499bff5d42b7a64736f6c634300050b0032

Deployed Bytecode Sourcemap

15662:2984:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15662:2984:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5111:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5111:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8343:499;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8343:499:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5190:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10852:498;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10852:498:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17133:315;;;:::i;:::-;;5163:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12436:528;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12436:528:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15775:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15927:65;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17724:330;;;:::i;:::-;;9889:655;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9889:655:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15999:47;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13191:114;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13191:114:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4691:179;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4691:179:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;15734:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3053:225;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3053:225:0;;;;;;;;;;;;;;;;;:::i;:::-;;1969:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16055:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5136:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5136:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6175:295;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6175:295:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15830:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11706:489;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;11706:489:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;11706:489:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;11706:489:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;11706:489:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;11706:489:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7004:286;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7004:286:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7004:286:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7004:286:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;7004:286:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;7004:286:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15869:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16681:259;;;:::i;:::-;;3512:38;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3512:38:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5220:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9090:472;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9090:472:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14094:180;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14094:180:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13651:142;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13651:142:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4213:252;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4213:252:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15707:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2461:288;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2461:288:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;3478:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5111:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8343:499::-;8514:12;8426:8;3744:6;:16;3751:8;3744:16;;;;;;;;;;;;;;;;;;;;;;;;;3743:17;3735:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8455:10;3744:6;:16;3751:8;3744:16;;;;;;;;;;;;;;;;;;;;;;;;;3743:17;3735:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3860:15;;;;;;;;;;;3859:16;3851:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8563:1;8553:6;:11;8552:54;;;;8604:1;8570:8;:20;8579:10;8570:20;;;;;;;;;;;;;;;:30;8591:8;8570:30;;;;;;;;;;;;;;;;:35;8552:54;8544:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8670:10;8658:22;;:8;:22;;;;8650:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8752:6;8719:8;:20;8728:10;8719:20;;;;;;;;;;;;;;;:30;8740:8;8719:30;;;;;;;;;;;;;;;:39;;;;8795:8;8774:38;;8783:10;8774:38;;;8805:6;8774:38;;;;;;;;;;;;;;;;;;8830:4;8823:11;;3794:1;8343:499;;;;;:::o;5190:23::-;;;;:::o;10852:498::-;11059:12;10950:3;3744:6;:16;3751:8;3744:16;;;;;;;;;;;;;;;;;;;;;;;;;3743:17;3735:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10974:10;3744:6;:16;3751:8;3744:16;;;;;;;;;;;;;;;;;;;;;;;;;3743:17;3735:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11005:5;3744:6;:16;3751:8;3744:16;;;;;;;;;;;;;;;;;;;;;;;;;3743:17;3735:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3860:15;;;;;;;;;;;3859:16;3851:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11107:8;:15;11116:5;11107:15;;;;;;;;;;;;;;;:27;11123:10;11107:27;;;;;;;;;;;;;;;;11097:6;:37;;11089:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11202:39;11234:6;11202:8;:15;11211:5;11202:15;;;;;;;;;;;;;;;:27;11218:10;11202:27;;;;;;;;;;;;;;;;:31;;:39;;;;:::i;:::-;11172:8;:15;11181:5;11172:15;;;;;;;;;;;;;;;:27;11188:10;11172:27;;;;;;;;;;;;;;;:69;;;;11252:18;11281:39;11294:5;11301:3;11306:6;11314:5;11281:12;:39::i;:::-;11338:4;11331:11;;;3794:1;;10852:498;;;;;;:::o;17133:315::-;2264:5;;;;;;;;;;;2250:19;;:10;:19;;;2242:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17249:45;;;;;;;;;;;17248:46;17240:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17375:4;17327:45;;:52;;;;;;;;;;;;;;;;;;17390:50;17396:5;;;;;;;;;;;17403:36;;17390:5;:50::i;:::-;17133:315::o;5163:20::-;;;;:::o;12436:528::-;12579:12;12501:10;3744:6;:16;3751:8;3744:16;;;;;;;;;;;;;;;;;;;;;;;;;3743:17;3735:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3860:15;;;;;;;;;;;3859:16;3851:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2264:5;;;;;;;;;;;2250:19;;:10;:19;;;2242:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12641:6;12617:8;:20;12626:10;12617:20;;;;;;;;;;;;;;;;:30;;12609:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12706:32;12731:6;12706:8;:20;12715:10;12706:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12683:8;:20;12692:10;12683:20;;;;;;;;;;;;;;;:55;;;;12763:23;12779:6;12763:11;;:15;;:23;;;;:::i;:::-;12749:11;:37;;;;12797:18;12860:1;12831:47;;12840:10;12831:47;;;12864:6;12872:5;12831:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;12831:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12923:1;12894:40;;12903:10;12894:40;;;12927:6;12894:40;;;;;;;;;;;;;;;;;;12952:4;12945:11;;;12436:528;;;;:::o;15775:48::-;;;;:::o;15927:65::-;;;;;;;;;;;;;:::o;17724:330::-;2264:5;;;;;;;;;;;2250:19;;:10;:19;;;2242:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17822:27;;;;;;;;;;;17821:28;17813:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17918:8;17896:19;;:30;17890:3;:36;17882:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17999:4;17969:27;;:34;;;;;;;;;;;;;;;;;;18014:32;18020:5;;;;;;;;;;;18027:18;;18014:5;:32::i;:::-;17724:330::o;9889:655::-;10079:12;9991:8;3744:6;:16;3751:8;3744:16;;;;;;;;;;;;;;;;;;;;;;;;;3743:17;3735:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10020:10;3744:6;:16;3751:8;3744:16;;;;;;;;;;;;;;;;;;;;;;;;;3743:17;3735:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3860:15;;;;;;;;;;;3859:16;3851:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10129:10;10117:22;;:8;:22;;;;10109:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10178:17;10198:8;:20;10207:10;10198:20;;;;;;;;;;;;;;;:30;10219:8;10198:30;;;;;;;;;;;;;;;;10178:50;;10262:12;10243:16;:31;10239:198;;;10324:1;10291:8;:20;10300:10;10291:20;;;;;;;;;;;;;;;:30;10312:8;10291:30;;;;;;;;;;;;;;;:34;;;;10239:198;;;10391:34;10408:16;10391:12;:16;;:34;;;;:::i;:::-;10358:8;:20;10367:10;10358:20;;;;;;;;;;;;;;;:30;10379:8;10358:30;;;;;;;;;;;;;;;:67;;;;10239:198;10473:8;10452:62;;10461:10;10452:62;;;10483:8;:20;10492:10;10483:20;;;;;;;;;;;;;;;:30;10504:8;10483:30;;;;;;;;;;;;;;;;10452:62;;;;;;;;;;;;;;;;;;10532:4;10525:11;;;3794:1;9889:655;;;;;:::o;15999:47::-;;;;;;;;;;;;;:::o;13191:114::-;13252:4;13276:8;:21;13285:11;13276:21;;;;;;;;;;;;;;;;13269:28;;13191:114;;;:::o;4691:179::-;2264:5;;;;;;;;;;;2250:19;;:10;:19;;;2242:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4811:7;4793:15;;:25;;;;;;;;;;;;;;;;;;4834:28;4854:7;4834:28;;;;;;;;;;;;;;;;;;;;;;4691:179;:::o;15734:34::-;;;;:::o;3053:225::-;2264:5;;;;;;;;;;;2250:19;;:10;:19;;;2242:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3156:10;3147:5;:19;3139:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3210:1;3194:5;;:18;;;;;;;;;;;;;;;;;;3267:1;3228:42;;3252:5;;;;;;;;;;;3228:42;;;;;;;;;;;;3053:225;:::o;1969:20::-;;;;;;;;;;;;;:::o;16055:31::-;;;;:::o;5136:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6175:295::-;6337:12;6254:3;3744:6;:16;3751:8;3744:16;;;;;;;;;;;;;;;;;;;;;;;;;3743:17;3735:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6278:10;3744:6;:16;3751:8;3744:16;;;;;;;;;;;;;;;;;;;;;;;;;3743:17;3735:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3860:15;;;;;;;;;;;3859:16;3851:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6367:18;6396:44;6409:10;6421:3;6426:6;6434:5;6396:12;:44::i;:::-;6458:4;6451:11;;;3794:1;6175:295;;;;;:::o;15830:30::-;;;;:::o;11706:489::-;11933:12;11824:3;3744:6;:16;3751:8;3744:16;;;;;;;;;;;;;;;;;;;;;;;;;3743:17;3735:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11848:10;3744:6;:16;3751:8;3744:16;;;;;;;;;;;;;;;;;;;;;;;;;3743:17;3735:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11879:5;3744:6;:16;3751:8;3744:16;;;;;;;;;;;;;;;;;;;;;;;;;3743:17;3735:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3860:15;;;;;;;;;;;3859:16;3851:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11981:8;:15;11990:5;11981:15;;;;;;;;;;;;;;;:27;11997:10;11981:27;;;;;;;;;;;;;;;;11971:6;:37;;11963:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12076:39;12108:6;12076:8;:15;12085:5;12076:15;;;;;;;;;;;;;;;:27;12092:10;12076:27;;;;;;;;;;;;;;;;:31;;:39;;;;:::i;:::-;12046:8;:15;12055:5;12046:15;;;;;;;;;;;;;;;:27;12062:10;12046:27;;;;;;;;;;;;;;;:69;;;;12126:39;12139:5;12146:3;12151:6;12159:5;12126:12;:39::i;:::-;12183:4;12176:11;;3794:1;;11706:489;;;;;;;:::o;7004:286::-;7186:12;7103:3;3744:6;:16;3751:8;3744:16;;;;;;;;;;;;;;;;;;;;;;;;;3743:17;3735:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7127:10;3744:6;:16;3751:8;3744:16;;;;;;;;;;;;;;;;;;;;;;;;;3743:17;3735:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3860:15;;;;;;;;;;;3859:16;3851:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7216:44;7229:10;7241:3;7246:6;7254:5;7216:12;:44::i;:::-;7278:4;7271:11;;3794:1;7004:286;;;;;;:::o;15869:51::-;;;;;;;;;;;;;:::o;16681:259::-;2264:5;;;;;;;;;;;2250:19;;:10;:19;;;2242:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16783:31;;;;;;;;;;;16782:32;16774:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16881:4;16847:31;;:38;;;;;;;;;;;;;;;;;;16896:36;16902:5;;;;;;;;;;;16909:22;;16896:5;:36::i;:::-;16681:259::o;3512:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;5220:21::-;;;;:::o;9090:472::-;9275:12;9187:8;3744:6;:16;3751:8;3744:16;;;;;;;;;;;;;;;;;;;;;;;;;3743:17;3735:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9216:10;3744:6;:16;3751:8;3744:16;;;;;;;;;;;;;;;;;;;;;;;;;3743:17;3735:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3860:15;;;;;;;;;;;3859:16;3851:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9325:10;9313:22;;:8;:22;;;;9305:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9407:47;9442:11;9407:8;:20;9416:10;9407:20;;;;;;;;;;;;;;;:30;9428:8;9407:30;;;;;;;;;;;;;;;;:34;;:47;;;;:::i;:::-;9374:8;:20;9383:10;9374:20;;;;;;;;;;;;;;;:30;9395:8;9374:30;;;;;;;;;;;;;;;:80;;;;9491:8;9470:62;;9479:10;9470:62;;;9501:8;:20;9510:10;9501:20;;;;;;;;;;;;;;;:30;9522:8;9501:30;;;;;;;;;;;;;;;;9470:62;;;;;;;;;;;;;;;;;;9550:4;9543:11;;3794:1;9090:472;;;;;:::o;14094:180::-;2264:5;;;;;;;;;;;2250:19;;:10;:19;;;2242:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14228:13;14212:39;;;14252:5;;;;;;;;;;;14259:6;14212:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14212:54:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14212:54:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14212:54:0;;;;;;;;;;;;;;;;;14094:180;;:::o;13651:142::-;13730:4;13754:8;:21;13763:11;13754:21;;;;;;;;;;;;;;;:31;13776:8;13754:31;;;;;;;;;;;;;;;;13747:38;;13651:142;;;;:::o;4213:252::-;2264:5;;;;;;;;;;;2250:19;;:10;:19;;;2242:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4346:1;4327:21;;:7;:21;;;;4319:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4406:7;4388:6;:15;4395:7;4388:15;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;4440:7;4429:28;;;4449:7;4429:28;;;;;;;;;;;;;;;;;;;;;;4213:252;;:::o;15707:20::-;;;;:::o;2461:288::-;2264:5;;;;;;;;;;;2250:19;;:10;:19;;;2242:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2587:1;2566:23;;:9;:23;;;;2558:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2629:16;2648:5;;;;;;;;;;;2629:24;;2672:9;2664:5;;:17;;;;;;;;;;;;;;;;;;2731:9;2697:44;;2721:8;2697:44;;;;;;;;;;;;2306:1;2461:288;:::o;3478:27::-;;;;;;;;;;;;;:::o;568:123::-;626:7;658:1;653;:6;;646:14;;;;682:1;678;:5;671:12;;568:123;;;;:::o;14845:684::-;14984:1;14969:17;;:3;:17;;;;14961:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15053:6;15034:8;:15;15043:5;15034:15;;;;;;;;;;;;;;;;:25;;15026:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15113:27;15133:6;15113:8;:15;15122:5;15113:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;15095:8;:15;15104:5;15095:15;;;;;;;;;;;;;;;:45;;;;15167:25;15185:6;15167:8;:13;15176:3;15167:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;15151:8;:13;15160:3;15151:13;;;;;;;;;;;;;;;:41;;;;15207:15;15218:3;15207:10;:15::i;:::-;15203:175;;;15239:32;15298:3;15239:63;;15317:8;:22;;;15340:10;15352:6;15360:5;15317:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;15317:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15317:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15317:49:0;;;;15203:175;;15409:3;15393:35;;15402:5;15393:35;;;15414:6;15422:5;15393:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;15393:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15485:3;15469:28;;15478:5;15469:28;;;15490:6;15469:28;;;;;;;;;;;;;;;;;;14845:684;;;;:::o;18237:404::-;2264:5;;;;;;;;;;;2250:19;;:10;:19;;;2242:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18365:9;;18338:23;18354:6;18338:11;;:15;;:23;;;;:::i;:::-;:36;;18330:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18424:25;18442:6;18424:8;:13;18433:3;18424:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;18408:8;:13;18417:3;18408:13;;;;;;;;;;;;;;;:41;;;;18474:23;18490:6;18474:11;;:15;;:23;;;;:::i;:::-;18460:11;:37;;;;18508:18;18563:3;18542:40;;18559:1;18542:40;;;18568:6;18576:5;18542:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;18542:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18619:3;18598:33;;18615:1;18598:33;;;18624:6;18598:33;;;;;;;;;;;;;;;;;;2306:1;18237:404;;:::o;703:149::-;761:7;783:9;799:1;795;:5;783:17;;823:1;818;:6;;811:14;;;;843:1;836:8;;;703:149;;;;:::o;7521:207::-;7606:4;7628:11;7683:5;7671:18;7661:28;;7718:1;7709:6;:10;7701:19;;;7521:207;;;:::o

Swarm Source

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