ETH Price: $3,436.15 (-1.19%)
Gas: 26 Gwei

Token

Tsuka 2.0 (Tsuka2)
 

Overview

Max Total Supply

100,000,000 Tsuka2

Holders

32

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
64,686.411144135009251851 Tsuka2

Value
$0.00
0x08728736bd0335c2a6d8f1a6831e13e6ed882c5d
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:
Tsuka2

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-12
*/

// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.9.0;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    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 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;
    }
}

interface IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IV2Pair {
    function factory() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function sync() external;
}

interface IRouter01 {
    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 addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}

contract Tsuka2 is IERC20 {
    mapping (address => uint256) private _tOwned;
    mapping (address => bool) lpPairs;
    uint256 private timeSinceLastPair = 0;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) private _liquidityHolders;
    mapping (address => bool) private _isExcludedFromProtection;
    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) private presaleAddresses;
    bool private allowedPresaleExclusion = true;
   
    uint256 constant private startingSupply = 1 * 10 ** 8;

    string constant private _name = "Tsuka 2.0";
    string constant private _symbol = "Tsuka2";
    uint8 constant private _decimals = 18;

    uint256 constant private _tTotal = startingSupply * 10**_decimals;

    struct Fees {
        uint16 buyFee;
        uint16 sellFee;
        uint16 transferFee;
    }

    Fees public _taxRates = Fees({
        buyFee: 400,
        sellFee: 400,
        transferFee: 0
    });

    uint256 constant public maxSellTaxes = 2500;
    uint256 constant public maxTransferTaxes = 500;
    uint256 constant masterTaxDivisor = 10000;

    bool public buytaxesAreLocked;
    bool public selltaxesAreLocked;

    IRouter02 public dexRouter;
    address public lpPair;
    address public ETHPair;
    address public USDC = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48;
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;

    struct TaxWallets {
        address marketing;
    }

    TaxWallets public _taxWallets = TaxWallets({
        marketing: 0x1d0Da74D4Fd06A5278E5472095BD1a18f5D0E5cf
    });

    bool public tradingEnabled = false;
    bool public _hasLiqBeenAdded = false;

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

    modifier onlyOwner() {
        require(_owner == msg.sender, "Caller =/= owner.");
        _;
    }

    constructor () payable {
        _tOwned[msg.sender] = _tTotal;
        emit Transfer(address(0), msg.sender, _tTotal);

        // Set the owner.
        _owner = msg.sender;
        originalDeployer = msg.sender;

        if (block.chainid == 1) {
            dexRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        } else if (block.chainid == 5) {
            dexRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            USDC = 0xD87Ba7A50B2E7E660f678A895E4B72E7CB4CCd9C;
        } else {
            revert();
        }

        ETHPair = IFactoryV2(dexRouter.factory()).createPair(dexRouter.WETH(), address(this));
        lpPair = IFactoryV2(dexRouter.factory()).createPair(USDC, address(this));
        lpPairs[lpPair] = true;
        lpPairs[ETHPair] = true;

        _approve(_owner, address(dexRouter), type(uint256).max);
        _approve(address(this), address(dexRouter), type(uint256).max);

        _isExcludedFromFees[_owner] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[DEAD] = true;
        _liquidityHolders[_owner] = true;
    }

    receive() external payable {}

    address private _owner;
    address public originalDeployer;

    function transferOwner(address newOwner) external onlyOwner {
        require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address.");
        require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address.");
        setExcludedFromFees(_owner, false);
        setExcludedFromFees(newOwner, true);
        
        if (balanceOf(_owner) > 0) {
            finalizeTransfer(_owner, newOwner, balanceOf(_owner), false, false, true);
        }
        
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
        
    }

    function renounceOwnership() external onlyOwner {
        setExcludedFromFees(_owner, false);
        address oldOwner = _owner;
        _owner = address(0);
        emit OwnershipTransferred(oldOwner, address(0));
    }

    function renounceOriginalDeployer() external {
        require(msg.sender == originalDeployer, "Can only be called by original deployer.");
        originalDeployer = address(0);
    }

    function totalSupply() external pure override returns (uint256) { if (_tTotal == 0) { revert(); } return _tTotal; }
    function decimals() external pure override returns (uint8) { if (_tTotal == 0) { revert(); } return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return _owner; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[account];
    }

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

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

    function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

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

    function approveContractContingency() external onlyOwner returns (bool) {
        _approve(address(this), address(dexRouter), type(uint256).max);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }

    function setNewRouter(address newRouter) external onlyOwner {
        require(!_hasLiqBeenAdded, "Cannot change after liquidity.");
        IRouter02 _newRouter = IRouter02(newRouter);
        address get_pair = IFactoryV2(_newRouter.factory()).getPair(address(this), _newRouter.WETH());
        if (get_pair == address(0)) {
            lpPair = IFactoryV2(_newRouter.factory()).createPair(address(this), _newRouter.WETH());
        }
        else {
            lpPair = get_pair;
        }
        dexRouter = _newRouter;
        _approve(address(this), address(dexRouter), type(uint256).max);
    }

    function setLpPair(address pair, bool enabled) external onlyOwner {
        if (!enabled) {
            lpPairs[pair] = false;
        } else {
            if (timeSinceLastPair != 0) {
                require(block.timestamp - timeSinceLastPair > 1 days, "1 Day cooldown.!");
            }
            lpPairs[pair] = true;
            timeSinceLastPair = block.timestamp;
        }
    }

    function isExcludedFromFees(address account) external view returns(bool) {
        return _isExcludedFromFees[account];
    }

    function isExcludedFromProtection(address account) external view returns (bool) {
        return _isExcludedFromProtection[account];
    }

    function setExcludedFromFees(address account, bool enabled) public onlyOwner {
        _isExcludedFromFees[account] = enabled;
    }

    function setExcludedFromProtection(address account, bool enabled) external onlyOwner {
        _isExcludedFromProtection[account] = enabled;
    }

    function setMarketingWallet(address wallet) external onlyOwner {
        _taxWallets.marketing = wallet;
    }

    function lockBuyTaxes() external onlyOwner {
        // This will lock buytaxes at their current value forever, do not call this unless you're sure.
        buytaxesAreLocked = true;
    }

    function lockSellTaxes() external onlyOwner {
        // This will lock selltaxes at their current value forever, do not call this unless you're sure.
        selltaxesAreLocked = true;
    }

    function setBuyTaxes(uint16 buyFee) external onlyOwner {
        require(!buytaxesAreLocked, "Taxes are locked.");
        _taxRates.buyFee = buyFee;
    }

    function setSellTaxes(uint16 sellFee, uint16 transferFee) external onlyOwner {
        require(!selltaxesAreLocked, "Taxes are locked.");
        require(sellFee <= maxSellTaxes
                && transferFee <= maxTransferTaxes,
                "Cannot exceed maximums.");
        _taxRates.sellFee = sellFee;
        _taxRates.transferFee = transferFee;
    }

    function claimStuckTokens(address token) external onlyOwner {
        require(token != address(this), "Owner cannot claim native tokens");
        if (token == address(0x0)) {
            payable(msg.sender).transfer(address(this).balance);
            return;
        }
        IERC20 ERC20token = IERC20(token);
        uint256 balance = ERC20token.balanceOf(address(this));
        ERC20token.transfer(msg.sender, balance);
    }

    function claimStuckETH(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount,"Address: insufficient balance");
        (bool success, ) = recipient.call{value: amount}("");
        require(success,"Address: unable to send value, recipient may have reverted"
        );
    }

    function excludePresaleAddresses(address router, address presale) external onlyOwner {
        require(allowedPresaleExclusion);
        require(router != address(this) && presale != address(this), "Just don't.");
        if (router == presale) {
            _liquidityHolders[presale] = true;
            presaleAddresses[presale] = true;
            setExcludedFromFees(presale, true);
        } else {
            _liquidityHolders[router] = true;
            _liquidityHolders[presale] = true;
            presaleAddresses[router] = true;
            presaleAddresses[presale] = true;
            setExcludedFromFees(router, true);
            setExcludedFromFees(presale, true);
        }
    }

    function _hasLimits(address from, address to) internal view returns (bool) {
        return from != _owner
            && to != _owner
            && tx.origin != _owner
            && !_liquidityHolders[to]
            && !_liquidityHolders[from]
            && to != DEAD
            && to != address(0)
            && from != address(this);
    }

    function _transfer(address from, address to, uint256 amount) internal returns (bool) {
        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");
        bool buy = false;
        bool sell = false;
        bool other = false;
        if (lpPairs[from]) {
            buy = true;
        } else if (lpPairs[to]) {
            sell = true;
        } else {
            other = true;
        }
        if (_hasLimits(from, to)) {
            if(!tradingEnabled) {
                revert("Trading not yet enabled!");
            }
        }

        return finalizeTransfer(from, to, amount, buy, sell, other);
    }

    function _checkLiquidityAdd(address from, address to) internal {
        require(!_hasLiqBeenAdded, "Liquidity already added and marked.");
        if (!_hasLimits(from, to) && to == ETHPair) {
            _liquidityHolders[from] = true;
            _isExcludedFromFees[from] = true;
            _hasLiqBeenAdded = true;
        }
    }

    function enableTrading() public onlyOwner {
        require(!tradingEnabled, "Trading already enabled!");
        require(_hasLiqBeenAdded, "Liquidity must be added.");
        tradingEnabled = true;
        allowedPresaleExclusion = false;
    }

    function sweepContingency() external onlyOwner {
        require(!_hasLiqBeenAdded, "Cannot call after liquidity.");
        payable(_owner).transfer(address(this).balance);
    }

    function multiSendTokens(address[] memory accounts, uint256[] memory amounts) external onlyOwner {
        require(accounts.length == amounts.length, "Lengths do not match.");
        for (uint8 i = 0; i < accounts.length; i++) {
            require(balanceOf(msg.sender) >= amounts[i]);
            finalizeTransfer(msg.sender, accounts[i], amounts[i]*10**_decimals, false, false, true);
        }
    }

    function finalizeTransfer(address from, address to, uint256 amount, bool buy, bool sell, bool other) internal returns (bool) {
        if (!_hasLiqBeenAdded) {
            _checkLiquidityAdd(from, to);
            if (!_hasLiqBeenAdded && _hasLimits(from, to) && !_isExcludedFromProtection[from] && !_isExcludedFromProtection[to] && !other) {
                revert("Pre-liquidity transfer protection.");
            }
        }

        bool takeFee = true;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]){
            takeFee = false;
        }

        _tOwned[from] -= amount;
        uint256 amountReceived = (takeFee) ? takeTaxes(from, buy, sell, amount) : amount;
        _tOwned[to] += amountReceived;

        emit Transfer(from, to, amountReceived);
        return true;
    }

    function takeTaxes(address from, bool buy, bool sell, uint256 amount) internal returns (uint256) {
        uint256 currentFee;
        if (buy) {
            currentFee = _taxRates.buyFee;
        } else if (sell) {
            currentFee = _taxRates.sellFee;
        } else {
            currentFee = _taxRates.transferFee;
        }
        uint256 feeAmount = amount * currentFee / masterTaxDivisor;
        if (feeAmount > 0) {
            _tOwned[_taxWallets.marketing] += feeAmount;
            emit Transfer(from, _taxWallets.marketing, feeAmount);
        }

        return amount - feeAmount;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","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":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ETHPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"USDC","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxRates","outputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxWallets","outputs":[{"internalType":"address","name":"marketing","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":[],"name":"approveContractContingency","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":"buytaxesAreLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"address","name":"presale","type":"address"}],"name":"excludePresaleAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromProtection","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lockSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiSendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"originalDeployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOriginalDeployer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"selltaxesAreLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sweepContingency","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":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

600060028190556008805460ff19166001179055610190608081905260a05260c0526009805465ffffffffffff19166301900190179055600d80546001600160a01b031990811673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4817909155610100604052731d0da74d4fd06a5278e5472095bd1a18f5d0e5cf60e0819052600e8054909216179055600f805461ffff19169055620000a26012600a62000793565b620000b2906305f5e100620007ab565b33600081815260208190526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620000f56012600a62000793565b62000105906305f5e100620007ab565b60405190815260200160405180910390a3600f805462010000600160b01b0319163362010000810291909117909155601080546001600160a01b0319169091179055466001036200018057600a805462010000600160b01b031916757a250d5630b4cf539739df2c5dacb4c659f2488d0000179055620001e6565b46600503620001e157600a8054757a250d5630b4cf539739df2c5dacb4c659f2488d000062010000600160b01b0319909116179055600d80546001600160a01b03191673d87ba7a50b2e7e660f678a895e4b72e7cb4ccd9c179055620001e6565b600080fd5b600a60029054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200023a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002609190620007cd565b6001600160a01b031663c9c65396600a60029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e89190620007cd565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035b9190620007cd565b600c80546001600160a01b0319166001600160a01b03928316179055600a546040805163c45a015560e01b81529051620100009092049092169163c45a01559160048083019260209291908290030181865afa158015620003c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e69190620007cd565b600d546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000438573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045e9190620007cd565b600b80546001600160a01b0319166001600160a01b039283169081179091556000908152600160208190526040808320805460ff199081168417909155600c548516845292208054909216179055600f54600a54620004cf926201000092839004811692909104166000196200057d565b600a54620004f19030906201000090046001600160a01b03166000196200057d565b600f80546001600160a01b03620100009182900481166000908152600660209081526040808320805460ff19908116600190811790925530855282852080548216831790557f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e228054821683179055965495909504909316825260049052208054909216179055620007f8565b6001600160a01b038316620005cf5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064015b60405180910390fd5b6001600160a01b0382166200061d5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401620005c6565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006d5578160001904821115620006b957620006b96200067e565b80851615620006c757918102915b93841c939080029062000699565b509250929050565b600082620006ee575060016200078d565b81620006fd575060006200078d565b8160018114620007165760028114620007215762000741565b60019150506200078d565b60ff8411156200073557620007356200067e565b50506001821b6200078d565b5060208310610133831016604e8410600b841016171562000766575081810a6200078d565b62000772838362000694565b80600019048211156200078957620007896200067e565b0290505b92915050565b6000620007a460ff841683620006dd565b9392505050565b6000816000190483118215151615620007c857620007c86200067e565b500290565b600060208284031215620007e057600080fd5b81516001600160a01b0381168114620007a457600080fd5b61281b80620008086000396000f3fe60806040526004361061026b5760003560e01c8063590ffdce11610144578063a9059cbb116100b6578063e8bd855d1161007a578063e8bd855d146107da578063eafb5a3c146107fa578063ee5d9c2d1461081a578063f94aa1b41461082f578063f9d0831a1461084f578063feadde9c1461086f57600080fd5b8063a9059cbb14610728578063b1b08f7114610748578063b3d514fb1461075e578063bf62297914610774578063dd62ed3e1461079457600080fd5b806381cf58a91161010857806381cf58a91461066b578063893d20e81461068b57806389a30271146106af5780638a63bd9b146106cf5780638a8c523c146106e457806395d89b41146106f957600080fd5b8063590ffdce146105c05780635d098b38146105e057806370a0823114610600578063715018a61461063657806380c581d11461064b57600080fd5b80632610eaca116101dd5780634ada218b116101a15780634ada218b146104f45780634fb2e45d1461050e5780634fbee1931461052e57806350a8e0161461056757806354dbe08b146105865780635734e4a1146105a657600080fd5b80632610eaca14610459578063313ce5671461047957806337023fce146104a057806339a05902146104bf578063452ed4f1146104d457600080fd5b80630cc7506b1161022f5780630cc7506b146103915780630dcbcf1c146103a857806313b4a7f4146103e1578063147cee6c1461040157806318160ddd1461041657806323b872dd1461043957600080fd5b806303fd2a4514610277578063069d955f146102aa57806306fdde03146103005780630758d9241461033b578063095ea7b31461036157600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102b657600080fd5b506009546102db9061ffff808216916201000081048216916401000000009091041683565b6040805161ffff948516815292841660208401529216918101919091526060016102a1565b34801561030c57600080fd5b5060408051808201909152600981526805473756b6120322e360bc1b60208201525b6040516102a19190612206565b34801561034757600080fd5b50600a5461028d906201000090046001600160a01b031681565b34801561036d57600080fd5b5061038161037c366004612269565b61088f565b60405190151581526020016102a1565b34801561039d57600080fd5b506103a66108a6565b005b3480156103b457600080fd5b506103816103c3366004612295565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156103ed57600080fd5b506103a66103fc3660046122b2565b6108f0565b34801561040d57600080fd5b506103a6610a62565b34801561042257600080fd5b5061042b610aa1565b6040519081526020016102a1565b34801561044557600080fd5b506103816104543660046122eb565b610ae8565b34801561046557600080fd5b506103a6610474366004612402565b610b60565b34801561048557600080fd5b5061048e610ca7565b60405160ff90911681526020016102a1565b3480156104ac57600080fd5b50600a5461038190610100900460ff1681565b3480156104cb57600080fd5b506103a6610cd5565b3480156104e057600080fd5b50600b5461028d906001600160a01b031681565b34801561050057600080fd5b50600f546103819060ff1681565b34801561051a57600080fd5b506103a6610529366004612295565b610d52565b34801561053a57600080fd5b50610381610549366004612295565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561057357600080fd5b50600f5461038190610100900460ff1681565b34801561059257600080fd5b50600c5461028d906001600160a01b031681565b3480156105b257600080fd5b50600a546103819060ff1681565b3480156105cc57600080fd5b506103a66105db3660046124d2565b610ead565b3480156105ec57600080fd5b506103a66105fb366004612295565b610f08565b34801561060c57600080fd5b5061042b61061b366004612295565b6001600160a01b031660009081526020819052604090205490565b34801561064257600080fd5b506103a6610f5a565b34801561065757600080fd5b506103a66106663660046124d2565b610ffc565b34801561067757600080fd5b5060105461028d906001600160a01b031681565b34801561069757600080fd5b50600f546201000090046001600160a01b031661028d565b3480156106bb57600080fd5b50600d5461028d906001600160a01b031681565b3480156106db57600080fd5b506103816110d9565b3480156106f057600080fd5b506103a6611132565b34801561070557600080fd5b506040805180820190915260068152652a39bab5b09960d11b602082015261032e565b34801561073457600080fd5b50610381610743366004612269565b611227565b34801561075457600080fd5b5061042b6101f481565b34801561076a57600080fd5b5061042b6109c481565b34801561078057600080fd5b506103a661078f366004612517565b61123e565b3480156107a057600080fd5b5061042b6107af3660046122b2565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156107e657600080fd5b506103a66107f536600461254a565b61135a565b34801561080657600080fd5b506103a6610815366004612295565b6113e9565b34801561082657600080fd5b506103a661178a565b34801561083b57600080fd5b50600e5461028d906001600160a01b031681565b34801561085b57600080fd5b506103a661086a366004612295565b611856565b34801561087b57600080fd5b506103a661088a3660046124d2565b6119ff565b600061089c338484611a5a565b5060015b92915050565b600f546201000090046001600160a01b031633146108df5760405162461bcd60e51b81526004016108d690612565565b60405180910390fd5b600a805461ff001916610100179055565b600f546201000090046001600160a01b031633146109205760405162461bcd60e51b81526004016108d690612565565b60085460ff1661092f57600080fd5b6001600160a01b038216301480159061095157506001600160a01b0381163014155b61098b5760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba103237b713ba1760a91b60448201526064016108d6565b806001600160a01b0316826001600160a01b0316036109ed576001600160a01b03811660009081526004602090815260408083208054600160ff199182168117909255600790935292208054909116821790556109e9908290610ead565b5050565b6001600160a01b0382811660008181526004602090815260408083208054600160ff19918216811790925595871680855282852080548816831790559484526007909252808320805486168317905592825291902080549092168117909155610a57908390610ead565b6109e9816001610ead565b600f546201000090046001600160a01b03163314610a925760405162461bcd60e51b81526004016108d690612565565b600a805460ff19166001179055565b6000610aaf6012600a61268a565b610abd906305f5e100612699565b600003610ac957600080fd5b610ad56012600a61268a565b610ae3906305f5e100612699565b905090565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610b4d576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610b479084906126b8565b90915550505b610b58848484611b53565b949350505050565b600f546201000090046001600160a01b03163314610b905760405162461bcd60e51b81526004016108d690612565565b8051825114610bd95760405162461bcd60e51b81526020600482015260156024820152742632b733ba3439903237903737ba1036b0ba31b41760591b60448201526064016108d6565b60005b82518160ff161015610ca257818160ff1681518110610bfd57610bfd6126cb565b6020026020010151610c24336001600160a01b031660009081526020819052604090205490565b1015610c2f57600080fd5b610c8f33848360ff1681518110610c4857610c486126cb565b60200260200101516012600a610c5e919061268a565b858560ff1681518110610c7357610c736126cb565b6020026020010151610c859190612699565b6000806001611d53565b5080610c9a816126e1565b915050610bdc565b505050565b6000610cb56012600a61268a565b610cc3906305f5e100612699565b600003610ccf57600080fd5b50601290565b6010546001600160a01b03163314610d405760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b60648201526084016108d6565b601080546001600160a01b0319169055565b600f546201000090046001600160a01b03163314610d825760405162461bcd60e51b81526004016108d690612565565b6001600160a01b038116610da85760405162461bcd60e51b81526004016108d690612700565b61deac196001600160a01b03821601610dd35760405162461bcd60e51b81526004016108d690612700565b600f54610df0906201000090046001600160a01b03166000610ead565b610dfb816001610ead565b600f546201000090046001600160a01b03166000908152602081905260408120541115610e5157600f546201000090046001600160a01b0316600081815260208190526040902054610e4f91908390610c85565b505b600f80546001600160a01b038381166201000081810262010000600160b01b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600f546201000090046001600160a01b03163314610edd5760405162461bcd60e51b81526004016108d690612565565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b600f546201000090046001600160a01b03163314610f385760405162461bcd60e51b81526004016108d690612565565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b600f546201000090046001600160a01b03163314610f8a5760405162461bcd60e51b81526004016108d690612565565b600f54610fa7906201000090046001600160a01b03166000610ead565b600f805462010000600160b01b03198116909155604051620100009091046001600160a01b03169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b600f546201000090046001600160a01b0316331461102c5760405162461bcd60e51b81526004016108d690612565565b8061105357506001600160a01b03166000908152600160205260409020805460ff19169055565b600254156110ad57620151806002544261106d91906126b8565b116110ad5760405162461bcd60e51b815260206004820152601060248201526f312044617920636f6f6c646f776e2e2160801b60448201526064016108d6565b506001600160a01b03166000908152600160208190526040909120805460ff1916909117905542600255565b600f546000906201000090046001600160a01b0316331461110c5760405162461bcd60e51b81526004016108d690612565565b600a5461112c9030906201000090046001600160a01b0316600019611a5a565b50600190565b600f546201000090046001600160a01b031633146111625760405162461bcd60e51b81526004016108d690612565565b600f5460ff16156111b55760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c656421000000000000000060448201526064016108d6565b600f54610100900460ff1661120c5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e000000000000000060448201526064016108d6565b600f805460ff19908116600117909155600880549091169055565b6000611234338484611b53565b5060019392505050565b600f546201000090046001600160a01b0316331461126e5760405162461bcd60e51b81526004016108d690612565565b600a54610100900460ff16156112ba5760405162461bcd60e51b81526020600482015260116024820152702a30bc32b99030b932903637b1b5b2b21760791b60448201526064016108d6565b6109c48261ffff16111580156112d657506101f48161ffff1611155b6113225760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e00000000000000000060448201526064016108d6565b6009805465ffffffff000019166201000061ffff9485160265ffff000000001916176401000000009290931691909102919091179055565b600f546201000090046001600160a01b0316331461138a5760405162461bcd60e51b81526004016108d690612565565b600a5460ff16156113d15760405162461bcd60e51b81526020600482015260116024820152702a30bc32b99030b932903637b1b5b2b21760791b60448201526064016108d6565b6009805461ffff191661ffff92909216919091179055565b600f546201000090046001600160a01b031633146114195760405162461bcd60e51b81526004016108d690612565565b600f54610100900460ff16156114715760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e000060448201526064016108d6565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114da919061275d565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154b919061275d565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ba919061275d565b90506001600160a01b03811661173357816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611608573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162c919061275d565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611679573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169d919061275d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156116ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170e919061275d565b600b80546001600160a01b0319166001600160a01b039290921691909117905561174f565b600b80546001600160a01b0319166001600160a01b0383161790555b600a805462010000600160b01b031916620100006001600160a01b0385811682029290921792839055610ca292309291900416600019611a5a565b600f546201000090046001600160a01b031633146117ba5760405162461bcd60e51b81526004016108d690612565565b600f54610100900460ff16156118125760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e0000000060448201526064016108d6565b600f546040516001600160a01b036201000090920491909116904780156108fc02916000818181858888f19350505050158015611853573d6000803e3d6000fd5b50565b600f546201000090046001600160a01b031633146118865760405162461bcd60e51b81526004016108d690612565565b306001600160a01b038216036118de5760405162461bcd60e51b815260206004820181905260248201527f4f776e65722063616e6e6f7420636c61696d206e617469766520746f6b656e7360448201526064016108d6565b6001600160a01b0381166119185760405133904780156108fc02916000818181858888f193505050501580156109e9573d6000803e3d6000fd5b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015611961573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611985919061277a565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af11580156119d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f99190612793565b50505050565b600f546201000090046001600160a01b03163314611a2f5760405162461bcd60e51b81526004016108d690612565565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b038316611aa65760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016108d6565b6001600160a01b038216611af25760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016108d6565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611bb95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108d6565b6001600160a01b038316611c1b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108d6565b60008211611c7d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108d6565b6001600160a01b0384166000908152600160205260408120548190819060ff1615611cab5760019250611cd9565b6001600160a01b03861660009081526001602052604090205460ff1615611cd55760019150611cd9565b5060015b611ce38787611f63565b15611d3a57600f5460ff16611d3a5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016108d6565b611d48878787868686611d53565b979650505050505050565b600f54600090610100900460ff16611e3857611d6f878761204c565b600f54610100900460ff16158015611d8c5750611d8c8787611f63565b8015611db157506001600160a01b03871660009081526005602052604090205460ff16155b8015611dd657506001600160a01b03861660009081526005602052604090205460ff16155b8015611de0575081155b15611e385760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b60648201526084016108d6565b6001600160a01b03871660009081526006602052604090205460019060ff1680611e7a57506001600160a01b03871660009081526006602052604090205460ff165b15611e83575060005b6001600160a01b03881660009081526020819052604081208054889290611eab9084906126b8565b909155506000905081611ebe5786611eca565b611eca8987878a612126565b9050806000808a6001600160a01b03166001600160a01b031681526020019081526020016000206000828254611f0091906127b0565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f4c91815260200190565b60405180910390a350600198975050505050505050565b600f546000906001600160a01b03848116620100009092041614801590611f9e5750600f546001600160a01b03838116620100009092041614155b8015611fbb5750600f546201000090046001600160a01b03163214155b8015611fe057506001600160a01b03821660009081526004602052604090205460ff16155b801561200557506001600160a01b03831660009081526004602052604090205460ff16155b801561201c57506001600160a01b03821661dead14155b801561203057506001600160a01b03821615155b801561204557506001600160a01b0383163014155b9392505050565b600f54610100900460ff16156120b05760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b60648201526084016108d6565b6120ba8282611f63565b1580156120d45750600c546001600160a01b038281169116145b156109e957506001600160a01b03166000908152600460209081526040808320805460ff1990811660019081179092556006909352922080549091169091179055600f805461ff001916610100179055565b600080841561213c575060095461ffff16612166565b8315612155575060095462010000900461ffff16612166565b50600954640100000000900461ffff165b60006127106121758386612699565b61217f91906127c3565b905080156121fc57600e546001600160a01b0316600090815260208190526040812080548392906121b19084906127b0565b9091555050600e546040518281526001600160a01b03918216918916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b611d4881856126b8565b600060208083528351808285015260005b8181101561223357858101830151858201604001528201612217565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461185357600080fd5b6000806040838503121561227c57600080fd5b823561228781612254565b946020939093013593505050565b6000602082840312156122a757600080fd5b813561204581612254565b600080604083850312156122c557600080fd5b82356122d081612254565b915060208301356122e081612254565b809150509250929050565b60008060006060848603121561230057600080fd5b833561230b81612254565b9250602084013561231b81612254565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561236b5761236b61232c565b604052919050565b600067ffffffffffffffff82111561238d5761238d61232c565b5060051b60200190565b600082601f8301126123a857600080fd5b813560206123bd6123b883612373565b612342565b82815260059290921b840181019181810190868411156123dc57600080fd5b8286015b848110156123f757803583529183019183016123e0565b509695505050505050565b6000806040838503121561241557600080fd5b823567ffffffffffffffff8082111561242d57600080fd5b818501915085601f83011261244157600080fd5b813560206124516123b883612373565b82815260059290921b8401810191818101908984111561247057600080fd5b948201945b8386101561249757853561248881612254565b82529482019490820190612475565b965050860135925050808211156124ad57600080fd5b506124ba85828601612397565b9150509250929050565b801515811461185357600080fd5b600080604083850312156124e557600080fd5b82356124f081612254565b915060208301356122e0816124c4565b803561ffff8116811461251257600080fd5b919050565b6000806040838503121561252a57600080fd5b61253383612500565b915061254160208401612500565b90509250929050565b60006020828403121561255c57600080fd5b61204582612500565b60208082526011908201527021b0b63632b9101e979e9037bbb732b91760791b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156125e15781600019048211156125c7576125c7612590565b808516156125d457918102915b93841c93908002906125ab565b509250929050565b6000826125f8575060016108a0565b81612605575060006108a0565b816001811461261b576002811461262557612641565b60019150506108a0565b60ff84111561263657612636612590565b50506001821b6108a0565b5060208310610133831016604e8410600b8410161715612664575081810a6108a0565b61266e83836125a6565b806000190482111561268257612682612590565b029392505050565b600061204560ff8416836125e9565b60008160001904831182151516156126b3576126b3612590565b500290565b818103818111156108a0576108a0612590565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff81036126f7576126f7612590565b60010192915050565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b60006020828403121561276f57600080fd5b815161204581612254565b60006020828403121561278c57600080fd5b5051919050565b6000602082840312156127a557600080fd5b8151612045816124c4565b808201808211156108a0576108a0612590565b6000826127e057634e487b7160e01b600052601260045260246000fd5b50049056fea264697066735822122038029ad73d1ed273408144027905726b39621b57af21e099bddefc247c4ebe4a64736f6c63430008100033

Deployed Bytecode

0x60806040526004361061026b5760003560e01c8063590ffdce11610144578063a9059cbb116100b6578063e8bd855d1161007a578063e8bd855d146107da578063eafb5a3c146107fa578063ee5d9c2d1461081a578063f94aa1b41461082f578063f9d0831a1461084f578063feadde9c1461086f57600080fd5b8063a9059cbb14610728578063b1b08f7114610748578063b3d514fb1461075e578063bf62297914610774578063dd62ed3e1461079457600080fd5b806381cf58a91161010857806381cf58a91461066b578063893d20e81461068b57806389a30271146106af5780638a63bd9b146106cf5780638a8c523c146106e457806395d89b41146106f957600080fd5b8063590ffdce146105c05780635d098b38146105e057806370a0823114610600578063715018a61461063657806380c581d11461064b57600080fd5b80632610eaca116101dd5780634ada218b116101a15780634ada218b146104f45780634fb2e45d1461050e5780634fbee1931461052e57806350a8e0161461056757806354dbe08b146105865780635734e4a1146105a657600080fd5b80632610eaca14610459578063313ce5671461047957806337023fce146104a057806339a05902146104bf578063452ed4f1146104d457600080fd5b80630cc7506b1161022f5780630cc7506b146103915780630dcbcf1c146103a857806313b4a7f4146103e1578063147cee6c1461040157806318160ddd1461041657806323b872dd1461043957600080fd5b806303fd2a4514610277578063069d955f146102aa57806306fdde03146103005780630758d9241461033b578063095ea7b31461036157600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102b657600080fd5b506009546102db9061ffff808216916201000081048216916401000000009091041683565b6040805161ffff948516815292841660208401529216918101919091526060016102a1565b34801561030c57600080fd5b5060408051808201909152600981526805473756b6120322e360bc1b60208201525b6040516102a19190612206565b34801561034757600080fd5b50600a5461028d906201000090046001600160a01b031681565b34801561036d57600080fd5b5061038161037c366004612269565b61088f565b60405190151581526020016102a1565b34801561039d57600080fd5b506103a66108a6565b005b3480156103b457600080fd5b506103816103c3366004612295565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156103ed57600080fd5b506103a66103fc3660046122b2565b6108f0565b34801561040d57600080fd5b506103a6610a62565b34801561042257600080fd5b5061042b610aa1565b6040519081526020016102a1565b34801561044557600080fd5b506103816104543660046122eb565b610ae8565b34801561046557600080fd5b506103a6610474366004612402565b610b60565b34801561048557600080fd5b5061048e610ca7565b60405160ff90911681526020016102a1565b3480156104ac57600080fd5b50600a5461038190610100900460ff1681565b3480156104cb57600080fd5b506103a6610cd5565b3480156104e057600080fd5b50600b5461028d906001600160a01b031681565b34801561050057600080fd5b50600f546103819060ff1681565b34801561051a57600080fd5b506103a6610529366004612295565b610d52565b34801561053a57600080fd5b50610381610549366004612295565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561057357600080fd5b50600f5461038190610100900460ff1681565b34801561059257600080fd5b50600c5461028d906001600160a01b031681565b3480156105b257600080fd5b50600a546103819060ff1681565b3480156105cc57600080fd5b506103a66105db3660046124d2565b610ead565b3480156105ec57600080fd5b506103a66105fb366004612295565b610f08565b34801561060c57600080fd5b5061042b61061b366004612295565b6001600160a01b031660009081526020819052604090205490565b34801561064257600080fd5b506103a6610f5a565b34801561065757600080fd5b506103a66106663660046124d2565b610ffc565b34801561067757600080fd5b5060105461028d906001600160a01b031681565b34801561069757600080fd5b50600f546201000090046001600160a01b031661028d565b3480156106bb57600080fd5b50600d5461028d906001600160a01b031681565b3480156106db57600080fd5b506103816110d9565b3480156106f057600080fd5b506103a6611132565b34801561070557600080fd5b506040805180820190915260068152652a39bab5b09960d11b602082015261032e565b34801561073457600080fd5b50610381610743366004612269565b611227565b34801561075457600080fd5b5061042b6101f481565b34801561076a57600080fd5b5061042b6109c481565b34801561078057600080fd5b506103a661078f366004612517565b61123e565b3480156107a057600080fd5b5061042b6107af3660046122b2565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156107e657600080fd5b506103a66107f536600461254a565b61135a565b34801561080657600080fd5b506103a6610815366004612295565b6113e9565b34801561082657600080fd5b506103a661178a565b34801561083b57600080fd5b50600e5461028d906001600160a01b031681565b34801561085b57600080fd5b506103a661086a366004612295565b611856565b34801561087b57600080fd5b506103a661088a3660046124d2565b6119ff565b600061089c338484611a5a565b5060015b92915050565b600f546201000090046001600160a01b031633146108df5760405162461bcd60e51b81526004016108d690612565565b60405180910390fd5b600a805461ff001916610100179055565b600f546201000090046001600160a01b031633146109205760405162461bcd60e51b81526004016108d690612565565b60085460ff1661092f57600080fd5b6001600160a01b038216301480159061095157506001600160a01b0381163014155b61098b5760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba103237b713ba1760a91b60448201526064016108d6565b806001600160a01b0316826001600160a01b0316036109ed576001600160a01b03811660009081526004602090815260408083208054600160ff199182168117909255600790935292208054909116821790556109e9908290610ead565b5050565b6001600160a01b0382811660008181526004602090815260408083208054600160ff19918216811790925595871680855282852080548816831790559484526007909252808320805486168317905592825291902080549092168117909155610a57908390610ead565b6109e9816001610ead565b600f546201000090046001600160a01b03163314610a925760405162461bcd60e51b81526004016108d690612565565b600a805460ff19166001179055565b6000610aaf6012600a61268a565b610abd906305f5e100612699565b600003610ac957600080fd5b610ad56012600a61268a565b610ae3906305f5e100612699565b905090565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610b4d576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610b479084906126b8565b90915550505b610b58848484611b53565b949350505050565b600f546201000090046001600160a01b03163314610b905760405162461bcd60e51b81526004016108d690612565565b8051825114610bd95760405162461bcd60e51b81526020600482015260156024820152742632b733ba3439903237903737ba1036b0ba31b41760591b60448201526064016108d6565b60005b82518160ff161015610ca257818160ff1681518110610bfd57610bfd6126cb565b6020026020010151610c24336001600160a01b031660009081526020819052604090205490565b1015610c2f57600080fd5b610c8f33848360ff1681518110610c4857610c486126cb565b60200260200101516012600a610c5e919061268a565b858560ff1681518110610c7357610c736126cb565b6020026020010151610c859190612699565b6000806001611d53565b5080610c9a816126e1565b915050610bdc565b505050565b6000610cb56012600a61268a565b610cc3906305f5e100612699565b600003610ccf57600080fd5b50601290565b6010546001600160a01b03163314610d405760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b60648201526084016108d6565b601080546001600160a01b0319169055565b600f546201000090046001600160a01b03163314610d825760405162461bcd60e51b81526004016108d690612565565b6001600160a01b038116610da85760405162461bcd60e51b81526004016108d690612700565b61deac196001600160a01b03821601610dd35760405162461bcd60e51b81526004016108d690612700565b600f54610df0906201000090046001600160a01b03166000610ead565b610dfb816001610ead565b600f546201000090046001600160a01b03166000908152602081905260408120541115610e5157600f546201000090046001600160a01b0316600081815260208190526040902054610e4f91908390610c85565b505b600f80546001600160a01b038381166201000081810262010000600160b01b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600f546201000090046001600160a01b03163314610edd5760405162461bcd60e51b81526004016108d690612565565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b600f546201000090046001600160a01b03163314610f385760405162461bcd60e51b81526004016108d690612565565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b600f546201000090046001600160a01b03163314610f8a5760405162461bcd60e51b81526004016108d690612565565b600f54610fa7906201000090046001600160a01b03166000610ead565b600f805462010000600160b01b03198116909155604051620100009091046001600160a01b03169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b600f546201000090046001600160a01b0316331461102c5760405162461bcd60e51b81526004016108d690612565565b8061105357506001600160a01b03166000908152600160205260409020805460ff19169055565b600254156110ad57620151806002544261106d91906126b8565b116110ad5760405162461bcd60e51b815260206004820152601060248201526f312044617920636f6f6c646f776e2e2160801b60448201526064016108d6565b506001600160a01b03166000908152600160208190526040909120805460ff1916909117905542600255565b600f546000906201000090046001600160a01b0316331461110c5760405162461bcd60e51b81526004016108d690612565565b600a5461112c9030906201000090046001600160a01b0316600019611a5a565b50600190565b600f546201000090046001600160a01b031633146111625760405162461bcd60e51b81526004016108d690612565565b600f5460ff16156111b55760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c656421000000000000000060448201526064016108d6565b600f54610100900460ff1661120c5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e000000000000000060448201526064016108d6565b600f805460ff19908116600117909155600880549091169055565b6000611234338484611b53565b5060019392505050565b600f546201000090046001600160a01b0316331461126e5760405162461bcd60e51b81526004016108d690612565565b600a54610100900460ff16156112ba5760405162461bcd60e51b81526020600482015260116024820152702a30bc32b99030b932903637b1b5b2b21760791b60448201526064016108d6565b6109c48261ffff16111580156112d657506101f48161ffff1611155b6113225760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e00000000000000000060448201526064016108d6565b6009805465ffffffff000019166201000061ffff9485160265ffff000000001916176401000000009290931691909102919091179055565b600f546201000090046001600160a01b0316331461138a5760405162461bcd60e51b81526004016108d690612565565b600a5460ff16156113d15760405162461bcd60e51b81526020600482015260116024820152702a30bc32b99030b932903637b1b5b2b21760791b60448201526064016108d6565b6009805461ffff191661ffff92909216919091179055565b600f546201000090046001600160a01b031633146114195760405162461bcd60e51b81526004016108d690612565565b600f54610100900460ff16156114715760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e000060448201526064016108d6565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114da919061275d565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154b919061275d565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ba919061275d565b90506001600160a01b03811661173357816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611608573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162c919061275d565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611679573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169d919061275d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156116ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170e919061275d565b600b80546001600160a01b0319166001600160a01b039290921691909117905561174f565b600b80546001600160a01b0319166001600160a01b0383161790555b600a805462010000600160b01b031916620100006001600160a01b0385811682029290921792839055610ca292309291900416600019611a5a565b600f546201000090046001600160a01b031633146117ba5760405162461bcd60e51b81526004016108d690612565565b600f54610100900460ff16156118125760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e0000000060448201526064016108d6565b600f546040516001600160a01b036201000090920491909116904780156108fc02916000818181858888f19350505050158015611853573d6000803e3d6000fd5b50565b600f546201000090046001600160a01b031633146118865760405162461bcd60e51b81526004016108d690612565565b306001600160a01b038216036118de5760405162461bcd60e51b815260206004820181905260248201527f4f776e65722063616e6e6f7420636c61696d206e617469766520746f6b656e7360448201526064016108d6565b6001600160a01b0381166119185760405133904780156108fc02916000818181858888f193505050501580156109e9573d6000803e3d6000fd5b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015611961573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611985919061277a565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af11580156119d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f99190612793565b50505050565b600f546201000090046001600160a01b03163314611a2f5760405162461bcd60e51b81526004016108d690612565565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b038316611aa65760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016108d6565b6001600160a01b038216611af25760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016108d6565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611bb95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108d6565b6001600160a01b038316611c1b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108d6565b60008211611c7d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108d6565b6001600160a01b0384166000908152600160205260408120548190819060ff1615611cab5760019250611cd9565b6001600160a01b03861660009081526001602052604090205460ff1615611cd55760019150611cd9565b5060015b611ce38787611f63565b15611d3a57600f5460ff16611d3a5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016108d6565b611d48878787868686611d53565b979650505050505050565b600f54600090610100900460ff16611e3857611d6f878761204c565b600f54610100900460ff16158015611d8c5750611d8c8787611f63565b8015611db157506001600160a01b03871660009081526005602052604090205460ff16155b8015611dd657506001600160a01b03861660009081526005602052604090205460ff16155b8015611de0575081155b15611e385760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b60648201526084016108d6565b6001600160a01b03871660009081526006602052604090205460019060ff1680611e7a57506001600160a01b03871660009081526006602052604090205460ff165b15611e83575060005b6001600160a01b03881660009081526020819052604081208054889290611eab9084906126b8565b909155506000905081611ebe5786611eca565b611eca8987878a612126565b9050806000808a6001600160a01b03166001600160a01b031681526020019081526020016000206000828254611f0091906127b0565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f4c91815260200190565b60405180910390a350600198975050505050505050565b600f546000906001600160a01b03848116620100009092041614801590611f9e5750600f546001600160a01b03838116620100009092041614155b8015611fbb5750600f546201000090046001600160a01b03163214155b8015611fe057506001600160a01b03821660009081526004602052604090205460ff16155b801561200557506001600160a01b03831660009081526004602052604090205460ff16155b801561201c57506001600160a01b03821661dead14155b801561203057506001600160a01b03821615155b801561204557506001600160a01b0383163014155b9392505050565b600f54610100900460ff16156120b05760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b60648201526084016108d6565b6120ba8282611f63565b1580156120d45750600c546001600160a01b038281169116145b156109e957506001600160a01b03166000908152600460209081526040808320805460ff1990811660019081179092556006909352922080549091169091179055600f805461ff001916610100179055565b600080841561213c575060095461ffff16612166565b8315612155575060095462010000900461ffff16612166565b50600954640100000000900461ffff165b60006127106121758386612699565b61217f91906127c3565b905080156121fc57600e546001600160a01b0316600090815260208190526040812080548392906121b19084906127b0565b9091555050600e546040518281526001600160a01b03918216918916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b611d4881856126b8565b600060208083528351808285015260005b8181101561223357858101830151858201604001528201612217565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461185357600080fd5b6000806040838503121561227c57600080fd5b823561228781612254565b946020939093013593505050565b6000602082840312156122a757600080fd5b813561204581612254565b600080604083850312156122c557600080fd5b82356122d081612254565b915060208301356122e081612254565b809150509250929050565b60008060006060848603121561230057600080fd5b833561230b81612254565b9250602084013561231b81612254565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561236b5761236b61232c565b604052919050565b600067ffffffffffffffff82111561238d5761238d61232c565b5060051b60200190565b600082601f8301126123a857600080fd5b813560206123bd6123b883612373565b612342565b82815260059290921b840181019181810190868411156123dc57600080fd5b8286015b848110156123f757803583529183019183016123e0565b509695505050505050565b6000806040838503121561241557600080fd5b823567ffffffffffffffff8082111561242d57600080fd5b818501915085601f83011261244157600080fd5b813560206124516123b883612373565b82815260059290921b8401810191818101908984111561247057600080fd5b948201945b8386101561249757853561248881612254565b82529482019490820190612475565b965050860135925050808211156124ad57600080fd5b506124ba85828601612397565b9150509250929050565b801515811461185357600080fd5b600080604083850312156124e557600080fd5b82356124f081612254565b915060208301356122e0816124c4565b803561ffff8116811461251257600080fd5b919050565b6000806040838503121561252a57600080fd5b61253383612500565b915061254160208401612500565b90509250929050565b60006020828403121561255c57600080fd5b61204582612500565b60208082526011908201527021b0b63632b9101e979e9037bbb732b91760791b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156125e15781600019048211156125c7576125c7612590565b808516156125d457918102915b93841c93908002906125ab565b509250929050565b6000826125f8575060016108a0565b81612605575060006108a0565b816001811461261b576002811461262557612641565b60019150506108a0565b60ff84111561263657612636612590565b50506001821b6108a0565b5060208310610133831016604e8410600b8410161715612664575081810a6108a0565b61266e83836125a6565b806000190482111561268257612682612590565b029392505050565b600061204560ff8416836125e9565b60008160001904831182151516156126b3576126b3612590565b500290565b818103818111156108a0576108a0612590565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff81036126f7576126f7612590565b60010192915050565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b60006020828403121561276f57600080fd5b815161204581612254565b60006020828403121561278c57600080fd5b5051919050565b6000602082840312156127a557600080fd5b8151612045816124c4565b808201808211156108a0576108a0612590565b6000826127e057634e487b7160e01b600052601260045260246000fd5b50049056fea264697066735822122038029ad73d1ed273408144027905726b39621b57af21e099bddefc247c4ebe4a64736f6c63430008100033

Deployed Bytecode Sourcemap

3900:14299:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5334:73;;;;;;;;;;;;5365:42;5334:73;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;5334:73:0;;;;;;;;4829:107;;;;;;;;;;-1:-1:-1;4829:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;428:6:1;461:15;;;443:34;;513:15;;;508:2;493:18;;486:43;565:15;;545:18;;;538:43;;;;406:2;391:18;4829:107:0;222:365:1;8579:80:0;;;;;;;;;;-1:-1:-1;8651:5:0;;;;;;;;;;;;-1:-1:-1;;;8651:5:0;;;;8579:80;;;;;;;:::i;5173:26::-;;;;;;;;;;-1:-1:-1;5173:26:0;;;;;;;-1:-1:-1;;;;;5173:26:0;;;9187:161;;;;;;;;;;-1:-1:-1;9187:161:0;;;;;:::i;:::-;;:::i;:::-;;;1991:14:1;;1984:22;1966:41;;1954:2;1939:18;9187:161:0;1826:187:1;12099:194:0;;;;;;;;;;;;;:::i;:::-;;11334:140;;;;;;;;;;-1:-1:-1;11334:140:0;;;;;:::i;:::-;-1:-1:-1;;;;;11432:34:0;11408:4;11432:34;;;:25;:34;;;;;;;;;11334:140;13627:714;;;;;;;;;;-1:-1:-1;13627:714:0;;;;;:::i;:::-;;:::i;11900:191::-;;;;;;;;;;;;;:::i;8250:115::-;;;;;;;;;;;;;:::i;:::-;;;2809:25:1;;;2797:2;2782:18;8250:115:0;2663:177:1;9857:306:0;;;;;;;;;;-1:-1:-1;9857:306:0;;;;;:::i;:::-;;:::i;16324:410::-;;;;;;;;;;-1:-1:-1;16324:410:0;;;;;:::i;:::-;;:::i;8371:112::-;;;;;;;;;;;;;:::i;:::-;;;5965:4:1;5953:17;;;5935:36;;5923:2;5908:18;8371:112:0;5793:184:1;5134:30:0;;;;;;;;;;-1:-1:-1;5134:30:0;;;;;;;;;;;8055:187;;;;;;;;;;;;;:::i;5206:21::-;;;;;;;;;;-1:-1:-1;5206:21:0;;;;-1:-1:-1;;;;;5206:21:0;;;5602:34;;;;;;;;;;-1:-1:-1;5602:34:0;;;;;;;;7160:654;;;;;;;;;;-1:-1:-1;7160:654:0;;;;;:::i;:::-;;:::i;11199:127::-;;;;;;;;;;-1:-1:-1;11199:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;11290:28:0;11266:4;11290:28;;;:19;:28;;;;;;;;;11199:127;5643:36;;;;;;;;;;-1:-1:-1;5643:36:0;;;;;;;;;;;5234:22;;;;;;;;;;-1:-1:-1;5234:22:0;;;;-1:-1:-1;;;;;5234:22:0;;;5098:29;;;;;;;;;;-1:-1:-1;5098:29:0;;;;;;;;11482:134;;;;;;;;;;-1:-1:-1;11482:134:0;;;;;:::i;:::-;;:::i;11780:112::-;;;;;;;;;;-1:-1:-1;11780:112:0;;;;;:::i;:::-;;:::i;8889:117::-;;;;;;;;;;-1:-1:-1;8889:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;8982:16:0;8955:7;8982:16;;;;;;;;;;;;8889:117;7822:225;;;;;;;;;;;;;:::i;10792:399::-;;;;;;;;;;-1:-1:-1;10792:399:0;;;;;:::i;:::-;;:::i;7120:31::-;;;;;;;;;;-1:-1:-1;7120:31:0;;;;-1:-1:-1;;;;;7120:31:0;;;8665:79;;;;;;;;;;-1:-1:-1;8735:6:0;;;;;-1:-1:-1;;;;;8735:6:0;8665:79;;5263:64;;;;;;;;;;-1:-1:-1;5263:64:0;;;;-1:-1:-1;;;;;5263:64:0;;;9674:175;;;;;;;;;;;;;:::i;15875:251::-;;;;;;;;;;;;;:::i;8489:84::-;;;;;;;;;;-1:-1:-1;8563:7:0;;;;;;;;;;;;-1:-1:-1;;;8563:7:0;;;;8489:84;;9014:165;;;;;;;;;;-1:-1:-1;9014:165:0;;;;;:::i;:::-;;:::i;4995:46::-;;;;;;;;;;;;5038:3;4995:46;;4945:43;;;;;;;;;;;;4984:4;4945:43;;12467:368;;;;;;;;;;-1:-1:-1;12467:368:0;;;;;:::i;:::-;;:::i;8750:133::-;;;;;;;;;;-1:-1:-1;8750:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8852:19:0;;;8834:7;8852:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8750:133;12301:158;;;;;;;;;;-1:-1:-1;12301:158:0;;;;;:::i;:::-;;:::i;10171:613::-;;;;;;;;;;-1:-1:-1;10171:613:0;;;;;:::i;:::-;;:::i;16134:182::-;;;;;;;;;;;;;:::i;5478:115::-;;;;;;;;;;-1:-1:-1;5478:115:0;;;;-1:-1:-1;;;;;5478:115:0;;;12843:441;;;;;;;;;;-1:-1:-1;12843:441:0;;;;;:::i;:::-;;:::i;11624:148::-;;;;;;;;;;-1:-1:-1;11624:148:0;;;;;:::i;:::-;;:::i;9187:161::-;9264:4;9281:37;9290:10;9302:7;9311:6;9281:8;:37::i;:::-;-1:-1:-1;9336:4:0;9187:161;;;;;:::o;12099:194::-;5820:6;;;;;-1:-1:-1;;;;;5820:6:0;5830:10;5820:20;5812:50;;;;-1:-1:-1;;;5812:50:0;;;;;;;:::i;:::-;;;;;;;;;12260:18:::1;:25:::0;;-1:-1:-1;;12260:25:0::1;;;::::0;;12099:194::o;13627:714::-;5820:6;;;;;-1:-1:-1;;;;;5820:6:0;5830:10;5820:20;5812:50;;;;-1:-1:-1;;;5812:50:0;;;;;;;:::i;:::-;13731:23:::1;::::0;::::1;;13723:32;;;::::0;::::1;;-1:-1:-1::0;;;;;13774:23:0;::::1;13792:4;13774:23;::::0;::::1;::::0;:51:::1;;-1:-1:-1::0;;;;;;13801:24:0;::::1;13820:4;13801:24;;13774:51;13766:75;;;::::0;-1:-1:-1;;;13766:75:0;;7654:2:1;13766:75:0::1;::::0;::::1;7636:21:1::0;7693:2;7673:18;;;7666:30;-1:-1:-1;;;7712:18:1;;;7705:41;7763:18;;13766:75:0::1;7452:335:1::0;13766:75:0::1;13866:7;-1:-1:-1::0;;;;;13856:17:0::1;:6;-1:-1:-1::0;;;;;13856:17:0::1;::::0;13852:482:::1;;-1:-1:-1::0;;;;;13890:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;;;;:33;;13919:4:::1;-1:-1:-1::0;;13890:33:0;;::::1;::::0;::::1;::::0;;;13938:16:::1;:25:::0;;;;;:32;;;;::::1;::::0;::::1;::::0;;13985:34:::1;::::0;13890:26;;13985:19:::1;:34::i;:::-;13627:714:::0;;:::o;13852:482::-:1;-1:-1:-1::0;;;;;14052:25:0;;::::1;;::::0;;;:17:::1;:25;::::0;;;;;;;:32;;14080:4:::1;-1:-1:-1::0;;14052:32:0;;::::1;::::0;::::1;::::0;;;14099:26;;::::1;::::0;;;;;;:33;;;::::1;::::0;::::1;::::0;;14147:24;;;:16:::1;:24:::0;;;;;;:31;;;::::1;::::0;::::1;::::0;;14193:25;;;;;;:32;;;;::::1;::::0;::::1;::::0;;;14240:33:::1;::::0;14052:25;;14240:19:::1;:33::i;:::-;14288:34;14308:7;14317:4;14288:19;:34::i;11900:191::-:0;5820:6;;;;;-1:-1:-1;;;;;5820:6:0;5830:10;5820:20;5812:50;;;;-1:-1:-1;;;5812:50:0;;;;;;;:::i;:::-;12059:17:::1;:24:::0;;-1:-1:-1;;12059:24:0::1;12079:4;12059:24;::::0;;11900:191::o;8250:115::-;8305:7;4701:13;4638:2;4701;:13;:::i;:::-;4684:30;;4484:11;4684:30;:::i;:::-;8331:1;8320:12;8316:31;;8336:8;;;8316:31;4701:13;4638:2;4701;:13;:::i;:::-;4684:30;;4484:11;4684:30;:::i;:::-;8348:14;;8250:115;:::o;9857:306::-;-1:-1:-1;;;;;9978:19:0;;9957:4;9978:19;;;:11;:19;;;;;;;;9998:10;9978:31;;;;;;;;-1:-1:-1;;9978:52:0;9974:126;;-1:-1:-1;;;;;10047:19:0;;;;;;:11;:19;;;;;;;;10067:10;10047:31;;;;;;;:41;;10082:6;;10047:19;:41;;10082:6;;10047:41;:::i;:::-;;;;-1:-1:-1;;9974:126:0;10119:36;10129:6;10137:9;10148:6;10119:9;:36::i;:::-;10112:43;9857:306;-1:-1:-1;;;;9857:306:0:o;16324:410::-;5820:6;;;;;-1:-1:-1;;;;;5820:6:0;5830:10;5820:20;5812:50;;;;-1:-1:-1;;;5812:50:0;;;;;;;:::i;:::-;16459:7:::1;:14;16440:8;:15;:33;16432:67;;;::::0;-1:-1:-1;;;16432:67:0;;9815:2:1;16432:67:0::1;::::0;::::1;9797:21:1::0;9854:2;9834:18;;;9827:30;-1:-1:-1;;;9873:18:1;;;9866:51;9934:18;;16432:67:0::1;9613:345:1::0;16432:67:0::1;16515:7;16510:217;16532:8;:15;16528:1;:19;;;16510:217;;;16602:7;16610:1;16602:10;;;;;;;;;;:::i;:::-;;;;;;;16577:21;16587:10;-1:-1:-1::0;;;;;8982:16:0;8955:7;8982:16;;;;;;;;;;;;8889:117;16577:21:::1;:35;;16569:44;;;::::0;::::1;;16628:87;16645:10;16657:8;16666:1;16657:11;;;;;;;;;;:::i;:::-;;;;;;;4638:2;16681;:13;;;;:::i;:::-;16670:7;16678:1;16670:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;16696:5;16703::::0;16710:4:::1;16628:16;:87::i;:::-;-1:-1:-1::0;16549:3:0;::::1;::::0;::::1;:::i;:::-;;;;16510:217;;;;16324:410:::0;;:::o;8371:112::-;8423:5;4701:13;4638:2;4701;:13;:::i;:::-;4684:30;;4484:11;4684:30;:::i;:::-;8447:1;8436:12;8432:31;;8452:8;;;8432:31;-1:-1:-1;4638:2:0;;8371:112::o;8055:187::-;8133:16;;-1:-1:-1;;;;;8133:16:0;8119:10;:30;8111:83;;;;-1:-1:-1;;;8111:83:0;;10477:2:1;8111:83:0;;;10459:21:1;10516:2;10496:18;;;10489:30;10555:34;10535:18;;;10528:62;-1:-1:-1;;;10606:18:1;;;10599:38;10654:19;;8111:83:0;10275:404:1;8111:83:0;8205:16;:29;;-1:-1:-1;;;;;;8205:29:0;;;8055:187::o;7160:654::-;5820:6;;;;;-1:-1:-1;;;;;5820:6:0;5830:10;5820:20;5812:50;;;;-1:-1:-1;;;5812:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7239:22:0;::::1;7231:96;;;;-1:-1:-1::0;;;7231:96:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;;;7346:16:0;::::1;::::0;7338:90:::1;;;;-1:-1:-1::0;;;7338:90:0::1;;;;;;;:::i;:::-;7459:6;::::0;7439:34:::1;::::0;7459:6;;::::1;-1:-1:-1::0;;;;;7459:6:0::1;7467:5;7439:19;:34::i;:::-;7484:35;7504:8;7514:4;7484:19;:35::i;:::-;7554:6;::::0;;;::::1;-1:-1:-1::0;;;;;7554:6:0::1;7564:1;8982:16:::0;;;;;;;;;;;7544:21:::1;7540:127;;;7599:6;::::0;;;::::1;-1:-1:-1::0;;;;;7599:6:0::1;8955:7:::0;8982:16;;;;;;;;;;;7582:73:::1;::::0;7599:6;7607:8;;7617:17:::1;8889:117:::0;7582:73:::1;;7540:127;7706:6;::::0;;-1:-1:-1;;;;;7723:17:0;;::::1;7706:6:::0;7723:17;;::::1;-1:-1:-1::0;;;;;;7723:17:0;::::1;;::::0;;;7756:40:::1;::::0;7706:6;;;::::1;;::::0;;;7756:40:::1;::::0;7687:16:::1;::::0;7756:40:::1;7220:594;7160:654:::0;:::o;11482:134::-;5820:6;;;;;-1:-1:-1;;;;;5820:6:0;5830:10;5820:20;5812:50;;;;-1:-1:-1;;;5812:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11570:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:38;;-1:-1:-1;;11570:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11482:134::o;11780:112::-;5820:6;;;;;-1:-1:-1;;;;;5820:6:0;5830:10;5820:20;5812:50;;;;-1:-1:-1;;;5812:50:0;;;;;;;:::i;:::-;11854:11:::1;:30:::0;;-1:-1:-1;;;;;;11854:30:0::1;-1:-1:-1::0;;;;;11854:30:0;;;::::1;::::0;;;::::1;::::0;;11780:112::o;7822:225::-;5820:6;;;;;-1:-1:-1;;;;;5820:6:0;5830:10;5820:20;5812:50;;;;-1:-1:-1;;;5812:50:0;;;;;;;:::i;:::-;7901:6:::1;::::0;7881:34:::1;::::0;7901:6;;::::1;-1:-1:-1::0;;;;;7901:6:0::1;7909:5;7881:19;:34::i;:::-;7945:6;::::0;;-1:-1:-1;;;;;;7962:19:0;::::1;::::0;;;7997:42:::1;::::0;7945:6;;;::::1;-1:-1:-1::0;;;;;7945:6:0::1;::::0;-1:-1:-1;;7945:6:0;;7997:42:::1;::::0;-1:-1:-1;;7997:42:0::1;7870:177;7822:225::o:0;10792:399::-;5820:6;;;;;-1:-1:-1;;;;;5820:6:0;5830:10;5820:20;5812:50;;;;-1:-1:-1;;;5812:50:0;;;;;;;:::i;:::-;10874:7:::1;10869:315;;-1:-1:-1::0;;;;;;10898:13:0::1;10914:5;10898:13:::0;;;:7:::1;:13;::::0;;;;:21;;-1:-1:-1;;10898:21:0::1;::::0;;13627:714::o;10869:315::-:1;10956:17;::::0;:22;10952:136:::1;;11045:6;11025:17;;11007:15;:35;;;;:::i;:::-;:44;10999:73;;;::::0;-1:-1:-1;;;10999:73:0;;11316:2:1;10999:73:0::1;::::0;::::1;11298:21:1::0;11355:2;11335:18;;;11328:30;-1:-1:-1;;;11374:18:1;;;11367:46;11430:18;;10999:73:0::1;11114:340:1::0;10999:73:0::1;-1:-1:-1::0;;;;;;11102:13:0::1;;::::0;;;11118:4:::1;11102:13;::::0;;;;;;;:20;;-1:-1:-1;;11102:20:0::1;::::0;;::::1;::::0;;11157:15:::1;11137:17;:35:::0;10792:399::o;9674:175::-;5820:6;;9740:4;;5820:6;;;-1:-1:-1;;;;;5820:6:0;5830:10;5820:20;5812:50;;;;-1:-1:-1;;;5812:50:0;;;;;;;:::i;:::-;9789:9:::1;::::0;9757:62:::1;::::0;9774:4:::1;::::0;9789:9;;::::1;-1:-1:-1::0;;;;;9789:9:0::1;-1:-1:-1::0;;9757:8:0::1;:62::i;:::-;-1:-1:-1::0;9837:4:0::1;9674:175:::0;:::o;15875:251::-;5820:6;;;;;-1:-1:-1;;;;;5820:6:0;5830:10;5820:20;5812:50;;;;-1:-1:-1;;;5812:50:0;;;;;;;:::i;:::-;15937:14:::1;::::0;::::1;;15936:15;15928:52;;;::::0;-1:-1:-1;;;15928:52:0;;11661:2:1;15928:52:0::1;::::0;::::1;11643:21:1::0;11700:2;11680:18;;;11673:30;11739:26;11719:18;;;11712:54;11783:18;;15928:52:0::1;11459:348:1::0;15928:52:0::1;15999:16;::::0;::::1;::::0;::::1;;;15991:53;;;::::0;-1:-1:-1;;;15991:53:0;;12014:2:1;15991:53:0::1;::::0;::::1;11996:21:1::0;12053:2;12033:18;;;12026:30;12092:26;12072:18;;;12065:54;12136:18;;15991:53:0::1;11812:348:1::0;15991:53:0::1;16055:14;:21:::0;;-1:-1:-1;;16055:21:0;;::::1;16072:4;16055:21;::::0;;;16087:23:::1;:31:::0;;;;::::1;::::0;;15875:251::o;9014:165::-;9092:4;9109:40;9119:10;9131:9;9142:6;9109:9;:40::i;:::-;-1:-1:-1;9167:4:0;;9014:165;-1:-1:-1;;;9014:165:0:o;12467:368::-;5820:6;;;;;-1:-1:-1;;;;;5820:6:0;5830:10;5820:20;5812:50;;;;-1:-1:-1;;;5812:50:0;;;;;;;:::i;:::-;12564:18:::1;::::0;::::1;::::0;::::1;;;12563:19;12555:49;;;::::0;-1:-1:-1;;;12555:49:0;;12367:2:1;12555:49:0::1;::::0;::::1;12349:21:1::0;12406:2;12386:18;;;12379:30;-1:-1:-1;;;12425:18:1;;;12418:47;12482:18;;12555:49:0::1;12165:341:1::0;12555:49:0::1;4984:4;12623:7;:23;;;;:75;;;;;5038:3;12667:11;:31;;;;12623:75;12615:128;;;::::0;-1:-1:-1;;;12615:128:0;;12713:2:1;12615:128:0::1;::::0;::::1;12695:21:1::0;12752:2;12732:18;;;12725:30;12791:25;12771:18;;;12764:53;12834:18;;12615:128:0::1;12511:347:1::0;12615:128:0::1;12754:9;:27:::0;;-1:-1:-1;;12792:35:0;12754:27;::::1;::::0;;::::1;;-1:-1:-1::0;;12792:35:0;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;12467:368::o;12301:158::-;5820:6;;;;;-1:-1:-1;;;;;5820:6:0;5830:10;5820:20;5812:50;;;;-1:-1:-1;;;5812:50:0;;;;;;;:::i;:::-;12376:17:::1;::::0;::::1;;12375:18;12367:48;;;::::0;-1:-1:-1;;;12367:48:0;;:2:1;:48:0::1;::::0;::::1;12349:21:1::0;12406:2;12386:18;;;12379:30;-1:-1:-1;;;12425:18:1;;;12418:47;12482:18;;12367:48:0::1;12165:341:1::0;12367:48:0::1;12426:9;:25:::0;;-1:-1:-1;;12426:25:0::1;;::::0;;;::::1;::::0;;;::::1;::::0;;12301:158::o;10171:613::-;5820:6;;;;;-1:-1:-1;;;;;5820:6:0;5830:10;5820:20;5812:50;;;;-1:-1:-1;;;5812:50:0;;;;;;;:::i;:::-;10251:16:::1;::::0;::::1;::::0;::::1;;;10250:17;10242:60;;;::::0;-1:-1:-1;;;10242:60:0;;13065:2:1;10242:60:0::1;::::0;::::1;13047:21:1::0;13104:2;13084:18;;;13077:30;13143:32;13123:18;;;13116:60;13193:18;;10242:60:0::1;12863:354:1::0;10242:60:0::1;10313:20;10346:9;10313:43;;10367:16;10397:10;-1:-1:-1::0;;;;;10397:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10386:40:0::1;;10435:4;10442:10;-1:-1:-1::0;;;;;10442:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10386:74;::::0;-1:-1:-1;;;;;;10386:74:0::1;::::0;;;;;;-1:-1:-1;;;;;13708:15:1;;;10386:74:0::1;::::0;::::1;13690:34:1::0;13760:15;;13740:18;;;13733:43;13625:18;;10386:74:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10367:93:::0;-1:-1:-1;;;;;;10475:22:0;::::1;10471:200;;10534:10;-1:-1:-1::0;;;;;10534:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10523:43:0::1;;10575:4;10582:10;-1:-1:-1::0;;;;;10582:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10523:77;::::0;-1:-1:-1;;;;;;10523:77:0::1;::::0;;;;;;-1:-1:-1;;;;;13708:15:1;;;10523:77:0::1;::::0;::::1;13690:34:1::0;13760:15;;13740:18;;;13733:43;13625:18;;10523:77:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10514:6;:86:::0;;-1:-1:-1;;;;;;10514:86:0::1;-1:-1:-1::0;;;;;10514:86:0;;;::::1;::::0;;;::::1;::::0;;10471:200:::1;;;10642:6;:17:::0;;-1:-1:-1;;;;;;10642:17:0::1;-1:-1:-1::0;;;;;10642:17:0;::::1;;::::0;;10471:200:::1;10681:9;:22:::0;;-1:-1:-1;;;;;;10681:22:0::1;::::0;-1:-1:-1;;;;;10681:22:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;10714:62:::1;::::0;10731:4:::1;::::0;10746:9;;::::1;;-1:-1:-1::0;;10714:8:0::1;:62::i;16134:182::-:0;5820:6;;;;;-1:-1:-1;;;;;5820:6:0;5830:10;5820:20;5812:50;;;;-1:-1:-1;;;5812:50:0;;;;;;;:::i;:::-;16201:16:::1;::::0;::::1;::::0;::::1;;;16200:17;16192:58;;;::::0;-1:-1:-1;;;16192:58:0;;13989:2:1;16192:58:0::1;::::0;::::1;13971:21:1::0;14028:2;14008:18;;;14001:30;14067;14047:18;;;14040:58;14115:18;;16192:58:0::1;13787:352:1::0;16192:58:0::1;16269:6;::::0;16261:47:::1;::::0;-1:-1:-1;;;;;16269:6:0;;;::::1;::::0;;;::::1;::::0;16286:21:::1;16261:47:::0;::::1;;;::::0;::::1;::::0;;;16286:21;16269:6;16261:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;16134:182::o:0;12843:441::-;5820:6;;;;;-1:-1:-1;;;;;5820:6:0;5830:10;5820:20;5812:50;;;;-1:-1:-1;;;5812:50:0;;;;;;;:::i;:::-;12939:4:::1;-1:-1:-1::0;;;;;12922:22:0;::::1;::::0;12914:67:::1;;;::::0;-1:-1:-1;;;12914:67:0;;14346:2:1;12914:67:0::1;::::0;::::1;14328:21:1::0;;;14365:18;;;14358:30;14424:34;14404:18;;;14397:62;14476:18;;12914:67:0::1;14144:356:1::0;12914:67:0::1;-1:-1:-1::0;;;;;12996:21:0;::::1;12992:126;;13034:51;::::0;13042:10:::1;::::0;13063:21:::1;13034:51:::0;::::1;;;::::0;::::1;::::0;;;13063:21;13042:10;13034:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;12992:126;13190:35;::::0;-1:-1:-1;;;13190:35:0;;13219:4:::1;13190:35;::::0;::::1;160:51:1::0;13155:5:0;;13128:17:::1;::::0;-1:-1:-1;;;;;13190:20:0;::::1;::::0;::::1;::::0;133:18:1;;13190:35:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13236:40;::::0;-1:-1:-1;;;13236:40:0;;13256:10:::1;13236:40;::::0;::::1;14868:51:1::0;14935:18;;;14928:34;;;13172:53:0;;-1:-1:-1;;;;;;13236:19:0;::::1;::::0;::::1;::::0;14841:18:1;;13236:40:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12903:381;;12843:441:::0;:::o;11624:148::-;5820:6;;;;;-1:-1:-1;;;;;5820:6:0;5830:10;5820:20;5812:50;;;;-1:-1:-1;;;5812:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11720:34:0;;;::::1;;::::0;;;:25:::1;:34;::::0;;;;:44;;-1:-1:-1;;11720:44:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11624:148::o;9356:310::-;-1:-1:-1;;;;;9451:20:0;;9443:52;;;;-1:-1:-1;;;9443:52:0;;15425:2:1;9443:52:0;;;15407:21:1;15464:2;15444:18;;;15437:30;-1:-1:-1;;;15483:18:1;;;15476:49;15542:18;;9443:52:0;15223:343:1;9443:52:0;-1:-1:-1;;;;;9514:21:0;;9506:53;;;;-1:-1:-1;;;9506:53:0;;15425:2:1;9506:53:0;;;15407:21:1;15464:2;15444:18;;;15437:30;-1:-1:-1;;;15483:18:1;;;15476:49;15542:18;;9506:53:0;15223:343:1;9506:53:0;-1:-1:-1;;;;;9572:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;9625:33;;2809:25:1;;;9625:33:0;;2782:18:1;9625:33:0;;;;;;;9356:310;;;:::o;14715:801::-;14794:4;-1:-1:-1;;;;;14819:18:0;;14811:68;;;;-1:-1:-1;;;14811:68:0;;15773:2:1;14811:68:0;;;15755:21:1;15812:2;15792:18;;;15785:30;15851:34;15831:18;;;15824:62;-1:-1:-1;;;15902:18:1;;;15895:35;15947:19;;14811:68:0;15571:401:1;14811:68:0;-1:-1:-1;;;;;14898:16:0;;14890:64;;;;-1:-1:-1;;;14890:64:0;;16179:2:1;14890:64:0;;;16161:21:1;16218:2;16198:18;;;16191:30;16257:34;16237:18;;;16230:62;-1:-1:-1;;;16308:18:1;;;16301:33;16351:19;;14890:64:0;15977:399:1;14890:64:0;14982:1;14973:6;:10;14965:64;;;;-1:-1:-1;;;14965:64:0;;16583:2:1;14965:64:0;;;16565:21:1;16622:2;16602:18;;;16595:30;16661:34;16641:18;;;16634:62;-1:-1:-1;;;16712:18:1;;;16705:39;16761:19;;14965:64:0;16381:405:1;14965:64:0;-1:-1:-1;;;;;15128:13:0;;15040:8;15128:13;;;:7;:13;;;;;;15040:8;;;;15128:13;;15124:162;;;15164:4;15158:10;;15124:162;;;-1:-1:-1;;;;;15190:11:0;;;;;;:7;:11;;;;;;;;15186:100;;;15225:4;15218:11;;15186:100;;;-1:-1:-1;15270:4:0;15186:100;15300:20;15311:4;15317:2;15300:10;:20::i;:::-;15296:141;;;15341:14;;;;15337:89;;15376:34;;-1:-1:-1;;;15376:34:0;;16993:2:1;15376:34:0;;;16975:21:1;17032:2;17012:18;;;17005:30;17071:26;17051:18;;;17044:54;17115:18;;15376:34:0;16791:348:1;15337:89:0;15456:52;15473:4;15479:2;15483:6;15491:3;15496:4;15502:5;15456:16;:52::i;:::-;15449:59;14715:801;-1:-1:-1;;;;;;;14715:801:0:o;16742:823::-;16883:16;;16861:4;;16883:16;;;;;16878:298;;16916:28;16935:4;16941:2;16916:18;:28::i;:::-;16964:16;;;;;;;16963:17;:41;;;;;16984:20;16995:4;17001:2;16984:10;:20::i;:::-;16963:77;;;;-1:-1:-1;;;;;;17009:31:0;;;;;;:25;:31;;;;;;;;17008:32;16963:77;:111;;;;-1:-1:-1;;;;;;17045:29:0;;;;;;:25;:29;;;;;;;;17044:30;16963:111;:121;;;;;17079:5;17078:6;16963:121;16959:206;;;17105:44;;-1:-1:-1;;;17105:44:0;;17346:2:1;17105:44:0;;;17328:21:1;17385:2;17365:18;;;17358:30;17424:34;17404:18;;;17397:62;-1:-1:-1;;;17475:18:1;;;17468:32;17517:19;;17105:44:0;17144:398:1;16959:206:0;-1:-1:-1;;;;;17222:25:0;;17188:12;17222:25;;;:19;:25;;;;;;17203:4;;17222:25;;;:52;;-1:-1:-1;;;;;;17251:23:0;;;;;;:19;:23;;;;;;;;17222:52;17218:99;;;-1:-1:-1;17300:5:0;17218:99;-1:-1:-1;;;;;17329:13:0;;:7;:13;;;;;;;;;;:23;;17346:6;;17329:7;:23;;17346:6;;17329:23;:::i;:::-;;;;-1:-1:-1;17363:22:0;;-1:-1:-1;17389:7:0;17388:55;;17437:6;17388:55;;;17400:34;17410:4;17416:3;17421:4;17427:6;17400:9;:34::i;:::-;17363:80;;17469:14;17454:7;:11;17462:2;-1:-1:-1;;;;;17454:11:0;-1:-1:-1;;;;;17454:11:0;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;17516:2;-1:-1:-1;;;;;17501:34:0;17510:4;-1:-1:-1;;;;;17501:34:0;;17520:14;17501:34;;;;2809:25:1;;2797:2;2782:18;;2663:177;17501:34:0;;;;;;;;-1:-1:-1;17553:4:0;;16742:823;-1:-1:-1;;;;;;;;16742:823:0:o;14349:358::-;14450:6;;14418:4;;-1:-1:-1;;;;;14442:14:0;;;14450:6;;;;;14442:14;;;;:43;;-1:-1:-1;14479:6:0;;-1:-1:-1;;;;;14473:12:0;;;14479:6;;;;;14473:12;;14442:43;:79;;;;-1:-1:-1;14515:6:0;;;;;-1:-1:-1;;;;;14515:6:0;14502:9;:19;;14442:79;:118;;;;-1:-1:-1;;;;;;14539:21:0;;;;;;:17;:21;;;;;;;;14538:22;14442:118;:159;;;;-1:-1:-1;;;;;;14578:23:0;;;;;;:17;:23;;;;;;;;14577:24;14442:159;:186;;;;-1:-1:-1;;;;;;14618:10:0;;5365:42;14618:10;;14442:186;:219;;;;-1:-1:-1;;;;;;14645:16:0;;;;14442:219;:257;;;;-1:-1:-1;;;;;;14678:21:0;;14694:4;14678:21;;14442:257;14435:264;14349:358;-1:-1:-1;;;14349:358:0:o;15524:343::-;15607:16;;;;;;;15606:17;15598:65;;;;-1:-1:-1;;;15598:65:0;;17879:2:1;15598:65:0;;;17861:21:1;17918:2;17898:18;;;17891:30;17957:34;17937:18;;;17930:62;-1:-1:-1;;;18008:18:1;;;18001:33;18051:19;;15598:65:0;17677:399:1;15598:65:0;15679:20;15690:4;15696:2;15679:10;:20::i;:::-;15678:21;:38;;;;-1:-1:-1;15709:7:0;;-1:-1:-1;;;;;15703:13:0;;;15709:7;;15703:13;15678:38;15674:186;;;-1:-1:-1;;;;;;15733:23:0;;;;;:17;:23;;;;;;;;:30;;-1:-1:-1;;15733:30:0;;;15759:4;15733:30;;;;;;15778:19;:25;;;;;:32;;;;;;;;;;15825:16;:23;;-1:-1:-1;;15825:23:0;15733:30;15825:23;;;15524:343::o;17573:623::-;17661:7;17681:18;17714:3;17710:205;;;-1:-1:-1;17747:9:0;:16;;;17710:205;;;17785:4;17781:134;;;-1:-1:-1;17819:9:0;:17;;;;;;17781:134;;;-1:-1:-1;17882:9:0;:21;;;;;;17781:134;17925:17;5084:5;17945:19;17954:10;17945:6;:19;:::i;:::-;:38;;;;:::i;:::-;17925:58;-1:-1:-1;17998:13:0;;17994:157;;18036:11;:21;-1:-1:-1;;;;;18036:21:0;18028:7;:30;;;;;;;;;;:43;;18062:9;;18028:7;:43;;18062:9;;18028:43;:::i;:::-;;;;-1:-1:-1;;18106:11:0;:21;18091:48;;2809:25:1;;;-1:-1:-1;;;;;18106:21:0;;;;18091:48;;;;;2797:2:1;2782:18;18091:48:0;;;;;;;17994:157;18170:18;18179:9;18170:6;:18;:::i;592:548:1:-;704:4;733:2;762;751:9;744:21;794:6;788:13;837:6;832:2;821:9;817:18;810:34;862:1;872:140;886:6;883:1;880:13;872:140;;;981:14;;;977:23;;971:30;947:17;;;966:2;943:26;936:66;901:10;;872:140;;;876:3;1061:1;1056:2;1047:6;1036:9;1032:22;1028:31;1021:42;1131:2;1124;1120:7;1115:2;1107:6;1103:15;1099:29;1088:9;1084:45;1080:54;1072:62;;;;592:548;;;;:::o;1370:131::-;-1:-1:-1;;;;;1445:31:1;;1435:42;;1425:70;;1491:1;1488;1481:12;1506:315;1574:6;1582;1635:2;1623:9;1614:7;1610:23;1606:32;1603:52;;;1651:1;1648;1641:12;1603:52;1690:9;1677:23;1709:31;1734:5;1709:31;:::i;:::-;1759:5;1811:2;1796:18;;;;1783:32;;-1:-1:-1;;;1506:315:1:o;2018:247::-;2077:6;2130:2;2118:9;2109:7;2105:23;2101:32;2098:52;;;2146:1;2143;2136:12;2098:52;2185:9;2172:23;2204:31;2229:5;2204:31;:::i;2270:388::-;2338:6;2346;2399:2;2387:9;2378:7;2374:23;2370:32;2367:52;;;2415:1;2412;2405:12;2367:52;2454:9;2441:23;2473:31;2498:5;2473:31;:::i;:::-;2523:5;-1:-1:-1;2580:2:1;2565:18;;2552:32;2593:33;2552:32;2593:33;:::i;:::-;2645:7;2635:17;;;2270:388;;;;;:::o;2845:456::-;2922:6;2930;2938;2991:2;2979:9;2970:7;2966:23;2962:32;2959:52;;;3007:1;3004;2997:12;2959:52;3046:9;3033:23;3065:31;3090:5;3065:31;:::i;:::-;3115:5;-1:-1:-1;3172:2:1;3157:18;;3144:32;3185:33;3144:32;3185:33;:::i;:::-;2845:456;;3237:7;;-1:-1:-1;;;3291:2:1;3276:18;;;;3263:32;;2845:456::o;3306:127::-;3367:10;3362:3;3358:20;3355:1;3348:31;3398:4;3395:1;3388:15;3422:4;3419:1;3412:15;3438:275;3509:2;3503:9;3574:2;3555:13;;-1:-1:-1;;3551:27:1;3539:40;;3609:18;3594:34;;3630:22;;;3591:62;3588:88;;;3656:18;;:::i;:::-;3692:2;3685:22;3438:275;;-1:-1:-1;3438:275:1:o;3718:183::-;3778:4;3811:18;3803:6;3800:30;3797:56;;;3833:18;;:::i;:::-;-1:-1:-1;3878:1:1;3874:14;3890:4;3870:25;;3718:183::o;3906:662::-;3960:5;4013:3;4006:4;3998:6;3994:17;3990:27;3980:55;;4031:1;4028;4021:12;3980:55;4067:6;4054:20;4093:4;4117:60;4133:43;4173:2;4133:43;:::i;:::-;4117:60;:::i;:::-;4211:15;;;4297:1;4293:10;;;;4281:23;;4277:32;;;4242:12;;;;4321:15;;;4318:35;;;4349:1;4346;4339:12;4318:35;4385:2;4377:6;4373:15;4397:142;4413:6;4408:3;4405:15;4397:142;;;4479:17;;4467:30;;4517:12;;;;4430;;4397:142;;;-1:-1:-1;4557:5:1;3906:662;-1:-1:-1;;;;;;3906:662:1:o;4573:1215::-;4691:6;4699;4752:2;4740:9;4731:7;4727:23;4723:32;4720:52;;;4768:1;4765;4758:12;4720:52;4808:9;4795:23;4837:18;4878:2;4870:6;4867:14;4864:34;;;4894:1;4891;4884:12;4864:34;4932:6;4921:9;4917:22;4907:32;;4977:7;4970:4;4966:2;4962:13;4958:27;4948:55;;4999:1;4996;4989:12;4948:55;5035:2;5022:16;5057:4;5081:60;5097:43;5137:2;5097:43;:::i;5081:60::-;5175:15;;;5257:1;5253:10;;;;5245:19;;5241:28;;;5206:12;;;;5281:19;;;5278:39;;;5313:1;5310;5303:12;5278:39;5337:11;;;;5357:217;5373:6;5368:3;5365:15;5357:217;;;5453:3;5440:17;5470:31;5495:5;5470:31;:::i;:::-;5514:18;;5390:12;;;;5552;;;;5357:217;;;5593:5;-1:-1:-1;;5636:18:1;;5623:32;;-1:-1:-1;;5667:16:1;;;5664:36;;;5696:1;5693;5686:12;5664:36;;5719:63;5774:7;5763:8;5752:9;5748:24;5719:63;:::i;:::-;5709:73;;;4573:1215;;;;;:::o;5982:118::-;6068:5;6061:13;6054:21;6047:5;6044:32;6034:60;;6090:1;6087;6080:12;6105:382;6170:6;6178;6231:2;6219:9;6210:7;6206:23;6202:32;6199:52;;;6247:1;6244;6237:12;6199:52;6286:9;6273:23;6305:31;6330:5;6305:31;:::i;:::-;6355:5;-1:-1:-1;6412:2:1;6397:18;;6384:32;6425:30;6384:32;6425:30;:::i;6492:159::-;6559:20;;6619:6;6608:18;;6598:29;;6588:57;;6641:1;6638;6631:12;6588:57;6492:159;;;:::o;6656:256::-;6722:6;6730;6783:2;6771:9;6762:7;6758:23;6754:32;6751:52;;;6799:1;6796;6789:12;6751:52;6822:28;6840:9;6822:28;:::i;:::-;6812:38;;6869:37;6902:2;6891:9;6887:18;6869:37;:::i;:::-;6859:47;;6656:256;;;;;:::o;6917:184::-;6975:6;7028:2;7016:9;7007:7;7003:23;6999:32;6996:52;;;7044:1;7041;7034:12;6996:52;7067:28;7085:9;7067:28;:::i;7106:341::-;7308:2;7290:21;;;7347:2;7327:18;;;7320:30;-1:-1:-1;;;7381:2:1;7366:18;;7359:47;7438:2;7423:18;;7106:341::o;7792:127::-;7853:10;7848:3;7844:20;7841:1;7834:31;7884:4;7881:1;7874:15;7908:4;7905:1;7898:15;7924:422;8013:1;8056:5;8013:1;8070:270;8091:7;8081:8;8078:21;8070:270;;;8150:4;8146:1;8142:6;8138:17;8132:4;8129:27;8126:53;;;8159:18;;:::i;:::-;8209:7;8199:8;8195:22;8192:55;;;8229:16;;;;8192:55;8308:22;;;;8268:15;;;;8070:270;;;8074:3;7924:422;;;;;:::o;8351:806::-;8400:5;8430:8;8420:80;;-1:-1:-1;8471:1:1;8485:5;;8420:80;8519:4;8509:76;;-1:-1:-1;8556:1:1;8570:5;;8509:76;8601:4;8619:1;8614:59;;;;8687:1;8682:130;;;;8594:218;;8614:59;8644:1;8635:10;;8658:5;;;8682:130;8719:3;8709:8;8706:17;8703:43;;;8726:18;;:::i;:::-;-1:-1:-1;;8782:1:1;8768:16;;8797:5;;8594:218;;8896:2;8886:8;8883:16;8877:3;8871:4;8868:13;8864:36;8858:2;8848:8;8845:16;8840:2;8834:4;8831:12;8827:35;8824:77;8821:159;;;-1:-1:-1;8933:19:1;;;8965:5;;8821:159;9012:34;9037:8;9031:4;9012:34;:::i;:::-;9082:6;9078:1;9074:6;9070:19;9061:7;9058:32;9055:58;;;9093:18;;:::i;:::-;9131:20;;8351:806;-1:-1:-1;;;8351:806:1:o;9162:140::-;9220:5;9249:47;9290:4;9280:8;9276:19;9270:4;9249:47;:::i;9307:168::-;9347:7;9413:1;9409;9405:6;9401:14;9398:1;9395:21;9390:1;9383:9;9376:17;9372:45;9369:71;;;9420:18;;:::i;:::-;-1:-1:-1;9460:9:1;;9307:168::o;9480:128::-;9547:9;;;9568:11;;;9565:37;;;9582:18;;:::i;9963:127::-;10024:10;10019:3;10015:20;10012:1;10005:31;10055:4;10052:1;10045:15;10079:4;10076:1;10069:15;10095:175;10132:3;10176:4;10169:5;10165:16;10205:4;10196:7;10193:17;10190:43;;10213:18;;:::i;:::-;10262:1;10249:15;;10095:175;-1:-1:-1;;10095:175:1:o;10684:425::-;10886:2;10868:21;;;10925:2;10905:18;;;10898:30;10964:34;10959:2;10944:18;;10937:62;11035:31;11030:2;11015:18;;11008:59;11099:3;11084:19;;10684:425::o;13222:251::-;13292:6;13345:2;13333:9;13324:7;13320:23;13316:32;13313:52;;;13361:1;13358;13351:12;13313:52;13393:9;13387:16;13412:31;13437:5;13412:31;:::i;14505:184::-;14575:6;14628:2;14616:9;14607:7;14603:23;14599:32;14596:52;;;14644:1;14641;14634:12;14596:52;-1:-1:-1;14667:16:1;;14505:184;-1:-1:-1;14505:184:1:o;14973:245::-;15040:6;15093:2;15081:9;15072:7;15068:23;15064:32;15061:52;;;15109:1;15106;15099:12;15061:52;15141:9;15135:16;15160:28;15182:5;15160:28;:::i;17547:125::-;17612:9;;;17633:10;;;17630:36;;;17646:18;;:::i;18081:217::-;18121:1;18147;18137:132;;18191:10;18186:3;18182:20;18179:1;18172:31;18226:4;18223:1;18216:15;18254:4;18251:1;18244:15;18137:132;-1:-1:-1;18283:9:1;;18081:217::o

Swarm Source

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