ETH Price: $2,492.54 (-0.77%)

Token

KCT (KCT)
 

Overview

Max Total Supply

129,999,000 KCT

Holders

31,421

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
bestmanbuka.eth
Balance
15 KCT

Value
$0.00
0x5a94ede83782823b0f87958159f7b1143f4b8e11
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
KCT

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-02-24
*/

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

pragma solidity ^0.4.25;

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

    event OwnershipTransferred(address previousOwner, address newOwner);

    /**
    * @dev The Ownable constructor sets the original `owner` of the contract.
    */
    constructor(address _owner) public {
        owner = _owner == address(0) ? msg.sender : _owner;
    }

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

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

    /**
    * @dev confirm ownership by a new owner
    */
    function confirmOwnership() public {
        require(msg.sender == newOwner);
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
        newOwner = 0x0;
    }
}

/**
 * @title IERC20Token - ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract IERC20Token {
    string public name;
    string public symbol;
    uint8 public decimals;
    uint256 public totalSupply;

    function balanceOf(address _owner) public view returns (uint256 balance);
    function transfer(address _to, uint256 _value)  public returns (bool success);
    function transferFrom(address _from, address _to, uint256 _value)  public returns (bool success);
    function approve(address _spender, uint256 _value)  public returns (bool success);
    function allowance(address _owner, address _spender)  public view returns (uint256 remaining);

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
contract SafeMath {
    /**
    * @dev constructor
    */
    constructor() public {
    }

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

    function safeDiv(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a / b;
        return c;
    }

    function safeSub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(a >= b);
        return a - b;
    }

    function safeAdd(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

/**
 * @title ERC20Token - ERC20 base implementation
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20Token is IERC20Token, SafeMath {
    mapping (address => uint256) public balances;
    mapping (address => mapping (address => uint256)) public allowed;

    function transfer(address _to, uint256 _value) public returns (bool) {
        require(_to != address(0));
        require(balances[msg.sender] >= _value);

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

    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
        require(_to != address(0));
        require(balances[_from] >= _value && allowed[_from][msg.sender] >= _value);

        balances[_to] = safeAdd(balances[_to], _value);
        balances[_from] = safeSub(balances[_from], _value);
        allowed[_from][msg.sender] = safeSub(allowed[_from][msg.sender], _value);
        emit Transfer(_from, _to, _value);
        return true;
    }

    function balanceOf(address _owner) public constant returns (uint256) {
        return balances[_owner];
    }

    function approve(address _spender, uint256 _value) public returns (bool) {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    function allowance(address _owner, address _spender) public constant returns (uint256) {
        return allowed[_owner][_spender];
    }
}

/**
 * @title ITokenEventListener
 * @dev Interface which should be implemented by token listener
 */
interface ITokenEventListener {
    /**
     * @dev Function is called after token transfer/transferFrom
     * @param _from Sender address
     * @param _to Receiver address
     * @param _value Amount of tokens
     */
    function onTokenTransfer(address _from, address _to, uint256 _value) external;
}

/**
 * @title ManagedToken
 * @dev ERC20 compatible token with issue and destroy facilities
 * @dev All transfers can be monitored by token event listener
 */
contract ManagedToken is ERC20Token, Ownable {
    uint256 public totalIssue;                                                  //Total token issue
    uint256 public totalSupply;
    bool public allowTransfers = false;                                         //Default not transfer
    bool public issuanceFinished = false;                                       //Finished issuance

    ITokenEventListener public eventListener;                                   //Listen events

    event AllowTransfersChanged(bool _newState);                                //Event:
    event Issue(address indexed _to, uint256 _value);                           //Event: Issue
    event Destroy(address indexed _from, uint256 _value);                       //Event:
    event IssuanceFinished(bool _issuanceFinished);                             //Event: Finished issuance

    //Modifier: Allow all transfer if not any condition
    modifier transfersAllowed() {
        require(allowTransfers);
        _;
    }

    //Modifier: Allow continue to issue
    modifier canIssue() {
        require(!issuanceFinished);
        _;
    }

    /**
     * @dev ManagedToken constructor
     * @param _listener Token listener(address can be 0x0)
     * @param _owner Owner of contract(address can be 0x0)
     */
    constructor(address _listener, address _owner) public Ownable(_owner) {
        if(_listener != address(0)) {
            eventListener = ITokenEventListener(_listener);
        }
    }

    /**
     * @dev Enable/disable token transfers. Can be called only by owners
     * @param _allowTransfers True - allow False - disable
     */
    function setAllowTransfers(bool _allowTransfers) external onlyOwner {
        allowTransfers = _allowTransfers;

        //Call event
        emit AllowTransfersChanged(_allowTransfers);
    }

    /**
     * @dev Set/remove token event listener
     * @param _listener Listener address (Contract must implement ITokenEventListener interface)
     */
    function setListener(address _listener) public onlyOwner {
        if(_listener != address(0)) {
            eventListener = ITokenEventListener(_listener);
        } else {
            delete eventListener;
        }
    }
    
    /**
     * @dev Destroy tokens on specified address (Called byallowance owner or token holder)
     * @dev Fund contract address must be in the list of owners to burn token during refund
     * @param _from Wallet address
     * @param _value Amount of tokens to destroy
     */
    function destroy(address _from, uint256 _value) external onlyOwner {
        require(balances[_from] >= _value, "Value of destroy is not greater balance of address wallet");

        totalIssue = safeSub(totalIssue, _value);
        totalSupply = safeSub(totalSupply, _value);
        balances[_from] = safeSub(balances[_from], _value);

        emit Transfer(_from, address(0), _value);
        //Call event
        emit Destroy(_from, _value);
    }

    function transfer(address _to, uint256 _value) public transfersAllowed returns (bool) {
        bool success = super.transfer(_to, _value);
        /* if(hasListener() && success) {
            eventListener.onTokenTransfer(msg.sender, _to, _value);
        } */
        return success;
    }

    function transferFrom(address _from, address _to, uint256 _value) public transfersAllowed returns (bool) {
        bool success = super.transferFrom(_from, _to, _value);

        //If has Listenser and transfer success
        /* if(hasListener() && success) {
            //Call event listener
            eventListener.onTokenTransfer(_from, _to, _value);
        } */
        return success;
    }

    function hasListener() internal view returns(bool) {
        if(eventListener == address(0)) {
            return false;
        }
        return true;
    }

    /**
     * @dev Issue tokens to specified wallet
     * @param _to Wallet address
     * @param _value Amount of tokens
     */
    function issue(address _to, uint256 _value) external onlyOwner canIssue {
        totalIssue = safeAdd(totalIssue, _value);
        require(totalSupply >= totalIssue, "Total issue is not greater total of supply");
        balances[_to] = safeAdd(balances[_to], _value);
        //Call event
        emit Issue(_to, _value);
        emit Transfer(address(0), _to, _value);
    }

    /**
     * @dev Increase the amount of tokens that an owner allowed to a spender.
     *
     * approve should be called when allowed[_spender] == 0. To increment
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From OpenZeppelin StandardToken.sol
     * @param _spender The address which will spend the funds.
     * @param _addedValue The amount of tokens to increase the allowance by.
     */
    function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
        allowed[msg.sender][_spender] = safeAdd(allowed[msg.sender][_spender], _addedValue);
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

    /**
     * @dev Decrease the amount of tokens that an owner allowed to a spender.
     *
     * approve should be called when allowed[_spender] == 0. To decrement
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From OpenZeppelin StandardToken.sol
     * @param _spender The address which will spend the funds.
     * @param _subtractedValue The amount of tokens to decrease the allowance by.
     */
    function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
        uint oldValue = allowed[msg.sender][_spender];
        if (_subtractedValue > oldValue) {
            allowed[msg.sender][_spender] = 0;
        } else {
            allowed[msg.sender][_spender] = safeSub(oldValue, _subtractedValue);
        }
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

    /**
     * @dev Finish token issuance
     * @return True if success
     */
    function setAllowIssuance(bool _issuanceFinished) public onlyOwner returns (bool) {
        issuanceFinished = _issuanceFinished;
        //Call event
        emit IssuanceFinished(_issuanceFinished);
        return true;
    }
}

/**
 * KCT Token Contract
 * @title Kct
 */
contract KCT is ManagedToken {
    /**
     * @dev Char constructor
     */
    constructor() public ManagedToken(msg.sender, msg.sender) {
        name = "KCT";
        symbol = "KCT";
        decimals = 18;
        totalIssue = 0;
        totalSupply = 130000000 ether;                                         //The maximum number of tokens is unchanged and totals will decrease after issue
    }

    function issue(address _to, uint256 _value) external onlyOwner canIssue {
        totalIssue = safeAdd(totalIssue, _value);
        require(totalSupply >= totalIssue, "Total issue is not greater total of supply");

        balances[_to] = safeAdd(balances[_to], _value);
        //Call event
        emit Issue(_to, _value);
        emit Transfer(address(0), _to, _value);
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"allowTransfers","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"issuanceFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalIssue","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"issue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"}],"name":"destroy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_listener","type":"address"}],"name":"setListener","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_issuanceFinished","type":"bool"}],"name":"setAllowIssuance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"eventListener","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"confirmOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_allowTransfers","type":"bool"}],"name":"setAllowTransfers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_newState","type":"bool"}],"name":"AllowTransfersChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Issue","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Destroy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_issuanceFinished","type":"bool"}],"name":"IssuanceFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"previousOwner","type":"address"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

60806040526000600a60006101000a81548160ff0219169083151502179055506000600a60016101000a81548160ff0219169083151502179055503480156200004757600080fd5b50333380600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161462000087578062000089565b335b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515620001435781600a60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50506040805190810160405280600381526020017f4b4354000000000000000000000000000000000000000000000000000000000081525060009080519060200190620001929291906200021d565b506040805190810160405280600381526020017f4b4354000000000000000000000000000000000000000000000000000000000081525060019080519060200190620001e09291906200021d565b506012600260006101000a81548160ff021916908360ff16021790555060006008819055506a6b88921f0410abc2000000600981905550620002cc565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200026057805160ff191683800117855562000291565b8280016001018555821562000291579182015b828111156200029057825182559160200191906001019062000273565b5b509050620002a09190620002a4565b5090565b620002c991905b80821115620002c5576000816000905550600101620002ab565b5090565b90565b61230f80620002dc6000396000f300608060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610159578063095ea7b3146101e957806318160ddd1461024e5780632185810b1461027957806323b872dd146102a857806327e235e31461032d578063313ce567146103845780634662299a146103b55780635c658165146103e4578063661884631461045b57806370a08231146104c057806371c10ec214610517578063867904b4146105425780638da5cb5b1461058f57806395d89b41146105e6578063a24835d114610676578063a9059cbb146106c3578063adcd905b14610728578063af168d681461076b578063cd9217f7146107b2578063d4ee1d9014610809578063d5d1e77014610860578063d73dd62314610877578063dd62ed3e146108dc578063df50afa414610953578063f2fde38b14610982575b600080fd5b34801561016557600080fd5b5061016e6109c5565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ae578082015181840152602081019050610193565b50505050905090810190601f1680156101db5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101f557600080fd5b50610234600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a63565b604051808215151515815260200191505060405180910390f35b34801561025a57600080fd5b50610263610b55565b6040518082815260200191505060405180910390f35b34801561028557600080fd5b5061028e610b5b565b604051808215151515815260200191505060405180910390f35b3480156102b457600080fd5b50610313600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b6e565b604051808215151515815260200191505060405180910390f35b34801561033957600080fd5b5061036e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ba4565b6040518082815260200191505060405180910390f35b34801561039057600080fd5b50610399610bbc565b604051808260ff1660ff16815260200191505060405180910390f35b3480156103c157600080fd5b506103ca610bcf565b604051808215151515815260200191505060405180910390f35b3480156103f057600080fd5b50610445600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610be2565b6040518082815260200191505060405180910390f35b34801561046757600080fd5b506104a6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c07565b604051808215151515815260200191505060405180910390f35b3480156104cc57600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e8f565b6040518082815260200191505060405180910390f35b34801561052357600080fd5b5061052c610ed8565b6040518082815260200191505060405180910390f35b34801561054e57600080fd5b5061058d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ede565b005b34801561059b57600080fd5b506105a461114e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105f257600080fd5b506105fb611174565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561063b578082015181840152602081019050610620565b50505050905090810190601f1680156106685780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561068257600080fd5b506106c1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611212565b005b3480156106cf57600080fd5b5061070e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114b3565b604051808215151515815260200191505060405180910390f35b34801561073457600080fd5b50610769600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114e7565b005b34801561077757600080fd5b506107986004803603810190808035151590602001909291905050506115e8565b604051808215151515815260200191505060405180910390f35b3480156107be57600080fd5b506107c76116a4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561081557600080fd5b5061081e6116ca565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561086c57600080fd5b506108756116f0565b005b34801561088357600080fd5b506108c2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118ce565b604051808215151515815260200191505060405180910390f35b3480156108e857600080fd5b5061093d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ac1565b6040518082815260200191505060405180910390f35b34801561095f57600080fd5b50610980600480360381019080803515159060200190929190505050611b48565b005b34801561098e57600080fd5b506109c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bfc565b005b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a5b5780601f10610a3057610100808354040283529160200191610a5b565b820191906000526020600020905b815481529060010190602001808311610a3e57829003601f168201915b505050505081565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60095481565b600a60009054906101000a900460ff1681565b600080600a60009054906101000a900460ff161515610b8c57600080fd5b610b97858585611cf9565b9050809150509392505050565b60046020528060005260406000206000915090505481565b600260009054906101000a900460ff1681565b600a60019054906101000a900460ff1681565b6005602052816000526040600020602052806000526040600020600091509150505481565b600080600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610d18576000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610da3565b610d22818461209a565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60085481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f3a57600080fd5b600a60019054906101000a900460ff16151515610f5657600080fd5b610f62600854826120b3565b6008819055506008546009541015151561100a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f546f74616c206973737565206973206e6f74206772656174657220746f74616c81526020017f206f6620737570706c790000000000000000000000000000000000000000000081525060400191505060405180910390fd5b611053600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826120b3565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c16826040518082815260200191505060405180910390a28173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561120a5780601f106111df5761010080835404028352916020019161120a565b820191906000526020600020905b8154815290600101906020018083116111ed57829003601f168201915b505050505081565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561126e57600080fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561134b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001807f56616c7565206f662064657374726f79206973206e6f7420677265617465722081526020017f62616c616e6365206f6620616464726573732077616c6c65740000000000000081525060400191505060405180910390fd5b6113576008548261209a565b6008819055506113696009548261209a565b6009819055506113b8600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261209a565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a38173ffffffffffffffffffffffffffffffffffffffff167f81325e2a6c442af9d36e4ee9697f38d5f4bf0837ade0f6c411c6a40af7c057ee826040518082815260200191505060405180910390a25050565b600080600a60009054906101000a900460ff1615156114d157600080fd5b6114db84846120d1565b90508091505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561154357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156115bf5780600a60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506115e5565b600a60026101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b50565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561164657600080fd5b81600a60016101000a81548160ff0219169083151502179055507f2515a8e0310ded3259b1224ebd87cf28100bceed5178f6320427b0f0ee070df882604051808215151515815260200191505060405180910390a160019050919050565b600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561174c57600080fd5b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611956600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836120b3565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ba457600080fd5b80600a60006101000a81548160ff0219169083151502179055507fbac956a1816a25b65e25a2449379c8409891b96663ce5f0b3475c196ec4bfa0f81604051808215151515815260200191505060405180910390a150565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c5857600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611cb557600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611d3657600080fd5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015611e01575081600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1515611e0c57600080fd5b611e55600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836120b3565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ee1600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361209a565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611faa600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361209a565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008183101515156120a857fe5b818303905092915050565b60008082840190508381101515156120c757fe5b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561210e57600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561215c57600080fd5b6121a5600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361209a565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612231600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836120b3565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a723058207d48184a07fc06148b6383ef7451ca39f1a98df0764c8c2b55b6d15fa6dc99e80029

Deployed Bytecode

0x608060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610159578063095ea7b3146101e957806318160ddd1461024e5780632185810b1461027957806323b872dd146102a857806327e235e31461032d578063313ce567146103845780634662299a146103b55780635c658165146103e4578063661884631461045b57806370a08231146104c057806371c10ec214610517578063867904b4146105425780638da5cb5b1461058f57806395d89b41146105e6578063a24835d114610676578063a9059cbb146106c3578063adcd905b14610728578063af168d681461076b578063cd9217f7146107b2578063d4ee1d9014610809578063d5d1e77014610860578063d73dd62314610877578063dd62ed3e146108dc578063df50afa414610953578063f2fde38b14610982575b600080fd5b34801561016557600080fd5b5061016e6109c5565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ae578082015181840152602081019050610193565b50505050905090810190601f1680156101db5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101f557600080fd5b50610234600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a63565b604051808215151515815260200191505060405180910390f35b34801561025a57600080fd5b50610263610b55565b6040518082815260200191505060405180910390f35b34801561028557600080fd5b5061028e610b5b565b604051808215151515815260200191505060405180910390f35b3480156102b457600080fd5b50610313600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b6e565b604051808215151515815260200191505060405180910390f35b34801561033957600080fd5b5061036e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ba4565b6040518082815260200191505060405180910390f35b34801561039057600080fd5b50610399610bbc565b604051808260ff1660ff16815260200191505060405180910390f35b3480156103c157600080fd5b506103ca610bcf565b604051808215151515815260200191505060405180910390f35b3480156103f057600080fd5b50610445600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610be2565b6040518082815260200191505060405180910390f35b34801561046757600080fd5b506104a6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c07565b604051808215151515815260200191505060405180910390f35b3480156104cc57600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e8f565b6040518082815260200191505060405180910390f35b34801561052357600080fd5b5061052c610ed8565b6040518082815260200191505060405180910390f35b34801561054e57600080fd5b5061058d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ede565b005b34801561059b57600080fd5b506105a461114e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105f257600080fd5b506105fb611174565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561063b578082015181840152602081019050610620565b50505050905090810190601f1680156106685780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561068257600080fd5b506106c1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611212565b005b3480156106cf57600080fd5b5061070e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114b3565b604051808215151515815260200191505060405180910390f35b34801561073457600080fd5b50610769600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114e7565b005b34801561077757600080fd5b506107986004803603810190808035151590602001909291905050506115e8565b604051808215151515815260200191505060405180910390f35b3480156107be57600080fd5b506107c76116a4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561081557600080fd5b5061081e6116ca565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561086c57600080fd5b506108756116f0565b005b34801561088357600080fd5b506108c2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118ce565b604051808215151515815260200191505060405180910390f35b3480156108e857600080fd5b5061093d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ac1565b6040518082815260200191505060405180910390f35b34801561095f57600080fd5b50610980600480360381019080803515159060200190929190505050611b48565b005b34801561098e57600080fd5b506109c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bfc565b005b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a5b5780601f10610a3057610100808354040283529160200191610a5b565b820191906000526020600020905b815481529060010190602001808311610a3e57829003601f168201915b505050505081565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60095481565b600a60009054906101000a900460ff1681565b600080600a60009054906101000a900460ff161515610b8c57600080fd5b610b97858585611cf9565b9050809150509392505050565b60046020528060005260406000206000915090505481565b600260009054906101000a900460ff1681565b600a60019054906101000a900460ff1681565b6005602052816000526040600020602052806000526040600020600091509150505481565b600080600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610d18576000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610da3565b610d22818461209a565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60085481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f3a57600080fd5b600a60019054906101000a900460ff16151515610f5657600080fd5b610f62600854826120b3565b6008819055506008546009541015151561100a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f546f74616c206973737565206973206e6f74206772656174657220746f74616c81526020017f206f6620737570706c790000000000000000000000000000000000000000000081525060400191505060405180910390fd5b611053600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826120b3565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c16826040518082815260200191505060405180910390a28173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561120a5780601f106111df5761010080835404028352916020019161120a565b820191906000526020600020905b8154815290600101906020018083116111ed57829003601f168201915b505050505081565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561126e57600080fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561134b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001807f56616c7565206f662064657374726f79206973206e6f7420677265617465722081526020017f62616c616e6365206f6620616464726573732077616c6c65740000000000000081525060400191505060405180910390fd5b6113576008548261209a565b6008819055506113696009548261209a565b6009819055506113b8600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261209a565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a38173ffffffffffffffffffffffffffffffffffffffff167f81325e2a6c442af9d36e4ee9697f38d5f4bf0837ade0f6c411c6a40af7c057ee826040518082815260200191505060405180910390a25050565b600080600a60009054906101000a900460ff1615156114d157600080fd5b6114db84846120d1565b90508091505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561154357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156115bf5780600a60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506115e5565b600a60026101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b50565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561164657600080fd5b81600a60016101000a81548160ff0219169083151502179055507f2515a8e0310ded3259b1224ebd87cf28100bceed5178f6320427b0f0ee070df882604051808215151515815260200191505060405180910390a160019050919050565b600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561174c57600080fd5b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611956600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836120b3565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ba457600080fd5b80600a60006101000a81548160ff0219169083151502179055507fbac956a1816a25b65e25a2449379c8409891b96663ce5f0b3475c196ec4bfa0f81604051808215151515815260200191505060405180910390a150565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c5857600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611cb557600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611d3657600080fd5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015611e01575081600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1515611e0c57600080fd5b611e55600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836120b3565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ee1600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361209a565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611faa600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361209a565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008183101515156120a857fe5b818303905092915050565b60008082840190508381101515156120c757fe5b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561210e57600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561215c57600080fd5b6121a5600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361209a565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612231600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836120b3565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a723058207d48184a07fc06148b6383ef7451ca39f1a98df0764c8c2b55b6d15fa6dc99e80029

Deployed Bytecode Sourcemap

11883:805:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1541:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1541:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1541:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4357:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4357:206:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5456:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5456:26:0;;;;;;;;;;;;;;;;;;;;;;;5489:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5489:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8650:409;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8650:409:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3246:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3246:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1593:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1593:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;5593:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5593:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3297:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3297:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11048:455;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11048:455:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4238:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4238:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5355:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5355:25:0;;;;;;;;;;;;;;;;;;;;;;;12299:386;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12299:386:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;318:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;318:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1566;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1566:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1566:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7875:461;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7875:461:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8344:298;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8344:298:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7345:229;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7345:229:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11596:232;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11596:232:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5696:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5696:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;345:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;345:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1209:190;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1209:190:0;;;;;;10258:285;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10258:285:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4571:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4571:138:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6979:197;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6979:197:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;999:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;999:140:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;1541:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4357:206::-;4424:4;4473:6;4441:7;:19;4449:10;4441:19;;;;;;;;;;;;;;;:29;4461:8;4441:29;;;;;;;;;;;;;;;:38;;;;4516:8;4495:38;;4504:10;4495:38;;;4526:6;4495:38;;;;;;;;;;;;;;;;;;4551:4;4544:11;;4357:206;;;;:::o;5456:26::-;;;;:::o;5489:34::-;;;;;;;;;;;;;:::o;8650:409::-;8749:4;8766:12;6285:14;;;;;;;;;;;6277:23;;;;;;;;8781:38;8800:5;8807:3;8812:6;8781:18;:38::i;:::-;8766:53;;9044:7;9037:14;;8650:409;;;;;;:::o;3246:44::-;;;;;;;;;;;;;;;;;:::o;1593:21::-;;;;;;;;;;;;;:::o;5593:36::-;;;;;;;;;;;;;:::o;3297:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11048:455::-;11131:4;11148:13;11164:7;:19;11172:10;11164:19;;;;;;;;;;;;;;;:29;11184:8;11164:29;;;;;;;;;;;;;;;;11148:45;;11227:8;11208:16;:27;11204:193;;;11284:1;11252:7;:19;11260:10;11252:19;;;;;;;;;;;;;;;:29;11272:8;11252:29;;;;;;;;;;;;;;;:33;;;;11204:193;;;11350:35;11358:8;11368:16;11350:7;:35::i;:::-;11318:7;:19;11326:10;11318:19;;;;;;;;;;;;;;;:29;11338:8;11318:29;;;;;;;;;;;;;;;:67;;;;11204:193;11433:8;11412:61;;11421:10;11412:61;;;11443:7;:19;11451:10;11443:19;;;;;;;;;;;;;;;:29;11463:8;11443:29;;;;;;;;;;;;;;;;11412:61;;;;;;;;;;;;;;;;;;11491:4;11484:11;;11048:455;;;;;:::o;4238:111::-;4298:7;4325:8;:16;4334:6;4325:16;;;;;;;;;;;;;;;;4318:23;;4238:111;;;:::o;5355:25::-;;;;:::o;12299:386::-;798:5;;;;;;;;;;;784:19;;:10;:19;;;776:28;;;;;;;;6409:16;;;;;;;;;;;6408:17;6400:26;;;;;;;;12395:27;12403:10;;12415:6;12395:7;:27::i;:::-;12382:10;:40;;;;12456:10;;12441:11;;:25;;12433:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12542:30;12550:8;:13;12559:3;12550:13;;;;;;;;;;;;;;;;12565:6;12542:7;:30::i;:::-;12526:8;:13;12535:3;12526:13;;;;;;;;;;;;;;;:46;;;;12616:3;12610:18;;;12621:6;12610:18;;;;;;;;;;;;;;;;;;12665:3;12644:33;;12661:1;12644:33;;;12670:6;12644:33;;;;;;;;;;;;;;;;;;12299:386;;:::o;318:20::-;;;;;;;;;;;;;:::o;1566:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7875:461::-;798:5;;;;;;;;;;;784:19;;:10;:19;;;776:28;;;;;;;;7980:6;7961:8;:15;7970:5;7961:15;;;;;;;;;;;;;;;;:25;;7953:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8074:27;8082:10;;8094:6;8074:7;:27::i;:::-;8061:10;:40;;;;8126:28;8134:11;;8147:6;8126:7;:28::i;:::-;8112:11;:42;;;;8183:32;8191:8;:15;8200:5;8191:15;;;;;;;;;;;;;;;;8208:6;8183:7;:32::i;:::-;8165:8;:15;8174:5;8165:15;;;;;;;;;;;;;;;:50;;;;8257:1;8233:35;;8242:5;8233:35;;;8261:6;8233:35;;;;;;;;;;;;;;;;;;8314:5;8306:22;;;8321:6;8306:22;;;;;;;;;;;;;;;;;;7875:461;;:::o;8344:298::-;8424:4;8441:12;6285:14;;;;;;;;;;;6277:23;;;;;;;;8456:27;8471:3;8476:6;8456:14;:27::i;:::-;8441:42;;8627:7;8620:14;;8344:298;;;;;:::o;7345:229::-;798:5;;;;;;;;;;;784:19;;:10;:19;;;776:28;;;;;;;;7437:1;7416:23;;:9;:23;;;;7413:154;;;7492:9;7456:13;;:46;;;;;;;;;;;;;;;;;;7413:154;;;7542:13;;7535:20;;;;;;;;;;;7413:154;7345:229;:::o;11596:232::-;11672:4;798:5;;;;;;;;;;;784:19;;:10;:19;;;776:28;;;;;;;;11708:17;11689:16;;:36;;;;;;;;;;;;;;;;;;11763:35;11780:17;11763:35;;;;;;;;;;;;;;;;;;;;;;11816:4;11809:11;;11596:232;;;:::o;5696:40::-;;;;;;;;;;;;;:::o;345:23::-;;;;;;;;;;;;;:::o;1209:190::-;1277:8;;;;;;;;;;;1263:22;;:10;:22;;;1255:31;;;;;;;;1302:37;1323:5;;;;;;;;;;;1330:8;;;;;;;;;;;1302:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1358:8;;;;;;;;;;;1350:5;;:16;;;;;;;;;;;;;;;;;;1388:3;1377:8;;:14;;;;;;;;;;;;;;;;;;1209:190::o;10258:285::-;10336:4;10385:51;10393:7;:19;10401:10;10393:19;;;;;;;;;;;;;;;:29;10413:8;10393:29;;;;;;;;;;;;;;;;10424:11;10385:7;:51::i;:::-;10353:7;:19;10361:10;10353:19;;;;;;;;;;;;;;;:29;10373:8;10353:29;;;;;;;;;;;;;;;:83;;;;10473:8;10452:61;;10461:10;10452:61;;;10483:7;:19;10491:10;10483:19;;;;;;;;;;;;;;;:29;10503:8;10483:29;;;;;;;;;;;;;;;;10452:61;;;;;;;;;;;;;;;;;;10531:4;10524:11;;10258:285;;;;:::o;4571:138::-;4649:7;4676;:15;4684:6;4676:15;;;;;;;;;;;;;;;:25;4692:8;4676:25;;;;;;;;;;;;;;;;4669:32;;4571:138;;;;:::o;6979:197::-;798:5;;;;;;;;;;;784:19;;:10;:19;;;776:28;;;;;;;;7075:15;7058:14;;:32;;;;;;;;;;;;;;;;;;7130:38;7152:15;7130:38;;;;;;;;;;;;;;;;;;;;;;6979:197;:::o;999:140::-;798:5;;;;;;;;;;;784:19;;:10;:19;;;776:28;;;;;;;;1094:5;;;;;;;;;;;1081:18;;:9;:18;;;;1073:27;;;;;;;;1122:9;1111:8;;:20;;;;;;;;;;;;;;;;;;999:140;:::o;3743:487::-;3825:4;3865:1;3850:17;;:3;:17;;;;3842:26;;;;;;;;3906:6;3887:8;:15;3896:5;3887:15;;;;;;;;;;;;;;;;:25;;:65;;;;;3946:6;3916:7;:14;3924:5;3916:14;;;;;;;;;;;;;;;:26;3931:10;3916:26;;;;;;;;;;;;;;;;:36;;3887:65;3879:74;;;;;;;;3982:30;3990:8;:13;3999:3;3990:13;;;;;;;;;;;;;;;;4005:6;3982:7;:30::i;:::-;3966:8;:13;3975:3;3966:13;;;;;;;;;;;;;;;:46;;;;4041:32;4049:8;:15;4058:5;4049:15;;;;;;;;;;;;;;;;4066:6;4041:7;:32::i;:::-;4023:8;:15;4032:5;4023:15;;;;;;;;;;;;;;;:50;;;;4113:43;4121:7;:14;4129:5;4121:14;;;;;;;;;;;;;;;:26;4136:10;4121:26;;;;;;;;;;;;;;;;4149:6;4113:7;:43::i;:::-;4084:7;:14;4092:5;4084:14;;;;;;;;;;;;;;;:26;4099:10;4084:26;;;;;;;;;;;;;;;:72;;;;4188:3;4172:28;;4181:5;4172:28;;;4193:6;4172:28;;;;;;;;;;;;;;;;;;4218:4;4211:11;;3743:487;;;;;:::o;2785:127::-;2847:7;2879:1;2874;:6;;2867:14;;;;;;2903:1;2899;:5;2892:12;;2785:127;;;;:::o;2920:151::-;2982:7;3002:9;3018:1;3014;:5;3002:17;;3042:1;3037;:6;;3030:14;;;;;;3062:1;3055:8;;2920:151;;;;;:::o;3370:365::-;3433:4;3473:1;3458:17;;:3;:17;;;;3450:26;;;;;;;;3519:6;3495:8;:20;3504:10;3495:20;;;;;;;;;;;;;;;;:30;;3487:39;;;;;;;;3562:37;3570:8;:20;3579:10;3570:20;;;;;;;;;;;;;;;;3592:6;3562:7;:37::i;:::-;3539:8;:20;3548:10;3539:20;;;;;;;;;;;;;;;:60;;;;3626:30;3634:8;:13;3643:3;3634:13;;;;;;;;;;;;;;;;3649:6;3626:7;:30::i;:::-;3610:8;:13;3619:3;3610:13;;;;;;;;;;;;;;;:46;;;;3693:3;3672:33;;3681:10;3672:33;;;3698:6;3672:33;;;;;;;;;;;;;;;;;;3723:4;3716:11;;3370:365;;;;:::o

Swarm Source

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