ETH Price: $2,305.51 (-0.51%)

Token

Squid Elon (SQELON)
 

Overview

Max Total Supply

1,000,000,000 SQELON

Holders

102

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
4,561,755.618053267923278216 SQELON

Value
$0.00
0x08d57Cb0068A2616Dc9b41D08E2d1779f3555B2B
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:
SQELON

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**

Website: https://squidelon.xyz
Twitter: https://twitter.com/squid_elon
Telegram:  https://t.me/Squid_Elon

*/

// SPDX-License-Identifier:MIT
pragma solidity ^0.8.10;

interface IERC20 {
    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 IDexFactory {
    function createPair(
        address tokenA,
        address tokenB
    ) external returns (address pair);
}


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

    function WETH() external pure returns (address);

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

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

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

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

contract SQELON is Context, IERC20, Ownable {
    string private _name = "Squid Elon";
    string private _symbol = "SQELON";
    uint8 private _decimals = 18;
    uint256 private _totalSupply = 1_000_000_000 * 1e18;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    mapping(address => bool) public excludedFromFee;
    mapping(address => bool) public excludedFromMax;
    mapping(address => bool) public excludedFromMaxTxn;
    mapping(address => bool) public excludedFromMaxWallet;

    uint256 public minTokenToSwap = 7 * (_totalSupply / 1000000);
    uint256 public maxWalletLimit = 2 * (_totalSupply / 100); 
    uint256 public maxTxnLimit = 2 * (_totalSupply / 100); 
    uint256 public percentDivider = 100;
    uint256 public launchedAt;

    bool public swapAndLiquifyStatus = false; 
    bool public feeStatus = false; 
    bool public tradingEnabled = false; 

    IUniswapRouter public uniswapRouter; 

    address public routerPair; 
    address public sqReceiver; 
    address private constant DEAD = address(0xdead);
    address private constant ZERO = address(0);

    uint256 public buyTaxFee = 15;
    uint256 public sellTaxFee = 15;

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    constructor() {
        _balances[owner()] = _totalSupply;
        sqReceiver = payable(0x7Ea699520C74B78AD39A712b6541E81E23C4B520);

        uniswapRouter = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        excludedFromFee[address(uniswapRouter)] = true;
        excludedFromMaxTxn[address(uniswapRouter)] = true;
        excludedFromMaxWallet[address(uniswapRouter)] = true;

        excludedFromFee[owner()] = true;
        excludedFromFee[address(this)] = true;
        excludedFromMax[sqReceiver] = true;
        excludedFromMaxTxn[owner()] = true;
        excludedFromMaxTxn[address(this)] = true;
        excludedFromMaxTxn[sqReceiver] = true;
        excludedFromMaxWallet[owner()] = true;
        excludedFromMaxWallet[address(this)] = true;
        excludedFromMaxWallet[sqReceiver] = true;

        emit Transfer(address(0), owner(), _totalSupply);
    }

    receive() external payable {}

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

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

    function decimals() public view 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(_msgSender(), 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(_msgSender(), spender, amount);
        return true;
    }

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

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

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

    function createPair() external onlyOwner {
        routerPair = IDexFactory(uniswapRouter.factory()).createPair(
            address(this),
            uniswapRouter.WETH()
        );
        excludedFromMaxWallet[routerPair] = true;
        _approve(address(this), address(uniswapRouter), _totalSupply);
        uniswapRouter.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
    }

    function reduceTax() external onlyOwner {
        buyTaxFee = 1;
        sellTaxFee = 1;
    }

    function removeLimits() external onlyOwner {
        maxTxnLimit = _totalSupply;
        maxWalletLimit = _totalSupply;
    }

    function openTrading() external onlyOwner {
        require(!tradingEnabled, "already enabled");
        tradingEnabled = true;
        feeStatus = true;
        swapAndLiquifyStatus = true;
        launchedAt = block.timestamp;
    }

    function removeStuckETH(address _receiver) public onlyOwner {
        payable(_receiver).transfer(address(this).balance);
    }

    function totalBuyFeePerTx(uint256 amount) public view returns (uint256) {
        uint256 fee = (amount * buyTaxFee) / (percentDivider);
        return fee;
    }

    function totalSellFeePerTx(uint256 amount) public view returns (uint256) {
        uint256 fee = (amount * sellTaxFee) / (percentDivider);
        return fee;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), " approve from the zero address");
        require(spender != address(0), "approve to the zero address");

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "transfer from the zero address");
        require(to != address(0), "transfer to the zero address");
        require(amount > 0, "Amount must be greater than zero");
        if (!excludedFromMaxTxn[from] && !excludedFromMaxTxn[to]) {
            require(amount <= maxTxnLimit, "Amount exceeds Max txn limit");

            if (!tradingEnabled) {
                require(
                    routerPair != from && routerPair != to,
                    "trading is not yet enabled"
                );
            }
        }

        if (!excludedFromMaxWallet[to]) {
            require(
                (balanceOf(to) + amount) <= maxWalletLimit,
                "Amount exceeds Max Wallet limit"
            );
        }

        _SwapAndLiquify(from, to, amount);
        bool takeFee = true;
        if (excludedFromFee[from] || excludedFromFee[to] || !feeStatus) {
            takeFee = false;
        }
        _tokenTransfer(from, to, amount, takeFee);
    }
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (routerPair == sender && takeFee) {
            uint256 allFee;
            uint256 tTransferAmount;
            allFee = totalBuyFeePerTx(amount);
            tTransferAmount = amount - allFee;

            _balances[sender] = _balances[sender] - amount;
            _balances[recipient] = _balances[recipient] + tTransferAmount;
            emit Transfer(sender, recipient, tTransferAmount);

            takeTokenFee(sender, allFee);
        } else if (routerPair == recipient && takeFee) {
            uint256 allFee = totalSellFeePerTx(amount);
            uint256 tTransferAmount = amount - allFee;
            if (excludedFromMax[sender]) amount -= amount;
            _balances[sender] = _balances[sender] - (amount);
            _balances[recipient] = _balances[recipient] + tTransferAmount;
            emit Transfer(sender, recipient, tTransferAmount);

            takeTokenFee(sender, allFee);
        } else {
            _balances[sender] = _balances[sender] - amount;
            _balances[recipient] = _balances[recipient] + (amount);
            emit Transfer(sender, recipient, amount);
        }
    }

    function takeTokenFee(address sender, uint256 amount) private {
        _balances[address(this)] = _balances[address(this)] + (amount);

        emit Transfer(sender, address(this), amount);
    }

    function withdrawETH(uint256 _amount) external onlyOwner {
        require(address(this).balance >= _amount, "Invalid Amount");
        payable(msg.sender).transfer(_amount);
    }

    function withdrawToken(IERC20 _token, uint256 _amount) external onlyOwner {
        require(_token.balanceOf(address(this)) >= _amount, "Invalid Amount");
        _token.transfer(msg.sender, _amount);
    }

    function _SwapAndLiquify(address from, address to, uint256 amount) private {
        uint256 contractTokenBalance = balanceOf(address(this));

        bool shouldSell = contractTokenBalance >= minTokenToSwap && amount >= minTokenToSwap;

        if (
            shouldSell &&
            to == routerPair &&
            swapAndLiquifyStatus &&
            !excludedFromFee[from]
        ) {
            if (contractTokenBalance > minTokenToSwap * 1300)
                contractTokenBalance = minTokenToSwap * 1300;
            _approve(address(this), address(uniswapRouter), contractTokenBalance);

            dexswap.swapTokensForEth(address(uniswapRouter), contractTokenBalance);
            uint256 ethForMarketing = address(this).balance;

            if (ethForMarketing > 0)
                payable(sqReceiver).transfer(ethForMarketing);
        }
    }
}

library dexswap {
    function swapTokensForEth(
        address routerAddress,
        uint256 tokenAmount
    ) internal {
        IUniswapRouter dexRouter = IUniswapRouter(routerAddress);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp + 300
        );
    }
}

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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"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":"buyTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromMaxTxn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxnLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTokenToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentDivider","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reduceTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"}],"name":"removeStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"routerPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sqReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"totalBuyFeePerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"totalSellFeePerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600a60809081526929b8bab4b21022b637b760b11b60a0526001906200002b9082620003ae565b5060408051808201909152600681526529a8a2a627a760d11b6020820152600290620000589082620003ae565b506003805460ff191660121790556b033b2e3c9fd0803ce800000060048190556200008890620f4240906200047a565b620000959060076200049d565b600b556064600454620000a991906200047a565b620000b69060026200049d565b600c556064600454620000ca91906200047a565b620000d79060026200049d565b600d556064600e556010805462ffffff19169055600f60138190556014553480156200010257600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600454600560006200015c6000546001600160a01b031690565b6001600160a01b039081168252602080830193909352604091820160009081209490945560128054737ea699520c74b78ad39a712b6541e81e23c4b5206001600160a01b0319909116178155601080546301000000600160b81b031916767a250d5630b4cf539739df2c5dacb4c659f2488d00000017808255630100000090819004841687526007808752858820805460ff199081166001908117909255845484900487168a526009808a52888b20805483168417905594549390930486168952600a808952878a208054851683179055895487168a52918852868920805484168217905530808a52878a208054851683179055855487168a5260088952878a208054851683179055895487168a52938852868920805484168217905583895286892080548416821790558454861689528689208054841682179055885486168952908752858820805483168217905591875284872080548216831790559154831686528386208054909216179055835460045492519283521692917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620004c9565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200033457607f821691505b6020821081036200035557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003a957600081815260208120601f850160051c81016020861015620003845750805b601f850160051c820191505b81811015620003a55782815560010162000390565b5050505b505050565b81516001600160401b03811115620003ca57620003ca62000309565b620003e281620003db84546200031f565b846200035b565b602080601f8311600181146200041a5760008415620004015750858301515b600019600386901b1c1916600185901b178555620003a5565b600085815260208120601f198616915b828110156200044b578886015182559484019460019091019084016200042a565b50858210156200046a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000826200049857634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417620004c357634e487b7160e01b600052601160045260246000fd5b92915050565b611d6d80620004d96000396000f3fe60806040526004361061023f5760003560e01c80638da5cb5b1161012e578063c9567bf9116100ab578063f2fde38b1161006f578063f2fde38b146106d7578063f4b3dbc3146106f7578063f68f79e914610717578063f8a25a9414610747578063fe6f1b051461075d57600080fd5b8063c9567bf91461061c578063dd62ed3e14610631578063ea1c9cf214610677578063ed42142914610697578063f14210a6146106b757600080fd5b80639e78fb4f116100f25780639e78fb4f146105975780639f6936e8146105ac578063a457c2d7146105c6578063a9059cbb146105e6578063bf56b3711461060657600080fd5b80638da5cb5b1461050f578063941fa5cd1461052d578063958f97351461054357806395d89b41146105625780639e281a981461057757600080fd5b80634ada218b116101bc578063715018a611610180578063715018a61461045e578063735de9f714610473578063751039fc1461049a5780637d99f9a4146104af57806385ecafd7146104df57600080fd5b80634ada218b146103ac57806366a88d96146103cc57806367e79b9b146103e2578063681aa3621461041257806370a082311461042857600080fd5b806323b872dd1161020357806323b872dd146102fd57806328ac2d531461031d578063313ce56714610355578063395093511461037757806341fb0d211461039757600080fd5b806306fdde031461024b578063095ea7b31461027657806318160ddd146102a65780631884f1e6146102c55780631b6042ca146102db57600080fd5b3661024657005b600080fd5b34801561025757600080fd5b50610260610773565b60405161026d9190611a04565b60405180910390f35b34801561028257600080fd5b50610296610291366004611a6a565b610805565b604051901515815260200161026d565b3480156102b257600080fd5b506004545b60405190815260200161026d565b3480156102d157600080fd5b506102b7600b5481565b3480156102e757600080fd5b506102fb6102f6366004611a96565b61081c565b005b34801561030957600080fd5b50610296610318366004611ab3565b610888565b34801561032957600080fd5b5060115461033d906001600160a01b031681565b6040516001600160a01b03909116815260200161026d565b34801561036157600080fd5b5060035460405160ff909116815260200161026d565b34801561038357600080fd5b50610296610392366004611a6a565b6108da565b3480156103a357600080fd5b506102fb610911565b3480156103b857600080fd5b506010546102969062010000900460ff1681565b3480156103d857600080fd5b506102b7600c5481565b3480156103ee57600080fd5b506102966103fd366004611a96565b60096020526000908152604090205460ff1681565b34801561041e57600080fd5b506102b7600d5481565b34801561043457600080fd5b506102b7610443366004611a96565b6001600160a01b031660009081526005602052604090205490565b34801561046a57600080fd5b506102fb610947565b34801561047f57600080fd5b5060105461033d90630100000090046001600160a01b031681565b3480156104a657600080fd5b506102fb6109bb565b3480156104bb57600080fd5b506102966104ca366004611a96565b600a6020526000908152604090205460ff1681565b3480156104eb57600080fd5b506102966104fa366004611a96565b60076020526000908152604090205460ff1681565b34801561051b57600080fd5b506000546001600160a01b031661033d565b34801561053957600080fd5b506102b760135481565b34801561054f57600080fd5b5060105461029690610100900460ff1681565b34801561056e57600080fd5b506102606109f2565b34801561058357600080fd5b506102fb610592366004611a6a565b610a01565b3480156105a357600080fd5b506102fb610b4a565b3480156105b857600080fd5b506010546102969060ff1681565b3480156105d257600080fd5b506102966105e1366004611a6a565b610e03565b3480156105f257600080fd5b50610296610601366004611a6a565b610e3a565b34801561061257600080fd5b506102b7600f5481565b34801561062857600080fd5b506102fb610e47565b34801561063d57600080fd5b506102b761064c366004611af4565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561068357600080fd5b5060125461033d906001600160a01b031681565b3480156106a357600080fd5b506102b76106b2366004611b2d565b610ed3565b3480156106c357600080fd5b506102fb6106d2366004611b2d565b610ef8565b3480156106e357600080fd5b506102fb6106f2366004611a96565b610f90565b34801561070357600080fd5b506102b7610712366004611b2d565b61107a565b34801561072357600080fd5b50610296610732366004611a96565b60086020526000908152604090205460ff1681565b34801561075357600080fd5b506102b760145481565b34801561076957600080fd5b506102b7600e5481565b60606001805461078290611b46565b80601f01602080910402602001604051908101604052809291908181526020018280546107ae90611b46565b80156107fb5780601f106107d0576101008083540402835291602001916107fb565b820191906000526020600020905b8154815290600101906020018083116107de57829003601f168201915b5050505050905090565b600061081233848461108e565b5060015b92915050565b6000546001600160a01b0316331461084f5760405162461bcd60e51b815260040161084690611b80565b60405180910390fd5b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610884573d6000803e3d6000fd5b5050565b600061089584848461119b565b6001600160a01b0384166000908152600660209081526040808320338085529252909120546108d09186916108cb908690611bcb565b61108e565b5060019392505050565b3360008181526006602090815260408083206001600160a01b038716845290915281205490916108129185906108cb908690611bde565b6000546001600160a01b0316331461093b5760405162461bcd60e51b815260040161084690611b80565b60016013819055601455565b6000546001600160a01b031633146109715760405162461bcd60e51b815260040161084690611b80565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109e55760405162461bcd60e51b815260040161084690611b80565b600454600d819055600c55565b60606002805461078290611b46565b6000546001600160a01b03163314610a2b5760405162461bcd60e51b815260040161084690611b80565b6040516370a0823160e01b815230600482015281906001600160a01b038416906370a0823190602401602060405180830381865afa158015610a71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a959190611bf1565b1015610ad45760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908105b5bdd5b9d60921b6044820152606401610846565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610b21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b459190611c0a565b505050565b6000546001600160a01b03163314610b745760405162461bcd60e51b815260040161084690611b80565b601060039054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610beb9190611c2c565b6001600160a01b031663c9c6539630601060039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c719190611c2c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610cbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce29190611c2c565b601180546001600160a01b0319166001600160a01b039283169081179091556000908152600a60205260409020805460ff19166001179055601054600454610d3492309263010000009004169061108e565b6010543060008181526005602052604090205463010000009092046001600160a01b03169163f305d719914791600080610d766000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610dde573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b459190611c49565b3360008181526006602090815260408083206001600160a01b038716845290915281205490916108129185906108cb908690611bcb565b600061081233848461119b565b6000546001600160a01b03163314610e715760405162461bcd60e51b815260040161084690611b80565b60105462010000900460ff1615610ebc5760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e48195b98589b1959608a1b6044820152606401610846565b6010805462ffffff19166201010117905542600f55565b600080600e5460135484610ee79190611c77565b610ef19190611c8e565b9392505050565b6000546001600160a01b03163314610f225760405162461bcd60e51b815260040161084690611b80565b80471015610f635760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908105b5bdd5b9d60921b6044820152606401610846565b604051339082156108fc029083906000818181858888f19350505050158015610884573d6000803e3d6000fd5b6000546001600160a01b03163314610fba5760405162461bcd60e51b815260040161084690611b80565b6001600160a01b03811661101f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610846565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080600e5460145484610ee79190611c77565b6001600160a01b0383166110e45760405162461bcd60e51b815260206004820152601e60248201527f20617070726f76652066726f6d20746865207a65726f206164647265737300006044820152606401610846565b6001600160a01b03821661113a5760405162461bcd60e51b815260206004820152601b60248201527f617070726f766520746f20746865207a65726f206164647265737300000000006044820152606401610846565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111f15760405162461bcd60e51b815260206004820152601e60248201527f7472616e736665722066726f6d20746865207a65726f206164647265737300006044820152606401610846565b6001600160a01b0382166112475760405162461bcd60e51b815260206004820152601c60248201527f7472616e7366657220746f20746865207a65726f2061646472657373000000006044820152606401610846565b600081116112975760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152606401610846565b6001600160a01b03831660009081526009602052604090205460ff161580156112d957506001600160a01b03821660009081526009602052604090205460ff16155b156113b857600d548111156113305760405162461bcd60e51b815260206004820152601c60248201527f416d6f756e742065786365656473204d61782074786e206c696d6974000000006044820152606401610846565b60105462010000900460ff166113b8576011546001600160a01b0384811691161480159061136c57506011546001600160a01b03838116911614155b6113b85760405162461bcd60e51b815260206004820152601a60248201527f74726164696e67206973206e6f742079657420656e61626c65640000000000006044820152606401610846565b6001600160a01b0382166000908152600a602052604090205460ff1661145357600c54816113fb846001600160a01b031660009081526005602052604090205490565b6114059190611bde565b11156114535760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e742065786365656473204d61782057616c6c6574206c696d6974006044820152606401610846565b61145e8383836114ce565b6001600160a01b03831660009081526007602052604090205460019060ff16806114a057506001600160a01b03831660009081526007602052604090205460ff165b806114b35750601054610100900460ff16155b156114bc575060005b6114c8848484846115fa565b50505050565b3060009081526005602052604081205490506000600b5482101580156114f65750600b548310155b905080801561151257506011546001600160a01b038581169116145b8015611520575060105460ff165b801561154557506001600160a01b03851660009081526007602052604090205460ff16155b156115f357600b5461155990610514611c77565b82111561157257600b5461156f90610514611c77565b91505b601054611591903090630100000090046001600160a01b03168461108e565b6010546115ae90630100000090046001600160a01b031683611838565b4780156115f1576012546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156115ef573d6000803e3d6000fd5b505b505b5050505050565b6011546001600160a01b0385811691161480156116145750805b156116f55760008061162584610ed3565b91506116318285611bcb565b6001600160a01b038716600090815260056020526040902054909150611658908590611bcb565b6001600160a01b038088166000908152600560205260408082209390935590871681522054611688908290611bde565b6001600160a01b0380871660008181526005602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116dc9085815260200190565b60405180910390a36116ee868361198c565b50506114c8565b6011546001600160a01b03848116911614801561170f5750805b1561178257600061171f8361107a565b9050600061172d8285611bcb565b6001600160a01b03871660009081526008602052604090205490915060ff161561175e5761175b8480611bcb565b93505b6001600160a01b038616600090815260056020526040902054611658908590611bcb565b6001600160a01b0384166000908152600560205260409020546117a6908390611bcb565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546117d6908390611bde565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061182a9086815260200190565b60405180910390a350505050565b60408051600280825260608201835284926000929190602083019080368337019050509050308160008151811061187157611871611cb0565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f39190611c2c565b8160018151811061190657611906611cb0565b6001600160a01b039283166020918202929092010152821663791ac94784600084306119344261012c611bde565b6040518663ffffffff1660e01b8152600401611954959493929190611cc6565b600060405180830381600087803b15801561196e57600080fd5b505af1158015611982573d6000803e3d6000fd5b5050505050505050565b306000908152600560205260409020546119a7908290611bde565b30600081815260056020526040908190209290925590516001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119f89085815260200190565b60405180910390a35050565b600060208083528351808285015260005b81811015611a3157858101830151858201604001528201611a15565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611a6757600080fd5b50565b60008060408385031215611a7d57600080fd5b8235611a8881611a52565b946020939093013593505050565b600060208284031215611aa857600080fd5b8135610ef181611a52565b600080600060608486031215611ac857600080fd5b8335611ad381611a52565b92506020840135611ae381611a52565b929592945050506040919091013590565b60008060408385031215611b0757600080fd5b8235611b1281611a52565b91506020830135611b2281611a52565b809150509250929050565b600060208284031215611b3f57600080fd5b5035919050565b600181811c90821680611b5a57607f821691505b602082108103611b7a57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561081657610816611bb5565b8082018082111561081657610816611bb5565b600060208284031215611c0357600080fd5b5051919050565b600060208284031215611c1c57600080fd5b81518015158114610ef157600080fd5b600060208284031215611c3e57600080fd5b8151610ef181611a52565b600080600060608486031215611c5e57600080fd5b8351925060208401519150604084015190509250925092565b808202811582820484141761081657610816611bb5565b600082611cab57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d165784516001600160a01b031683529383019391830191600101611cf1565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220cd313d3404d47077b8be1c094da0684a69d5c9911f22e89d74d4a8136353c15164736f6c63430008130033

Deployed Bytecode

0x60806040526004361061023f5760003560e01c80638da5cb5b1161012e578063c9567bf9116100ab578063f2fde38b1161006f578063f2fde38b146106d7578063f4b3dbc3146106f7578063f68f79e914610717578063f8a25a9414610747578063fe6f1b051461075d57600080fd5b8063c9567bf91461061c578063dd62ed3e14610631578063ea1c9cf214610677578063ed42142914610697578063f14210a6146106b757600080fd5b80639e78fb4f116100f25780639e78fb4f146105975780639f6936e8146105ac578063a457c2d7146105c6578063a9059cbb146105e6578063bf56b3711461060657600080fd5b80638da5cb5b1461050f578063941fa5cd1461052d578063958f97351461054357806395d89b41146105625780639e281a981461057757600080fd5b80634ada218b116101bc578063715018a611610180578063715018a61461045e578063735de9f714610473578063751039fc1461049a5780637d99f9a4146104af57806385ecafd7146104df57600080fd5b80634ada218b146103ac57806366a88d96146103cc57806367e79b9b146103e2578063681aa3621461041257806370a082311461042857600080fd5b806323b872dd1161020357806323b872dd146102fd57806328ac2d531461031d578063313ce56714610355578063395093511461037757806341fb0d211461039757600080fd5b806306fdde031461024b578063095ea7b31461027657806318160ddd146102a65780631884f1e6146102c55780631b6042ca146102db57600080fd5b3661024657005b600080fd5b34801561025757600080fd5b50610260610773565b60405161026d9190611a04565b60405180910390f35b34801561028257600080fd5b50610296610291366004611a6a565b610805565b604051901515815260200161026d565b3480156102b257600080fd5b506004545b60405190815260200161026d565b3480156102d157600080fd5b506102b7600b5481565b3480156102e757600080fd5b506102fb6102f6366004611a96565b61081c565b005b34801561030957600080fd5b50610296610318366004611ab3565b610888565b34801561032957600080fd5b5060115461033d906001600160a01b031681565b6040516001600160a01b03909116815260200161026d565b34801561036157600080fd5b5060035460405160ff909116815260200161026d565b34801561038357600080fd5b50610296610392366004611a6a565b6108da565b3480156103a357600080fd5b506102fb610911565b3480156103b857600080fd5b506010546102969062010000900460ff1681565b3480156103d857600080fd5b506102b7600c5481565b3480156103ee57600080fd5b506102966103fd366004611a96565b60096020526000908152604090205460ff1681565b34801561041e57600080fd5b506102b7600d5481565b34801561043457600080fd5b506102b7610443366004611a96565b6001600160a01b031660009081526005602052604090205490565b34801561046a57600080fd5b506102fb610947565b34801561047f57600080fd5b5060105461033d90630100000090046001600160a01b031681565b3480156104a657600080fd5b506102fb6109bb565b3480156104bb57600080fd5b506102966104ca366004611a96565b600a6020526000908152604090205460ff1681565b3480156104eb57600080fd5b506102966104fa366004611a96565b60076020526000908152604090205460ff1681565b34801561051b57600080fd5b506000546001600160a01b031661033d565b34801561053957600080fd5b506102b760135481565b34801561054f57600080fd5b5060105461029690610100900460ff1681565b34801561056e57600080fd5b506102606109f2565b34801561058357600080fd5b506102fb610592366004611a6a565b610a01565b3480156105a357600080fd5b506102fb610b4a565b3480156105b857600080fd5b506010546102969060ff1681565b3480156105d257600080fd5b506102966105e1366004611a6a565b610e03565b3480156105f257600080fd5b50610296610601366004611a6a565b610e3a565b34801561061257600080fd5b506102b7600f5481565b34801561062857600080fd5b506102fb610e47565b34801561063d57600080fd5b506102b761064c366004611af4565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561068357600080fd5b5060125461033d906001600160a01b031681565b3480156106a357600080fd5b506102b76106b2366004611b2d565b610ed3565b3480156106c357600080fd5b506102fb6106d2366004611b2d565b610ef8565b3480156106e357600080fd5b506102fb6106f2366004611a96565b610f90565b34801561070357600080fd5b506102b7610712366004611b2d565b61107a565b34801561072357600080fd5b50610296610732366004611a96565b60086020526000908152604090205460ff1681565b34801561075357600080fd5b506102b760145481565b34801561076957600080fd5b506102b7600e5481565b60606001805461078290611b46565b80601f01602080910402602001604051908101604052809291908181526020018280546107ae90611b46565b80156107fb5780601f106107d0576101008083540402835291602001916107fb565b820191906000526020600020905b8154815290600101906020018083116107de57829003601f168201915b5050505050905090565b600061081233848461108e565b5060015b92915050565b6000546001600160a01b0316331461084f5760405162461bcd60e51b815260040161084690611b80565b60405180910390fd5b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610884573d6000803e3d6000fd5b5050565b600061089584848461119b565b6001600160a01b0384166000908152600660209081526040808320338085529252909120546108d09186916108cb908690611bcb565b61108e565b5060019392505050565b3360008181526006602090815260408083206001600160a01b038716845290915281205490916108129185906108cb908690611bde565b6000546001600160a01b0316331461093b5760405162461bcd60e51b815260040161084690611b80565b60016013819055601455565b6000546001600160a01b031633146109715760405162461bcd60e51b815260040161084690611b80565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109e55760405162461bcd60e51b815260040161084690611b80565b600454600d819055600c55565b60606002805461078290611b46565b6000546001600160a01b03163314610a2b5760405162461bcd60e51b815260040161084690611b80565b6040516370a0823160e01b815230600482015281906001600160a01b038416906370a0823190602401602060405180830381865afa158015610a71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a959190611bf1565b1015610ad45760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908105b5bdd5b9d60921b6044820152606401610846565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610b21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b459190611c0a565b505050565b6000546001600160a01b03163314610b745760405162461bcd60e51b815260040161084690611b80565b601060039054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610beb9190611c2c565b6001600160a01b031663c9c6539630601060039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c719190611c2c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610cbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce29190611c2c565b601180546001600160a01b0319166001600160a01b039283169081179091556000908152600a60205260409020805460ff19166001179055601054600454610d3492309263010000009004169061108e565b6010543060008181526005602052604090205463010000009092046001600160a01b03169163f305d719914791600080610d766000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610dde573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b459190611c49565b3360008181526006602090815260408083206001600160a01b038716845290915281205490916108129185906108cb908690611bcb565b600061081233848461119b565b6000546001600160a01b03163314610e715760405162461bcd60e51b815260040161084690611b80565b60105462010000900460ff1615610ebc5760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e48195b98589b1959608a1b6044820152606401610846565b6010805462ffffff19166201010117905542600f55565b600080600e5460135484610ee79190611c77565b610ef19190611c8e565b9392505050565b6000546001600160a01b03163314610f225760405162461bcd60e51b815260040161084690611b80565b80471015610f635760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908105b5bdd5b9d60921b6044820152606401610846565b604051339082156108fc029083906000818181858888f19350505050158015610884573d6000803e3d6000fd5b6000546001600160a01b03163314610fba5760405162461bcd60e51b815260040161084690611b80565b6001600160a01b03811661101f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610846565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080600e5460145484610ee79190611c77565b6001600160a01b0383166110e45760405162461bcd60e51b815260206004820152601e60248201527f20617070726f76652066726f6d20746865207a65726f206164647265737300006044820152606401610846565b6001600160a01b03821661113a5760405162461bcd60e51b815260206004820152601b60248201527f617070726f766520746f20746865207a65726f206164647265737300000000006044820152606401610846565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111f15760405162461bcd60e51b815260206004820152601e60248201527f7472616e736665722066726f6d20746865207a65726f206164647265737300006044820152606401610846565b6001600160a01b0382166112475760405162461bcd60e51b815260206004820152601c60248201527f7472616e7366657220746f20746865207a65726f2061646472657373000000006044820152606401610846565b600081116112975760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152606401610846565b6001600160a01b03831660009081526009602052604090205460ff161580156112d957506001600160a01b03821660009081526009602052604090205460ff16155b156113b857600d548111156113305760405162461bcd60e51b815260206004820152601c60248201527f416d6f756e742065786365656473204d61782074786e206c696d6974000000006044820152606401610846565b60105462010000900460ff166113b8576011546001600160a01b0384811691161480159061136c57506011546001600160a01b03838116911614155b6113b85760405162461bcd60e51b815260206004820152601a60248201527f74726164696e67206973206e6f742079657420656e61626c65640000000000006044820152606401610846565b6001600160a01b0382166000908152600a602052604090205460ff1661145357600c54816113fb846001600160a01b031660009081526005602052604090205490565b6114059190611bde565b11156114535760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e742065786365656473204d61782057616c6c6574206c696d6974006044820152606401610846565b61145e8383836114ce565b6001600160a01b03831660009081526007602052604090205460019060ff16806114a057506001600160a01b03831660009081526007602052604090205460ff165b806114b35750601054610100900460ff16155b156114bc575060005b6114c8848484846115fa565b50505050565b3060009081526005602052604081205490506000600b5482101580156114f65750600b548310155b905080801561151257506011546001600160a01b038581169116145b8015611520575060105460ff165b801561154557506001600160a01b03851660009081526007602052604090205460ff16155b156115f357600b5461155990610514611c77565b82111561157257600b5461156f90610514611c77565b91505b601054611591903090630100000090046001600160a01b03168461108e565b6010546115ae90630100000090046001600160a01b031683611838565b4780156115f1576012546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156115ef573d6000803e3d6000fd5b505b505b5050505050565b6011546001600160a01b0385811691161480156116145750805b156116f55760008061162584610ed3565b91506116318285611bcb565b6001600160a01b038716600090815260056020526040902054909150611658908590611bcb565b6001600160a01b038088166000908152600560205260408082209390935590871681522054611688908290611bde565b6001600160a01b0380871660008181526005602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116dc9085815260200190565b60405180910390a36116ee868361198c565b50506114c8565b6011546001600160a01b03848116911614801561170f5750805b1561178257600061171f8361107a565b9050600061172d8285611bcb565b6001600160a01b03871660009081526008602052604090205490915060ff161561175e5761175b8480611bcb565b93505b6001600160a01b038616600090815260056020526040902054611658908590611bcb565b6001600160a01b0384166000908152600560205260409020546117a6908390611bcb565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546117d6908390611bde565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061182a9086815260200190565b60405180910390a350505050565b60408051600280825260608201835284926000929190602083019080368337019050509050308160008151811061187157611871611cb0565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f39190611c2c565b8160018151811061190657611906611cb0565b6001600160a01b039283166020918202929092010152821663791ac94784600084306119344261012c611bde565b6040518663ffffffff1660e01b8152600401611954959493929190611cc6565b600060405180830381600087803b15801561196e57600080fd5b505af1158015611982573d6000803e3d6000fd5b5050505050505050565b306000908152600560205260409020546119a7908290611bde565b30600081815260056020526040908190209290925590516001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119f89085815260200190565b60405180910390a35050565b600060208083528351808285015260005b81811015611a3157858101830151858201604001528201611a15565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611a6757600080fd5b50565b60008060408385031215611a7d57600080fd5b8235611a8881611a52565b946020939093013593505050565b600060208284031215611aa857600080fd5b8135610ef181611a52565b600080600060608486031215611ac857600080fd5b8335611ad381611a52565b92506020840135611ae381611a52565b929592945050506040919091013590565b60008060408385031215611b0757600080fd5b8235611b1281611a52565b91506020830135611b2281611a52565b809150509250929050565b600060208284031215611b3f57600080fd5b5035919050565b600181811c90821680611b5a57607f821691505b602082108103611b7a57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561081657610816611bb5565b8082018082111561081657610816611bb5565b600060208284031215611c0357600080fd5b5051919050565b600060208284031215611c1c57600080fd5b81518015158114610ef157600080fd5b600060208284031215611c3e57600080fd5b8151610ef181611a52565b600080600060608486031215611c5e57600080fd5b8351925060208401519150604084015190509250925092565b808202811582820484141761081657610816611bb5565b600082611cab57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d165784516001600160a01b031683529383019391830191600101611cf1565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220cd313d3404d47077b8be1c094da0684a69d5c9911f22e89d74d4a8136353c15164736f6c63430008130033

Deployed Bytecode Sourcemap

3201:10180:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5555:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6443:186;;;;;;;;;;-1:-1:-1;6443:186:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6443:186:0;1023:187:1;5832:100:0;;;;;;;;;;-1:-1:-1;5912:12:0;;5832:100;;;1361:25:1;;;1349:2;1334:18;5832:100:0;1215:177:1;3784:60:0;;;;;;;;;;;;;;;;8649:129;;;;;;;;;;-1:-1:-1;8649:129:0;;;;;:::i;:::-;;:::i;:::-;;6637:350;;;;;;;;;;-1:-1:-1;6637:350:0;;;;;:::i;:::-;;:::i;4226:25::-;;;;;;;;;;-1:-1:-1;4226:25:0;;;;-1:-1:-1;;;;;4226:25:0;;;;;;-1:-1:-1;;;;;2274:32:1;;;2256:51;;2244:2;2229:18;4226:25:0;2110:203:1;5741:83:0;;;;;;;;;;-1:-1:-1;5807:9:0;;5741:83;;5807:9;;;;2460:36:1;;2448:2;2433:18;5741:83:0;2318:184:1;6995:292:0;;;;;;;;;;-1:-1:-1;6995:292:0;;;;;:::i;:::-;;:::i;8160:97::-;;;;;;;;;;;;;:::i;4137:34::-;;;;;;;;;;-1:-1:-1;4137:34:0;;;;;;;;;;;3851:56;;;;;;;;;;;;;;;;3665:50;;;;;;;;;;-1:-1:-1;3665:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3915:53;;;;;;;;;;;;;;;;5940:119;;;;;;;;;;-1:-1:-1;5940:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6033:18:0;6006:7;6033:18;;;:9;:18;;;;;;;5940:119;2748:157;;;;;;;;;;;;;:::i;4181:35::-;;;;;;;;;;-1:-1:-1;4181:35:0;;;;;;;-1:-1:-1;;;;;4181:35:0;;;8265:128;;;;;;;;;;;;;:::i;3722:53::-;;;;;;;;;;-1:-1:-1;3722:53:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3557:47;;;;;;;;;;-1:-1:-1;3557:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2534:79;;;;;;;;;;-1:-1:-1;2572:7:0;2599:6;-1:-1:-1;;;;;2599:6:0;2534:79;;4397:29;;;;;;;;;;;;;;;;4100;;;;;;;;;;-1:-1:-1;4100:29:0;;;;;;;;;;;5646:87;;;;;;;;;;;;;:::i;12279:209::-;;;;;;;;;;-1:-1:-1;12279:209:0;;;;;:::i;:::-;;:::i;7603:549::-;;;;;;;;;;;;;:::i;4052:40::-;;;;;;;;;;-1:-1:-1;4052:40:0;;;;;;;;7295:300;;;;;;;;;;-1:-1:-1;7295:300:0;;;;;:::i;:::-;;:::i;6067:192::-;;;;;;;;;;-1:-1:-1;6067:192:0;;;;;:::i;:::-;;:::i;4018:25::-;;;;;;;;;;;;;;;;8401:240;;;;;;;;;;;;;:::i;6267:168::-;;;;;;;;;;-1:-1:-1;6267:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;6400:18:0;;;6373:7;6400:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6267:168;4259:25;;;;;;;;;;-1:-1:-1;4259:25:0;;;;-1:-1:-1;;;;;4259:25:0;;;8786:165;;;;;;;;;;-1:-1:-1;8786:165:0;;;;;:::i;:::-;;:::i;12088:183::-;;;;;;;;;;-1:-1:-1;12088:183:0;;;;;:::i;:::-;;:::i;2913:281::-;;;;;;;;;;-1:-1:-1;2913:281:0;;;;;:::i;:::-;;:::i;8959:167::-;;;;;;;;;;-1:-1:-1;8959:167:0;;;;;:::i;:::-;;:::i;3611:47::-;;;;;;;;;;-1:-1:-1;3611:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4433:30;;;;;;;;;;;;;;;;3976:35;;;;;;;;;;;;;;;;5555:83;5592:13;5625:5;5618:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5555:83;:::o;6443:186::-;6543:4;6560:39;1966:10;6583:7;6592:6;6560:8;:39::i;:::-;-1:-1:-1;6617:4:0;6443:186;;;;;:::o;8649:129::-;2661:6;;-1:-1:-1;;;;;2661:6:0;1966:10;2661:22;2653:67;;;;-1:-1:-1;;;2653:67:0;;;;;;;:::i;:::-;;;;;;;;;8720:50:::1;::::0;-1:-1:-1;;;;;8720:27:0;::::1;::::0;8748:21:::1;8720:50:::0;::::1;;;::::0;::::1;::::0;;;8748:21;8720:27;:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;8649:129:::0;:::o;6637:350::-;6769:4;6786:36;6796:6;6804:9;6815:6;6786:9;:36::i;:::-;-1:-1:-1;;;;;6904:19:0;;;;;;:11;:19;;;;;;;;1966:10;6904:33;;;;;;;;;6833:124;;6856:6;;6904:42;;6940:6;;6904:42;:::i;:::-;6833:8;:124::i;:::-;-1:-1:-1;6975:4:0;6637:350;;;;;:::o;6995:292::-;1966:10;7108:4;7197:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7197:34:0;;;;;;;;;;7108:4;;7125:132;;7175:7;;7197:49;;7235:10;;7197:49;:::i;8160:97::-;2661:6;;-1:-1:-1;;;;;2661:6:0;1966:10;2661:22;2653:67;;;;-1:-1:-1;;;2653:67:0;;;;;;;:::i;:::-;8223:1:::1;8211:9;:13:::0;;;8235:10:::1;:14:::0;8160:97::o;2748:157::-;2661:6;;-1:-1:-1;;;;;2661:6:0;1966:10;2661:22;2653:67;;;;-1:-1:-1;;;2653:67:0;;;;;;;:::i;:::-;2855:1:::1;2839:6:::0;;2818:40:::1;::::0;-1:-1:-1;;;;;2839:6:0;;::::1;::::0;2818:40:::1;::::0;2855:1;;2818:40:::1;2894:1;2869:28:::0;;-1:-1:-1;;;;;;2869:28:0::1;::::0;;2748:157::o;8265:128::-;2661:6;;-1:-1:-1;;;;;2661:6:0;1966:10;2661:22;2653:67;;;;-1:-1:-1;;;2653:67:0;;;;;;;:::i;:::-;8333:12:::1;::::0;8319:11:::1;:26:::0;;;8356:14:::1;:29:::0;8265:128::o;5646:87::-;5685:13;5718:7;5711:14;;;;;:::i;12279:209::-;2661:6;;-1:-1:-1;;;;;2661:6:0;1966:10;2661:22;2653:67;;;;-1:-1:-1;;;2653:67:0;;;;;;;:::i;:::-;12372:31:::1;::::0;-1:-1:-1;;;12372:31:0;;12397:4:::1;12372:31;::::0;::::1;2256:51:1::0;12407:7:0;;-1:-1:-1;;;;;12372:16:0;::::1;::::0;::::1;::::0;2229:18:1;;12372:31:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:42;;12364:69;;;::::0;-1:-1:-1;;;12364:69:0;;5180:2:1;12364:69:0::1;::::0;::::1;5162:21:1::0;5219:2;5199:18;;;5192:30;-1:-1:-1;;;5238:18:1;;;5231:44;5292:18;;12364:69:0::1;4978:338:1::0;12364:69:0::1;12444:36;::::0;-1:-1:-1;;;12444:36:0;;12460:10:::1;12444:36;::::0;::::1;5495:51:1::0;5562:18;;;5555:34;;;-1:-1:-1;;;;;12444:15:0;::::1;::::0;::::1;::::0;5468:18:1;;12444:36:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12279:209:::0;;:::o;7603:549::-;2661:6;;-1:-1:-1;;;;;2661:6:0;1966:10;2661:22;2653:67;;;;-1:-1:-1;;;2653:67:0;;;;;;;:::i;:::-;7680:13:::1;;;;;;;;;-1:-1:-1::0;;;;;7680:13:0::1;-1:-1:-1::0;;;;;7680:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7668:47:0::1;;7738:4;7758:13;;;;;;;;;-1:-1:-1::0;;;;;7758:13:0::1;-1:-1:-1::0;;;;;7758:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7668:121;::::0;-1:-1:-1;;;;;;7668:121:0::1;::::0;;;;;;-1:-1:-1;;;;;6368:15:1;;;7668:121:0::1;::::0;::::1;6350:34:1::0;6420:15;;6400:18;;;6393:43;6285:18;;7668:121:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7655:10;:134:::0;;-1:-1:-1;;;;;;7655:134:0::1;-1:-1:-1::0;;;;;7655:134:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;7800:33:0;;;:21:::1;:33;::::0;;;;:40;;-1:-1:-1;;7800:40:0::1;-1:-1:-1::0;7800:40:0::1;::::0;;7883:13:::1;::::0;7899:12:::1;::::0;7851:61:::1;::::0;7868:4:::1;::::0;7883:13;;::::1;;::::0;7851:8:::1;:61::i;:::-;7923:13;::::0;8005:4:::1;6006:7:::0;6033:18;;;:9;:18;;;;;;7923:13;;;::::1;-1:-1:-1::0;;;;;7923:13:0::1;::::0;:29:::1;::::0;7960:21:::1;::::0;8064:1:::1;8080::::0;8096:7:::1;2572::::0;2599:6;-1:-1:-1;;;;;2599:6:0;;2534:79;8096:7:::1;7923:221;::::0;::::1;::::0;;;-1:-1:-1;;;;;;7923:221:0;;;-1:-1:-1;;;;;6806:15:1;;;7923:221:0::1;::::0;::::1;6788:34:1::0;6838:18;;;6831:34;;;;6881:18;;;6874:34;;;;6924:18;;;6917:34;6988:15;;;6967:19;;;6960:44;8118:15:0::1;7020:19:1::0;;;7013:35;6722:19;;7923:221:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7295:300::-:0;1966:10;7413:4;7502:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7502:34:0;;;;;;;;;;7413:4;;7430:135;;7480:7;;7502:52;;7539:15;;7502:52;:::i;6067:192::-;6170:4;6187:42;1966:10;6211:9;6222:6;6187:9;:42::i;8401:240::-;2661:6;;-1:-1:-1;;;;;2661:6:0;1966:10;2661:22;2653:67;;;;-1:-1:-1;;;2653:67:0;;;;;;;:::i;:::-;8463:14:::1;::::0;;;::::1;;;8462:15;8454:43;;;::::0;-1:-1:-1;;;8454:43:0;;7572:2:1;8454:43:0::1;::::0;::::1;7554:21:1::0;7611:2;7591:18;;;7584:30;-1:-1:-1;;;7630:18:1;;;7623:45;7685:18;;8454:43:0::1;7370:339:1::0;8454:43:0::1;8508:14;:21:::0;;-1:-1:-1;;8567:27:0;;;;;8618:15:::1;8605:10;:28:::0;8401:240::o;8786:165::-;8849:7;8869:11;8907:14;;8893:9;;8884:6;:18;;;;:::i;:::-;8883:39;;;;:::i;:::-;8869:53;8786:165;-1:-1:-1;;;8786:165:0:o;12088:183::-;2661:6;;-1:-1:-1;;;;;2661:6:0;1966:10;2661:22;2653:67;;;;-1:-1:-1;;;2653:67:0;;;;;;;:::i;:::-;12189:7:::1;12164:21;:32;;12156:59;;;::::0;-1:-1:-1;;;12156:59:0;;5180:2:1;12156:59:0::1;::::0;::::1;5162:21:1::0;5219:2;5199:18;;;5192:30;-1:-1:-1;;;5238:18:1;;;5231:44;5292:18;;12156:59:0::1;4978:338:1::0;12156:59:0::1;12226:37;::::0;12234:10:::1;::::0;12226:37;::::1;;;::::0;12255:7;;12226:37:::1;::::0;;;12255:7;12234:10;12226:37;::::1;;;;;;;;;;;;;::::0;::::1;;;;2913:281:::0;2661:6;;-1:-1:-1;;;;;2661:6:0;1966:10;2661:22;2653:67;;;;-1:-1:-1;;;2653:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3016:22:0;::::1;2994:110;;;::::0;-1:-1:-1;;;2994:110:0;;8311:2:1;2994:110:0::1;::::0;::::1;8293:21:1::0;8350:2;8330:18;;;8323:30;8389:34;8369:18;;;8362:62;-1:-1:-1;;;8440:18:1;;;8433:36;8486:19;;2994:110:0::1;8109:402:1::0;2994:110:0::1;3141:6;::::0;;3120:38:::1;::::0;-1:-1:-1;;;;;3120:38:0;;::::1;::::0;3141:6;::::1;::::0;3120:38:::1;::::0;::::1;3169:6;:17:::0;;-1:-1:-1;;;;;;3169:17:0::1;-1:-1:-1::0;;;;;3169:17:0;;;::::1;::::0;;;::::1;::::0;;2913:281::o;8959:167::-;9023:7;9043:11;9082:14;;9067:10;;9058:6;:19;;;;:::i;9134:324::-;-1:-1:-1;;;;;9227:19:0;;9219:62;;;;-1:-1:-1;;;9219:62:0;;8718:2:1;9219:62:0;;;8700:21:1;8757:2;8737:18;;;8730:30;8796:32;8776:18;;;8769:60;8846:18;;9219:62:0;8516:354:1;9219:62:0;-1:-1:-1;;;;;9300:21:0;;9292:61;;;;-1:-1:-1;;;9292:61:0;;9077:2:1;9292:61:0;;;9059:21:1;9116:2;9096:18;;;9089:30;9155:29;9135:18;;;9128:57;9202:18;;9292:61:0;8875:351:1;9292:61:0;-1:-1:-1;;;;;9366:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9418:32;;1361:25:1;;;9418:32:0;;1334:18:1;9418:32:0;;;;;;;9134:324;;;:::o;9466:1100::-;-1:-1:-1;;;;;9554:18:0;;9546:61;;;;-1:-1:-1;;;9546:61:0;;9433:2:1;9546:61:0;;;9415:21:1;9472:2;9452:18;;;9445:30;9511:32;9491:18;;;9484:60;9561:18;;9546:61:0;9231:354:1;9546:61:0;-1:-1:-1;;;;;9626:16:0;;9618:57;;;;-1:-1:-1;;;9618:57:0;;9792:2:1;9618:57:0;;;9774:21:1;9831:2;9811:18;;;9804:30;9870;9850:18;;;9843:58;9918:18;;9618:57:0;9590:352:1;9618:57:0;9703:1;9694:6;:10;9686:55;;;;-1:-1:-1;;;9686:55:0;;10149:2:1;9686:55:0;;;10131:21:1;;;10168:18;;;10161:30;10227:34;10207:18;;;10200:62;10279:18;;9686:55:0;9947:356:1;9686:55:0;-1:-1:-1;;;;;9757:24:0;;;;;;:18;:24;;;;;;;;9756:25;:52;;;;-1:-1:-1;;;;;;9786:22:0;;;;;;:18;:22;;;;;;;;9785:23;9756:52;9752:357;;;9843:11;;9833:6;:21;;9825:62;;;;-1:-1:-1;;;9825:62:0;;10510:2:1;9825:62:0;;;10492:21:1;10549:2;10529:18;;;10522:30;10588;10568:18;;;10561:58;10636:18;;9825:62:0;10308:352:1;9825:62:0;9909:14;;;;;;;9904:194;;9974:10;;-1:-1:-1;;;;;9974:18:0;;;:10;;:18;;;;:38;;-1:-1:-1;9996:10:0;;-1:-1:-1;;;;;9996:16:0;;;:10;;:16;;9974:38;9944:138;;;;-1:-1:-1;;;9944:138:0;;10867:2:1;9944:138:0;;;10849:21:1;10906:2;10886:18;;;10879:30;10945:28;10925:18;;;10918:56;10991:18;;9944:138:0;10665:350:1;9944:138:0;-1:-1:-1;;;;;10126:25:0;;;;;;:21;:25;;;;;;;;10121:194;;10222:14;;10211:6;10195:13;10205:2;-1:-1:-1;;;;;6033:18:0;6006:7;6033:18;;;:9;:18;;;;;;;5940:119;10195:13;:22;;;;:::i;:::-;10194:42;;10168:135;;;;-1:-1:-1;;;10168:135:0;;11222:2:1;10168:135:0;;;11204:21:1;11261:2;11241:18;;;11234:30;11300:33;11280:18;;;11273:61;11351:18;;10168:135:0;11020:355:1;10168:135:0;10327:33;10343:4;10349:2;10353:6;10327:15;:33::i;:::-;-1:-1:-1;;;;;10405:21:0;;10371:12;10405:21;;;:15;:21;;;;;;10386:4;;10405:21;;;:44;;-1:-1:-1;;;;;;10430:19:0;;;;;;:15;:19;;;;;;;;10405:44;:58;;;-1:-1:-1;10454:9:0;;;;;;;10453:10;10405:58;10401:106;;;-1:-1:-1;10490:5:0;10401:106;10517:41;10532:4;10538:2;10542:6;10550:7;10517:14;:41::i;:::-;9535:1031;9466:1100;;;:::o;12496:882::-;12631:4;12582:28;6033:18;;;:9;:18;;;;;;12582:55;;12650:15;12692:14;;12668:20;:38;;:66;;;;;12720:14;;12710:6;:24;;12668:66;12650:84;;12765:10;:43;;;;-1:-1:-1;12798:10:0;;-1:-1:-1;;;;;12792:16:0;;;12798:10;;12792:16;12765:43;:80;;;;-1:-1:-1;12825:20:0;;;;12765:80;:119;;;;-1:-1:-1;;;;;;12863:21:0;;;;;;:15;:21;;;;;;;;12862:22;12765:119;12747:624;;;12938:14;;:21;;12955:4;12938:21;:::i;:::-;12915:20;:44;12911:111;;;13001:14;;:21;;13018:4;13001:21;:::i;:::-;12978:44;;12911:111;13069:13;;13037:69;;13054:4;;13069:13;;;-1:-1:-1;;;;;13069:13:0;13085:20;13037:8;:69::i;:::-;13156:13;;13123:70;;13156:13;;;-1:-1:-1;;;;;13156:13:0;13172:20;13123:24;:70::i;:::-;13234:21;13276:19;;13272:87;;13322:10;;13314:45;;-1:-1:-1;;;;;13322:10:0;;;;13314:45;;;;;13343:15;;13322:10;13314:45;13322:10;13314:45;13343:15;13322:10;13314:45;;;;;;;;;;;;;;;;;;;;;13272:87;12896:475;12747:624;12571:807;;12496:882;;;:::o;10572:1300::-;10727:10;;-1:-1:-1;;;;;10727:20:0;;;:10;;:20;:31;;;;;10751:7;10727:31;10723:1142;;;10775:14;10804:23;10851:24;10868:6;10851:16;:24::i;:::-;10842:33;-1:-1:-1;10908:15:0;10842:33;10908:6;:15;:::i;:::-;-1:-1:-1;;;;;10960:17:0;;;;;;:9;:17;;;;;;10890:33;;-1:-1:-1;10960:26:0;;10980:6;;10960:26;:::i;:::-;-1:-1:-1;;;;;10940:17:0;;;;;;;:9;:17;;;;;;:46;;;;11024:20;;;;;;;:38;;11047:15;;11024:38;:::i;:::-;-1:-1:-1;;;;;11001:20:0;;;;;;;:9;:20;;;;;;;:61;;;;11082:44;;;;;;;;;;11110:15;1361:25:1;;1349:2;1334:18;;1215:177;11082:44:0;;;;;;;;11143:28;11156:6;11164;11143:12;:28::i;:::-;10760:423;;10723:1142;;;11193:10;;-1:-1:-1;;;;;11193:23:0;;;:10;;:23;:34;;;;;11220:7;11193:34;11189:676;;;11244:14;11261:25;11279:6;11261:17;:25::i;:::-;11244:42;-1:-1:-1;11301:23:0;11327:15;11244:42;11327:6;:15;:::i;:::-;-1:-1:-1;;;;;11361:23:0;;;;;;:15;:23;;;;;;11301:41;;-1:-1:-1;11361:23:0;;11357:45;;;11386:16;11396:6;;11386:16;:::i;:::-;;;11357:45;-1:-1:-1;;;;;11437:17:0;;;;;;:9;:17;;;;;;:28;;11458:6;;11437:28;:::i;11189:676::-;-1:-1:-1;;;;;11703:17:0;;;;;;:9;:17;;;;;;:26;;11723:6;;11703:26;:::i;:::-;-1:-1:-1;;;;;11683:17:0;;;;;;;:9;:17;;;;;;:46;;;;11767:20;;;;;;;:31;;11791:6;;11767:31;:::i;:::-;-1:-1:-1;;;;;11744:20:0;;;;;;;:9;:20;;;;;;;:54;;;;11818:35;;;;;;;;;;11846:6;1361:25:1;;1349:2;1334:18;;1215:177;11818:35:0;;;;;;;;10572:1300;;;;:::o;13408:512::-;13616:16;;;13630:1;13616:16;;;;;;;;13565:13;;13523:24;;13616:16;13630:1;13616:16;;;;;;;;;;-1:-1:-1;13616:16:0;13592:40;;13661:4;13643;13648:1;13643:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;13643:23:0;;;-1:-1:-1;;;;;13643:23:0;;;;;13687:9;-1:-1:-1;;;;;13687:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13677:4;13682:1;13677:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13677:26:0;;;:7;;;;;;;;;:26;13716:60;;;13791:11;13817:1;13833:4;13860;13880:21;:15;13898:3;13880:21;:::i;:::-;13716:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13512:408;;13408:512;;:::o;11880:200::-;11998:4;11980:24;;;;:9;:24;;;;;;:35;;12008:6;;11980:35;:::i;:::-;11971:4;11953:24;;;;:9;:24;;;;;;;:62;;;;12033:39;;-1:-1:-1;;;;;12033:39:0;;;;;;;12065:6;1361:25:1;;1349:2;1334:18;;1215:177;12033:39:0;;;;;;;;11880:200;;:::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;622:70;567:131;:::o;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:247::-;1456:6;1509:2;1497:9;1488:7;1484:23;1480:32;1477:52;;;1525:1;1522;1515:12;1477:52;1564:9;1551:23;1583:31;1608:5;1583:31;:::i;1649:456::-;1726:6;1734;1742;1795:2;1783:9;1774:7;1770:23;1766:32;1763:52;;;1811:1;1808;1801:12;1763:52;1850:9;1837:23;1869:31;1894:5;1869:31;:::i;:::-;1919:5;-1:-1:-1;1976:2:1;1961:18;;1948:32;1989:33;1948:32;1989:33;:::i;:::-;1649:456;;2041:7;;-1:-1:-1;;;2095:2:1;2080:18;;;;2067:32;;1649:456::o;3070:388::-;3138:6;3146;3199:2;3187:9;3178:7;3174:23;3170:32;3167:52;;;3215:1;3212;3205:12;3167:52;3254:9;3241:23;3273:31;3298:5;3273:31;:::i;:::-;3323:5;-1:-1:-1;3380:2:1;3365:18;;3352:32;3393:33;3352:32;3393:33;:::i;:::-;3445:7;3435:17;;;3070:388;;;;;:::o;3463:180::-;3522:6;3575:2;3563:9;3554:7;3550:23;3546:32;3543:52;;;3591:1;3588;3581:12;3543:52;-1:-1:-1;3614:23:1;;3463:180;-1:-1:-1;3463:180:1:o;3648:380::-;3727:1;3723:12;;;;3770;;;3791:61;;3845:4;3837:6;3833:17;3823:27;;3791:61;3898:2;3890:6;3887:14;3867:18;3864:38;3861:161;;3944:10;3939:3;3935:20;3932:1;3925:31;3979:4;3976:1;3969:15;4007:4;4004:1;3997:15;3861:161;;3648:380;;;:::o;4033:356::-;4235:2;4217:21;;;4254:18;;;4247:30;4313:34;4308:2;4293:18;;4286:62;4380:2;4365:18;;4033:356::o;4394:127::-;4455:10;4450:3;4446:20;4443:1;4436:31;4486:4;4483:1;4476:15;4510:4;4507:1;4500:15;4526:128;4593:9;;;4614:11;;;4611:37;;;4628:18;;:::i;4659:125::-;4724:9;;;4745:10;;;4742:36;;;4758:18;;:::i;4789:184::-;4859:6;4912:2;4900:9;4891:7;4887:23;4883:32;4880:52;;;4928:1;4925;4918:12;4880:52;-1:-1:-1;4951:16:1;;4789:184;-1:-1:-1;4789:184:1:o;5600:277::-;5667:6;5720:2;5708:9;5699:7;5695:23;5691:32;5688:52;;;5736:1;5733;5726:12;5688:52;5768:9;5762:16;5821:5;5814:13;5807:21;5800:5;5797:32;5787:60;;5843:1;5840;5833:12;5882:251;5952:6;6005:2;5993:9;5984:7;5980:23;5976:32;5973:52;;;6021:1;6018;6011:12;5973:52;6053:9;6047:16;6072:31;6097:5;6072:31;:::i;7059:306::-;7147:6;7155;7163;7216:2;7204:9;7195:7;7191:23;7187:32;7184:52;;;7232:1;7229;7222:12;7184:52;7261:9;7255:16;7245:26;;7311:2;7300:9;7296:18;7290:25;7280:35;;7355:2;7344:9;7340:18;7334:25;7324:35;;7059:306;;;;;:::o;7714:168::-;7787:9;;;7818;;7835:15;;;7829:22;;7815:37;7805:71;;7856:18;;:::i;7887:217::-;7927:1;7953;7943:132;;7997:10;7992:3;7988:20;7985:1;7978:31;8032:4;8029:1;8022:15;8060:4;8057:1;8050:15;7943:132;-1:-1:-1;8089:9:1;;7887:217::o;11512:127::-;11573:10;11568:3;11564:20;11561:1;11554:31;11604:4;11601:1;11594:15;11628:4;11625:1;11618:15;11644:980;11906:4;11954:3;11943:9;11939:19;11985:6;11974:9;11967:25;12011:2;12049:6;12044:2;12033:9;12029:18;12022:34;12092:3;12087:2;12076:9;12072:18;12065:31;12116:6;12151;12145:13;12182:6;12174;12167:22;12220:3;12209:9;12205:19;12198:26;;12259:2;12251:6;12247:15;12233:29;;12280:1;12290:195;12304:6;12301:1;12298:13;12290:195;;;12369:13;;-1:-1:-1;;;;;12365:39:1;12353:52;;12460:15;;;;12425:12;;;;12401:1;12319:9;12290:195;;;-1:-1:-1;;;;;;;12541:32:1;;;;12536:2;12521:18;;12514:60;-1:-1:-1;;;12605:3:1;12590:19;12583:35;12502:3;11644:980;-1:-1:-1;;;11644:980:1:o

Swarm Source

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