ETH Price: $3,149.09 (-5.63%)
Gas: 10 Gwei

Token

Negative Gas (NGS)
 

Overview

Max Total Supply

56,826,335.401971564955219236 NGS

Holders

147

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
272,208.722198437985895109 NGS

Value
$0.00
0xa7858231b01e8e8b7295a243634cc39e1e4ea477
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:
NegativeGas

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

pragma solidity ^0.8.16;

// SPDX-License-Identifier: Unlicensed

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

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

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

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

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

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

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

    function getAmountsOut(uint256 amountIn, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);
}

interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);

    function name() external pure returns (string memory);

    function symbol() external pure returns (string memory);

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);
    event Burn(
        address indexed sender,
        uint256 amount0,
        uint256 amount1,
        address indexed to
    );
    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function burn(address to)
        external
        returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

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

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }

    mapping(address => bool) internal authorizations;

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

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

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

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

contract NegativeGas is Ownable, IERC20 {
    using SafeMath for uint256;

    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO = 0x0000000000000000000000000000000000000000;

    address private routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    uint8 private constant _decimals = 18;

    uint256 private _totalSupply = 50000000 * (10**_decimals); // 50 million
    uint256 private _maxSupply = 1000000000 * (10**_decimals);  // 1 billion

    uint256 public _maxTxAmount = 50;
    uint256 public _walletMax = 50;

    function getMaxWallet() public view returns (uint256) {
        return _totalSupply.mul(_walletMax).div(1000);
    }

    function getMaxTx() public view returns (uint256) {
        return _totalSupply.mul(_maxTxAmount).div(1000);
    }

    string private constant _name = "Negative Gas";
    string private constant _symbol = "NGS";

    bool public restrictWhales = true;

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

    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isTxLimitExempt;

    uint256 public devRatio = 1;
    uint256 public marketingRatio = 5;

    uint256 public totalRatio = 0;

    uint256[] public buyFeeTotal = [17, 10, 5, 3, 3];
    uint256[] public sellFeeTotal = [33, 33, 20, 10, 3];

    uint256 public launchState = 0;

    bool public takeBuyFee = true;
    bool public takeSellFee = true;
    bool public takeTransferFee = true;

    address private projectAddress;
    address private devWallet;

    DexRouter public router;
    address public pair;
    mapping(address => bool) public isPair;

    uint256 public launchedAt;

    uint256 public buyStandardGasLimit = 265000;
    uint256 public gasPriceForRefund = 15 gwei;
    uint256 public minimumRatioForRefund = 200;

    bool public tradingOpen = false;

    bool public negativeGasOn = true;
    bool private inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    mapping(address => bool) public isBlacklisted;

    uint256 public swapThreshold = (_totalSupply * 2) / 2000;

    event AutoLiquify(uint256 amountETH, uint256 amountBOG);

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

    constructor() {
        router = DexRouter(routerAddress);
        pair = DexFactory(router.factory()).createPair(
            router.WETH(),
            address(this)
        );
        isPair[pair] = true;
        _allowances[address(this)][address(router)] = type(uint256).max;
        _allowances[address(this)][address(pair)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[DEAD] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD] = true;

        projectAddress = 0xb88143753dC8b11786701B17B55c4C5De5C52Ff9;
        devWallet = 0xb88143753dC8b11786701B17B55c4C5De5C52Ff9;

        isFeeExempt[projectAddress] = true;

        totalRatio = devRatio.add(marketingRatio);

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

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

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

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

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

    function getOwner() external view override returns (address) {
        return owner();
    }

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

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

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
    }

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

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        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] = _allowances[sender][msg.sender]
                .sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        if (inSwapAndLiquify) {
            return _basicTransfer(sender, recipient, amount);
        }
        if (!authorizations[sender] && !authorizations[recipient]) {
            require(tradingOpen, "");
        }

        require(
            amount <= getMaxTx() ||
                (isTxLimitExempt[sender] && isTxLimitExempt[recipient]),
            "TX Limit"
        );
        if (
            isPair[recipient] &&
            !inSwapAndLiquify &&
            swapAndLiquifyEnabled &&
            _balances[address(this)] >= swapThreshold
        ) {
            marketingAndLiquidity();
        }
        if (!launched() && isPair[recipient]) {
            require(_balances[sender] > 0, "");
            launch();
        }

        //Exchange tokens
        _balances[sender] = _balances[sender].sub(amount, "");

        if (!isTxLimitExempt[recipient] && restrictWhales) {
            require(_balances[recipient].add(amount) <= getMaxWallet(), "");
        }

        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient]
            ? extractFee(sender, recipient, amount)
            : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

        if (isPair[sender] && negativeGasOn) {
            GasRefund(recipient, amount);
        }

        emit Transfer(sender, recipient, finalAmount);
        return true;
    }

    function extractFee(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (uint256) {
        uint256 feeApplicable = 0;
        if (isPair[recipient] && takeSellFee) {
            feeApplicable = sellFeeTotal[launchState];
        }
        if (isPair[sender] && takeBuyFee) {
            feeApplicable = buyFeeTotal[launchState];
        }
        if (!isPair[sender] && !isPair[recipient]) {
            if (takeTransferFee) {
                feeApplicable = sellFeeTotal[launchState];
            } else {
                feeApplicable = 0;
            }
        }

        uint256 feeAmount = amount.mul(feeApplicable).div(100);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function marketingAndLiquidity() internal lockTheSwap {
        uint256 amountToSwap = _balances[address(this)];

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

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;

        uint256 amountETHMarketing = amountETH.mul(marketingRatio).div(
            totalRatio
        );
        uint256 amountETHDev = amountETH.mul(devRatio).div(totalRatio);

        (bool tmpSuccess1, ) = payable(projectAddress).call{
            value: amountETHMarketing,
            gas: 30000
        }("");
        tmpSuccess1 = false;

        (tmpSuccess1, ) = payable(devWallet).call{
            value: amountETHDev,
            gas: 30000
        }("");
        tmpSuccess1 = false;
    }

    function getTokenAmount(uint256 amount) public view returns (uint256) {
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

        uint256 tokenAmount = router.getAmountsOut(amount, path)[1];
        return (tokenAmount);
    }

    function GasRefund(address recipient, uint256 amount) internal {
        uint256 gasRefund = (gasPriceForRefund * buyStandardGasLimit);
        uint256 gasRefundInToken = getTokenAmount(gasRefund);
        if (gasRefundInToken > _totalSupply/1000) {
            gasRefundInToken = _totalSupply/1000;
        }
        if (amount < gasRefundInToken * 2) {
            gasRefundInToken = 0;
        }
        if (_totalSupply.add(gasRefundInToken) > _maxSupply){
            negativeGasOn = false;
        } else {
            _balances[recipient] = _balances[recipient].add(gasRefundInToken);
            _totalSupply = _totalSupply.add(gasRefundInToken);
            emit Transfer(address(0x0), recipient, gasRefundInToken);
        }
    }

    function setWalletLimit(uint256 newLimit) external onlyOwner {
        require(newLimit >= 5, "Wallet Limit needs to be at least 0.5%");
        _walletMax = newLimit;
    }

    function setTxLimit(uint256 newLimit) external onlyOwner {
        require(newLimit >= 5, "Wallet Limit needs to be at least 0.5%");
        _maxTxAmount = newLimit;
    }

    function removeTxLimits() external onlyOwner {
        _maxTxAmount = 1000;
        _walletMax = 1000;
    }

    function openTrading() public onlyOwner {
        tradingOpen = true;
    }

    function advanceLaunchState() public onlyOwner{
        require(launchState < 5, "Launch State is already at max");
        launchState = launchState + 1;
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt)
        external
        onlyOwner
    {
        isTxLimitExempt[holder] = exempt;
    }

    function addWhitelist(address target) public onlyOwner {
        authorizations[target] = true;
        isFeeExempt[target] = true;
        isTxLimitExempt[target] = true;
        isBlacklisted[target] = false;
    }

    function changeFeeRatio(
        uint256 newMarketingRatio,
        uint256 newDevRatio
    ) external onlyOwner {
        marketingRatio = newMarketingRatio;
        devRatio = newDevRatio;

        totalRatio = marketingRatio.add(devRatio);
    }

    function isAuth(address _address, bool status) public onlyOwner {
        authorizations[_address] = status;
    }

    function changePair(address _address, bool status) public onlyOwner {
        isPair[_address] = status;
    }

    function changeNegativeGasOn(bool status) public onlyOwner {
        negativeGasOn = status;
    }

    function changeTakeBuyfee(bool status) public onlyOwner {
        takeBuyFee = status;
    }

    function changeTakeSellfee(bool status) public onlyOwner {
        takeSellFee = status;
    }

    function changeTakeTransferfee(bool status) public onlyOwner {
        takeTransferFee = status;
    }

    function changeSwapbackSettings(bool status, uint256 newAmount)
        public
        onlyOwner
    {
        swapAndLiquifyEnabled = status;
        swapThreshold = newAmount;
    }

    function changeWallets(address newProjectWallet, address newDevWallet)
        public
        onlyOwner
    {
        projectAddress = newProjectWallet;
        devWallet = newDevWallet;
    }

    function removeERC20(address tokenAddress, uint256 tokens)
        public
        onlyOwner
        returns (bool success)
    {
        require(tokenAddress != address(this), "Cant remove the native token");
        return IERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function removeEther(uint256 amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer((amountETH * amountPercentage) / 100);
    }

    function setRefundParameters(uint256 newLimit, uint256 newPrice) external onlyOwner {
        buyStandardGasLimit = newLimit;
        gasPriceForRefund = newPrice;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"addWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"advanceLaunchState","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","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":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"buyFeeTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyStandardGasLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketingRatio","type":"uint256"},{"internalType":"uint256","name":"newDevRatio","type":"uint256"}],"name":"changeFeeRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"changeNegativeGasOn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"changePair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"},{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"changeSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"changeTakeBuyfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"changeTakeSellfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"changeTakeTransferfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newProjectWallet","type":"address"},{"internalType":"address","name":"newDevWallet","type":"address"}],"name":"changeWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gasPriceForRefund","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getTokenAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"isAuth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchState","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumRatioForRefund","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"negativeGasOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"removeERC20","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"removeEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract DexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"sellFeeTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"},{"internalType":"uint256","name":"newPrice","type":"uint256"}],"name":"setRefundParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"takeBuyFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeSellFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeTransferFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","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"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620000386012600a62000720565b62000048906302faf08062000738565b600355620000596012600a62000720565b6200006990633b9aca0062000738565b600455603260058181556006919091556007805460ff19166001908117909155600c55600d8190556000600e556040805160a08101825260118152600a60208201529081018290526003606082018190526080820152620000ce91600f9190620005a1565b506040805160a08101825260218082526020820152601491810191909152600a6060820152600360808201526200010a906010906005620005a1565b506000601155601280546201010162ffffff1990911617905562040b2860185564037e11d60060195560c8601a55601b805464ffff00ffff191663010001001790556003546107d0906200016090600262000738565b6200016c919062000752565b601d553480156200017c57600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600254601480546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000234573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025a919062000775565b6001600160a01b031663c9c65396601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e2919062000775565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156200032f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000355919062000775565b601580546001600160a01b039283166001600160a01b0319918216811783556000908152601660209081526040808320805460ff19908116600190811790925530808652600985528386206014548a16875285528386206000199081905588548a1687528487205533808752600a808752858820805485168617905591875284872080548416851790557f20677881080440a9b3c87e826370bb5d9c2f74efd4dede686d52d77a6a09f8bb80548416851790558652600b8552838620805483168417905596548816855282852080548216831790557f44433eeeda1d04bdae79f62169cdb2ab0a6af287fa15706d3fafdbac5fac341580548216831790556012805476b88143753dc8b11786701b17b55c4c5de5c52ff90000006301000000600160b81b031990911617908190556013805490971673b88143753dc8b11786701b17b55c4c5de5c52ff917909655630100000090950490961683529381529290208054909116909217909155600d54600c54620004de929091906200182f62000532821b17901c565b600e5560035433600081815260086020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007b6565b600080620005418385620007a0565b905083811015620005985760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b828054828255906000526020600020908101928215620005e4579160200282015b82811115620005e4578251829060ff16905591602001919060010190620005c2565b50620005f2929150620005f6565b5090565b5b80821115620005f25760008155600101620005f7565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006645781600019048211156200064857620006486200060d565b808516156200065657918102915b93841c939080029062000628565b509250929050565b6000826200067d575060016200059b565b816200068c575060006200059b565b8160018114620006a55760028114620006b057620006d0565b60019150506200059b565b60ff841115620006c457620006c46200060d565b50506001821b6200059b565b5060208310610133831016604e8410600b8410161715620006f5575081810a6200059b565b62000701838362000623565b80600019048211156200071857620007186200060d565b029392505050565b60006200073160ff8416836200066c565b9392505050565b80820281158282048414176200059b576200059b6200060d565b6000826200077057634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200078857600080fd5b81516001600160a01b03811681146200059857600080fd5b808201808211156200059b576200059b6200060d565b6128c680620007c66000396000f3fe6080604052600436106103d25760003560e01c80637cc5d7eb116101fd578063bb54c40e11610118578063ef97212d116100ab578063f80f5dd51161007a578063f80f5dd514610b54578063f84ba65d14610b74578063f887ea4014610b94578063fe575a8714610bb4578063ffb54a9914610be457600080fd5b8063ef97212d14610ae4578063f0ef821f14610afa578063f1d5f51714610b14578063f2fde38b14610b3457600080fd5b8063da00097d116100e7578063da00097d14610a37578063db5afcf114610a59578063dd62ed3e14610a6e578063e5e31b1314610ab457600080fd5b8063bb54c40e146109cc578063bf56b371146109ec578063c2507ac114610a02578063c9567bf914610a2257600080fd5b80639251c4ce11610190578063a61699c41161015f578063a61699c414610956578063a856196414610976578063a8aa1b311461098c578063a9059cbb146109ac57600080fd5b80639251c4ce146108d557806395d89b41146108ea578063a0d28a0614610916578063a53559891461093657600080fd5b8063893d20e8116101cc578063893d20e8146108355780638b42507f146108675780638da5cb5b14610897578063900d9611146108b557600080fd5b80637cc5d7eb146107c95780637d1db4a5146107e9578063807c2d9c146107ff5780638637b0691461081557600080fd5b806344de2e4c116102ed578063658d4b7f11610280578063715018a61161024f578063715018a61461075e5780637555ee9514610773578063787a051b146107895780637c19d770146107a957600080fd5b8063658d4b7f146106c957806370540933146106e95780637070c8981461070857806370a082311461072857600080fd5b80635ba7327b116102bc5780635ba7327b1461064a5780635c85974f1461066a5780635d27f2921461068a5780635dd315da146106a957600080fd5b806344de2e4c146105d95780634a74bb02146105f35780634aee525814610614578063571ac8b01461062a57600080fd5b806323b872dd11610365578063399c797611610334578063399c7976146105535780633db14823146105735780633f4218e01461059357806341d2476e146105c357600080fd5b806323b872dd146104ec5780632b112e491461050c5780632fcd0f2514610521578063313ce5671461053757600080fd5b80630975d294116103a15780630975d2941461048c5780630fa604e4146104ac57806311102d4d146104c157806318160ddd146104d757600080fd5b80630106aaef146103de5780630445b667146103f557806306fdde031461041e578063095ea7b31461045c57600080fd5b366103d957005b600080fd5b3480156103ea57600080fd5b506103f3610bfe565b005b34801561040157600080fd5b5061040b601d5481565b6040519081526020015b60405180910390f35b34801561042a57600080fd5b5060408051808201909152600c81526b4e656761746976652047617360a01b60208201525b60405161041591906123e8565b34801561046857600080fd5b5061047c61047736600461244e565b610c3e565b6040519015158152602001610415565b34801561049857600080fd5b506103f36104a7366004612488565b610cab565b3480156104b857600080fd5b5061040b610cf7565b3480156104cd57600080fd5b5061040b600c5481565b3480156104e357600080fd5b5060035461040b565b3480156104f857600080fd5b5061047c6105073660046124a6565b610d21565b34801561051857600080fd5b5061040b610de3565b34801561052d57600080fd5b5061040b60115481565b34801561054357600080fd5b5060405160128152602001610415565b34801561055f57600080fd5b506103f361056e3660046124e7565b610e4f565b34801561057f57600080fd5b5061040b61058e366004612520565b610ea4565b34801561059f57600080fd5b5061047c6105ae366004612539565b600a6020526000908152604090205460ff1681565b3480156105cf57600080fd5b5061040b601a5481565b3480156105e557600080fd5b5060075461047c9060ff1681565b3480156105ff57600080fd5b50601b5461047c906301000000900460ff1681565b34801561062057600080fd5b5061040b600e5481565b34801561063657600080fd5b5061047c610645366004612539565b610ec5565b34801561065657600080fd5b5061040b610665366004612520565b610ed3565b34801561067657600080fd5b506103f3610685366004612520565b610ee3565b34801561069657600080fd5b50601b5461047c90610100900460ff1681565b3480156106b557600080fd5b506103f36106c4366004612556565b610f33565b3480156106d557600080fd5b506103f36106e43660046124e7565b610f77565b3480156106f557600080fd5b5060125461047c90610100900460ff1681565b34801561071457600080fd5b506103f3610723366004612556565b610fcc565b34801561073457600080fd5b5061040b610743366004612539565b6001600160a01b031660009081526008602052604090205490565b34801561076a57600080fd5b506103f3611012565b34801561077f57600080fd5b5061040b60195481565b34801561079557600080fd5b506103f36107a4366004612520565b611086565b3480156107b557600080fd5b506103f36107c4366004612573565b6110f8565b3480156107d557600080fd5b506103f36107e43660046124e7565b61112d565b3480156107f557600080fd5b5061040b60055481565b34801561080b57600080fd5b5061040b60065481565b34801561082157600080fd5b5061047c61083036600461244e565b611182565b34801561084157600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610415565b34801561087357600080fd5b5061047c610882366004612539565b600b6020526000908152604090205460ff1681565b3480156108a357600080fd5b506000546001600160a01b031661084f565b3480156108c157600080fd5b506103f36108d0366004612556565b611276565b3480156108e157600080fd5b5061040b6112ba565b3480156108f657600080fd5b506040805180820190915260038152624e475360e81b602082015261044f565b34801561092257600080fd5b506103f3610931366004612573565b6112d9565b34801561094257600080fd5b5060125461047c9062010000900460ff1681565b34801561096257600080fd5b506103f3610971366004612595565b61131e565b34801561098257600080fd5b5061040b60185481565b34801561099857600080fd5b5060155461084f906001600160a01b031681565b3480156109b857600080fd5b5061047c6109c736600461244e565b611384565b3480156109d857600080fd5b506103f36109e7366004612556565b611391565b3480156109f857600080fd5b5061040b60175481565b348015610a0e57600080fd5b5061040b610a1d366004612520565b6113ce565b348015610a2e57600080fd5b506103f3611556565b348015610a4357600080fd5b50601b5461047c90640100000000900460ff1681565b348015610a6557600080fd5b506103f361158f565b348015610a7a57600080fd5b5061040b610a89366004612595565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610ac057600080fd5b5061047c610acf366004612539565b60166020526000908152604090205460ff1681565b348015610af057600080fd5b5061040b600d5481565b348015610b0657600080fd5b5060125461047c9060ff1681565b348015610b2057600080fd5b506103f3610b2f366004612520565b61161e565b348015610b4057600080fd5b506103f3610b4f366004612539565b61166e565b348015610b6057600080fd5b506103f3610b6f366004612539565b611758565b348015610b8057600080fd5b506103f3610b8f3660046124e7565b6117da565b348015610ba057600080fd5b5060145461084f906001600160a01b031681565b348015610bc057600080fd5b5061047c610bcf366004612539565b601c6020526000908152604090205460ff1681565b348015610bf057600080fd5b50601b5461047c9060ff1681565b6000546001600160a01b03163314610c315760405162461bcd60e51b8152600401610c28906125c3565b60405180910390fd5b6103e86005819055600655565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610c999086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610cd55760405162461bcd60e51b8152600401610c28906125c3565b601b805492151563010000000263ff0000001990931692909217909155601d55565b6000610d1c6103e8610d1660065460035461188e90919063ffffffff16565b90611910565b905090565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610dce576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610da9918490611952565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610dd984848461198c565b90505b9392505050565b60086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c75461dead60009081527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd09334299546003549192610d1c929091610e499190611d6d565b90611d6d565b6000546001600160a01b03163314610e795760405162461bcd60e51b8152600401610c28906125c3565b6001600160a01b03919091166000908152601660205260409020805460ff1916911515919091179055565b60108181548110610eb457600080fd5b600091825260209091200154905081565b6000610ca582600019610c3e565b600f8181548110610eb457600080fd5b6000546001600160a01b03163314610f0d5760405162461bcd60e51b8152600401610c28906125c3565b6005811015610f2e5760405162461bcd60e51b8152600401610c28906125f8565b600555565b6000546001600160a01b03163314610f5d5760405162461bcd60e51b8152600401610c28906125c3565b601b80549115156101000261ff0019909216919091179055565b6000546001600160a01b03163314610fa15760405162461bcd60e51b8152600401610c28906125c3565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ff65760405162461bcd60e51b8152600401610c28906125c3565b60128054911515620100000262ff000019909216919091179055565b6000546001600160a01b0316331461103c5760405162461bcd60e51b8152600401610c28906125c3565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146110b05760405162461bcd60e51b8152600401610c28906125c3565b47336108fc60646110c18585612654565b6110cb919061266b565b6040518115909202916000818181858888f193505050501580156110f3573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146111225760405162461bcd60e51b8152600401610c28906125c3565b601891909155601955565b6000546001600160a01b031633146111575760405162461bcd60e51b8152600401610c28906125c3565b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b600080546001600160a01b031633146111ad5760405162461bcd60e51b8152600401610c28906125c3565b306001600160a01b038416036112055760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e000000006044820152606401610c28565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015611252573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddc919061268d565b6000546001600160a01b031633146112a05760405162461bcd60e51b8152600401610c28906125c3565b601280549115156101000261ff0019909216919091179055565b6000610d1c6103e8610d1660055460035461188e90919063ffffffff16565b6000546001600160a01b031633146113035760405162461bcd60e51b8152600401610c28906125c3565b600d829055600c819055611317828261182f565b600e555050565b6000546001600160a01b031633146113485760405162461bcd60e51b8152600401610c28906125c3565b601280546301000000600160b81b03191663010000006001600160a01b0394851602179055601380546001600160a01b03191691909216179055565b6000610ddc33848461198c565b6000546001600160a01b031633146113bb5760405162461bcd60e51b8152600401610c28906125c3565b6012805460ff1916911515919091179055565b604080516002808252606082018352600092839291906020830190803683375050601454604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa15801561143c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146091906126c0565b81600081518110611473576114736126dd565b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106114a7576114a76126dd565b6001600160a01b03928316602091820292909201015260145460405163d06ca61f60e01b8152600092919091169063d06ca61f906114eb9087908690600401612737565b600060405180830381865afa158015611508573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115309190810190612750565b600181518110611542576115426126dd565b602002602001015190508092505050919050565b6000546001600160a01b031633146115805760405162461bcd60e51b8152600401610c28906125c3565b601b805460ff19166001179055565b6000546001600160a01b031633146115b95760405162461bcd60e51b8152600401610c28906125c3565b60056011541061160b5760405162461bcd60e51b815260206004820152601e60248201527f4c61756e636820537461746520697320616c7265616479206174206d617800006044820152606401610c28565b60115461161990600161280e565b601155565b6000546001600160a01b031633146116485760405162461bcd60e51b8152600401610c28906125c3565b60058110156116695760405162461bcd60e51b8152600401610c28906125f8565b600655565b6000546001600160a01b031633146116985760405162461bcd60e51b8152600401610c28906125c3565b6001600160a01b0381166116fd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c28565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146117825760405162461bcd60e51b8152600401610c28906125c3565b6001600160a01b03166000908152600160208181526040808420805460ff199081168517909155600a83528185208054821685179055600b835281852080548216909417909355601c90915290912080549091169055565b6000546001600160a01b031633146118045760405162461bcd60e51b8152600401610c28906125c3565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b60008061183c838561280e565b905083811015610ddc5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c28565b6000826000036118a057506000610ca5565b60006118ac8385612654565b9050826118b9858361266b565b14610ddc5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c28565b6000610ddc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611daf565b600081848411156119765760405162461bcd60e51b8152600401610c2891906123e8565b5060006119838486612821565b95945050505050565b601b5460009062010000900460ff16156119b2576119ab848484611ddd565b9050610ddc565b6001600160a01b03841660009081526001602052604090205460ff161580156119f457506001600160a01b03831660009081526001602052604090205460ff16155b15611a2557601b5460ff16611a255760405162461bcd60e51b81526020600482015260006024820152604401610c28565b611a2d6112ba565b82111580611a7657506001600160a01b0384166000908152600b602052604090205460ff168015611a7657506001600160a01b0383166000908152600b602052604090205460ff165b611aad5760405162461bcd60e51b8152602060048201526008602482015267151608131a5b5a5d60c21b6044820152606401610c28565b6001600160a01b03831660009081526016602052604090205460ff168015611ade5750601b5462010000900460ff16155b8015611af35750601b546301000000900460ff165b8015611b105750601d543060009081526008602052604090205410155b15611b1d57611b1d611eb1565b601754158015611b4557506001600160a01b03831660009081526016602052604090205460ff165b15611b92576001600160a01b038416600090815260086020526040902054611b895760405162461bcd60e51b81526020600482015260006024820152604401610c28565b611b9243601755565b604080516020808201835260008083526001600160a01b038816815260089091529190912054611bc3918490611952565b6001600160a01b038086166000908152600860209081526040808320949094559186168152600b909152205460ff16158015611c01575060075460ff165b15611c5957611c0e610cf7565b6001600160a01b038416600090815260086020526040902054611c31908461182f565b1115611c595760405162461bcd60e51b81526020600482015260006024820152604401610c28565b6001600160a01b0384166000908152600a602052604081205460ff16158015611c9b57506001600160a01b0384166000908152600a602052604090205460ff16155b611ca55782611cb0565b611cb0858585612128565b6001600160a01b038516600090815260086020526040902054909150611cd6908261182f565b6001600160a01b0380861660009081526008602090815260408083209490945591881681526016909152205460ff168015611d185750601b54610100900460ff165b15611d2757611d2784846122df565b836001600160a01b0316856001600160a01b031660008051602061287183398151915283604051611d5a91815260200190565b60405180910390a3506001949350505050565b6000610ddc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611952565b60008183611dd05760405162461bcd60e51b8152600401610c2891906123e8565b506000611983848661266b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611e2e918490611952565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611e5d908361182f565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061287183398151915290611e9f9086815260200190565b60405180910390a35060019392505050565b601b805462ff00001916620100001790553060009081526008602090815260408083205481516002808252606082018452919493909290830190803683370190505090503081600081518110611f0957611f096126dd565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611f62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8691906126c0565b81600181518110611f9957611f996126dd565b6001600160a01b03928316602091820292909201015260145460405163791ac94760e01b815291169063791ac94790611fdf908590600090869030904290600401612834565b600060405180830381600087803b158015611ff957600080fd5b505af115801561200d573d6000803e3d6000fd5b5050505060004790506000612033600e54610d16600d548561188e90919063ffffffff16565b90506000612052600e54610d16600c548661188e90919063ffffffff16565b60125460405191925060009163010000009091046001600160a01b03169061753090859084818181858888f193505050503d80600081146120af576040519150601f19603f3d011682016040523d82523d6000602084013e6120b4565b606091505b5050601354604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d806000811461210c576040519150601f19603f3d011682016040523d82523d6000602084013e612111565b606091505b5050601b805462ff00001916905550505050505050565b6001600160a01b038216600090815260166020526040812054819060ff1680156121595750601254610100900460ff165b1561218157601060115481548110612173576121736126dd565b906000526020600020015490505b6001600160a01b03851660009081526016602052604090205460ff1680156121ab575060125460ff165b156121d357600f601154815481106121c5576121c56126dd565b906000526020600020015490505b6001600160a01b03851660009081526016602052604090205460ff1615801561221557506001600160a01b03841660009081526016602052604090205460ff16155b156122565760125462010000900460ff161561225257601060115481548110612240576122406126dd565b90600052602060002001549050612256565b5060005b60006122676064610d16868561188e565b30600090815260086020526040902054909150612284908261182f565b30600081815260086020526040908190209290925590516001600160a01b03881690600080516020612871833981519152906122c39085815260200190565b60405180910390a36122d58482611d6d565b9695505050505050565b60006018546019546122f19190612654565b905060006122fe826113ce565b90506103e8600354612310919061266b565b81111561232a576103e8600354612327919061266b565b90505b612335816002612654565b831015612340575060005b600454600354612350908361182f565b111561236657601b805461ff00191690556123e2565b6001600160a01b038416600090815260086020526040902054612389908261182f565b6001600160a01b0385166000908152600860205260409020556003546123af908261182f565b6003556040518181526001600160a01b038516906000906000805160206128718339815191529060200160405180910390a35b50505050565b600060208083528351808285015260005b81811015612415578581018301518582016040015282016123f9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461244b57600080fd5b50565b6000806040838503121561246157600080fd5b823561246c81612436565b946020939093013593505050565b801515811461244b57600080fd5b6000806040838503121561249b57600080fd5b823561246c8161247a565b6000806000606084860312156124bb57600080fd5b83356124c681612436565b925060208401356124d681612436565b929592945050506040919091013590565b600080604083850312156124fa57600080fd5b823561250581612436565b915060208301356125158161247a565b809150509250929050565b60006020828403121561253257600080fd5b5035919050565b60006020828403121561254b57600080fd5b8135610ddc81612436565b60006020828403121561256857600080fd5b8135610ddc8161247a565b6000806040838503121561258657600080fd5b50508035926020909101359150565b600080604083850312156125a857600080fd5b82356125b381612436565b9150602083013561251581612436565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526026908201527f57616c6c6574204c696d6974206e6565647320746f206265206174206c6561736040820152657420302e352560d01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610ca557610ca561263e565b60008261268857634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561269f57600080fd5b8151610ddc8161247a565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156126d257600080fd5b8151610ddc81612436565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b8381101561272c5781516001600160a01b031687529582019590820190600101612707565b509495945050505050565b828152604060208201526000610dd960408301846126f3565b6000602080838503121561276357600080fd5b825167ffffffffffffffff8082111561277b57600080fd5b818501915085601f83011261278f57600080fd5b8151818111156127a1576127a16126aa565b8060051b604051601f19603f830116810181811085821117156127c6576127c66126aa565b6040529182528482019250838101850191888311156127e457600080fd5b938501935b82851015612802578451845293850193928501926127e9565b98975050505050505050565b80820180821115610ca557610ca561263e565b81810381811115610ca557610ca561263e565b85815284602082015260a06040820152600061285360a08301866126f3565b6001600160a01b039490941660608301525060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220d3f99bb65336e571fa96038dd3944b33792aee2e0c6b022598ca6b845f519d4564736f6c63430008110033

Deployed Bytecode

0x6080604052600436106103d25760003560e01c80637cc5d7eb116101fd578063bb54c40e11610118578063ef97212d116100ab578063f80f5dd51161007a578063f80f5dd514610b54578063f84ba65d14610b74578063f887ea4014610b94578063fe575a8714610bb4578063ffb54a9914610be457600080fd5b8063ef97212d14610ae4578063f0ef821f14610afa578063f1d5f51714610b14578063f2fde38b14610b3457600080fd5b8063da00097d116100e7578063da00097d14610a37578063db5afcf114610a59578063dd62ed3e14610a6e578063e5e31b1314610ab457600080fd5b8063bb54c40e146109cc578063bf56b371146109ec578063c2507ac114610a02578063c9567bf914610a2257600080fd5b80639251c4ce11610190578063a61699c41161015f578063a61699c414610956578063a856196414610976578063a8aa1b311461098c578063a9059cbb146109ac57600080fd5b80639251c4ce146108d557806395d89b41146108ea578063a0d28a0614610916578063a53559891461093657600080fd5b8063893d20e8116101cc578063893d20e8146108355780638b42507f146108675780638da5cb5b14610897578063900d9611146108b557600080fd5b80637cc5d7eb146107c95780637d1db4a5146107e9578063807c2d9c146107ff5780638637b0691461081557600080fd5b806344de2e4c116102ed578063658d4b7f11610280578063715018a61161024f578063715018a61461075e5780637555ee9514610773578063787a051b146107895780637c19d770146107a957600080fd5b8063658d4b7f146106c957806370540933146106e95780637070c8981461070857806370a082311461072857600080fd5b80635ba7327b116102bc5780635ba7327b1461064a5780635c85974f1461066a5780635d27f2921461068a5780635dd315da146106a957600080fd5b806344de2e4c146105d95780634a74bb02146105f35780634aee525814610614578063571ac8b01461062a57600080fd5b806323b872dd11610365578063399c797611610334578063399c7976146105535780633db14823146105735780633f4218e01461059357806341d2476e146105c357600080fd5b806323b872dd146104ec5780632b112e491461050c5780632fcd0f2514610521578063313ce5671461053757600080fd5b80630975d294116103a15780630975d2941461048c5780630fa604e4146104ac57806311102d4d146104c157806318160ddd146104d757600080fd5b80630106aaef146103de5780630445b667146103f557806306fdde031461041e578063095ea7b31461045c57600080fd5b366103d957005b600080fd5b3480156103ea57600080fd5b506103f3610bfe565b005b34801561040157600080fd5b5061040b601d5481565b6040519081526020015b60405180910390f35b34801561042a57600080fd5b5060408051808201909152600c81526b4e656761746976652047617360a01b60208201525b60405161041591906123e8565b34801561046857600080fd5b5061047c61047736600461244e565b610c3e565b6040519015158152602001610415565b34801561049857600080fd5b506103f36104a7366004612488565b610cab565b3480156104b857600080fd5b5061040b610cf7565b3480156104cd57600080fd5b5061040b600c5481565b3480156104e357600080fd5b5060035461040b565b3480156104f857600080fd5b5061047c6105073660046124a6565b610d21565b34801561051857600080fd5b5061040b610de3565b34801561052d57600080fd5b5061040b60115481565b34801561054357600080fd5b5060405160128152602001610415565b34801561055f57600080fd5b506103f361056e3660046124e7565b610e4f565b34801561057f57600080fd5b5061040b61058e366004612520565b610ea4565b34801561059f57600080fd5b5061047c6105ae366004612539565b600a6020526000908152604090205460ff1681565b3480156105cf57600080fd5b5061040b601a5481565b3480156105e557600080fd5b5060075461047c9060ff1681565b3480156105ff57600080fd5b50601b5461047c906301000000900460ff1681565b34801561062057600080fd5b5061040b600e5481565b34801561063657600080fd5b5061047c610645366004612539565b610ec5565b34801561065657600080fd5b5061040b610665366004612520565b610ed3565b34801561067657600080fd5b506103f3610685366004612520565b610ee3565b34801561069657600080fd5b50601b5461047c90610100900460ff1681565b3480156106b557600080fd5b506103f36106c4366004612556565b610f33565b3480156106d557600080fd5b506103f36106e43660046124e7565b610f77565b3480156106f557600080fd5b5060125461047c90610100900460ff1681565b34801561071457600080fd5b506103f3610723366004612556565b610fcc565b34801561073457600080fd5b5061040b610743366004612539565b6001600160a01b031660009081526008602052604090205490565b34801561076a57600080fd5b506103f3611012565b34801561077f57600080fd5b5061040b60195481565b34801561079557600080fd5b506103f36107a4366004612520565b611086565b3480156107b557600080fd5b506103f36107c4366004612573565b6110f8565b3480156107d557600080fd5b506103f36107e43660046124e7565b61112d565b3480156107f557600080fd5b5061040b60055481565b34801561080b57600080fd5b5061040b60065481565b34801561082157600080fd5b5061047c61083036600461244e565b611182565b34801561084157600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610415565b34801561087357600080fd5b5061047c610882366004612539565b600b6020526000908152604090205460ff1681565b3480156108a357600080fd5b506000546001600160a01b031661084f565b3480156108c157600080fd5b506103f36108d0366004612556565b611276565b3480156108e157600080fd5b5061040b6112ba565b3480156108f657600080fd5b506040805180820190915260038152624e475360e81b602082015261044f565b34801561092257600080fd5b506103f3610931366004612573565b6112d9565b34801561094257600080fd5b5060125461047c9062010000900460ff1681565b34801561096257600080fd5b506103f3610971366004612595565b61131e565b34801561098257600080fd5b5061040b60185481565b34801561099857600080fd5b5060155461084f906001600160a01b031681565b3480156109b857600080fd5b5061047c6109c736600461244e565b611384565b3480156109d857600080fd5b506103f36109e7366004612556565b611391565b3480156109f857600080fd5b5061040b60175481565b348015610a0e57600080fd5b5061040b610a1d366004612520565b6113ce565b348015610a2e57600080fd5b506103f3611556565b348015610a4357600080fd5b50601b5461047c90640100000000900460ff1681565b348015610a6557600080fd5b506103f361158f565b348015610a7a57600080fd5b5061040b610a89366004612595565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610ac057600080fd5b5061047c610acf366004612539565b60166020526000908152604090205460ff1681565b348015610af057600080fd5b5061040b600d5481565b348015610b0657600080fd5b5060125461047c9060ff1681565b348015610b2057600080fd5b506103f3610b2f366004612520565b61161e565b348015610b4057600080fd5b506103f3610b4f366004612539565b61166e565b348015610b6057600080fd5b506103f3610b6f366004612539565b611758565b348015610b8057600080fd5b506103f3610b8f3660046124e7565b6117da565b348015610ba057600080fd5b5060145461084f906001600160a01b031681565b348015610bc057600080fd5b5061047c610bcf366004612539565b601c6020526000908152604090205460ff1681565b348015610bf057600080fd5b50601b5461047c9060ff1681565b6000546001600160a01b03163314610c315760405162461bcd60e51b8152600401610c28906125c3565b60405180910390fd5b6103e86005819055600655565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610c999086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610cd55760405162461bcd60e51b8152600401610c28906125c3565b601b805492151563010000000263ff0000001990931692909217909155601d55565b6000610d1c6103e8610d1660065460035461188e90919063ffffffff16565b90611910565b905090565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610dce576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610da9918490611952565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610dd984848461198c565b90505b9392505050565b60086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c75461dead60009081527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd09334299546003549192610d1c929091610e499190611d6d565b90611d6d565b6000546001600160a01b03163314610e795760405162461bcd60e51b8152600401610c28906125c3565b6001600160a01b03919091166000908152601660205260409020805460ff1916911515919091179055565b60108181548110610eb457600080fd5b600091825260209091200154905081565b6000610ca582600019610c3e565b600f8181548110610eb457600080fd5b6000546001600160a01b03163314610f0d5760405162461bcd60e51b8152600401610c28906125c3565b6005811015610f2e5760405162461bcd60e51b8152600401610c28906125f8565b600555565b6000546001600160a01b03163314610f5d5760405162461bcd60e51b8152600401610c28906125c3565b601b80549115156101000261ff0019909216919091179055565b6000546001600160a01b03163314610fa15760405162461bcd60e51b8152600401610c28906125c3565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ff65760405162461bcd60e51b8152600401610c28906125c3565b60128054911515620100000262ff000019909216919091179055565b6000546001600160a01b0316331461103c5760405162461bcd60e51b8152600401610c28906125c3565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146110b05760405162461bcd60e51b8152600401610c28906125c3565b47336108fc60646110c18585612654565b6110cb919061266b565b6040518115909202916000818181858888f193505050501580156110f3573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146111225760405162461bcd60e51b8152600401610c28906125c3565b601891909155601955565b6000546001600160a01b031633146111575760405162461bcd60e51b8152600401610c28906125c3565b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b600080546001600160a01b031633146111ad5760405162461bcd60e51b8152600401610c28906125c3565b306001600160a01b038416036112055760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e000000006044820152606401610c28565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015611252573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddc919061268d565b6000546001600160a01b031633146112a05760405162461bcd60e51b8152600401610c28906125c3565b601280549115156101000261ff0019909216919091179055565b6000610d1c6103e8610d1660055460035461188e90919063ffffffff16565b6000546001600160a01b031633146113035760405162461bcd60e51b8152600401610c28906125c3565b600d829055600c819055611317828261182f565b600e555050565b6000546001600160a01b031633146113485760405162461bcd60e51b8152600401610c28906125c3565b601280546301000000600160b81b03191663010000006001600160a01b0394851602179055601380546001600160a01b03191691909216179055565b6000610ddc33848461198c565b6000546001600160a01b031633146113bb5760405162461bcd60e51b8152600401610c28906125c3565b6012805460ff1916911515919091179055565b604080516002808252606082018352600092839291906020830190803683375050601454604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa15801561143c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146091906126c0565b81600081518110611473576114736126dd565b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106114a7576114a76126dd565b6001600160a01b03928316602091820292909201015260145460405163d06ca61f60e01b8152600092919091169063d06ca61f906114eb9087908690600401612737565b600060405180830381865afa158015611508573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115309190810190612750565b600181518110611542576115426126dd565b602002602001015190508092505050919050565b6000546001600160a01b031633146115805760405162461bcd60e51b8152600401610c28906125c3565b601b805460ff19166001179055565b6000546001600160a01b031633146115b95760405162461bcd60e51b8152600401610c28906125c3565b60056011541061160b5760405162461bcd60e51b815260206004820152601e60248201527f4c61756e636820537461746520697320616c7265616479206174206d617800006044820152606401610c28565b60115461161990600161280e565b601155565b6000546001600160a01b031633146116485760405162461bcd60e51b8152600401610c28906125c3565b60058110156116695760405162461bcd60e51b8152600401610c28906125f8565b600655565b6000546001600160a01b031633146116985760405162461bcd60e51b8152600401610c28906125c3565b6001600160a01b0381166116fd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c28565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146117825760405162461bcd60e51b8152600401610c28906125c3565b6001600160a01b03166000908152600160208181526040808420805460ff199081168517909155600a83528185208054821685179055600b835281852080548216909417909355601c90915290912080549091169055565b6000546001600160a01b031633146118045760405162461bcd60e51b8152600401610c28906125c3565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b60008061183c838561280e565b905083811015610ddc5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c28565b6000826000036118a057506000610ca5565b60006118ac8385612654565b9050826118b9858361266b565b14610ddc5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c28565b6000610ddc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611daf565b600081848411156119765760405162461bcd60e51b8152600401610c2891906123e8565b5060006119838486612821565b95945050505050565b601b5460009062010000900460ff16156119b2576119ab848484611ddd565b9050610ddc565b6001600160a01b03841660009081526001602052604090205460ff161580156119f457506001600160a01b03831660009081526001602052604090205460ff16155b15611a2557601b5460ff16611a255760405162461bcd60e51b81526020600482015260006024820152604401610c28565b611a2d6112ba565b82111580611a7657506001600160a01b0384166000908152600b602052604090205460ff168015611a7657506001600160a01b0383166000908152600b602052604090205460ff165b611aad5760405162461bcd60e51b8152602060048201526008602482015267151608131a5b5a5d60c21b6044820152606401610c28565b6001600160a01b03831660009081526016602052604090205460ff168015611ade5750601b5462010000900460ff16155b8015611af35750601b546301000000900460ff165b8015611b105750601d543060009081526008602052604090205410155b15611b1d57611b1d611eb1565b601754158015611b4557506001600160a01b03831660009081526016602052604090205460ff165b15611b92576001600160a01b038416600090815260086020526040902054611b895760405162461bcd60e51b81526020600482015260006024820152604401610c28565b611b9243601755565b604080516020808201835260008083526001600160a01b038816815260089091529190912054611bc3918490611952565b6001600160a01b038086166000908152600860209081526040808320949094559186168152600b909152205460ff16158015611c01575060075460ff165b15611c5957611c0e610cf7565b6001600160a01b038416600090815260086020526040902054611c31908461182f565b1115611c595760405162461bcd60e51b81526020600482015260006024820152604401610c28565b6001600160a01b0384166000908152600a602052604081205460ff16158015611c9b57506001600160a01b0384166000908152600a602052604090205460ff16155b611ca55782611cb0565b611cb0858585612128565b6001600160a01b038516600090815260086020526040902054909150611cd6908261182f565b6001600160a01b0380861660009081526008602090815260408083209490945591881681526016909152205460ff168015611d185750601b54610100900460ff165b15611d2757611d2784846122df565b836001600160a01b0316856001600160a01b031660008051602061287183398151915283604051611d5a91815260200190565b60405180910390a3506001949350505050565b6000610ddc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611952565b60008183611dd05760405162461bcd60e51b8152600401610c2891906123e8565b506000611983848661266b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611e2e918490611952565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611e5d908361182f565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061287183398151915290611e9f9086815260200190565b60405180910390a35060019392505050565b601b805462ff00001916620100001790553060009081526008602090815260408083205481516002808252606082018452919493909290830190803683370190505090503081600081518110611f0957611f096126dd565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611f62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8691906126c0565b81600181518110611f9957611f996126dd565b6001600160a01b03928316602091820292909201015260145460405163791ac94760e01b815291169063791ac94790611fdf908590600090869030904290600401612834565b600060405180830381600087803b158015611ff957600080fd5b505af115801561200d573d6000803e3d6000fd5b5050505060004790506000612033600e54610d16600d548561188e90919063ffffffff16565b90506000612052600e54610d16600c548661188e90919063ffffffff16565b60125460405191925060009163010000009091046001600160a01b03169061753090859084818181858888f193505050503d80600081146120af576040519150601f19603f3d011682016040523d82523d6000602084013e6120b4565b606091505b5050601354604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d806000811461210c576040519150601f19603f3d011682016040523d82523d6000602084013e612111565b606091505b5050601b805462ff00001916905550505050505050565b6001600160a01b038216600090815260166020526040812054819060ff1680156121595750601254610100900460ff165b1561218157601060115481548110612173576121736126dd565b906000526020600020015490505b6001600160a01b03851660009081526016602052604090205460ff1680156121ab575060125460ff165b156121d357600f601154815481106121c5576121c56126dd565b906000526020600020015490505b6001600160a01b03851660009081526016602052604090205460ff1615801561221557506001600160a01b03841660009081526016602052604090205460ff16155b156122565760125462010000900460ff161561225257601060115481548110612240576122406126dd565b90600052602060002001549050612256565b5060005b60006122676064610d16868561188e565b30600090815260086020526040902054909150612284908261182f565b30600081815260086020526040908190209290925590516001600160a01b03881690600080516020612871833981519152906122c39085815260200190565b60405180910390a36122d58482611d6d565b9695505050505050565b60006018546019546122f19190612654565b905060006122fe826113ce565b90506103e8600354612310919061266b565b81111561232a576103e8600354612327919061266b565b90505b612335816002612654565b831015612340575060005b600454600354612350908361182f565b111561236657601b805461ff00191690556123e2565b6001600160a01b038416600090815260086020526040902054612389908261182f565b6001600160a01b0385166000908152600860205260409020556003546123af908261182f565b6003556040518181526001600160a01b038516906000906000805160206128718339815191529060200160405180910390a35b50505050565b600060208083528351808285015260005b81811015612415578581018301518582016040015282016123f9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461244b57600080fd5b50565b6000806040838503121561246157600080fd5b823561246c81612436565b946020939093013593505050565b801515811461244b57600080fd5b6000806040838503121561249b57600080fd5b823561246c8161247a565b6000806000606084860312156124bb57600080fd5b83356124c681612436565b925060208401356124d681612436565b929592945050506040919091013590565b600080604083850312156124fa57600080fd5b823561250581612436565b915060208301356125158161247a565b809150509250929050565b60006020828403121561253257600080fd5b5035919050565b60006020828403121561254b57600080fd5b8135610ddc81612436565b60006020828403121561256857600080fd5b8135610ddc8161247a565b6000806040838503121561258657600080fd5b50508035926020909101359150565b600080604083850312156125a857600080fd5b82356125b381612436565b9150602083013561251581612436565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526026908201527f57616c6c6574204c696d6974206e6565647320746f206265206174206c6561736040820152657420302e352560d01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610ca557610ca561263e565b60008261268857634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561269f57600080fd5b8151610ddc8161247a565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156126d257600080fd5b8151610ddc81612436565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b8381101561272c5781516001600160a01b031687529582019590820190600101612707565b509495945050505050565b828152604060208201526000610dd960408301846126f3565b6000602080838503121561276357600080fd5b825167ffffffffffffffff8082111561277b57600080fd5b818501915085601f83011261278f57600080fd5b8151818111156127a1576127a16126aa565b8060051b604051601f19603f830116810181811085821117156127c6576127c66126aa565b6040529182528482019250838101850191888311156127e457600080fd5b938501935b82851015612802578451845293850193928501926127e9565b98975050505050505050565b80820180821115610ca557610ca561263e565b81810381811115610ca557610ca561263e565b85815284602082015260a06040820152600061285360a08301866126f3565b6001600160a01b039490941660608301525060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220d3f99bb65336e571fa96038dd3944b33792aee2e0c6b022598ca6b845f519d4564736f6c63430008110033

Deployed Bytecode Sourcemap

8471:13923:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19487:111;;;;;;;;;;;;;:::i;:::-;;10721:56;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;10721:56:0;;;;;;;;11977:94;;;;;;;;;;-1:-1:-1;12058:5:0;;;;;;;;;;;;-1:-1:-1;;;12058:5:0;;;;11977:94;;;;;;;:::i;12972:248::-;;;;;;;;;;-1:-1:-1;12972:248:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;12972:248:0;1205:187:1;21310:189:0;;;;;;;;;;-1:-1:-1;21310:189:0;;;;;:::i;:::-;;:::i;9082:118::-;;;;;;;;;;;;;:::i;9709:27::-;;;;;;;;;;;;;;;;12287:102;;;;;;;;;;-1:-1:-1;12369:12:0;;12287:102;;14140:422;;;;;;;;;;-1:-1:-1;14140:422:0;;;;;:::i;:::-;;:::i;12822:142::-;;;;;;;;;;;;;:::i;9938:30::-;;;;;;;;;;;;;;;;12185:94;;;;;;;;;;-1:-1:-1;12185:94:0;;8835:2;2437:36:1;;2425:2;2410:18;12185:94:0;2295:184:1;20764:112:0;;;;;;;;;;-1:-1:-1;20764:112:0;;;;;:::i;:::-;;:::i;9878:51::-;;;;;;;;;;-1:-1:-1;9878:51:0;;;;;:::i;:::-;;:::i;9603:43::-;;;;;;;;;;-1:-1:-1;9603:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10400:42;;;;;;;;;;;;;;;;9433:33;;;;;;;;;;-1:-1:-1;9433:33:0;;;;;;;;10566:40;;;;;;;;;;-1:-1:-1;10566:40:0;;;;;;;;;;;9785:29;;;;;;;;;;;;;;;;13228:122;;;;;;;;;;-1:-1:-1;13228:122:0;;;;;:::i;:::-;;:::i;9823:48::-;;;;;;;;;;-1:-1:-1;9823:48:0;;;;;:::i;:::-;;:::i;19305:174::-;;;;;;;;;;-1:-1:-1;19305:174:0;;;;;:::i;:::-;;:::i;10491:32::-;;;;;;;;;;-1:-1:-1;10491:32:0;;;;;;;;;;;20884:100;;;;;;;;;;-1:-1:-1;20884:100:0;;;;;:::i;:::-;;:::i;19862:119::-;;;;;;;;;;-1:-1:-1;19862:119:0;;;;;:::i;:::-;;:::i;10013:30::-;;;;;;;;;;-1:-1:-1;10013:30:0;;;;;;;;;;;21198:104;;;;;;;;;;-1:-1:-1;21198:104:0;;;;;:::i;:::-;;:::i;12499:119::-;;;;;;;;;;-1:-1:-1;12499:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;12592:18:0;12565:7;12592:18;;;:9;:18;;;;;;;12499:119;8027:148;;;;;;;;;;;;;:::i;10351:42::-;;;;;;;;;;;;;;;;22008:203;;;;;;;;;;-1:-1:-1;22008:203:0;;;;;:::i;:::-;;:::i;22219:172::-;;;;;;;;;;-1:-1:-1;22219:172:0;;;;;:::i;:::-;;:::i;20640:116::-;;;;;;;;;;-1:-1:-1;20640:116:0;;;;;:::i;:::-;;:::i;9004:32::-;;;;;;;;;;;;;;;;9043:30;;;;;;;;;;;;;;;;21713:287;;;;;;;;;;-1:-1:-1;21713:287:0;;;;;:::i;:::-;;:::i;12397:94::-;;;;;;;;;;-1:-1:-1;12449:7:0;7878:6;-1:-1:-1;;;;;7878:6:0;12397:94;;;-1:-1:-1;;;;;3971:32:1;;;3953:51;;3941:2;3926:18;12397:94:0;3807:203:1;9653:47:0;;;;;;;;;;-1:-1:-1;9653:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7813:79;;;;;;;;;;-1:-1:-1;7851:7:0;7878:6;-1:-1:-1;;;;;7878:6:0;7813:79;;21094:96;;;;;;;;;;-1:-1:-1;21094:96:0;;;;;:::i;:::-;;:::i;9208:116::-;;;;;;;;;;;;;:::i;12079:98::-;;;;;;;;;;-1:-1:-1;12162:7:0;;;;;;;;;;;;-1:-1:-1;;;12162:7:0;;;;12079:98;;20376:256;;;;;;;;;;-1:-1:-1;20376:256:0;;;;;:::i;:::-;;:::i;10050:34::-;;;;;;;;;;-1:-1:-1;10050:34:0;;;;;;;;;;;21507:198;;;;;;;;;;-1:-1:-1;21507:198:0;;;;;:::i;:::-;;:::i;10301:43::-;;;;;;;;;;;;;;;;10194:19;;;;;;;;;;-1:-1:-1;10194:19:0;;;;-1:-1:-1;;;;;10194:19:0;;;13535:188;;;;;;;;;;-1:-1:-1;13535:188:0;;;;;:::i;:::-;;:::i;20992:94::-;;;;;;;;;;-1:-1:-1;20992:94:0;;;;;:::i;:::-;;:::i;10267:25::-;;;;;;;;;;;;;;;;18049:300;;;;;;;;;;-1:-1:-1;18049:300:0;;;;;:::i;:::-;;:::i;19606:77::-;;;;;;;;;;;;;:::i;10613:45::-;;;;;;;;;;-1:-1:-1;10613:45:0;;;;;;;;;;;19691:163;;;;;;;;;;;;;:::i;12626:188::-;;;;;;;;;;-1:-1:-1;12626:188:0;;;;;:::i;:::-;-1:-1:-1;;;;;12778:19:0;;;12746:7;12778:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;12626:188;10220:38;;;;;;;;;;-1:-1:-1;10220:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9743:33;;;;;;;;;;;;;;;;9977:29;;;;;;;;;;-1:-1:-1;9977:29:0;;;;;;;;19121:176;;;;;;;;;;-1:-1:-1;19121:176:0;;;;;:::i;:::-;;:::i;8183:281::-;;;;;;;;;;-1:-1:-1;8183:281:0;;;;;:::i;:::-;;:::i;20147:221::-;;;;;;;;;;-1:-1:-1;20147:221:0;;;;;:::i;:::-;;:::i;19989:150::-;;;;;;;;;;-1:-1:-1;19989:150:0;;;;;:::i;:::-;;:::i;10164:23::-;;;;;;;;;;-1:-1:-1;10164:23:0;;;;-1:-1:-1;;;;;10164:23:0;;;10667:45;;;;;;;;;;-1:-1:-1;10667:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10451:31;;;;;;;;;;-1:-1:-1;10451:31:0;;;;;;;;19487:111;7940:6;;-1:-1:-1;;;;;7940:6:0;7224:10;7940:22;7932:67;;;;-1:-1:-1;;;7932:67:0;;;;;;;:::i;:::-;;;;;;;;;19558:4:::1;19543:12;:19:::0;;;19573:10:::1;:17:::0;19487:111::o;12972:248::-;13108:10;13074:4;13096:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;13096:32:0;;;;;;;;;;:41;;;13153:37;13074:4;;13096:32;;13153:37;;;;13131:6;160:25:1;;148:2;133:18;;14:177;13153:37:0;;;;;;;;-1:-1:-1;13208:4:0;12972:248;;;;;:::o;21310:189::-;7940:6;;-1:-1:-1;;;;;7940:6:0;7224:10;7940:22;7932:67;;;;-1:-1:-1;;;7932:67:0;;;;;;;:::i;:::-;21425:21:::1;:30:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;21425:30:0;;::::1;::::0;;;::::1;::::0;;;21466:13:::1;:25:::0;21310:189::o;9082:118::-;9127:7;9154:38;9187:4;9154:28;9171:10;;9154:12;;:16;;:28;;;;:::i;:::-;:32;;:38::i;:::-;9147:45;;9082:118;:::o;14140:422::-;-1:-1:-1;;;;;14295:19:0;;14274:4;14295:19;;;:11;:19;;;;;;;;14315:10;14295:31;;;;;;;;-1:-1:-1;;14295:52:0;14291:206;;14398:87;;;;;;;;;;;-1:-1:-1;;;14398:87:0;;;;;;;;-1:-1:-1;;;;;14398:19:0;;-1:-1:-1;14398:19:0;;;:11;:19;;;;;14418:10;14398:31;;;;;;;;;;:87;;14452:6;;14398:53;:87::i;:::-;-1:-1:-1;;;;;14364:19:0;;;;;;:11;:19;;;;;;;;14384:10;14364:31;;;;;;;:121;14291:206;14514:40;14528:6;14536:9;14547:6;14514:13;:40::i;:::-;14507:47;;14140:422;;;;;;:::o;12822:142::-;12592:9;:18;;;;8585:42;12875:7;12592:18;;;;;12902:12;;12875:7;;12902:54;;12592:18;;12902:33;;:12;:16;:33::i;:::-;:37;;:54::i;20764:112::-;7940:6;;-1:-1:-1;;;;;7940:6:0;7224:10;7940:22;7932:67;;;;-1:-1:-1;;;7932:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20843:16:0;;;::::1;;::::0;;;:6:::1;:16;::::0;;;;:25;;-1:-1:-1;;20843:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20764:112::o;9878:51::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9878:51:0;:::o;13228:122::-;13283:4;13307:35;13315:7;-1:-1:-1;;13307:7:0;:35::i;9823:48::-;;;;;;;;;;;;19305:174;7940:6;;-1:-1:-1;;;;;7940:6:0;7224:10;7940:22;7932:67;;;;-1:-1:-1;;;7932:67:0;;;;;;;:::i;:::-;19393:1:::1;19381:8;:13;;19373:64;;;;-1:-1:-1::0;;;19373:64:0::1;;;;;;;:::i;:::-;19448:12;:23:::0;19305:174::o;20884:100::-;7940:6;;-1:-1:-1;;;;;7940:6:0;7224:10;7940:22;7932:67;;;;-1:-1:-1;;;7932:67:0;;;;;;;:::i;:::-;20954:13:::1;:22:::0;;;::::1;;;;-1:-1:-1::0;;20954:22:0;;::::1;::::0;;;::::1;::::0;;20884:100::o;19862:119::-;7940:6;;-1:-1:-1;;;;;7940:6:0;7224:10;7940:22;7932:67;;;;-1:-1:-1;;;7932:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19945:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;19945:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19862:119::o;21198:104::-;7940:6;;-1:-1:-1;;;;;7940:6:0;7224:10;7940:22;7932:67;;;;-1:-1:-1;;;7932:67:0;;;;;;;:::i;:::-;21270:15:::1;:24:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;21270:24:0;;::::1;::::0;;;::::1;::::0;;21198:104::o;8027:148::-;7940:6;;-1:-1:-1;;;;;7940:6:0;7224:10;7940:22;7932:67;;;;-1:-1:-1;;;7932:67:0;;;;;;;:::i;:::-;8134:1:::1;8118:6:::0;;8097:40:::1;::::0;-1:-1:-1;;;;;8118:6:0;;::::1;::::0;8097:40:::1;::::0;8134:1;;8097:40:::1;8165:1;8148:19:::0;;-1:-1:-1;;;;;;8148:19:0::1;::::0;;8027:148::o;22008:203::-;7940:6;;-1:-1:-1;;;;;7940:6:0;7224:10;7940:22;7932:67;;;;-1:-1:-1;;;7932:67:0;;;;;;;:::i;:::-;22105:21:::1;22145:10;22137:66;22199:3;22167:28;22179:16:::0;22105:21;22167:28:::1;:::i;:::-;22166:36;;;;:::i;:::-;22137:66;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22074:137;22008:203:::0;:::o;22219:172::-;7940:6;;-1:-1:-1;;;;;7940:6:0;7224:10;7940:22;7932:67;;;;-1:-1:-1;;;7932:67:0;;;;;;;:::i;:::-;22314:19:::1;:30:::0;;;;22355:17:::1;:28:::0;22219:172::o;20640:116::-;7940:6;;-1:-1:-1;;;;;7940:6:0;7224:10;7940:22;7932:67;;;;-1:-1:-1;;;7932:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20715:24:0;;;::::1;;::::0;;;:14:::1;:24;::::0;;;;:33;;-1:-1:-1;;20715:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20640:116::o;21713:287::-;21825:12;7940:6;;-1:-1:-1;;;;;7940:6:0;7224:10;7940:22;7932:67;;;;-1:-1:-1;;;7932:67:0;;;;;;;:::i;:::-;21887:4:::1;-1:-1:-1::0;;;;;21863:29:0;::::1;::::0;21855:70:::1;;;::::0;-1:-1:-1;;;21855:70:0;;6130:2:1;21855:70:0::1;::::0;::::1;6112:21:1::0;6169:2;6149:18;;;6142:30;6208;6188:18;;;6181:58;6256:18;;21855:70:0::1;5928:352:1::0;21855:70:0::1;21943:49;::::0;-1:-1:-1;;;21943:49:0;;21973:10:::1;21943:49;::::0;::::1;6459:51:1::0;6526:18;;;6519:34;;;-1:-1:-1;;;;;21943:29:0;::::1;::::0;::::1;::::0;6432:18:1;;21943:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;21094:96::-:0;7940:6;;-1:-1:-1;;;;;7940:6:0;7224:10;7940:22;7932:67;;;;-1:-1:-1;;;7932:67:0;;;;;;;:::i;:::-;21162:11:::1;:20:::0;;;::::1;;;;-1:-1:-1::0;;21162:20:0;;::::1;::::0;;;::::1;::::0;;21094:96::o;9208:116::-;9249:7;9276:40;9311:4;9276:30;9293:12;;9276;;:16;;:30;;;;:::i;20376:256::-;7940:6;;-1:-1:-1;;;;;7940:6:0;7224:10;7940:22;7932:67;;;;-1:-1:-1;;;7932:67:0;;;;;;;:::i;:::-;20503:14:::1;:34:::0;;;20548:8:::1;:22:::0;;;20596:28:::1;20520:17:::0;20559:11;20596:18:::1;:28::i;:::-;20583:10;:41:::0;-1:-1:-1;;20376:256:0:o;21507:198::-;7940:6;;-1:-1:-1;;;;;7940:6:0;7224:10;7940:22;7932:67;;;;-1:-1:-1;;;7932:67:0;;;;;;;:::i;:::-;21629:14:::1;:33:::0;;-1:-1:-1;;;;;;21629:33:0::1;::::0;-1:-1:-1;;;;;21629:33:0;;::::1;;;::::0;;21673:9:::1;:24:::0;;-1:-1:-1;;;;;;21673:24:0::1;::::0;;;::::1;;::::0;;21507:198::o;13535:188::-;13642:4;13671:44;13685:10;13697:9;13708:6;13671:13;:44::i;20992:94::-;7940:6;;-1:-1:-1;;;;;7940:6:0;7224:10;7940:22;7932:67;;;;-1:-1:-1;;;7932:67:0;;;;;;;:::i;:::-;21059:10:::1;:19:::0;;-1:-1:-1;;21059:19:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20992:94::o;18049:300::-;18154:16;;;18168:1;18154:16;;;;;;;;18110:7;;;;18154:16;18168:1;18154:16;;;;;;;;-1:-1:-1;;18191:6:0;;:13;;;-1:-1:-1;;;18191:13:0;;;;18130:40;;-1:-1:-1;;;;;;18191:6:0;;;;:11;;-1:-1:-1;18191:13:0;;;;;;;;;;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18181:4;18186:1;18181:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;18181:23:0;;;-1:-1:-1;;;;;18181:23:0;;;;;18233:4;18215;18220:1;18215:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18215:23:0;;;:7;;;;;;;;;:23;18273:6;;:34;;-1:-1:-1;;;18273:34:0;;18251:19;;18273:6;;;;;:20;;:34;;18294:6;;18302:4;;18273:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18273:34:0;;;;;;;;;;;;:::i;:::-;18308:1;18273:37;;;;;;;;:::i;:::-;;;;;;;18251:59;;18329:11;18321:20;;;;18049:300;;;:::o;19606:77::-;7940:6;;-1:-1:-1;;;;;7940:6:0;7224:10;7940:22;7932:67;;;;-1:-1:-1;;;7932:67:0;;;;;;;:::i;:::-;19657:11:::1;:18:::0;;-1:-1:-1;;19657:18:0::1;19671:4;19657:18;::::0;;19606:77::o;19691:163::-;7940:6;;-1:-1:-1;;;;;7940:6:0;7224:10;7940:22;7932:67;;;;-1:-1:-1;;;7932:67:0;;;;;;;:::i;:::-;19770:1:::1;19756:11;;:15;19748:58;;;::::0;-1:-1:-1;;;19748:58:0;;9449:2:1;19748:58:0::1;::::0;::::1;9431:21:1::0;9488:2;9468:18;;;9461:30;9527:32;9507:18;;;9500:60;9577:18;;19748:58:0::1;9247:354:1::0;19748:58:0::1;19831:11;::::0;:15:::1;::::0;19845:1:::1;19831:15;:::i;:::-;19817:11;:29:::0;19691:163::o;19121:176::-;7940:6;;-1:-1:-1;;;;;7940:6:0;7224:10;7940:22;7932:67;;;;-1:-1:-1;;;7932:67:0;;;;;;;:::i;:::-;19213:1:::1;19201:8;:13;;19193:64;;;;-1:-1:-1::0;;;19193:64:0::1;;;;;;;:::i;:::-;19268:10;:21:::0;19121:176::o;8183:281::-;7940:6;;-1:-1:-1;;;;;7940:6:0;7224:10;7940:22;7932:67;;;;-1:-1:-1;;;7932:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8286:22:0;::::1;8264:110;;;::::0;-1:-1:-1;;;8264:110:0;;9938:2:1;8264:110:0::1;::::0;::::1;9920:21:1::0;9977:2;9957:18;;;9950:30;10016:34;9996:18;;;9989:62;-1:-1:-1;;;10067:18:1;;;10060:36;10113:19;;8264:110:0::1;9736:402:1::0;8264:110:0::1;8411:6;::::0;;8390:38:::1;::::0;-1:-1:-1;;;;;8390:38:0;;::::1;::::0;8411:6;::::1;::::0;8390:38:::1;::::0;::::1;8439:6;:17:::0;;-1:-1:-1;;;;;;8439:17:0::1;-1:-1:-1::0;;;;;8439:17:0;;;::::1;::::0;;;::::1;::::0;;8183:281::o;20147:221::-;7940:6;;-1:-1:-1;;;;;7940:6:0;7224:10;7940:22;7932:67;;;;-1:-1:-1;;;7932:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20213:22:0::1;;::::0;;;20238:4:::1;20213:22;::::0;;;;;;;:29;;-1:-1:-1;;20213:29:0;;::::1;::::0;::::1;::::0;;;20253:11:::1;:19:::0;;;;;:26;;;::::1;::::0;::::1;::::0;;20290:15:::1;:23:::0;;;;;:30;;;::::1;::::0;;::::1;::::0;;;20331:13:::1;:21:::0;;;;;;:29;;;;::::1;::::0;;20147:221::o;19989:150::-;7940:6;;-1:-1:-1;;;;;7940:6:0;7224:10;7940:22;7932:67;;;;-1:-1:-1;;;7932:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20099:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;20099:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19989:150::o;94:179::-;152:7;;184:5;188:1;184;:5;:::i;:::-;172:17;;213:1;208;:6;;200:46;;;;-1:-1:-1;;;200:46:0;;10345:2:1;200:46:0;;;10327:21:1;10384:2;10364:18;;;10357:30;10423:29;10403:18;;;10396:57;10470:18;;200:46:0;10143:351:1;657:246:0;715:7;739:1;744;739:6;735:47;;-1:-1:-1;769:1:0;762:8;;735:47;792:9;804:5;808:1;804;:5;:::i;:::-;792:17;-1:-1:-1;837:1:0;828:5;832:1;792:17;828:5;:::i;:::-;:10;820:56;;;;-1:-1:-1;;;820:56:0;;10701:2:1;820:56:0;;;10683:21:1;10740:2;10720:18;;;10713:30;10779:34;10759:18;;;10752:62;-1:-1:-1;;;10830:18:1;;;10823:31;10871:19;;820:56:0;10499:397:1;911:132:0;969:7;996:39;1000:1;1003;996:39;;;;;;;;;;;;;;;;;:3;:39::i;425:224::-;545:7;581:12;573:6;;;;565:29;;;;-1:-1:-1;;;565:29:0;;;;;;;;:::i;:::-;-1:-1:-1;605:9:0;617:5;621:1;617;:5;:::i;:::-;605:17;425:224;-1:-1:-1;;;;;425:224:0:o;14570:1561::-;14717:16;;14696:4;;14717:16;;;;;14713:97;;;14757:41;14772:6;14780:9;14791:6;14757:14;:41::i;:::-;14750:48;;;;14713:97;-1:-1:-1;;;;;14825:22:0;;;;;;:14;:22;;;;;;;;14824:23;:53;;;;-1:-1:-1;;;;;;14852:25:0;;;;;;:14;:25;;;;;;;;14851:26;14824:53;14820:110;;;14902:11;;;;14894:24;;;;-1:-1:-1;;;14894:24:0;;11236:2:1;14894:24:0;;;11218:21:1;-1:-1:-1;11255:18:1;;;11248:29;11294:18;;14894:24:0;11034:284:1;14894:24:0;14974:10;:8;:10::i;:::-;14964:6;:20;;:96;;;-1:-1:-1;;;;;;15006:23:0;;;;;;:15;:23;;;;;;;;:53;;;;-1:-1:-1;;;;;;15033:26:0;;;;;;:15;:26;;;;;;;;15006:53;14942:154;;;;-1:-1:-1;;;14942:154:0;;11525:2:1;14942:154:0;;;11507:21:1;11564:1;11544:18;;;11537:29;-1:-1:-1;;;11582:18:1;;;11575:38;11630:18;;14942:154:0;11323:331:1;14942:154:0;-1:-1:-1;;;;;15125:17:0;;;;;;:6;:17;;;;;;;;:51;;;;-1:-1:-1;15160:16:0;;;;;;;15159:17;15125:51;:89;;;;-1:-1:-1;15193:21:0;;;;;;;15125:89;:147;;;;-1:-1:-1;15259:13:0;;15249:4;15231:24;;;;:9;:24;;;;;;:41;;15125:147;15107:227;;;15299:23;:21;:23::i;:::-;13425:10;;:15;;;15348:32;;-1:-1:-1;;;;;;15363:17:0;;;;;;:6;:17;;;;;;;;15348:32;15344:122;;;-1:-1:-1;;;;;15405:17:0;;15425:1;15405:17;;;:9;:17;;;;;;15397:34;;;;-1:-1:-1;;;15397:34:0;;11236:2:1;15397:34:0;;;11218:21:1;-1:-1:-1;11255:18:1;;;11248:29;11294:18;;15397:34:0;11034:284:1;15397:34:0;15446:8;13507:12;13494:10;:25;13456:71;15446:8;15525:33;;;;;;;;;-1:-1:-1;15525:33:0;;;-1:-1:-1;;;;;15525:17:0;;;;:9;:17;;;;;;;;:33;;15547:6;;15525:21;:33::i;:::-;-1:-1:-1;;;;;15505:17:0;;;;;;;:9;:17;;;;;;;;:53;;;;15576:26;;;;;:15;:26;;;;;;;15575:27;:45;;;;-1:-1:-1;15606:14:0;;;;15575:45;15571:141;;;15681:14;:12;:14::i;:::-;-1:-1:-1;;;;;15645:20:0;;;;;;:9;:20;;;;;;:32;;15670:6;15645:24;:32::i;:::-;:50;;15637:63;;;;-1:-1:-1;;;15637:63:0;;11236:2:1;15637:63:0;;;11218:21:1;-1:-1:-1;11255:18:1;;;11248:29;11294:18;;15637:63:0;11034:284:1;15637:63:0;-1:-1:-1;;;;;15747:19:0;;15724;15747;;;:11;:19;;;;;;;;15746:20;:47;;;;-1:-1:-1;;;;;;15771:22:0;;;;;;:11;:22;;;;;;;;15770:23;15746:47;:122;;15862:6;15746:122;;;15809:37;15820:6;15828:9;15839:6;15809:10;:37::i;:::-;-1:-1:-1;;;;;15902:20:0;;;;;;:9;:20;;;;;;15724:144;;-1:-1:-1;15902:37:0;;15724:144;15902:24;:37::i;:::-;-1:-1:-1;;;;;15879:20:0;;;;;;;:9;:20;;;;;;;;:60;;;;15956:14;;;;;:6;:14;;;;;;;:31;;;;-1:-1:-1;15974:13:0;;;;;;;15956:31;15952:92;;;16004:28;16014:9;16025:6;16004:9;:28::i;:::-;16078:9;-1:-1:-1;;;;;16061:40:0;16070:6;-1:-1:-1;;;;;16061:40:0;-1:-1:-1;;;;;;;;;;;16089:11:0;16061:40;;;;160:25:1;;148:2;133:18;;14:177;16061:40:0;;;;;;;;-1:-1:-1;16119:4:0;;14570:1561;-1:-1:-1;;;;14570:1561:0:o;281:136::-;339:7;366:43;370:1;373;366:43;;;;;;;;;;;;;;;;;:3;:43::i;1051:223::-;1171:7;1206:12;1199:5;1191:28;;;;-1:-1:-1;;;1191:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1230:9:0;1242:5;1246:1;1242;:5;:::i;13731:401::-;13895:90;;;;;;;;;;;-1:-1:-1;;;13895:90:0;;;;;;;;-1:-1:-1;;;;;13895:17:0;;13858:4;13895:17;;;:9;:17;;;;;;;:90;;13931:6;;13895:21;:90::i;:::-;-1:-1:-1;;;;;13875:17:0;;;;;;;:9;:17;;;;;;:110;;;;14019:20;;;;;;;:32;;14044:6;14019:24;:32::i;:::-;-1:-1:-1;;;;;13996:20:0;;;;;;;:9;:20;;;;;;;:55;;;;14067:35;;;;;;-1:-1:-1;;;;;;;;;;;14067:35:0;;;14095:6;160:25:1;;148:2;133:18;;14:177;14067:35:0;;;;;;;;-1:-1:-1;14120:4:0;13731:401;;;;;:::o;17029:1012::-;10884:16;:23;;-1:-1:-1;;10884:23:0;;;;;17135:4:::1;-1:-1:-1::0;17117:24:0;;;:9:::1;:24;::::0;;;;;;;;17178:16;;10884;17178;;;;;::::1;::::0;;17117:24;;-1:-1:-1;17178:16:0;;;;::::1;::::0;17117:24;17178:16:::1;::::0;::::1;;::::0;-1:-1:-1;17178:16:0::1;17154:40;;17223:4;17205;17210:1;17205:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17205:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;17249:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;17249:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;17205:7;;17249:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17239:4;17244:1;17239:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17239:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;17275:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;17275:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;17347:12;;17275:6:::1;::::0;17390:4;;17417::::1;::::0;17437:15:::1;::::0;17275:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17476:17;17496:21;17476:41;;17530:26;17559:69;17607:10;;17559:29;17573:14;;17559:9;:13;;:29;;;;:::i;:69::-;17530:98;;17639:20;17662:39;17690:10;;17662:23;17676:8;;17662:9;:13;;:23;;;;:::i;:39::-;17745:14;::::0;17737:108:::1;::::0;17639:62;;-1:-1:-1;17715:16:0::1;::::0;17745:14;;;::::1;-1:-1:-1::0;;;;;17745:14:0::1;::::0;17825:5:::1;::::0;17787:18;;17715:16;17737:108;17715:16;17737:108;17787:18;17745:14;17825:5;17737:108:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;17914:9:0::1;::::0;17906:97:::1;::::0;17870:5:::1;::::0;-1:-1:-1;;;;;;17914:9:0;;::::1;::::0;-1:-1:-1;17983:5:0::1;::::0;17951:12;;17870:5;17906:97;17870:5;17906:97;17951:12;17914:9;17983:5;17906:97:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;10930:16:0;:24;;-1:-1:-1;;10930:24:0;;;-1:-1:-1;;;;;;;17029:1012:0:o;16139:882::-;-1:-1:-1;;;;;16322:17:0;;16262:7;16322:17;;;:6;:17;;;;;;16262:7;;16322:17;;:32;;;;-1:-1:-1;16343:11:0;;;;;;;16322:32;16318:106;;;16387:12;16400:11;;16387:25;;;;;;;;:::i;:::-;;;;;;;;;16371:41;;16318:106;-1:-1:-1;;;;;16438:14:0;;;;;;:6;:14;;;;;;;;:28;;;;-1:-1:-1;16456:10:0;;;;16438:28;16434:101;;;16499:11;16511;;16499:24;;;;;;;;:::i;:::-;;;;;;;;;16483:40;;16434:101;-1:-1:-1;;;;;16550:14:0;;;;;;:6;:14;;;;;;;;16549:15;:37;;;;-1:-1:-1;;;;;;16569:17:0;;;;;;:6;:17;;;;;;;;16568:18;16549:37;16545:224;;;16607:15;;;;;;;16603:155;;;16659:12;16672:11;;16659:25;;;;;;;;:::i;:::-;;;;;;;;;16643:41;;16603:155;;;-1:-1:-1;16741:1:0;16603:155;16781:17;16801:34;16831:3;16801:25;:6;16812:13;16801:10;:25::i;:34::-;16893:4;16875:24;;;;:9;:24;;;;;;16781:54;;-1:-1:-1;16875:39:0;;16781:54;16875:28;:39::i;:::-;16866:4;16848:24;;;;:9;:24;;;;;;;:66;;;;16930:42;;-1:-1:-1;;;;;16930:42:0;;;-1:-1:-1;;;;;;;;;;;16930:42:0;;;16962:9;160:25:1;;148:2;133:18;;14:177;16930:42:0;;;;;;;;16992:21;:6;17003:9;16992:10;:21::i;:::-;16985:28;16139:882;-1:-1:-1;;;;;;16139:882:0:o;18357:756::-;18431:17;18472:19;;18452:17;;:39;;;;:::i;:::-;18431:61;;18503:24;18530:25;18545:9;18530:14;:25::i;:::-;18503:52;;18602:4;18589:12;;:17;;;;:::i;:::-;18570:16;:36;18566:105;;;18655:4;18642:12;;:17;;;;:::i;:::-;18623:36;;18566:105;18694:20;:16;18713:1;18694:20;:::i;:::-;18685:6;:29;18681:82;;;-1:-1:-1;18750:1:0;18681:82;18814:10;;18777:12;;:34;;18794:16;18777;:34::i;:::-;:47;18773:333;;;18840:13;:21;;-1:-1:-1;;18840:21:0;;;18773:333;;;-1:-1:-1;;;;;18917:20:0;;;;;;:9;:20;;;;;;:42;;18942:16;18917:24;:42::i;:::-;-1:-1:-1;;;;;18894:20:0;;;;;;:9;:20;;;;;:65;18989:12;;:34;;19006:16;18989;:34::i;:::-;18974:12;:49;19043:51;;160:25:1;;;-1:-1:-1;;;;;19043:51:0;;;19060:3;;-1:-1:-1;;;;;;;;;;;19043:51:0;148:2:1;133:18;19043:51:0;;;;;;;18773:333;18420:693;;18357:756;;:::o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:118::-;1483:5;1476:13;1469:21;1462:5;1459:32;1449:60;;1505:1;1502;1495:12;1520:309;1585:6;1593;1646:2;1634:9;1625:7;1621:23;1617:32;1614:52;;;1662:1;1659;1652:12;1614:52;1701:9;1688:23;1720:28;1742:5;1720:28;:::i;1834:456::-;1911:6;1919;1927;1980:2;1968:9;1959:7;1955:23;1951:32;1948:52;;;1996:1;1993;1986:12;1948:52;2035:9;2022:23;2054:31;2079:5;2054:31;:::i;:::-;2104:5;-1:-1:-1;2161:2:1;2146:18;;2133:32;2174:33;2133:32;2174:33;:::i;:::-;1834:456;;2226:7;;-1:-1:-1;;;2280:2:1;2265:18;;;;2252:32;;1834:456::o;2484:382::-;2549:6;2557;2610:2;2598:9;2589:7;2585:23;2581:32;2578:52;;;2626:1;2623;2616:12;2578:52;2665:9;2652:23;2684:31;2709:5;2684:31;:::i;:::-;2734:5;-1:-1:-1;2791:2:1;2776:18;;2763:32;2804:30;2763:32;2804:30;:::i;:::-;2853:7;2843:17;;;2484:382;;;;;:::o;2871:180::-;2930:6;2983:2;2971:9;2962:7;2958:23;2954:32;2951:52;;;2999:1;2996;2989:12;2951:52;-1:-1:-1;3022:23:1;;2871:180;-1:-1:-1;2871:180:1:o;3056:247::-;3115:6;3168:2;3156:9;3147:7;3143:23;3139:32;3136:52;;;3184:1;3181;3174:12;3136:52;3223:9;3210:23;3242:31;3267:5;3242:31;:::i;3308:241::-;3364:6;3417:2;3405:9;3396:7;3392:23;3388:32;3385:52;;;3433:1;3430;3423:12;3385:52;3472:9;3459:23;3491:28;3513:5;3491:28;:::i;3554:248::-;3622:6;3630;3683:2;3671:9;3662:7;3658:23;3654:32;3651:52;;;3699:1;3696;3689:12;3651:52;-1:-1:-1;;3722:23:1;;;3792:2;3777:18;;;3764:32;;-1:-1:-1;3554:248:1:o;4015:388::-;4083:6;4091;4144:2;4132:9;4123:7;4119:23;4115:32;4112:52;;;4160:1;4157;4150:12;4112:52;4199:9;4186:23;4218:31;4243:5;4218:31;:::i;:::-;4268:5;-1:-1:-1;4325:2:1;4310:18;;4297:32;4338:33;4297:32;4338:33;:::i;4633:356::-;4835:2;4817:21;;;4854:18;;;4847:30;4913:34;4908:2;4893:18;;4886:62;4980:2;4965:18;;4633:356::o;4994:402::-;5196:2;5178:21;;;5235:2;5215:18;;;5208:30;5274:34;5269:2;5254:18;;5247:62;-1:-1:-1;;;5340:2:1;5325:18;;5318:36;5386:3;5371:19;;4994:402::o;5401:127::-;5462:10;5457:3;5453:20;5450:1;5443:31;5493:4;5490:1;5483:15;5517:4;5514:1;5507:15;5533:168;5606:9;;;5637;;5654:15;;;5648:22;;5634:37;5624:71;;5675:18;;:::i;5706:217::-;5746:1;5772;5762:132;;5816:10;5811:3;5807:20;5804:1;5797:31;5851:4;5848:1;5841:15;5879:4;5876:1;5869:15;5762:132;-1:-1:-1;5908:9:1;;5706:217::o;6564:245::-;6631:6;6684:2;6672:9;6663:7;6659:23;6655:32;6652:52;;;6700:1;6697;6690:12;6652:52;6732:9;6726:16;6751:28;6773:5;6751:28;:::i;6814:127::-;6875:10;6870:3;6866:20;6863:1;6856:31;6906:4;6903:1;6896:15;6930:4;6927:1;6920:15;6946:251;7016:6;7069:2;7057:9;7048:7;7044:23;7040:32;7037:52;;;7085:1;7082;7075:12;7037:52;7117:9;7111:16;7136:31;7161:5;7136:31;:::i;7202:127::-;7263:10;7258:3;7254:20;7251:1;7244:31;7294:4;7291:1;7284:15;7318:4;7315:1;7308:15;7334:461;7387:3;7425:5;7419:12;7452:6;7447:3;7440:19;7478:4;7507:2;7502:3;7498:12;7491:19;;7544:2;7537:5;7533:14;7565:1;7575:195;7589:6;7586:1;7583:13;7575:195;;;7654:13;;-1:-1:-1;;;;;7650:39:1;7638:52;;7710:12;;;;7745:15;;;;7686:1;7604:9;7575:195;;;-1:-1:-1;7786:3:1;;7334:461;-1:-1:-1;;;;;7334:461:1:o;7800:332::-;8007:6;7996:9;7989:25;8050:2;8045;8034:9;8030:18;8023:30;7970:4;8070:56;8122:2;8111:9;8107:18;8099:6;8070:56;:::i;8137:1105::-;8232:6;8263:2;8306;8294:9;8285:7;8281:23;8277:32;8274:52;;;8322:1;8319;8312:12;8274:52;8355:9;8349:16;8384:18;8425:2;8417:6;8414:14;8411:34;;;8441:1;8438;8431:12;8411:34;8479:6;8468:9;8464:22;8454:32;;8524:7;8517:4;8513:2;8509:13;8505:27;8495:55;;8546:1;8543;8536:12;8495:55;8575:2;8569:9;8597:2;8593;8590:10;8587:36;;;8603:18;;:::i;:::-;8649:2;8646:1;8642:10;8681:2;8675:9;8744:2;8740:7;8735:2;8731;8727:11;8723:25;8715:6;8711:38;8799:6;8787:10;8784:22;8779:2;8767:10;8764:18;8761:46;8758:72;;;8810:18;;:::i;:::-;8846:2;8839:22;8896:18;;;8930:15;;;;-1:-1:-1;8972:11:1;;;8968:20;;;9000:19;;;8997:39;;;9032:1;9029;9022:12;8997:39;9056:11;;;;9076:135;9092:6;9087:3;9084:15;9076:135;;;9158:10;;9146:23;;9109:12;;;;9189;;;;9076:135;;;9230:6;8137:1105;-1:-1:-1;;;;;;;;8137:1105:1:o;9606:125::-;9671:9;;;9692:10;;;9689:36;;;9705:18;;:::i;10901:128::-;10968:9;;;10989:11;;;10986:37;;;11003:18;;:::i;11659:582::-;11958:6;11947:9;11940:25;12001:6;11996:2;11985:9;11981:18;11974:34;12044:3;12039:2;12028:9;12024:18;12017:31;11921:4;12065:57;12117:3;12106:9;12102:19;12094:6;12065:57;:::i;:::-;-1:-1:-1;;;;;12158:32:1;;;;12153:2;12138:18;;12131:60;-1:-1:-1;12222:3:1;12207:19;12200:35;12057:65;11659:582;-1:-1:-1;;;11659:582:1:o

Swarm Source

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