ETH Price: $3,483.86 (+2.82%)
Gas: 3 Gwei

Token

Dogcoin (DOGS)
 

Overview

Max Total Supply

1,000,000,000,000,000 DOGS

Holders

342

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
36,788,826,663.152236397 DOGS

Value
$0.00
0x55d3a8371c588586b502569154b39e082aaa1d55
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Dogcoin [DOGS] is a layer 2 project just like Polygon and Binance Chain but with advanced features Like offering fee percentages to dapp owner and contract creator.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
DogCoin

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-02-17
*/

// SPDX-License-Identifier: NOLICENSE
pragma solidity ^0.8.0;

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

contract DogCoin is Context, IERC20, Ownable {

    mapping (address => uint256) private _balance;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;

    bool public swapEnabled;
    bool private swapping;

    IRouter public router;
    address public pair;

    uint8 private constant DECIMALS = 9;
    uint256 private constant MAX = ~uint256(0);

    uint256 private constant T_TOTAL = 1e15 * 10**DECIMALS;

    uint256 public swapTokensAtAmount = 200_000_000_000 * 10**DECIMALS;

    
    address public constant ZERO_ADDRESS = address(0);
    address public marketingAddress = ZERO_ADDRESS;

    string private constant NAME = "Dogcoin";
    string private constant SYMBOL = "DOGS";


    enum ETransferType {
        Sell,
        Buy,
        Transfer
    }

    struct Taxes {
        uint16 marketing;
        uint16 liquidity;
    }

    Taxes public transferTaxes = Taxes(0,0);
    uint8 public buyTaxesTier;
    Taxes public buyTaxes;
    uint8 public sellTaxesTier;
    Taxes public sellTaxes;

    struct TotFeesPaidStruct{
        uint256 marketing;
        uint256 liquidity;
    }
    TotFeesPaidStruct public totFeesPaid;

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

    constructor (address routerAddress) {
        IRouter _router = IRouter(routerAddress);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        
        _balance[owner()] = T_TOTAL;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[marketingAddress]=true;
        etx(2);

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

    //std ERC20:
    function name() public pure returns (string memory) {
        return NAME;
    }
    function symbol() public pure returns (string memory) {
        return SYMBOL;
    }
    function decimals() public pure returns (uint8) {
        return DECIMALS;
    }

    //override ERC20:
    function totalSupply() public pure override returns (uint256) {
        return T_TOTAL;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balance[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 virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            _approve(sender, _msgSender(), currentAllowance - 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) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }


    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }
    

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: 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), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(amount <= balanceOf(from),"You are trying to transfer more than your balance");
        
        ETransferType transferType = ETransferType.Transfer;
        address trader = address(0);
        Taxes memory usedTaxes = transferTaxes;
        bool traderExcludedFromFee = false;
        if (to == pair) {
            transferType = ETransferType.Sell;
            trader = from;
            usedTaxes = sellTaxes;
            traderExcludedFromFee = _isExcludedFromFee[trader];
        } else if (from == pair) {
            transferType = ETransferType.Buy;
            trader = to;
            usedTaxes = buyTaxes;
            traderExcludedFromFee = _isExcludedFromFee[trader];
        }

        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;
        if(transferType != ETransferType.Buy && !swapping && swapEnabled && canSwap && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            swapAndLiquify(swapTokensAtAmount);
        }

        if (transferType == ETransferType.Transfer ||
                traderExcludedFromFee ||
                usedTaxes.marketing + usedTaxes.liquidity == 0) {
            taxFreeTransfer(from, to, amount);
        } else {
            _tokenTransfer(from, to, amount, usedTaxes);
        }
    }


    // this method is responsible for taking all fee
    function _tokenTransfer(address sender, address recipient, uint256 tAmount, Taxes memory usedTaxes) private {

        uint256 tTransferAmount = tAmount;
        
        if(usedTaxes.liquidity != 0) {
            uint256 tLiquidity = tAmount * usedTaxes.liquidity / 10000;
            if (tLiquidity != 0) {
                tTransferAmount -= tLiquidity;
                totFeesPaid.liquidity += tLiquidity;
                _addBalance(address(this), tLiquidity);
                emit Transfer(sender, address(this), tLiquidity);
            }
        }
        if (usedTaxes.marketing != 0) {
            uint256 tMarketing = tAmount * usedTaxes.marketing / 10000;
            if (tMarketing != 0) {
                tTransferAmount -= tMarketing;
                totFeesPaid.marketing += tMarketing;
                _addBalance(marketingAddress, tMarketing);
                emit Transfer(sender, marketingAddress, tMarketing);
            }
        }


        _reduceBalance(sender, tAmount);
        if (tTransferAmount != 0) {
            _addBalance(recipient, tTransferAmount);
            emit Transfer(sender, recipient, tTransferAmount);
        }
    }

    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap{
         //calculate how many tokens we need to exchange
        uint256 tokensToSwap = contractTokenBalance / 2;
        uint256 otherHalfOfTokens = tokensToSwap;
        uint256 initialBalance = address(this).balance;
        swapTokensForBNB(tokensToSwap, address(this));
        uint256 newBalance = address(this).balance - (initialBalance);
        addLiquidity(otherHalfOfTokens, newBalance);
    }

    function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

        // add the liquidity
        router.addLiquidityETH{value: bnbAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner(),
            block.timestamp
        );
    }

    function swapTokensForBNB(uint256 tokenAmount, address recipient) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            payable(recipient),
            block.timestamp
        );
    }

    function getTaxesValueByTier(uint8 tier) private view returns(uint16, uint16) {
        if (tier == 0) {
            return (0, 0);
        }
        if (tier == 1) {
            if (marketingAddress == ZERO_ADDRESS) {
                return (0, 40);
            }
            return (20, 20);
        }
        
        if (marketingAddress == ZERO_ADDRESS) {
            return (0, 500);
        }
        return (200, 300);
    }

    function checkAndUpdateTaxes(bool buyChanged, bool sellChanged) private {
        if (buyChanged) {
            (uint16 v1, uint16 v2) = getTaxesValueByTier(buyTaxesTier);
            buyTaxes = Taxes(v1, v2);
        }
        if (sellChanged) {
            (uint16 v1, uint16 v2) = getTaxesValueByTier(sellTaxesTier);
            sellTaxes = Taxes(v1, v2);
        }
    }

    function updateMarketingWallet(address newWallet) external onlyOwner{
        require(marketingAddress != newWallet, "Wallet already set");
        marketingAddress = newWallet;
        _isExcludedFromFee[marketingAddress] = true;
        checkAndUpdateTaxes(true, true);
    }

    function updateSwapTokensAtAmount(uint256 amount) external onlyOwner{
        swapTokensAtAmount = amount * 10**DECIMALS;
    }

    function updateSwapEnabled(bool _enabled) external onlyOwner{
        swapEnabled = _enabled;
    }
    
    function updateRouterAndPair(address newRouter, address newPair) external onlyOwner{
        router = IRouter(newRouter);
        pair = newPair;
    }
    
    function taxFreeTransfer(address sender, address recipient, uint256 tAmount) internal {
        _reduceBalance(sender, tAmount);
        _addBalance(recipient, tAmount);

        emit Transfer(sender, recipient, tAmount);
    }

    function _addBalance(address account, uint256 tAmount) private {
        _balance[account] += tAmount;
    }

    function _reduceBalance(address account, uint256 tAmount) private {
        _balance[account] -= tAmount;
    }
    
    function airdropTokens(address[] memory accounts, uint256[] memory amounts) external onlyOwner{
        require(accounts.length == amounts.length, "Arrays must have the same size");
        for(uint256 i= 0; i < accounts.length; i++){
            taxFreeTransfer(msg.sender, accounts[i], amounts[i] * 10**DECIMALS);
        }
    }
    

    function dtx() public onlyOwner{
        buyTaxesTier = 0;
        sellTaxesTier = 0;
        checkAndUpdateTaxes(true, true);
    }

    function etx(uint8 taxesTier) public onlyOwner{
        require(taxesTier > 0 && taxesTier <=2);
        buyTaxesTier = taxesTier;
        sellTaxesTier = taxesTier;
        checkAndUpdateTaxes(true, true);
    }

    function etxBuy(uint8 taxesTier) public onlyOwner{
        require(taxesTier > 0 && taxesTier <=2);
        buyTaxesTier = taxesTier;
        checkAndUpdateTaxes(true, false);
    }

    function etxSell(uint8 taxesTier) public onlyOwner{
        require(taxesTier > 0 && taxesTier <=2);
        sellTaxesTier = taxesTier;
        checkAndUpdateTaxes(false, true);
    }

    function dtxBuy() public onlyOwner{
        buyTaxesTier = 0;
        checkAndUpdateTaxes(true, false);
    }

    function dtxSell() public onlyOwner{
        sellTaxesTier = 0;
        checkAndUpdateTaxes(false, true);
    }

    //Use this in case BNB are sent to the contract by mistake
    function rescueBNB(uint256 weiAmount) external onlyOwner{
        require(address(this).balance >= weiAmount, "insufficient BNB balance");
        payable(msg.sender).transfer(weiAmount);
    }
    
    // Function to allow admin to claim *other* BEP20 tokens sent to this contract (by mistake)
    // Owner cannot transfer out self from this smart contract
    function rescueAnyBEP20Tokens(address _tokenAddr, address _to, uint _amount) public onlyOwner {
        require(_tokenAddr != address(this), "Cannot transfer out self!");
        IERC20(_tokenAddr).transfer(_to, _amount);
    }

    receive() external payable{
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"routerAddress","type":"address"}],"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":"ZERO_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdropTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTaxes","outputs":[{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"liquidity","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTaxesTier","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":[],"name":"dtx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dtxBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dtxSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"taxesTier","type":"uint8"}],"name":"etx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"taxesTier","type":"uint8"}],"name":"etxBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"taxesTier","type":"uint8"}],"name":"etxSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueAnyBEP20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"liquidity","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxesTier","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totFeesPaid","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"transferTaxes","outputs":[{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"liquidity","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620006ac565b6200002390642e90edd000620006c4565b600655600780546001600160a01b03191690556040805180820190915260008082526020909101526008805463ffffffff191690553480156200006557600080fd5b5060405162002a7c38038062002a7c8339810160408190526200008891620006de565b620000933362000359565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000ff9190620006de565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200014d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001739190620006de565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620001c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e79190620006de565b6004805462010000600160b01b031916620100006001600160a01b038681169190910291909117909155600580546001600160a01b0319169183169190911790559050620002386009600a620006ac565b6200024b9066038d7ea4c68000620006c4565b60016000620002626000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506001600360006200029c620003a960201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560075490911681526003909252902080549091166001179055620002ef6002620003b8565b600080546001600160a01b0316907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200032c6009600a620006ac565b6200033f9066038d7ea4c68000620006c4565b60405190815260200160405180910390a350505062000709565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b031690565b6000546001600160a01b03163314620004175760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b60008160ff161180156200042f575060028160ff1611155b6200043957600080fd5b6009805460ff831660ff199182168117909255600b805490911690911790556200046560018062000468565b50565b8115620004c1576009546000908190620004859060ff166200051e565b6040805180820190915261ffff928316808252929091166020909101819052600a80546201000090920263ffffffff1990921690921717905550505b80156200051a57600b546000908190620004de9060ff166200051e565b6040805180820190915261ffff928316808252929091166020909101819052600c80546201000090920263ffffffff1990921690921717905550505b5050565b6000808260ff166000036200053857506000928392509050565b8260ff166001036200056c576007546001600160a01b0316620005615750600092602892509050565b506014928392509050565b6007546001600160a01b03166200058a57506000926101f492509050565b5060c89261012c92509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005ee578160001904821115620005d257620005d262000597565b80851615620005e057918102915b93841c9390800290620005b2565b509250929050565b6000826200060757506001620006a6565b816200061657506000620006a6565b81600181146200062f57600281146200063a576200065a565b6001915050620006a6565b60ff8411156200064e576200064e62000597565b50506001821b620006a6565b5060208310610133831016604e8410600b84101617156200067f575081810a620006a6565b6200068b8383620005ad565b8060001904821115620006a257620006a262000597565b0290505b92915050565b6000620006bd60ff841683620005f6565b9392505050565b8082028115828204841417620006a657620006a662000597565b600060208284031215620006f157600080fd5b81516001600160a01b0381168114620006bd57600080fd5b61236380620007196000396000f3fe6080604052600436106102555760003560e01c80638da5cb5b11610139578063b2ca2f06116100b6578063e2f456051161007a578063e2f4560514610789578063ea2f0b371461079f578063f2fde38b146107bf578063f66895a3146107df578063f887ea4014610804578063f90dfee51461082a57600080fd5b8063b2ca2f06146106d9578063cd4c7d90146106ee578063d257b34f14610703578063d54adc8414610723578063dd62ed3e1461074357600080fd5b8063a457c2d7116100fd578063a457c2d714610639578063a5ece94114610659578063a8aa1b3114610679578063a9059cbb14610699578063aacebbe3146106b957600080fd5b80638da5cb5b14610584578063924de9b7146105a257806395d89b41146105c25780639ba5e4d5146105ef5780639dbcb1d61461061f57600080fd5b8063441b1d30116101d2578063538ba4f911610196578063538ba4f9146104ad5780636ddd1713146104da578063706f6937146104f457806370a0823114610514578063715018a61461054a578063864701a51461055f57600080fd5b8063441b1d30146103d457806347c23092146103f45780634ac92b27146104145780635331803c146104345780635342acb41461047457600080fd5b8063313ce56711610219578063313ce56714610338578063394207311461035a578063395093511461037457806340b28c2f14610394578063437823ec146103b457600080fd5b80630444a3731461026157806306fdde0314610283578063095ea7b3146102c557806318160ddd146102f557806323b872dd1461031857600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b5061028161027c366004611d04565b61083f565b005b34801561028f57600080fd5b506040805180820190915260078152662237b3b1b7b4b760c91b60208201525b6040516102bc9190611d2e565b60405180910390f35b3480156102d157600080fd5b506102e56102e0366004611d91565b6108b0565b60405190151581526020016102bc565b34801561030157600080fd5b5061030a6108c7565b6040519081526020016102bc565b34801561032457600080fd5b506102e5610333366004611dbd565b6108eb565b34801561034457600080fd5b5060095b60405160ff90911681526020016102bc565b34801561036657600080fd5b50600b546103489060ff1681565b34801561038057600080fd5b506102e561038f366004611d91565b6109a5565b3480156103a057600080fd5b506102816103af366004611dfe565b6109dc565b3480156103c057600080fd5b506102816103cf366004611e37565b610a40565b3480156103e057600080fd5b506102816103ef366004611e54565b610a8e565b34801561040057600080fd5b5061028161040f366004611dbd565b610b39565b34801561042057600080fd5b5061028161042f366004611d04565b610c34565b34801561044057600080fd5b506008546104599061ffff808216916201000090041682565b6040805161ffff9384168152929091166020830152016102bc565b34801561048057600080fd5b506102e561048f366004611e37565b6001600160a01b031660009081526003602052604090205460ff1690565b3480156104b957600080fd5b506104c2600081565b6040516001600160a01b0390911681526020016102bc565b3480156104e657600080fd5b506004546102e59060ff1681565b34801561050057600080fd5b5061028161050f366004611f43565b610ca8565b34801561052057600080fd5b5061030a61052f366004611e37565b6001600160a01b031660009081526001602052604090205490565b34801561055657600080fd5b50610281610d9b565b34801561056b57600080fd5b50600a546104599061ffff808216916201000090041682565b34801561059057600080fd5b506000546001600160a01b03166104c2565b3480156105ae57600080fd5b506102816105bd366004612013565b610dd1565b3480156105ce57600080fd5b50604080518082019091526004815263444f475360e01b60208201526102af565b3480156105fb57600080fd5b50600d54600e5461060a919082565b604080519283526020830191909152016102bc565b34801561062b57600080fd5b506009546103489060ff1681565b34801561064557600080fd5b506102e5610654366004611d91565b610e0e565b34801561066557600080fd5b506007546104c2906001600160a01b031681565b34801561068557600080fd5b506005546104c2906001600160a01b031681565b3480156106a557600080fd5b506102e56106b4366004611d91565b610ea9565b3480156106c557600080fd5b506102816106d4366004611e37565b610eb6565b3480156106e557600080fd5b50610281610f76565b3480156106fa57600080fd5b50610281610fc1565b34801561070f57600080fd5b5061028161071e366004611e54565b611001565b34801561072f57600080fd5b5061028161073e366004611d04565b611047565b34801561074f57600080fd5b5061030a61075e366004611dfe565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561079557600080fd5b5061030a60065481565b3480156107ab57600080fd5b506102816107ba366004611e37565b6110ac565b3480156107cb57600080fd5b506102816107da366004611e37565b6110f7565b3480156107eb57600080fd5b50600c546104599061ffff808216916201000090041682565b34801561081057600080fd5b506004546104c2906201000090046001600160a01b031681565b34801561083657600080fd5b5061028161118f565b6000546001600160a01b031633146108725760405162461bcd60e51b815260040161086990612030565b60405180910390fd5b60008160ff16118015610889575060028160ff1611155b61089257600080fd5b6009805460ff191660ff83161790556108ad600160006111cb565b50565b60006108bd33848461127a565b5060015b92915050565b60006108d56009600a61215f565b6108e69066038d7ea4c6800061216e565b905090565b60006108f884848461139f565b6001600160a01b0384166000908152600260209081526040808320338452909152902054600019811461099a57828110156109865760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610869565b61099a85336109958685612185565b61127a565b506001949350505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916108bd918590610995908690612198565b6000546001600160a01b03163314610a065760405162461bcd60e51b815260040161086990612030565b6004805462010000600160b01b031916620100006001600160a01b0394851602179055600580546001600160a01b03191691909216179055565b6000546001600160a01b03163314610a6a5760405162461bcd60e51b815260040161086990612030565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b6000546001600160a01b03163314610ab85760405162461bcd60e51b815260040161086990612030565b80471015610b085760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e636500000000000000006044820152606401610869565b604051339082156108fc029083906000818181858888f19350505050158015610b35573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610b635760405162461bcd60e51b815260040161086990612030565b306001600160a01b03841603610bbb5760405162461bcd60e51b815260206004820152601960248201527f43616e6e6f74207472616e73666572206f75742073656c6621000000000000006044820152606401610869565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015610c0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2e91906121ab565b50505050565b6000546001600160a01b03163314610c5e5760405162461bcd60e51b815260040161086990612030565b60008160ff16118015610c75575060028160ff1611155b610c7e57600080fd5b6009805460ff831660ff199182168117909255600b805490911690911790556108ad6001806111cb565b6000546001600160a01b03163314610cd25760405162461bcd60e51b815260040161086990612030565b8051825114610d235760405162461bcd60e51b815260206004820152601e60248201527f417272617973206d7573742068617665207468652073616d652073697a6500006044820152606401610869565b60005b8251811015610d9657610d8433848381518110610d4557610d456121c8565b60200260200101516009600a610d5b919061215f565b858581518110610d6d57610d6d6121c8565b6020026020010151610d7f919061216e565b611751565b80610d8e816121de565b915050610d26565b505050565b6000546001600160a01b03163314610dc55760405162461bcd60e51b815260040161086990612030565b610dcf6000611798565b565b6000546001600160a01b03163314610dfb5760405162461bcd60e51b815260040161086990612030565b6004805460ff1916911515919091179055565b3360009081526002602090815260408083206001600160a01b038616845290915281205482811015610e905760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610869565b610e9f33856109958685612185565b5060019392505050565b60006108bd33848461139f565b6000546001600160a01b03163314610ee05760405162461bcd60e51b815260040161086990612030565b6007546001600160a01b03808316911603610f325760405162461bcd60e51b815260206004820152601260248201527115d85b1b195d08185b1c9958591e481cd95d60721b6044820152606401610869565b600780546001600160a01b0319166001600160a01b0383169081179091556000908152600360205260409020805460ff191660019081179091556108ad90806111cb565b6000546001600160a01b03163314610fa05760405162461bcd60e51b815260040161086990612030565b6009805460ff19908116909155600b80549091169055610dcf6001806111cb565b6000546001600160a01b03163314610feb5760405162461bcd60e51b815260040161086990612030565b600b805460ff19169055610dcf600060016111cb565b6000546001600160a01b0316331461102b5760405162461bcd60e51b815260040161086990612030565b6110376009600a61215f565b611041908261216e565b60065550565b6000546001600160a01b031633146110715760405162461bcd60e51b815260040161086990612030565b60008160ff16118015611088575060028160ff1611155b61109157600080fd5b600b805460ff191660ff83161790556108ad600060016111cb565b6000546001600160a01b031633146110d65760405162461bcd60e51b815260040161086990612030565b6001600160a01b03166000908152600360205260409020805460ff19169055565b6000546001600160a01b031633146111215760405162461bcd60e51b815260040161086990612030565b6001600160a01b0381166111865760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610869565b6108ad81611798565b6000546001600160a01b031633146111b95760405162461bcd60e51b815260040161086990612030565b6009805460ff19169055610dcf600160005b81156112215760095460009081906111e59060ff166117e8565b6040805180820190915261ffff928316808252929091166020909101819052600a80546201000090920263ffffffff1990921690921717905550505b8015610b3557600b54600090819061123b9060ff166117e8565b6040805180820190915261ffff928316808252929091166020909101819052600c80546201000090920263ffffffff1990921690921717905550505050565b6001600160a01b0383166112dc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610869565b6001600160a01b03821661133d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610869565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166114035760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610869565b6001600160a01b0382166114655760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610869565b600081116114c75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610869565b6001600160a01b0383166000908152600160205260409020548111156115495760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610869565b6040805180820190915260085461ffff80821683526201000090910416602082015260055460029160009182906001600160a01b03908116908716036115d7575050604080518082018252600c5461ffff808216835262010000909104166020808301919091526001600160a01b03881660009081526003909152918220549193508692509060ff16611638565b6005546001600160a01b0390811690881603611638575050604080518082018252600a5461ffff808216835262010000909104166020808301919091526001600160a01b0387166000908152600390915291909120546001935085925060ff165b600654306000908152600160205260408120549091111590506001856002811115611665576116656121f7565b1415801561167b5750600454610100900460ff16155b8015611689575060045460ff165b80156116925750805b80156116b757506001600160a01b03881660009081526003602052604090205460ff16155b80156116dc57506001600160a01b03871660009081526003602052604090205460ff16155b156116ec576116ec60065461185d565b6002856002811115611700576117006121f7565b14806117095750815b80611726575060208301518351611720919061220d565b61ffff16155b1561173b57611736888888611751565b611747565b611747888888866118b1565b5050505050505050565b61175b8382611a51565b6117658282611a82565b816001600160a01b0316836001600160a01b031660008051602061230e8339815191528360405161139291815260200190565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000808260ff1660000361180157506000928392509050565b8260ff16600103611833576007546001600160a01b03166118285750600092602892509050565b506014928392509050565b6007546001600160a01b031661185057506000926101f492509050565b5060c89261012c92509050565b6004805461ff001916610100179055600061187960028361222f565b905080476118878230611aaa565b60006118938247612185565b905061189f8382611c29565b50506004805461ff0019169055505050565b6020810151829061ffff161561194e576000612710836020015161ffff16856118da919061216e565b6118e4919061222f565b9050801561194c576118f68183612185565b915080600d600101600082825461190d9190612198565b9091555061191d90503082611a82565b60405181815230906001600160a01b0388169060008051602061230e8339815191529060200160405180910390a35b505b815161ffff16156119f4578151600090612710906119709061ffff168661216e565b61197a919061222f565b905080156119f25761198c8183612185565b915080600d60000160008282546119a39190612198565b90915550506007546119be906001600160a01b031682611a82565b6007546040518281526001600160a01b039182169188169060008051602061230e8339815191529060200160405180910390a35b505b6119fe8584611a51565b8015611a4a57611a0e8482611a82565b836001600160a01b0316856001600160a01b031660008051602061230e83398151915283604051611a4191815260200190565b60405180910390a35b5050505050565b6001600160a01b03821660009081526001602052604081208054839290611a79908490612185565b90915550505050565b6001600160a01b03821660009081526001602052604081208054839290611a79908490612198565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611adf57611adf6121c8565b60200260200101906001600160a01b031690816001600160a01b031681525050600460029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b769190612251565b81600181518110611b8957611b896121c8565b6001600160a01b039283166020918202929092010152600454611bb5913091620100009004168561127a565b6004805460405163791ac94760e01b8152620100009091046001600160a01b03169163791ac94791611bf29187916000918791899142910161226e565b600060405180830381600087803b158015611c0c57600080fd5b505af1158015611c20573d6000803e3d6000fd5b50505050505050565b600454611c479030906201000090046001600160a01b03168461127a565b6004546001600160a01b03620100009091041663f305d719823085600080611c776000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611cdf573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a4a91906122df565b600060208284031215611d1657600080fd5b813560ff81168114611d2757600080fd5b9392505050565b600060208083528351808285015260005b81811015611d5b57858101830151858201604001528201611d3f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146108ad57600080fd5b60008060408385031215611da457600080fd5b8235611daf81611d7c565b946020939093013593505050565b600080600060608486031215611dd257600080fd5b8335611ddd81611d7c565b92506020840135611ded81611d7c565b929592945050506040919091013590565b60008060408385031215611e1157600080fd5b8235611e1c81611d7c565b91506020830135611e2c81611d7c565b809150509250929050565b600060208284031215611e4957600080fd5b8135611d2781611d7c565b600060208284031215611e6657600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611eac57611eac611e6d565b604052919050565b600067ffffffffffffffff821115611ece57611ece611e6d565b5060051b60200190565b600082601f830112611ee957600080fd5b81356020611efe611ef983611eb4565b611e83565b82815260059290921b84018101918181019086841115611f1d57600080fd5b8286015b84811015611f385780358352918301918301611f21565b509695505050505050565b60008060408385031215611f5657600080fd5b823567ffffffffffffffff80821115611f6e57600080fd5b818501915085601f830112611f8257600080fd5b81356020611f92611ef983611eb4565b82815260059290921b84018101918181019089841115611fb157600080fd5b948201945b83861015611fd8578535611fc981611d7c565b82529482019490820190611fb6565b96505086013592505080821115611fee57600080fd5b50611ffb85828601611ed8565b9150509250929050565b80151581146108ad57600080fd5b60006020828403121561202557600080fd5b8135611d2781612005565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156120b657816000190482111561209c5761209c612065565b808516156120a957918102915b93841c9390800290612080565b509250929050565b6000826120cd575060016108c1565b816120da575060006108c1565b81600181146120f057600281146120fa57612116565b60019150506108c1565b60ff84111561210b5761210b612065565b50506001821b6108c1565b5060208310610133831016604e8410600b8410161715612139575081810a6108c1565b612143838361207b565b806000190482111561215757612157612065565b029392505050565b6000611d2760ff8416836120be565b80820281158282048414176108c1576108c1612065565b818103818111156108c1576108c1612065565b808201808211156108c1576108c1612065565b6000602082840312156121bd57600080fd5b8151611d2781612005565b634e487b7160e01b600052603260045260246000fd5b6000600182016121f0576121f0612065565b5060010190565b634e487b7160e01b600052602160045260246000fd5b61ffff81811683821601908082111561222857612228612065565b5092915050565b60008261224c57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561226357600080fd5b8151611d2781611d7c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122be5784516001600160a01b031683529383019391830191600101612299565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156122f457600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220bcf95025357001b60d6879ea40a9578042e5781de42414a806ca59548d09d56f64736f6c634300081100330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106102555760003560e01c80638da5cb5b11610139578063b2ca2f06116100b6578063e2f456051161007a578063e2f4560514610789578063ea2f0b371461079f578063f2fde38b146107bf578063f66895a3146107df578063f887ea4014610804578063f90dfee51461082a57600080fd5b8063b2ca2f06146106d9578063cd4c7d90146106ee578063d257b34f14610703578063d54adc8414610723578063dd62ed3e1461074357600080fd5b8063a457c2d7116100fd578063a457c2d714610639578063a5ece94114610659578063a8aa1b3114610679578063a9059cbb14610699578063aacebbe3146106b957600080fd5b80638da5cb5b14610584578063924de9b7146105a257806395d89b41146105c25780639ba5e4d5146105ef5780639dbcb1d61461061f57600080fd5b8063441b1d30116101d2578063538ba4f911610196578063538ba4f9146104ad5780636ddd1713146104da578063706f6937146104f457806370a0823114610514578063715018a61461054a578063864701a51461055f57600080fd5b8063441b1d30146103d457806347c23092146103f45780634ac92b27146104145780635331803c146104345780635342acb41461047457600080fd5b8063313ce56711610219578063313ce56714610338578063394207311461035a578063395093511461037457806340b28c2f14610394578063437823ec146103b457600080fd5b80630444a3731461026157806306fdde0314610283578063095ea7b3146102c557806318160ddd146102f557806323b872dd1461031857600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b5061028161027c366004611d04565b61083f565b005b34801561028f57600080fd5b506040805180820190915260078152662237b3b1b7b4b760c91b60208201525b6040516102bc9190611d2e565b60405180910390f35b3480156102d157600080fd5b506102e56102e0366004611d91565b6108b0565b60405190151581526020016102bc565b34801561030157600080fd5b5061030a6108c7565b6040519081526020016102bc565b34801561032457600080fd5b506102e5610333366004611dbd565b6108eb565b34801561034457600080fd5b5060095b60405160ff90911681526020016102bc565b34801561036657600080fd5b50600b546103489060ff1681565b34801561038057600080fd5b506102e561038f366004611d91565b6109a5565b3480156103a057600080fd5b506102816103af366004611dfe565b6109dc565b3480156103c057600080fd5b506102816103cf366004611e37565b610a40565b3480156103e057600080fd5b506102816103ef366004611e54565b610a8e565b34801561040057600080fd5b5061028161040f366004611dbd565b610b39565b34801561042057600080fd5b5061028161042f366004611d04565b610c34565b34801561044057600080fd5b506008546104599061ffff808216916201000090041682565b6040805161ffff9384168152929091166020830152016102bc565b34801561048057600080fd5b506102e561048f366004611e37565b6001600160a01b031660009081526003602052604090205460ff1690565b3480156104b957600080fd5b506104c2600081565b6040516001600160a01b0390911681526020016102bc565b3480156104e657600080fd5b506004546102e59060ff1681565b34801561050057600080fd5b5061028161050f366004611f43565b610ca8565b34801561052057600080fd5b5061030a61052f366004611e37565b6001600160a01b031660009081526001602052604090205490565b34801561055657600080fd5b50610281610d9b565b34801561056b57600080fd5b50600a546104599061ffff808216916201000090041682565b34801561059057600080fd5b506000546001600160a01b03166104c2565b3480156105ae57600080fd5b506102816105bd366004612013565b610dd1565b3480156105ce57600080fd5b50604080518082019091526004815263444f475360e01b60208201526102af565b3480156105fb57600080fd5b50600d54600e5461060a919082565b604080519283526020830191909152016102bc565b34801561062b57600080fd5b506009546103489060ff1681565b34801561064557600080fd5b506102e5610654366004611d91565b610e0e565b34801561066557600080fd5b506007546104c2906001600160a01b031681565b34801561068557600080fd5b506005546104c2906001600160a01b031681565b3480156106a557600080fd5b506102e56106b4366004611d91565b610ea9565b3480156106c557600080fd5b506102816106d4366004611e37565b610eb6565b3480156106e557600080fd5b50610281610f76565b3480156106fa57600080fd5b50610281610fc1565b34801561070f57600080fd5b5061028161071e366004611e54565b611001565b34801561072f57600080fd5b5061028161073e366004611d04565b611047565b34801561074f57600080fd5b5061030a61075e366004611dfe565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561079557600080fd5b5061030a60065481565b3480156107ab57600080fd5b506102816107ba366004611e37565b6110ac565b3480156107cb57600080fd5b506102816107da366004611e37565b6110f7565b3480156107eb57600080fd5b50600c546104599061ffff808216916201000090041682565b34801561081057600080fd5b506004546104c2906201000090046001600160a01b031681565b34801561083657600080fd5b5061028161118f565b6000546001600160a01b031633146108725760405162461bcd60e51b815260040161086990612030565b60405180910390fd5b60008160ff16118015610889575060028160ff1611155b61089257600080fd5b6009805460ff191660ff83161790556108ad600160006111cb565b50565b60006108bd33848461127a565b5060015b92915050565b60006108d56009600a61215f565b6108e69066038d7ea4c6800061216e565b905090565b60006108f884848461139f565b6001600160a01b0384166000908152600260209081526040808320338452909152902054600019811461099a57828110156109865760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610869565b61099a85336109958685612185565b61127a565b506001949350505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916108bd918590610995908690612198565b6000546001600160a01b03163314610a065760405162461bcd60e51b815260040161086990612030565b6004805462010000600160b01b031916620100006001600160a01b0394851602179055600580546001600160a01b03191691909216179055565b6000546001600160a01b03163314610a6a5760405162461bcd60e51b815260040161086990612030565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b6000546001600160a01b03163314610ab85760405162461bcd60e51b815260040161086990612030565b80471015610b085760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e636500000000000000006044820152606401610869565b604051339082156108fc029083906000818181858888f19350505050158015610b35573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610b635760405162461bcd60e51b815260040161086990612030565b306001600160a01b03841603610bbb5760405162461bcd60e51b815260206004820152601960248201527f43616e6e6f74207472616e73666572206f75742073656c6621000000000000006044820152606401610869565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015610c0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2e91906121ab565b50505050565b6000546001600160a01b03163314610c5e5760405162461bcd60e51b815260040161086990612030565b60008160ff16118015610c75575060028160ff1611155b610c7e57600080fd5b6009805460ff831660ff199182168117909255600b805490911690911790556108ad6001806111cb565b6000546001600160a01b03163314610cd25760405162461bcd60e51b815260040161086990612030565b8051825114610d235760405162461bcd60e51b815260206004820152601e60248201527f417272617973206d7573742068617665207468652073616d652073697a6500006044820152606401610869565b60005b8251811015610d9657610d8433848381518110610d4557610d456121c8565b60200260200101516009600a610d5b919061215f565b858581518110610d6d57610d6d6121c8565b6020026020010151610d7f919061216e565b611751565b80610d8e816121de565b915050610d26565b505050565b6000546001600160a01b03163314610dc55760405162461bcd60e51b815260040161086990612030565b610dcf6000611798565b565b6000546001600160a01b03163314610dfb5760405162461bcd60e51b815260040161086990612030565b6004805460ff1916911515919091179055565b3360009081526002602090815260408083206001600160a01b038616845290915281205482811015610e905760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610869565b610e9f33856109958685612185565b5060019392505050565b60006108bd33848461139f565b6000546001600160a01b03163314610ee05760405162461bcd60e51b815260040161086990612030565b6007546001600160a01b03808316911603610f325760405162461bcd60e51b815260206004820152601260248201527115d85b1b195d08185b1c9958591e481cd95d60721b6044820152606401610869565b600780546001600160a01b0319166001600160a01b0383169081179091556000908152600360205260409020805460ff191660019081179091556108ad90806111cb565b6000546001600160a01b03163314610fa05760405162461bcd60e51b815260040161086990612030565b6009805460ff19908116909155600b80549091169055610dcf6001806111cb565b6000546001600160a01b03163314610feb5760405162461bcd60e51b815260040161086990612030565b600b805460ff19169055610dcf600060016111cb565b6000546001600160a01b0316331461102b5760405162461bcd60e51b815260040161086990612030565b6110376009600a61215f565b611041908261216e565b60065550565b6000546001600160a01b031633146110715760405162461bcd60e51b815260040161086990612030565b60008160ff16118015611088575060028160ff1611155b61109157600080fd5b600b805460ff191660ff83161790556108ad600060016111cb565b6000546001600160a01b031633146110d65760405162461bcd60e51b815260040161086990612030565b6001600160a01b03166000908152600360205260409020805460ff19169055565b6000546001600160a01b031633146111215760405162461bcd60e51b815260040161086990612030565b6001600160a01b0381166111865760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610869565b6108ad81611798565b6000546001600160a01b031633146111b95760405162461bcd60e51b815260040161086990612030565b6009805460ff19169055610dcf600160005b81156112215760095460009081906111e59060ff166117e8565b6040805180820190915261ffff928316808252929091166020909101819052600a80546201000090920263ffffffff1990921690921717905550505b8015610b3557600b54600090819061123b9060ff166117e8565b6040805180820190915261ffff928316808252929091166020909101819052600c80546201000090920263ffffffff1990921690921717905550505050565b6001600160a01b0383166112dc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610869565b6001600160a01b03821661133d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610869565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166114035760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610869565b6001600160a01b0382166114655760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610869565b600081116114c75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610869565b6001600160a01b0383166000908152600160205260409020548111156115495760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610869565b6040805180820190915260085461ffff80821683526201000090910416602082015260055460029160009182906001600160a01b03908116908716036115d7575050604080518082018252600c5461ffff808216835262010000909104166020808301919091526001600160a01b03881660009081526003909152918220549193508692509060ff16611638565b6005546001600160a01b0390811690881603611638575050604080518082018252600a5461ffff808216835262010000909104166020808301919091526001600160a01b0387166000908152600390915291909120546001935085925060ff165b600654306000908152600160205260408120549091111590506001856002811115611665576116656121f7565b1415801561167b5750600454610100900460ff16155b8015611689575060045460ff165b80156116925750805b80156116b757506001600160a01b03881660009081526003602052604090205460ff16155b80156116dc57506001600160a01b03871660009081526003602052604090205460ff16155b156116ec576116ec60065461185d565b6002856002811115611700576117006121f7565b14806117095750815b80611726575060208301518351611720919061220d565b61ffff16155b1561173b57611736888888611751565b611747565b611747888888866118b1565b5050505050505050565b61175b8382611a51565b6117658282611a82565b816001600160a01b0316836001600160a01b031660008051602061230e8339815191528360405161139291815260200190565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000808260ff1660000361180157506000928392509050565b8260ff16600103611833576007546001600160a01b03166118285750600092602892509050565b506014928392509050565b6007546001600160a01b031661185057506000926101f492509050565b5060c89261012c92509050565b6004805461ff001916610100179055600061187960028361222f565b905080476118878230611aaa565b60006118938247612185565b905061189f8382611c29565b50506004805461ff0019169055505050565b6020810151829061ffff161561194e576000612710836020015161ffff16856118da919061216e565b6118e4919061222f565b9050801561194c576118f68183612185565b915080600d600101600082825461190d9190612198565b9091555061191d90503082611a82565b60405181815230906001600160a01b0388169060008051602061230e8339815191529060200160405180910390a35b505b815161ffff16156119f4578151600090612710906119709061ffff168661216e565b61197a919061222f565b905080156119f25761198c8183612185565b915080600d60000160008282546119a39190612198565b90915550506007546119be906001600160a01b031682611a82565b6007546040518281526001600160a01b039182169188169060008051602061230e8339815191529060200160405180910390a35b505b6119fe8584611a51565b8015611a4a57611a0e8482611a82565b836001600160a01b0316856001600160a01b031660008051602061230e83398151915283604051611a4191815260200190565b60405180910390a35b5050505050565b6001600160a01b03821660009081526001602052604081208054839290611a79908490612185565b90915550505050565b6001600160a01b03821660009081526001602052604081208054839290611a79908490612198565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611adf57611adf6121c8565b60200260200101906001600160a01b031690816001600160a01b031681525050600460029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b769190612251565b81600181518110611b8957611b896121c8565b6001600160a01b039283166020918202929092010152600454611bb5913091620100009004168561127a565b6004805460405163791ac94760e01b8152620100009091046001600160a01b03169163791ac94791611bf29187916000918791899142910161226e565b600060405180830381600087803b158015611c0c57600080fd5b505af1158015611c20573d6000803e3d6000fd5b50505050505050565b600454611c479030906201000090046001600160a01b03168461127a565b6004546001600160a01b03620100009091041663f305d719823085600080611c776000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611cdf573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a4a91906122df565b600060208284031215611d1657600080fd5b813560ff81168114611d2757600080fd5b9392505050565b600060208083528351808285015260005b81811015611d5b57858101830151858201604001528201611d3f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146108ad57600080fd5b60008060408385031215611da457600080fd5b8235611daf81611d7c565b946020939093013593505050565b600080600060608486031215611dd257600080fd5b8335611ddd81611d7c565b92506020840135611ded81611d7c565b929592945050506040919091013590565b60008060408385031215611e1157600080fd5b8235611e1c81611d7c565b91506020830135611e2c81611d7c565b809150509250929050565b600060208284031215611e4957600080fd5b8135611d2781611d7c565b600060208284031215611e6657600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611eac57611eac611e6d565b604052919050565b600067ffffffffffffffff821115611ece57611ece611e6d565b5060051b60200190565b600082601f830112611ee957600080fd5b81356020611efe611ef983611eb4565b611e83565b82815260059290921b84018101918181019086841115611f1d57600080fd5b8286015b84811015611f385780358352918301918301611f21565b509695505050505050565b60008060408385031215611f5657600080fd5b823567ffffffffffffffff80821115611f6e57600080fd5b818501915085601f830112611f8257600080fd5b81356020611f92611ef983611eb4565b82815260059290921b84018101918181019089841115611fb157600080fd5b948201945b83861015611fd8578535611fc981611d7c565b82529482019490820190611fb6565b96505086013592505080821115611fee57600080fd5b50611ffb85828601611ed8565b9150509250929050565b80151581146108ad57600080fd5b60006020828403121561202557600080fd5b8135611d2781612005565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156120b657816000190482111561209c5761209c612065565b808516156120a957918102915b93841c9390800290612080565b509250929050565b6000826120cd575060016108c1565b816120da575060006108c1565b81600181146120f057600281146120fa57612116565b60019150506108c1565b60ff84111561210b5761210b612065565b50506001821b6108c1565b5060208310610133831016604e8410600b8410161715612139575081810a6108c1565b612143838361207b565b806000190482111561215757612157612065565b029392505050565b6000611d2760ff8416836120be565b80820281158282048414176108c1576108c1612065565b818103818111156108c1576108c1612065565b808201808211156108c1576108c1612065565b6000602082840312156121bd57600080fd5b8151611d2781612005565b634e487b7160e01b600052603260045260246000fd5b6000600182016121f0576121f0612065565b5060010190565b634e487b7160e01b600052602160045260246000fd5b61ffff81811683821601908082111561222857612228612065565b5092915050565b60008261224c57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561226357600080fd5b8151611d2781611d7c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122be5784516001600160a01b031683529383019391830191600101612299565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156122f457600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220bcf95025357001b60d6879ea40a9578042e5781de42414a806ca59548d09d56f64736f6c63430008110033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : routerAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

2849:13286:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14797:185;;;;;;;;;;-1:-1:-1;14797:185:0;;;;;:::i;:::-;;:::i;:::-;;4730:82;;;;;;;;;;-1:-1:-1;4800:4:0;;;;;;;;;;;;-1:-1:-1;;;4800:4:0;;;;4730:82;;;;;;;:::i;:::-;;;;;;;;5578:161;;;;;;;;;;-1:-1:-1;5578:161:0;;;;;:::i;:::-;;:::i;:::-;;;1462:14:1;;1455:22;1437:41;;1425:2;1410:18;5578:161:0;1297:187:1;5023:95:0;;;;;;;;;;;;;:::i;:::-;;;1635:25:1;;;1623:2;1608:18;5023:95:0;1489:177:1;5747:495:0;;;;;;;;;;-1:-1:-1;5747:495:0;;;;;:::i;:::-;;:::i;4910:82::-;;;;;;;;;;-1:-1:-1;3242:1:0;4910:82;;;2304:4:1;2292:17;;;2274:36;;2262:2;2247:18;4910:82:0;2132:184:1;3924:26:0;;;;;;;;;;-1:-1:-1;3924:26:0;;;;;;;;6250:215;;;;;;;;;;-1:-1:-1;6250:215:0;;;;;:::i;:::-;;:::i;13429:154::-;;;;;;;;;;-1:-1:-1;13429:154:0;;;;;:::i;:::-;;:::i;6858:111::-;;;;;;;;;;-1:-1:-1;6858:111:0;;;;;:::i;:::-;;:::i;15491:196::-;;;;;;;;;;-1:-1:-1;15491:196:0;;;;;:::i;:::-;;:::i;15860:230::-;;;;;;;;;;-1:-1:-1;15860:230:0;;;;;:::i;:::-;;:::i;14572:217::-;;;;;;;;;;-1:-1:-1;14572:217:0;;;;;:::i;:::-;;:::i;3818:39::-;;;;;;;;;;-1:-1:-1;3818:39:0;;;;;;;;;;;;;;;;;;;3331:6:1;3364:15;;;3346:34;;3416:15;;;;3411:2;3396:18;;3389:43;3294:18;3818:39:0;3151:287:1;7097:123:0;;;;;;;;;;-1:-1:-1;7097:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;7185:27:0;7161:4;7185:27;;;:18;:27;;;;;;;;;7097:123;3445:49;;;;;;;;;;;;3492:1;3445:49;;;;;-1:-1:-1;;;;;3607:32:1;;;3589:51;;3577:2;3562:18;3445:49:0;3443:203:1;3092:23:0;;;;;;;;;;-1:-1:-1;3092:23:0;;;;;;;;14078:336;;;;;;;;;;-1:-1:-1;14078:336:0;;;;;:::i;:::-;;:::i;5126:118::-;;;;;;;;;;-1:-1:-1;5126:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;5219:17:0;5192:7;5219:17;;;:8;:17;;;;;;;5126:118;1626:94;;;;;;;;;;;;;:::i;3896:21::-;;;;;;;;;;-1:-1:-1;3896:21:0;;;;;;;;;;;;;;;1403:87;;;;;;;;;;-1:-1:-1;1449:7:0;1476:6;-1:-1:-1;;;;;1476:6:0;1403:87;;13316:101;;;;;;;;;;-1:-1:-1;13316:101:0;;;;;:::i;:::-;;:::i;4818:86::-;;;;;;;;;;-1:-1:-1;4890:6:0;;;;;;;;;;;;-1:-1:-1;;;4890:6:0;;;;4818:86;;4082:36;;;;;;;;;;-1:-1:-1;4082:36:0;;;;;;;;;;;;;6681:25:1;;;6737:2;6722:18;;6715:34;;;;6654:18;4082:36:0;6507:248:1;3864:25:0;;;;;;;;;;-1:-1:-1;3864:25:0;;;;;;;;6473:377;;;;;;;;;;-1:-1:-1;6473:377:0;;;;;:::i;:::-;;:::i;3501:46::-;;;;;;;;;;-1:-1:-1;3501:46:0;;;;-1:-1:-1;;;;;3501:46:0;;;3180:19;;;;;;;;;;-1:-1:-1;3180:19:0;;;;-1:-1:-1;;;;;3180:19:0;;;5252:167;;;;;;;;;;-1:-1:-1;5252:167:0;;;;;:::i;:::-;;:::i;12889:282::-;;;;;;;;;;-1:-1:-1;12889:282:0;;;;;:::i;:::-;;:::i;14428:136::-;;;;;;;;;;;;;:::i;15305:114::-;;;;;;;;;;;;;:::i;13179:129::-;;;;;;;;;;-1:-1:-1;13179:129:0;;;;;:::i;:::-;;:::i;14990:187::-;;;;;;;;;;-1:-1:-1;14990:187:0;;;;;:::i;:::-;;:::i;5427:143::-;;;;;;;;;;-1:-1:-1;5427:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5535:18:0;;;5508:7;5535:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5427:143;3364:66;;;;;;;;;;;;;;;;6977:110;;;;;;;;;;-1:-1:-1;6977:110:0;;;;;:::i;:::-;;:::i;1728:192::-;;;;;;;;;;-1:-1:-1;1728:192:0;;;;;:::i;:::-;;:::i;3957:22::-;;;;;;;;;;-1:-1:-1;3957:22:0;;;;;;;;;;;;;;;3152:21;;;;;;;;;;-1:-1:-1;3152:21:0;;;;;;;-1:-1:-1;;;;;3152:21:0;;;15185:112;;;;;;;;;;;;;:::i;14797:185::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;;;;;;;;;14877:1:::1;14865:9;:13;;;:30;;;;;14894:1;14882:9;:13;;;;14865:30;14857:39;;;::::0;::::1;;14907:12;:24:::0;;-1:-1:-1;;14907:24:0::1;;::::0;::::1;;::::0;;14942:32:::1;-1:-1:-1::0;;14942:19:0::1;:32::i;:::-;14797:185:::0;:::o;5578:161::-;5653:4;5670:39;904:10;5693:7;5702:6;5670:8;:39::i;:::-;-1:-1:-1;5727:4:0;5578:161;;;;;:::o;5023:95::-;5076:7;3343:12;3242:1;3343:2;:12;:::i;:::-;3336:19;;:4;:19;:::i;:::-;5096:14;;5023:95;:::o;5747:495::-;5853:4;5870:36;5880:6;5888:9;5899:6;5870:9;:36::i;:::-;-1:-1:-1;;;;;5946:19:0;;5919:24;5946:19;;;:11;:19;;;;;;;;904:10;5946:33;;;;;;;;-1:-1:-1;;5994:37:0;;5990:221;;6076:6;6056:16;:26;;6048:79;;;;-1:-1:-1;;;6048:79:0;;9234:2:1;6048:79:0;;;9216:21:1;9273:2;9253:18;;;9246:30;9312:34;9292:18;;;9285:62;-1:-1:-1;;;9363:18:1;;;9356:38;9411:19;;6048:79:0;9032:404:1;6048:79:0;6142:57;6151:6;904:10;6173:25;6192:6;6173:16;:25;:::i;:::-;6142:8;:57::i;:::-;-1:-1:-1;6230:4:0;;5747:495;-1:-1:-1;;;;5747:495:0:o;6250:215::-;904:10;6338:4;6387:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6387:34:0;;;;;;;;;;6338:4;;6355:80;;6378:7;;6387:47;;6424:10;;6387:47;:::i;13429:154::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;13523:6:::1;:27:::0;;-1:-1:-1;;;;;;13523:27:0::1;::::0;-1:-1:-1;;;;;13523:27:0;;::::1;;;::::0;;13561:4:::1;:14:::0;;-1:-1:-1;;;;;;13561:14:0::1;::::0;;;::::1;;::::0;;13429:154::o;6858:111::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6927:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;6927:34:0::1;6957:4;6927:34;::::0;;6858:111::o;15491:196::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;15591:9:::1;15566:21;:34;;15558:71;;;::::0;-1:-1:-1;;;15558:71:0;;9906:2:1;15558:71:0::1;::::0;::::1;9888:21:1::0;9945:2;9925:18;;;9918:30;9984:26;9964:18;;;9957:54;10028:18;;15558:71:0::1;9704:348:1::0;15558:71:0::1;15640:39;::::0;15648:10:::1;::::0;15640:39;::::1;;;::::0;15669:9;;15640:39:::1;::::0;;;15669:9;15648:10;15640:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;15491:196:::0;:::o;15860:230::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;15995:4:::1;-1:-1:-1::0;;;;;15973:27:0;::::1;::::0;15965:65:::1;;;::::0;-1:-1:-1;;;15965:65:0;;10259:2:1;15965:65:0::1;::::0;::::1;10241:21:1::0;10298:2;10278:18;;;10271:30;10337:27;10317:18;;;10310:55;10382:18;;15965:65:0::1;10057:349:1::0;15965:65:0::1;16041:41;::::0;-1:-1:-1;;;16041:41:0;;-1:-1:-1;;;;;10603:32:1;;;16041:41:0::1;::::0;::::1;10585:51:1::0;10652:18;;;10645:34;;;16041:27:0;::::1;::::0;::::1;::::0;10558:18:1;;16041:41:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15860:230:::0;;;:::o;14572:217::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;14649:1:::1;14637:9;:13;;;:30;;;;;14666:1;14654:9;:13;;;;14637:30;14629:39;;;::::0;::::1;;14679:12;:24:::0;;::::1;::::0;::::1;-1:-1:-1::0;;14679:24:0;;::::1;::::0;::::1;::::0;;;14714:13:::1;:25:::0;;;;::::1;::::0;;::::1;::::0;;14750:31:::1;14679:24:::0;;14750:19:::1;:31::i;14078:336::-:0;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;14210:7:::1;:14;14191:8;:15;:33;14183:76;;;::::0;-1:-1:-1;;;14183:76:0;;11142:2:1;14183:76:0::1;::::0;::::1;11124:21:1::0;11181:2;11161:18;;;11154:30;11220:32;11200:18;;;11193:60;11270:18;;14183:76:0::1;10940:354:1::0;14183:76:0::1;14274:9;14270:137;14292:8;:15;14288:1;:19;14270:137;;;14328:67;14344:10;14356:8;14365:1;14356:11;;;;;;;;:::i;:::-;;;;;;;3242:1;14382:2;:12;;;;:::i;:::-;14369:7;14377:1;14369:10;;;;;;;;:::i;:::-;;;;;;;:25;;;;:::i;:::-;14328:15;:67::i;:::-;14309:3:::0;::::1;::::0;::::1;:::i;:::-;;;;14270:137;;;;14078:336:::0;;:::o;1626:94::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;1691:21:::1;1709:1;1691:9;:21::i;:::-;1626:94::o:0;13316:101::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;13387:11:::1;:22:::0;;-1:-1:-1;;13387:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13316:101::o;6473:377::-;904:10;6566:4;6610:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6610:34:0;;;;;;;;;;6663:35;;;;6655:85;;;;-1:-1:-1;;;6655:85:0;;11773:2:1;6655:85:0;;;11755:21:1;11812:2;11792:18;;;11785:30;11851:34;11831:18;;;11824:62;-1:-1:-1;;;11902:18:1;;;11895:35;11947:19;;6655:85:0;11571:401:1;6655:85:0;6751:67;904:10;6774:7;6783:34;6802:15;6783:16;:34;:::i;6751:67::-;-1:-1:-1;6838:4:0;;6473:377;-1:-1:-1;;;6473:377:0:o;5252:167::-;5330:4;5347:42;904:10;5371:9;5382:6;5347:9;:42::i;12889:282::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;12976:16:::1;::::0;-1:-1:-1;;;;;12976:29:0;;::::1;:16:::0;::::1;:29:::0;12968:60:::1;;;::::0;-1:-1:-1;;;12968:60:0;;12179:2:1;12968:60:0::1;::::0;::::1;12161:21:1::0;12218:2;12198:18;;;12191:30;-1:-1:-1;;;12237:18:1;;;12230:48;12295:18;;12968:60:0::1;11977:342:1::0;12968:60:0::1;13039:16;:28:::0;;-1:-1:-1;;;;;;13039:28:0::1;-1:-1:-1::0;;;;;13039:28:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;13078:36:0;;;:18:::1;:36;::::0;;;;:43;;-1:-1:-1;;13078:43:0::1;-1:-1:-1::0;13078:43:0;;::::1;::::0;;;13132:31:::1;::::0;-1:-1:-1;13132:19:0::1;:31::i;14428:136::-:0;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;14470:12:::1;:16:::0;;-1:-1:-1;;14470:16:0;;::::1;::::0;;;14497:13:::1;:17:::0;;;;::::1;::::0;;14525:31:::1;14470:16:::0;;14525:19:::1;:31::i;15305:114::-:0;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;15351:13:::1;:17:::0;;-1:-1:-1;;15351:17:0::1;::::0;;15379:32:::1;15367:1;15351:17:::0;15379:19:::1;:32::i;13179:129::-:0;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;13288:12:::1;3242:1;13288:2;:12;:::i;:::-;13279:21;::::0;:6;:21:::1;:::i;:::-;13258:18;:42:::0;-1:-1:-1;13179:129:0:o;14990:187::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;15071:1:::1;15059:9;:13;;;:30;;;;;15088:1;15076:9;:13;;;;15059:30;15051:39;;;::::0;::::1;;15101:13;:25:::0;;-1:-1:-1;;15101:25:0::1;;::::0;::::1;;::::0;;15137:32:::1;-1:-1:-1::0;;15137:19:0::1;:32::i;6977:110::-:0;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7044:27:0::1;7074:5;7044:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;7044:35:0::1;::::0;;6977:110::o;1728:192::-;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1817:22:0;::::1;1809:73;;;::::0;-1:-1:-1;;;1809:73:0;;12526:2:1;1809:73:0::1;::::0;::::1;12508:21:1::0;12565:2;12545:18;;;12538:30;12604:34;12584:18;;;12577:62;-1:-1:-1;;;12655:18:1;;;12648:36;12701:19;;1809:73:0::1;12324:402:1::0;1809:73:0::1;1893:19;1903:8;1893:9;:19::i;15185:112::-:0;1449:7;1476:6;-1:-1:-1;;;;;1476:6:0;904:10;1538:23;1530:68;;;;-1:-1:-1;;;1530:68:0;;;;;;;:::i;:::-;15230:12:::1;:16:::0;;-1:-1:-1;;15230:16:0::1;::::0;;15257:32:::1;15230:16:::0;15245:1:::1;12498:383:::0;12585:10;12581:140;;;12657:12;;12613:9;;;;12637:33;;12657:12;;12637:19;:33::i;:::-;12696:13;;;;;;;;;;;;;;;;;;;;;;;;;;;12685:8;:24;;;;;;-1:-1:-1;;12685:24:0;;;;;;;;;-1:-1:-1;;12581:140:0;12735:11;12731:143;;;12808:13;;12764:9;;;;12788:34;;12808:13;;12788:19;:34::i;:::-;12849:13;;;;;;;;;;;;;;;;;;;;;;;;;;;12837:9;:25;;;;;;-1:-1:-1;;12837:25:0;;;;;;;;;-1:-1:-1;;12498:383:0;;:::o;7234:335::-;-1:-1:-1;;;;;7327:19:0;;7319:68;;;;-1:-1:-1;;;7319:68:0;;12933:2:1;7319:68:0;;;12915:21:1;12972:2;12952:18;;;12945:30;13011:34;12991:18;;;12984:62;-1:-1:-1;;;13062:18:1;;;13055:34;13106:19;;7319:68:0;12731:400:1;7319:68:0;-1:-1:-1;;;;;7406:21:0;;7398:68;;;;-1:-1:-1;;;7398:68:0;;13338:2:1;7398:68:0;;;13320:21:1;13377:2;13357:18;;;13350:30;13416:34;13396:18;;;13389:62;-1:-1:-1;;;13467:18:1;;;13460:32;13509:19;;7398:68:0;13136:398:1;7398:68:0;-1:-1:-1;;;;;7477:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7529:32;;1635:25:1;;;7529:32:0;;1608:18:1;7529:32:0;;;;;;;;7234:335;;;:::o;7577:1609::-;-1:-1:-1;;;;;7665:18:0;;7657:68;;;;-1:-1:-1;;;7657:68:0;;13741:2:1;7657:68:0;;;13723:21:1;13780:2;13760:18;;;13753:30;13819:34;13799:18;;;13792:62;-1:-1:-1;;;13870:18:1;;;13863:35;13915:19;;7657:68:0;13539:401:1;7657:68:0;-1:-1:-1;;;;;7744:16:0;;7736:64;;;;-1:-1:-1;;;7736:64:0;;14147:2:1;7736:64:0;;;14129:21:1;14186:2;14166:18;;;14159:30;14225:34;14205:18;;;14198:62;-1:-1:-1;;;14276:18:1;;;14269:33;14319:19;;7736:64:0;13945:399:1;7736:64:0;7828:1;7819:6;:10;7811:64;;;;-1:-1:-1;;;7811:64:0;;14551:2:1;7811:64:0;;;14533:21:1;14590:2;14570:18;;;14563:30;14629:34;14609:18;;;14602:62;-1:-1:-1;;;14680:18:1;;;14673:39;14729:19;;7811:64:0;14349:405:1;7811:64:0;-1:-1:-1;;;;;5219:17:0;;5192:7;5219:17;;;:8;:17;;;;;;7894:6;:25;;7886:86;;;;-1:-1:-1;;;7886:86:0;;14961:2:1;7886:86:0;;;14943:21:1;15000:2;14980:18;;;14973:30;15039:34;15019:18;;;15012:62;-1:-1:-1;;;15090:18:1;;;15083:47;15147:19;;7886:86:0;14759:413:1;7886:86:0;8093:38;;;;;;;;;8118:13;8093:38;;;;;;;;;;;;;;;;8197:4;;8022:22;;7993:26;;;;-1:-1:-1;;;;;8197:4:0;;;8191:10;;;;8187:414;;-1:-1:-1;;8294:21:0;;;;;;;;8306:9;8294:21;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8354:26:0;;8233:18;8354:26;;;:18;:26;;;;;;;8233:18;;-1:-1:-1;8275:4:0;;-1:-1:-1;8294:21:0;8354:26;;8187:414;;;8410:4;;-1:-1:-1;;;;;8410:4:0;;;8402:12;;;;8398:203;;-1:-1:-1;;8504:20:0;;;;;;;;8516:8;8504:20;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8563:26:0;;-1:-1:-1;8563:26:0;;;:18;:26;;;;;;;;8446:17;;-1:-1:-1;8487:2:0;;-1:-1:-1;8563:26:0;;8398:203;8656:18;;8646:4;8613:12;5219:17;;;:8;:17;;;;;;8613:12;;-1:-1:-1;8628:46:0;;-1:-1:-1;8704:17:0;8688:12;:33;;;;;;;;:::i;:::-;;;:46;;;;-1:-1:-1;8726:8:0;;;;;;;8725:9;8688:46;:61;;;;-1:-1:-1;8738:11:0;;;;8688:61;:72;;;;;8753:7;8688:72;:101;;;;-1:-1:-1;;;;;;8765:24:0;;;;;;:18;:24;;;;;;;;8764:25;8688:101;:128;;;;-1:-1:-1;;;;;;8794:22:0;;;;;;:18;:22;;;;;;;;8793:23;8688:128;8685:193;;;8832:34;8847:18;;8832:14;:34::i;:::-;8910:22;8894:12;:38;;;;;;;;:::i;:::-;;:80;;;;8953:21;8894:80;:147;;;-1:-1:-1;9017:19:0;;;;8995;;:41;;9017:19;8995:41;:::i;:::-;:46;;;8894:147;8890:289;;;9058:33;9074:4;9080:2;9084:6;9058:15;:33::i;:::-;8890:289;;;9124:43;9139:4;9145:2;9149:6;9157:9;9124:14;:43::i;:::-;7646:1540;;;;;7577:1609;;;:::o;13595:232::-;13692:31;13707:6;13715:7;13692:14;:31::i;:::-;13734;13746:9;13757:7;13734:11;:31::i;:::-;13800:9;-1:-1:-1;;;;;13783:36:0;13792:6;-1:-1:-1;;;;;13783:36:0;-1:-1:-1;;;;;;;;;;;13811:7:0;13783:36;;;;1635:25:1;;1623:2;1608:18;;1489:177;1928:173:0;1984:16;2003:6;;-1:-1:-1;;;;;2020:17:0;;;-1:-1:-1;;;;;;2020:17:0;;;;;;2053:40;;2003:6;;;;;;;2053:40;;1984:16;2053:40;1973:128;1928:173;:::o;12043:447::-;12105:6;12113;12136:4;:9;;12144:1;12136:9;12132:55;;-1:-1:-1;12170:1:0;;;;-1:-1:-1;12043:447:0;-1:-1:-1;12043:447:0:o;12132:55::-;12201:4;:9;;12209:1;12201:9;12197:158;;12231:16;;-1:-1:-1;;;;;12231:16:0;12227:87;;-1:-1:-1;12292:1:0;;12295:2;;-1:-1:-1;12043:447:0;-1:-1:-1;12043:447:0:o;12227:87::-;-1:-1:-1;12336:2:0;;;;-1:-1:-1;12043:447:0;-1:-1:-1;12043:447:0:o;12197:158::-;12379:16;;-1:-1:-1;;;;;12379:16:0;12375:80;;-1:-1:-1;12436:1:0;;12439:3;;-1:-1:-1;12043:447:0;-1:-1:-1;12043:447:0:o;12375:80::-;-1:-1:-1;12473:3:0;;12478;;-1:-1:-1;12043:447:0;-1:-1:-1;12043:447:0:o;10451:487::-;4159:8;:15;;-1:-1:-1;;4159:15:0;;;;;;10616:24:::1;10639:1;10616:20:::0;:24:::1;:::i;:::-;10593:47:::0;-1:-1:-1;10593:47:0;10727:21:::1;10759:45;10593:47:::0;10798:4:::1;10759:16;:45::i;:::-;10815:18;10836:40;10861:14:::0;10836:21:::1;:40;:::i;:::-;10815:61;;10887:43;10900:17;10919:10;10887:12;:43::i;:::-;-1:-1:-1::0;;4197:8:0;:16;;-1:-1:-1;;4197:16:0;;;-1:-1:-1;;;10451:487:0:o;9250:1193::-;9428:19;;;;9397:7;;9428:24;;;9425:391;;9469:18;9522:5;9500:9;:19;;;9490:29;;:7;:29;;;;:::i;:::-;:37;;;;:::i;:::-;9469:58;-1:-1:-1;9546:15:0;;9542:263;;9582:29;9601:10;9582:29;;:::i;:::-;;;9655:10;9630:11;:21;;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;9684:38:0;;-1:-1:-1;9704:4:0;9711:10;9684:11;:38::i;:::-;9746:43;;1635:25:1;;;9771:4:0;;-1:-1:-1;;;;;9746:43:0;;;-1:-1:-1;;;;;;;;;;;9746:43:0;1623:2:1;1608:18;9746:43:0;;;;;;;9542:263;9454:362;9425:391;9830:19;;:24;;;9826:398;;9902:19;;9871:18;;9924:5;;9892:29;;;;:7;:29;:::i;:::-;:37;;;;:::i;:::-;9871:58;-1:-1:-1;9948:15:0;;9944:269;;9984:29;10003:10;9984:29;;:::i;:::-;;;10057:10;10032:11;:21;;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;;10098:16:0;;10086:41;;-1:-1:-1;;;;;10098:16:0;10116:10;10086:11;:41::i;:::-;10168:16;;10151:46;;1635:25:1;;;-1:-1:-1;;;;;10168:16:0;;;;10151:46;;;-1:-1:-1;;;;;;;;;;;10151:46:0;1623:2:1;1608:18;10151:46:0;;;;;;;9944:269;9856:368;9826:398;10238:31;10253:6;10261:7;10238:14;:31::i;:::-;10284:20;;10280:156;;10321:39;10333:9;10344:15;10321:11;:39::i;:::-;10397:9;-1:-1:-1;;;;;10380:44:0;10389:6;-1:-1:-1;;;;;10380:44:0;-1:-1:-1;;;;;;;;;;;10408:15:0;10380:44;;;;1635:25:1;;1623:2;1608:18;;1489:177;10380:44:0;;;;;;;;10280:156;9358:1085;9250:1193;;;;:::o;13953:113::-;-1:-1:-1;;;;;14030:17:0;;;;;;:8;:17;;;;;:28;;14051:7;;14030:17;:28;;14051:7;;14030:28;:::i;:::-;;;;-1:-1:-1;;;;13953:113:0:o;13835:110::-;-1:-1:-1;;;;;13909:17:0;;;;;;:8;:17;;;;;:28;;13930:7;;13909:17;:28;;13930:7;;13909:28;:::i;11449:586::-;11618:16;;;11632:1;11618:16;;;;;;;;11594:21;;11618:16;;;;;;;;;;-1:-1:-1;11618:16:0;11594:40;;11663:4;11645;11650:1;11645:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;11645:23:0;;;-1:-1:-1;;;;;11645:23:0;;;;;11689:6;;;;;;;;;-1:-1:-1;;;;;11689:6:0;-1:-1:-1;;;;;11689:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11679:4;11684:1;11679:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11679:23:0;;;:7;;;;;;;;;:23;11747:6;;11715:53;;11732:4;;11747:6;;;;11756:11;11715:8;:53::i;:::-;11807:6;;;:220;;-1:-1:-1;;;11807:220:0;;:6;;;;-1:-1:-1;;;;;11807:6:0;;:57;;:220;;11879:11;;11905:1;;11949:4;;11976:9;;12001:15;;11807:220;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11523:512;11449:586;;:::o;10946:495::-;11126:6;;11094:53;;11111:4;;11126:6;;;-1:-1:-1;;;;;11126:6:0;11135:11;11094:8;:53::i;:::-;11190:6;;-1:-1:-1;;;;;11190:6:0;;;;;:22;11220:9;11253:4;11273:11;11299:1;;11385:7;1449;1476:6;-1:-1:-1;;;;;1476:6:0;;1403:87;11385:7;11190:243;;;;;;-1:-1:-1;;;;;;11190:243:0;;;-1:-1:-1;;;;;17312:15:1;;;11190:243:0;;;17294:34:1;17344:18;;;17337:34;;;;17387:18;;;17380:34;;;;17430:18;;;17423:34;17494:15;;;17473:19;;;17466:44;11407:15:0;17526:19:1;;;17519:35;17228:19;;11190:243:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14:269:1:-;71:6;124:2;112:9;103:7;99:23;95:32;92:52;;;140:1;137;130:12;92:52;179:9;166:23;229:4;222:5;218:16;211:5;208:27;198:55;;249:1;246;239:12;198:55;272:5;14:269;-1:-1:-1;;;14:269:1:o;288:548::-;400:4;429:2;458;447:9;440:21;490:6;484:13;533:6;528:2;517:9;513:18;506:34;558:1;568:140;582:6;579:1;576:13;568:140;;;677:14;;;673:23;;667:30;643:17;;;662:2;639:26;632:66;597:10;;568:140;;;572:3;757:1;752:2;743:6;732:9;728:22;724:31;717:42;827:2;820;816:7;811:2;803:6;799:15;795:29;784:9;780:45;776:54;768:62;;;;288:548;;;;:::o;841:131::-;-1:-1:-1;;;;;916:31:1;;906:42;;896:70;;962:1;959;952:12;977:315;1045:6;1053;1106:2;1094:9;1085:7;1081:23;1077:32;1074:52;;;1122:1;1119;1112:12;1074:52;1161:9;1148:23;1180:31;1205:5;1180:31;:::i;:::-;1230:5;1282:2;1267:18;;;;1254:32;;-1:-1:-1;;;977:315:1:o;1671:456::-;1748:6;1756;1764;1817:2;1805:9;1796:7;1792:23;1788:32;1785:52;;;1833:1;1830;1823:12;1785:52;1872:9;1859:23;1891:31;1916:5;1891:31;:::i;:::-;1941:5;-1:-1:-1;1998:2:1;1983:18;;1970:32;2011:33;1970:32;2011:33;:::i;:::-;1671:456;;2063:7;;-1:-1:-1;;;2117:2:1;2102:18;;;;2089:32;;1671:456::o;2321:388::-;2389:6;2397;2450:2;2438:9;2429:7;2425:23;2421:32;2418:52;;;2466:1;2463;2456:12;2418:52;2505:9;2492:23;2524:31;2549:5;2524:31;:::i;:::-;2574:5;-1:-1:-1;2631:2:1;2616:18;;2603:32;2644:33;2603:32;2644:33;:::i;:::-;2696:7;2686:17;;;2321:388;;;;;:::o;2714:247::-;2773:6;2826:2;2814:9;2805:7;2801:23;2797:32;2794:52;;;2842:1;2839;2832:12;2794:52;2881:9;2868:23;2900:31;2925:5;2900:31;:::i;2966:180::-;3025:6;3078:2;3066:9;3057:7;3053:23;3049:32;3046:52;;;3094:1;3091;3084:12;3046:52;-1:-1:-1;3117:23:1;;2966:180;-1:-1:-1;2966:180:1:o;3651:127::-;3712:10;3707:3;3703:20;3700:1;3693:31;3743:4;3740:1;3733:15;3767:4;3764:1;3757:15;3783:275;3854:2;3848:9;3919:2;3900:13;;-1:-1:-1;;3896:27:1;3884:40;;3954:18;3939:34;;3975:22;;;3936:62;3933:88;;;4001:18;;:::i;:::-;4037:2;4030:22;3783:275;;-1:-1:-1;3783:275:1:o;4063:183::-;4123:4;4156:18;4148:6;4145:30;4142:56;;;4178:18;;:::i;:::-;-1:-1:-1;4223:1:1;4219:14;4235:4;4215:25;;4063:183::o;4251:662::-;4305:5;4358:3;4351:4;4343:6;4339:17;4335:27;4325:55;;4376:1;4373;4366:12;4325:55;4412:6;4399:20;4438:4;4462:60;4478:43;4518:2;4478:43;:::i;:::-;4462:60;:::i;:::-;4556:15;;;4642:1;4638:10;;;;4626:23;;4622:32;;;4587:12;;;;4666:15;;;4663:35;;;4694:1;4691;4684:12;4663:35;4730:2;4722:6;4718:15;4742:142;4758:6;4753:3;4750:15;4742:142;;;4824:17;;4812:30;;4862:12;;;;4775;;4742:142;;;-1:-1:-1;4902:5:1;4251:662;-1:-1:-1;;;;;;4251:662:1:o;4918:1215::-;5036:6;5044;5097:2;5085:9;5076:7;5072:23;5068:32;5065:52;;;5113:1;5110;5103:12;5065:52;5153:9;5140:23;5182:18;5223:2;5215:6;5212:14;5209:34;;;5239:1;5236;5229:12;5209:34;5277:6;5266:9;5262:22;5252:32;;5322:7;5315:4;5311:2;5307:13;5303:27;5293:55;;5344:1;5341;5334:12;5293:55;5380:2;5367:16;5402:4;5426:60;5442:43;5482:2;5442:43;:::i;5426:60::-;5520:15;;;5602:1;5598:10;;;;5590:19;;5586:28;;;5551:12;;;;5626:19;;;5623:39;;;5658:1;5655;5648:12;5623:39;5682:11;;;;5702:217;5718:6;5713:3;5710:15;5702:217;;;5798:3;5785:17;5815:31;5840:5;5815:31;:::i;:::-;5859:18;;5735:12;;;;5897;;;;5702:217;;;5938:5;-1:-1:-1;;5981:18:1;;5968:32;;-1:-1:-1;;6012:16:1;;;6009:36;;;6041:1;6038;6031:12;6009:36;;6064:63;6119:7;6108:8;6097:9;6093:24;6064:63;:::i;:::-;6054:73;;;4918:1215;;;;;:::o;6138:118::-;6224:5;6217:13;6210:21;6203:5;6200:32;6190:60;;6246:1;6243;6236:12;6261:241;6317:6;6370:2;6358:9;6349:7;6345:23;6341:32;6338:52;;;6386:1;6383;6376:12;6338:52;6425:9;6412:23;6444:28;6466:5;6444:28;:::i;6983:356::-;7185:2;7167:21;;;7204:18;;;7197:30;7263:34;7258:2;7243:18;;7236:62;7330:2;7315:18;;6983:356::o;7344:127::-;7405:10;7400:3;7396:20;7393:1;7386:31;7436:4;7433:1;7426:15;7460:4;7457:1;7450:15;7476:422;7565:1;7608:5;7565:1;7622:270;7643:7;7633:8;7630:21;7622:270;;;7702:4;7698:1;7694:6;7690:17;7684:4;7681:27;7678:53;;;7711:18;;:::i;:::-;7761:7;7751:8;7747:22;7744:55;;;7781:16;;;;7744:55;7860:22;;;;7820:15;;;;7622:270;;;7626:3;7476:422;;;;;:::o;7903:806::-;7952:5;7982:8;7972:80;;-1:-1:-1;8023:1:1;8037:5;;7972:80;8071:4;8061:76;;-1:-1:-1;8108:1:1;8122:5;;8061:76;8153:4;8171:1;8166:59;;;;8239:1;8234:130;;;;8146:218;;8166:59;8196:1;8187:10;;8210:5;;;8234:130;8271:3;8261:8;8258:17;8255:43;;;8278:18;;:::i;:::-;-1:-1:-1;;8334:1:1;8320:16;;8349:5;;8146:218;;8448:2;8438:8;8435:16;8429:3;8423:4;8420:13;8416:36;8410:2;8400:8;8397:16;8392:2;8386:4;8383:12;8379:35;8376:77;8373:159;;;-1:-1:-1;8485:19:1;;;8517:5;;8373:159;8564:34;8589:8;8583:4;8564:34;:::i;:::-;8634:6;8630:1;8626:6;8622:19;8613:7;8610:32;8607:58;;;8645:18;;:::i;:::-;8683:20;;7903:806;-1:-1:-1;;;7903:806:1:o;8714:140::-;8772:5;8801:47;8842:4;8832:8;8828:19;8822:4;8801:47;:::i;8859:168::-;8932:9;;;8963;;8980:15;;;8974:22;;8960:37;8950:71;;9001:18;;:::i;9441:128::-;9508:9;;;9529:11;;;9526:37;;;9543:18;;:::i;9574:125::-;9639:9;;;9660:10;;;9657:36;;;9673:18;;:::i;10690:245::-;10757:6;10810:2;10798:9;10789:7;10785:23;10781:32;10778:52;;;10826:1;10823;10816:12;10778:52;10858:9;10852:16;10877:28;10899:5;10877:28;:::i;11299:127::-;11360:10;11355:3;11351:20;11348:1;11341:31;11391:4;11388:1;11381:15;11415:4;11412:1;11405:15;11431:135;11470:3;11491:17;;;11488:43;;11511:18;;:::i;:::-;-1:-1:-1;11558:1:1;11547:13;;11431:135::o;15177:127::-;15238:10;15233:3;15229:20;15226:1;15219:31;15269:4;15266:1;15259:15;15293:4;15290:1;15283:15;15309:168;15376:6;15402:10;;;15414;;;15398:27;;15437:11;;;15434:37;;;15451:18;;:::i;:::-;15434:37;15309:168;;;;:::o;15482:217::-;15522:1;15548;15538:132;;15592:10;15587:3;15583:20;15580:1;15573:31;15627:4;15624:1;15617:15;15655:4;15652:1;15645:15;15538:132;-1:-1:-1;15684:9:1;;15482:217::o;15704:251::-;15774:6;15827:2;15815:9;15806:7;15802:23;15798:32;15795:52;;;15843:1;15840;15833:12;15795:52;15875:9;15869:16;15894:31;15919:5;15894:31;:::i;15960:988::-;16230:4;16278:3;16267:9;16263:19;16309:6;16298:9;16291:25;16335:2;16373:6;16368:2;16357:9;16353:18;16346:34;16416:3;16411:2;16400:9;16396:18;16389:31;16440:6;16475;16469:13;16506:6;16498;16491:22;16544:3;16533:9;16529:19;16522:26;;16583:2;16575:6;16571:15;16557:29;;16604:1;16614:195;16628:6;16625:1;16622:13;16614:195;;;16693:13;;-1:-1:-1;;;;;16689:39:1;16677:52;;16784:15;;;;16749:12;;;;16725:1;16643:9;16614:195;;;-1:-1:-1;;;;;;;16865:32:1;;;;16860:2;16845:18;;16838:60;-1:-1:-1;;;16929:3:1;16914:19;16907:35;16826:3;15960:988;-1:-1:-1;;;15960:988:1:o;17565:306::-;17653:6;17661;17669;17722:2;17710:9;17701:7;17697:23;17693:32;17690:52;;;17738:1;17735;17728:12;17690:52;17767:9;17761:16;17751:26;;17817:2;17806:9;17802:18;17796:25;17786:35;;17861:2;17850:9;17846:18;17840:25;17830:35;;17565:306;;;;;:::o

Swarm Source

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