ETH Price: $2,625.36 (+1.18%)
Gas: 2.82 Gwei

Token

PacMan8InuDoja (PACMANDOJA)
 

Overview

Max Total Supply

100,000,000 PACMANDOJA

Holders

13

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
31,065.4160934 PACMANDOJA

Value
$0.00
0xe86cad1a43bedc51b007aabdc31bc2a128af89fc
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:
PacMan8InuDoja

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
 *Submitted for verification at Etherscan.io on 2023-08-26
*/
//Are u ready for pacman8inudoja 🔥
//portal link : https://t.me/pacman8inu
//twitter : https://twitter.com/pacman8inudoja
//website : https://pacman8inudoja.xyz/

// SPDX-License-Identifier:MIT

pragma solidity ^0.8.10;

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address _account) external view returns (uint256);
    function transfer(address recipient, uint256 amount)
        external
        returns (bool);
    function allowance(address owner, address spender)
        external
        view
        returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any _account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

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

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

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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

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

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

interface IDexSwapPair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint 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 (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint 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 (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    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 (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

interface IDexSwapRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

}


contract PacMan8InuDoja is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private _name = "PacMan8InuDoja";
    string private _symbol = "PACMANDOJA";
    uint8 private _decimals = 8; 

    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;

    uint public _buyTax = 5;     
    uint public _sellTax = 5;     

    address public developmentWallet = address(0x1608BEf2657DB8BBeC9c343C11E78053Ff103EA7);

    uint256 feedenominator = 100;

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

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;

    uint256 private _totalSupply = 100_000_000 * 10**_decimals;

    uint256 public _maxTxAmount =  _totalSupply.mul(3).div(100);     // 1%
    uint256 public _walletMax = _totalSupply.mul(3).div(100);        // 1%

    uint256 public swapThreshold = 50_000 * 10**_decimals;

    uint256 public launchedAt;
    bool public normalizeTrade;

    bool tradingActive;

    bool public swapEnabled = false;
    bool public swapbylimit = false;
    bool public EnableTxLimit = false;
    bool public checkWalletLimit = false;

    IDexSwapRouter public dexRouter;
    address public dexPair;

    bool inSwap;

    modifier onlyGuard() {
        require(msg.sender == developmentWallet,"Invalid Caller");
        _;
    }

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    constructor() {

        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        dexRouter = _dexRouter;

        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;
        isExcludedFromFee[address(dexRouter)] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(dexRouter)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[deadAddress] = true;
        isWalletLimitExempt[zeroAddress] = true;
        
        isTxLimitExempt[deadAddress] = true;
        isTxLimitExempt[zeroAddress] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[address(dexRouter)] = true;

        isMarketPair[address(dexPair)] = true;

        _allowances[address(this)][address(dexRouter)] = ~uint256(0);

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

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

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

    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

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

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

     //to recieve ETH from Router when swaping
    receive() external payable {}

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

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

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0));
        require(recipient != address(0));
        require(amount > 0);
    
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }
        else {

            if (!tradingActive) {
                require(isExcludedFromFee[sender] || isExcludedFromFee[recipient],"Trading is not active.");
            }

            if (launchedAt != 0 && !normalizeTrade) {
                dynamicTaxSetter();
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold;

            if (
                overMinimumTokenBalance && 
                !inSwap && 
                !isMarketPair[sender] && 
                swapEnabled &&
                !isExcludedFromFee[sender] &&
                !isExcludedFromFee[recipient]
                ) {
                swapBack(contractTokenBalance);
            }

            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) {
                require(amount <= _maxTxAmount, "Exceeds maxTxAmount");
            } 
            
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = shouldNotTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Exceeds Wallet");
            }

            _balances[recipient] = _balances[recipient].add(finalAmount);

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

        }

    }

    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 shouldNotTakeFee(address sender, address recipient) internal view returns (bool) {
        if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
            return true;
        }
        else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        }
        else {
            return false;
        }
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint feeAmount;

        unchecked {

            if(isMarketPair[sender]) { 
                feeAmount = amount.mul(_buyTax).div(feedenominator);
            } 
            else if(isMarketPair[recipient]) { 
                feeAmount = amount.mul(_sellTax).div(feedenominator);
            }

            if(feeAmount > 0) {
                _balances[address(this)] = _balances[address(this)].add(feeAmount);
                emit Transfer(sender, address(this), feeAmount);
            }

            return amount.sub(feeAmount);
        }
        
    }    

    function launch() public payable onlyOwner {
        require(launchedAt == 0, "Already launched!");
        launchedAt = block.number;
        tradingActive = true;

        uint tokenForLp = _balances[address(this)];

        dexRouter.addLiquidityETH{ value: msg.value }(
            address(this),
            tokenForLp,
            0,
            0,
            owner(),
            block.timestamp
        );

        IDexSwapFactory factory = IDexSwapFactory(dexRouter.factory());

        IDexSwapPair pair = IDexSwapPair(factory.getPair(address(this), dexRouter.WETH()));

        dexPair = address(pair);

        isMarketPair[address(dexPair)] = true;
        isWalletLimitExempt[address(dexPair)] = true;
        _allowances[address(this)][address(dexPair)] = ~uint256(0);

        swapEnabled = true;
        EnableTxLimit = true;
        checkWalletLimit =  true;
    }

    function dynamicTaxSetter() internal {
        if (block.number <= launchedAt + 3) {
            dynamicSetter(99,99);
        }
        if (block.number > launchedAt + 3 && block.number <= launchedAt + 22) {
            dynamicSetter(45,45);
        }
        if (block.number > launchedAt + 22) {
            dynamicSetter(5,5);
            normalizeTrade = true;
        }
            
    }

    function dynamicSetter(uint _buy, uint _Sell) internal {
        _buyTax = _buy;
        _sellTax = _Sell;
    }


    function swapBack(uint contractBalance) internal swapping {

        if(swapbylimit) contractBalance = swapThreshold;

        uint256 initialBalance = address(this).balance;
        swapTokensForEth(contractBalance);
        uint256 amountReceived = address(this).balance.sub(initialBalance);

        if (amountReceived > 0) payable(developmentWallet).transfer(amountReceived);

    }

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

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

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

    function rescueFunds() external onlyGuard { 
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

    function rescueTokens(address _token,address recipient,uint _amount) external onlyGuard {
        (bool success, ) = address(_token).call(abi.encodeWithSignature('transfer(address,uint256)',  recipient, _amount));
        require(success, 'Token payment failed');
    }

    function setFees(uint _buy, uint _Sell) external onlyOwner {
        _buyTax = _buy;
        _sellTax = _Sell;
    }

    function ToggleLimits() external onlyGuard {
        EnableTxLimit = !EnableTxLimit;
        checkWalletLimit =  !checkWalletLimit;
    }

    function enableTxLimit(bool _status) external onlyOwner {
        EnableTxLimit = _status;
    }

    function enableWalletLimit(bool _status) external onlyOwner {
        checkWalletLimit = _status;
    }

    function excludeFromFee(address _adr,bool _status) external onlyOwner {
        isExcludedFromFee[_adr] = _status;
    }

    function excludeWalletLimit(address _adr,bool _status) external onlyOwner {
        isWalletLimitExempt[_adr] = _status;
    }

    function excludeTxLimit(address _adr,bool _status) external onlyOwner {
        isTxLimitExempt[_adr] = _status;
    }

    function setMaxWalletLimit(uint256 newLimit) external onlyOwner() {
        _walletMax = newLimit;
    }

    function setTxLimit(uint256 newLimit) external onlyOwner() {
        _maxTxAmount = newLimit;
    }
    
    function setDevelopmentWallet(address _newWallet) external onlyOwner {
        developmentWallet = _newWallet;
    }

    function setMarketPair(address _pair, bool _status) external onlyOwner {
        isMarketPair[_pair] = _status;
        if(_status) {
            isWalletLimitExempt[_pair] = _status;
        }
    }

    function setSwapBackSettings(uint _threshold, bool _enabled, bool _limited)
        external
        onlyGuard
    {
        swapEnabled = _enabled;
        swapbylimit = _limited;
        swapThreshold = _threshold;
    }

    function setManualRouter(address _router) external onlyOwner {
        dexRouter = IDexSwapRouter(_router);
    }

    function setManualPair(address _pair) external onlyOwner {
        dexPair = _pair;
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"EnableTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ToggleLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTax","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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","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":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"normalizeTrade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setDevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_Sell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"setManualPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"setManualRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"},{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_limited","type":"bool"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","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":"swapbylimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

610100604052600e60c09081526d5061634d616e38496e75446f6a6160901b60e0526001906200003090826200054e565b5060408051808201909152600a8152695041434d414e444f4a4160b01b60208201526002906200006190826200054e565b506003805460ff1916600890811790915561dead608052600060a052600560048190558055600680546001600160a01b031916731608bef2657db8bbec9c343c11e78053ff103ea71790556064600755620000be90600a6200072d565b620000ce906305f5e1006200073e565b600e55620001086064620000f46003600e546200033c60201b620016cf1790919060201c565b620003d360201b620017511790919060201c565b600f556200012e6064620000f46003600e546200033c60201b620016cf1790919060201c565b601055600354620001449060ff16600a6200072d565b620001529061c3506200073e565b6011556013805465ffffffff0000191690553480156200017157600080fd5b506200017d336200041d565b60138054600160301b600160d01b031916797a250d5630b4cf539739df2c5dacb4c659f2488d000000000000178155306000818152600a60209081526040808320805460ff19908116600190811790925533808652838620805483168417905587546001600160a01b03660100000000000091829004811688528588208054851686179055828852600c87528588208054851686179055895482900481168852858820805485168617905588885285882080548516861790556080518116808952868920805486168717905560a0518216808a52878a208054871688179055908952600d885286892080548616871790558852858820805485168617905582885285882080548516861790558888528588208054851686179055895482900481168852858820805485168617905560145481168852600b87528588208054909416909417909255958552600984528285209654041683529381528382206000199055600e54838352600882528483208190559351938452737a250d5630b4cf539739df2c5dacb4c659f2488d937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620007cb565b6000826000036200035057506000620003cd565b60006200035e83856200073e565b9050826200036d858362000758565b14620003ca5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b6000620003ca83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200046d60201b60201c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183620004915760405162461bcd60e51b8152600401620003c191906200077b565b506000620004a0848662000758565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620004d457607f821691505b602082108103620004f557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200054957600081815260208120601f850160051c81016020861015620005245750805b601f850160051c820191505b81811015620005455782815560010162000530565b5050505b505050565b81516001600160401b038111156200056a576200056a620004a9565b62000582816200057b8454620004bf565b84620004fb565b602080601f831160018114620005ba5760008415620005a15750858301515b600019600386901b1c1916600185901b17855562000545565b600085815260208120601f198616915b82811015620005eb57888601518255948401946001909101908401620005ca565b50858210156200060a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006715781600019048211156200065557620006556200061a565b808516156200066357918102915b93841c939080029062000635565b509250929050565b6000826200068a57506001620003cd565b816200069957506000620003cd565b8160018114620006b25760028114620006bd57620006dd565b6001915050620003cd565b60ff841115620006d157620006d16200061a565b50506001821b620003cd565b5060208310610133831016604e8410600b841016171562000702575081810a620003cd565b6200070e838362000630565b80600019048211156200072557620007256200061a565b029392505050565b6000620003ca60ff84168362000679565b8082028115828204841417620003cd57620003cd6200061a565b6000826200077657634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015620007aa578581018301518582016040015282016200078c565b506000604082860101526040601f19601f8301168501019250505092915050565b60805160a051612838620007ff600039600081816103b50152610ed10152600081816104880152610f0c01526128386000f3fe6080604052600436106103035760003560e01c806372ac248611610190578063c16dd4a4116100dc578063e6b2603b11610095578063f242ab411161006f578063f242ab4114610960578063f2fde38b14610980578063f71b9bbf146109a0578063f872858a146109c057600080fd5b8063e6b2603b1461090a578063e9fd33941461091f578063ee828db31461094057600080fd5b8063c16dd4a41461081e578063c867d60b1461083e578063ca9ec1991461086e578063cea9d26f14610884578063dd62ed3e146108a4578063df8408fe146108ea57600080fd5b806395d89b4111610149578063ae85ade611610123578063ae85ade6146107a8578063b94b0aef146107c8578063bf56b371146107e8578063c04a5414146107fe57600080fd5b806395d89b4114610753578063a457c2d714610768578063a9059cbb1461078857600080fd5b806372ac2486146106a45780637ac71126146106c45780637d1db4a5146106d9578063807c2d9c146106ef5780638b42507f146107055780638da5cb5b1461073557600080fd5b8063395093511161024f5780635c85974f116102085780636ddd1713116101e25780636ddd17131461061957806370a0823114610639578063715018a61461066f578063728d41c91461068457600080fd5b80635c85974f146105b75780635e42358c146105d7578063651a8987146105f957600080fd5b806339509351146104e15780633ecad2711461050157806342a11095146105315780634974d88f146105475780635342acb41461056757806359fac5171461059757600080fd5b80630b78f9c0116102bc57806323b872dd1161029657806323b872dd1461045657806327c8f835146104765780632b112e49146104aa578063313ce567146104bf57600080fd5b80630b78f9c014610407578063111a46511461042757806318160ddd1461044157600080fd5b806301339c211461030f5780630445b6671461031957806306fdde03146103425780630758d924146103645780630930907b146103a3578063095ea7b3146103d757600080fd5b3661030a57005b600080fd5b6103176109e1565b005b34801561032557600080fd5b5061032f60115481565b6040519081526020015b60405180910390f35b34801561034e57600080fd5b50610357610d3d565b60405161033991906123cc565b34801561037057600080fd5b5060135461038b90600160301b90046001600160a01b031681565b6040516001600160a01b039091168152602001610339565b3480156103af57600080fd5b5061038b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103e357600080fd5b506103f76103f2366004612414565b610dcf565b6040519015158152602001610339565b34801561041357600080fd5b50610317610422366004612440565b610de6565b34801561043357600080fd5b506013546103f79060ff1681565b34801561044d57600080fd5b50600e5461032f565b34801561046257600080fd5b506103f7610471366004612462565b610e1b565b34801561048257600080fd5b5061038b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104b657600080fd5b5061032f610ec7565b3480156104cb57600080fd5b5060035460405160ff9091168152602001610339565b3480156104ed57600080fd5b506103f76104fc366004612414565b610f5a565b34801561050d57600080fd5b506103f761051c3660046124a3565b600b6020526000908152604090205460ff1681565b34801561053d57600080fd5b5061032f60045481565b34801561055357600080fd5b506103176105623660046124d5565b610f90565b34801561057357600080fd5b506103f76105823660046124a3565b600a6020526000908152604090205460ff1681565b3480156105a357600080fd5b506103176105b23660046124a3565b610fda565b3480156105c357600080fd5b506103176105d23660046124f0565b611033565b3480156105e357600080fd5b506013546103f790640100000000900460ff1681565b34801561060557600080fd5b50610317610614366004612509565b611062565b34801561062557600080fd5b506013546103f79062010000900460ff1681565b34801561064557600080fd5b5061032f6106543660046124a3565b6001600160a01b031660009081526008602052604090205490565b34801561067b57600080fd5b506103176110b7565b34801561069057600080fd5b5061031761069f3660046124f0565b6110ed565b3480156106b057600080fd5b506103176106bf3660046124a3565b61111c565b3480156106d057600080fd5b50610317611168565b3480156106e557600080fd5b5061032f600f5481565b3480156106fb57600080fd5b5061032f60105481565b34801561071157600080fd5b506103f76107203660046124a3565b600d6020526000908152604090205460ff1681565b34801561074157600080fd5b506000546001600160a01b031661038b565b34801561075f57600080fd5b506103576111de565b34801561077457600080fd5b506103f7610783366004612414565b6111ed565b34801561079457600080fd5b506103f76107a3366004612414565b61123c565b3480156107b457600080fd5b506103176107c3366004612509565b611249565b3480156107d457600080fd5b506103176107e336600461253e565b61129e565b3480156107f457600080fd5b5061032f60125481565b34801561080a57600080fd5b5060065461038b906001600160a01b031681565b34801561082a57600080fd5b50610317610839366004612509565b6112fd565b34801561084a57600080fd5b506103f76108593660046124a3565b600c6020526000908152604090205460ff1681565b34801561087a57600080fd5b5061032f60055481565b34801561089057600080fd5b5061031761089f366004612462565b61137d565b3480156108b057600080fd5b5061032f6108bf36600461257a565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156108f657600080fd5b50610317610905366004612509565b611490565b34801561091657600080fd5b506103176114e5565b34801561092b57600080fd5b506013546103f7906301000000900460ff1681565b34801561094c57600080fd5b5061031761095b3660046124d5565b6115a1565b34801561096c57600080fd5b5060145461038b906001600160a01b031681565b34801561098c57600080fd5b5061031761099b3660046124a3565b6115eb565b3480156109ac57600080fd5b506103176109bb3660046124a3565b611683565b3480156109cc57600080fd5b506013546103f790600160281b900460ff1681565b6000546001600160a01b03163314610a145760405162461bcd60e51b8152600401610a0b906125b3565b60405180910390fd5b60125415610a585760405162461bcd60e51b8152602060048201526011602482015270416c7265616479206c61756e636865642160781b6044820152606401610a0b565b436012556013805461ff00191661010017908190553060008181526008602052604081205492600160301b90046001600160a01b03169163f305d71991349190859080610aad6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b15573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b3a91906125e8565b5050506000601360069054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb69190612616565b90506000816001600160a01b031663e6a4390530601360069054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c419190612616565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610c8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb09190612616565b601480546001600160a01b0319166001600160a01b0392831690811782556000908152600b60209081526040808320805460ff199081166001908117909255855487168552600c84528285208054909116909117905530835260098252808320935490941682529190915220600019905550506013805465ffff00ff000019166501010001000017905550565b606060018054610d4c90612633565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7890612633565b8015610dc55780601f10610d9a57610100808354040283529160200191610dc5565b820191906000526020600020905b815481529060010190602001808311610da857829003601f168201915b5050505050905090565b6000610ddc338484611793565b5060015b92915050565b6000546001600160a01b03163314610e105760405162461bcd60e51b8152600401610a0b906125b3565b600491909155600555565b6000610e288484846118b7565b50610ebc8433610eb7856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e63650000000000000000815250600960008b6001600160a01b03166001600160a01b031681526020019081526020016000206000610e963390565b6001600160a01b031681526020810191909152604001600020549190611ce6565b611793565b5060015b9392505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600090815260086020526040812054610f5590610f4f610f467f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660009081526008602052604090205490565b600e5490611d20565b90611d20565b905090565b3360008181526009602090815260408083206001600160a01b03871684529091528120549091610ddc918590610eb79086611d62565b6000546001600160a01b03163314610fba5760405162461bcd60e51b8152600401610a0b906125b3565b60138054911515600160281b0265ff000000000019909216919091179055565b6000546001600160a01b031633146110045760405162461bcd60e51b8152600401610a0b906125b3565b601380546001600160a01b03909216600160301b026601000000000000600160d01b0319909216919091179055565b6000546001600160a01b0316331461105d5760405162461bcd60e51b8152600401610a0b906125b3565b600f55565b6000546001600160a01b0316331461108c5760405162461bcd60e51b8152600401610a0b906125b3565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146110e15760405162461bcd60e51b8152600401610a0b906125b3565b6110eb6000611dc1565b565b6000546001600160a01b031633146111175760405162461bcd60e51b8152600401610a0b906125b3565b601055565b6000546001600160a01b031633146111465760405162461bcd60e51b8152600401610a0b906125b3565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b031633146111925760405162461bcd60e51b8152600401610a0b9061266d565b60138054600160281b60ff6401000000008084048216150264ff0000000019841681178390049091161590910265ff00000000001990911665ffff000000001990921691909117179055565b606060028054610d4c90612633565b6000610ddc3384610eb7856040518060600160405280602581526020016127de602591393360009081526009602090815260408083206001600160a01b038d1684529091529020549190611ce6565b6000610ebc3384846118b7565b6000546001600160a01b031633146112735760405162461bcd60e51b8152600401610a0b906125b3565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6006546001600160a01b031633146112c85760405162461bcd60e51b8152600401610a0b9061266d565b6013805463ffff00001916620100009315159390930263ff000000191692909217630100000091151591909102179055601155565b6000546001600160a01b031633146113275760405162461bcd60e51b8152600401610a0b906125b3565b6001600160a01b0382166000908152600b60205260409020805460ff19168215801591909117909155611379576001600160a01b0382166000908152600c60205260409020805460ff19168215151790555b5050565b6006546001600160a01b031633146113a75760405162461bcd60e51b8152600401610a0b9061266d565b6040516001600160a01b038381166024830152604482018390526000919085169060640160408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b179052516114009190612695565b6000604051808303816000865af19150503d806000811461143d576040519150601f19603f3d011682016040523d82523d6000602084013e611442565b606091505b505090508061148a5760405162461bcd60e51b8152602060048201526014602482015273151bdad95b881c185e5b595b9d0819985a5b195960621b6044820152606401610a0b565b50505050565b6000546001600160a01b031633146114ba5760405162461bcd60e51b8152600401610a0b906125b3565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6006546001600160a01b0316331461150f5760405162461bcd60e51b8152600401610a0b9061266d565b604051600090339047908381818185875af1925050503d8060008114611551576040519150601f19603f3d011682016040523d82523d6000602084013e611556565b606091505b505090508061159e5760405162461bcd60e51b81526020600482015260146024820152735472616e73616374696f6e204661696c6564212160601b6044820152606401610a0b565b50565b6000546001600160a01b031633146115cb5760405162461bcd60e51b8152600401610a0b906125b3565b601380549115156401000000000264ff0000000019909216919091179055565b6000546001600160a01b031633146116155760405162461bcd60e51b8152600401610a0b906125b3565b6001600160a01b03811661167a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a0b565b61159e81611dc1565b6000546001600160a01b031633146116ad5760405162461bcd60e51b8152600401610a0b906125b3565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b6000826000036116e157506000610de0565b60006116ed83856126c7565b9050826116fa85836126de565b14610ec05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a0b565b6000610ec083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e11565b6001600160a01b0383166117f55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a0b565b6001600160a01b0382166118565760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a0b565b6001600160a01b0383811660008181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166118cc57600080fd5b6001600160a01b0383166118df57600080fd5b600082116118ec57600080fd5b601454600160a01b900460ff161561191057611909848484611e3f565b9050610ec0565b601354610100900460ff166119a3576001600160a01b0384166000908152600a602052604090205460ff168061195e57506001600160a01b0383166000908152600a602052604090205460ff165b6119a35760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610a0b565b601254158015906119b7575060135460ff16155b156119c4576119c4611f25565b30600090815260086020526040902054601154811080159081906119f25750601454600160a01b900460ff16155b8015611a1757506001600160a01b0386166000908152600b602052604090205460ff16155b8015611a2b575060135462010000900460ff165b8015611a5057506001600160a01b0386166000908152600a602052604090205460ff16155b8015611a7557506001600160a01b0385166000908152600a602052604090205460ff16155b15611a8357611a8382611faa565b6001600160a01b0386166000908152600d602052604090205460ff16158015611ac557506001600160a01b0385166000908152600d602052604090205460ff16155b8015611adb5750601354640100000000900460ff165b15611b2857600f54841115611b285760405162461bcd60e51b8152602060048201526013602482015272115e18d959591cc81b585e151e105b5bdd5b9d606a1b6044820152606401610a0b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038916600090815260089091529190912054611b7a918690611ce6565b6001600160a01b038716600090815260086020526040812091909155611ba08787612040565b611bb457611baf8787876120e0565b611bb6565b845b601354909150600160281b900460ff168015611beb57506001600160a01b0386166000908152600c602052604090205460ff16155b15611c5b57601054611c1c82611c16896001600160a01b031660009081526008602052604090205490565b90611d62565b1115611c5b5760405162461bcd60e51b815260206004820152600e60248201526d115e18d959591cc815d85b1b195d60921b6044820152606401610a0b565b6001600160a01b038616600090815260086020526040902054611c7e9082611d62565b6001600160a01b0380881660008181526008602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cd29085815260200190565b60405180910390a360019350505050610ec0565b60008184841115611d0a5760405162461bcd60e51b8152600401610a0b91906123cc565b506000611d178486612700565b95945050505050565b6000610ec083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ce6565b600080611d6f8385612713565b905083811015610ec05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a0b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183611e325760405162461bcd60e51b8152600401610a0b91906123cc565b506000611d1784866126de565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611e90918490611ce6565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611ebf9083611d62565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f139086815260200190565b60405180910390a35060019392505050565b601254611f33906003612713565b4311611f4457606360048190556005555b601254611f52906003612713565b43118015611f6d5750601254611f69906016612713565b4311155b15611f7d57602d60048190556005555b601254611f8b906016612713565b4311156110eb576005600481905580556013805460ff19166001179055565b6014805460ff60a01b1916600160a01b1790556013546301000000900460ff1615611fd457506011545b47611fde826121ee565b6000611fea4783611d20565b9050801561202e576006546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561202c573d6000803e3d6000fd5b505b50506014805460ff60a01b1916905550565b6001600160a01b0382166000908152600a602052604081205460ff168061207f57506001600160a01b0382166000908152600a602052604090205460ff165b1561208c57506001610de0565b6001600160a01b0383166000908152600b602052604090205460ff16806120cb57506001600160a01b0382166000908152600b602052604090205460ff165b156120d857506000610de0565b506000610de0565b6001600160a01b0383166000908152600b6020526040812054819060ff161561212b5761212460075461211e600454866116cf90919063ffffffff16565b90611751565b905061216a565b6001600160a01b0384166000908152600b602052604090205460ff161561216a5761216760075461211e600554866116cf90919063ffffffff16565b90505b80156121e4573060009081526008602052604090205461218a9082611d62565b30600081815260086020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906121db9085815260200190565b60405180910390a35b611d178382611d20565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061222357612223612726565b60200260200101906001600160a01b031690816001600160a01b031681525050601360069054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612296573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ba9190612616565b816001815181106122cd576122cd612726565b6001600160a01b0392831660209182029290920101526013546122fa913091600160301b90041684611793565b60135460405163791ac94760e01b8152600160301b9091046001600160a01b03169063791ac94790612339908590600090869030904290600401612780565b600060405180830381600087803b15801561235357600080fd5b505af1158015612367573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161239c9291906127bc565b60405180910390a15050565b60005b838110156123c35781810151838201526020016123ab565b50506000910152565b60208152600082518060208401526123eb8160408501602087016123a8565b601f01601f19169190910160400192915050565b6001600160a01b038116811461159e57600080fd5b6000806040838503121561242757600080fd5b8235612432816123ff565b946020939093013593505050565b6000806040838503121561245357600080fd5b50508035926020909101359150565b60008060006060848603121561247757600080fd5b8335612482816123ff565b92506020840135612492816123ff565b929592945050506040919091013590565b6000602082840312156124b557600080fd5b8135610ec0816123ff565b803580151581146124d057600080fd5b919050565b6000602082840312156124e757600080fd5b610ec0826124c0565b60006020828403121561250257600080fd5b5035919050565b6000806040838503121561251c57600080fd5b8235612527816123ff565b9150612535602084016124c0565b90509250929050565b60008060006060848603121561255357600080fd5b83359250612563602085016124c0565b9150612571604085016124c0565b90509250925092565b6000806040838503121561258d57600080fd5b8235612598816123ff565b915060208301356125a8816123ff565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000806000606084860312156125fd57600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561262857600080fd5b8151610ec0816123ff565b600181811c9082168061264757607f821691505b60208210810361266757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600e908201526d24b73b30b634b21021b0b63632b960911b604082015260600190565b600082516126a78184602087016123a8565b9190910192915050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610de057610de06126b1565b6000826126fb57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610de057610de06126b1565b80820180821115610de057610de06126b1565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156127755781516001600160a01b031687529582019590820190600101612750565b509495945050505050565b85815284602082015260a06040820152600061279f60a083018661273c565b6001600160a01b0394909416606083015250608001529392505050565b8281526040602082015260006127d5604083018461273c565b94935050505056fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122029591582fa7e30aff865f6baf97ecc3d66af17cfe3f4e686a462e696db8b1d4164736f6c63430008120033

Deployed Bytecode

0x6080604052600436106103035760003560e01c806372ac248611610190578063c16dd4a4116100dc578063e6b2603b11610095578063f242ab411161006f578063f242ab4114610960578063f2fde38b14610980578063f71b9bbf146109a0578063f872858a146109c057600080fd5b8063e6b2603b1461090a578063e9fd33941461091f578063ee828db31461094057600080fd5b8063c16dd4a41461081e578063c867d60b1461083e578063ca9ec1991461086e578063cea9d26f14610884578063dd62ed3e146108a4578063df8408fe146108ea57600080fd5b806395d89b4111610149578063ae85ade611610123578063ae85ade6146107a8578063b94b0aef146107c8578063bf56b371146107e8578063c04a5414146107fe57600080fd5b806395d89b4114610753578063a457c2d714610768578063a9059cbb1461078857600080fd5b806372ac2486146106a45780637ac71126146106c45780637d1db4a5146106d9578063807c2d9c146106ef5780638b42507f146107055780638da5cb5b1461073557600080fd5b8063395093511161024f5780635c85974f116102085780636ddd1713116101e25780636ddd17131461061957806370a0823114610639578063715018a61461066f578063728d41c91461068457600080fd5b80635c85974f146105b75780635e42358c146105d7578063651a8987146105f957600080fd5b806339509351146104e15780633ecad2711461050157806342a11095146105315780634974d88f146105475780635342acb41461056757806359fac5171461059757600080fd5b80630b78f9c0116102bc57806323b872dd1161029657806323b872dd1461045657806327c8f835146104765780632b112e49146104aa578063313ce567146104bf57600080fd5b80630b78f9c014610407578063111a46511461042757806318160ddd1461044157600080fd5b806301339c211461030f5780630445b6671461031957806306fdde03146103425780630758d924146103645780630930907b146103a3578063095ea7b3146103d757600080fd5b3661030a57005b600080fd5b6103176109e1565b005b34801561032557600080fd5b5061032f60115481565b6040519081526020015b60405180910390f35b34801561034e57600080fd5b50610357610d3d565b60405161033991906123cc565b34801561037057600080fd5b5060135461038b90600160301b90046001600160a01b031681565b6040516001600160a01b039091168152602001610339565b3480156103af57600080fd5b5061038b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103e357600080fd5b506103f76103f2366004612414565b610dcf565b6040519015158152602001610339565b34801561041357600080fd5b50610317610422366004612440565b610de6565b34801561043357600080fd5b506013546103f79060ff1681565b34801561044d57600080fd5b50600e5461032f565b34801561046257600080fd5b506103f7610471366004612462565b610e1b565b34801561048257600080fd5b5061038b7f000000000000000000000000000000000000000000000000000000000000dead81565b3480156104b657600080fd5b5061032f610ec7565b3480156104cb57600080fd5b5060035460405160ff9091168152602001610339565b3480156104ed57600080fd5b506103f76104fc366004612414565b610f5a565b34801561050d57600080fd5b506103f761051c3660046124a3565b600b6020526000908152604090205460ff1681565b34801561053d57600080fd5b5061032f60045481565b34801561055357600080fd5b506103176105623660046124d5565b610f90565b34801561057357600080fd5b506103f76105823660046124a3565b600a6020526000908152604090205460ff1681565b3480156105a357600080fd5b506103176105b23660046124a3565b610fda565b3480156105c357600080fd5b506103176105d23660046124f0565b611033565b3480156105e357600080fd5b506013546103f790640100000000900460ff1681565b34801561060557600080fd5b50610317610614366004612509565b611062565b34801561062557600080fd5b506013546103f79062010000900460ff1681565b34801561064557600080fd5b5061032f6106543660046124a3565b6001600160a01b031660009081526008602052604090205490565b34801561067b57600080fd5b506103176110b7565b34801561069057600080fd5b5061031761069f3660046124f0565b6110ed565b3480156106b057600080fd5b506103176106bf3660046124a3565b61111c565b3480156106d057600080fd5b50610317611168565b3480156106e557600080fd5b5061032f600f5481565b3480156106fb57600080fd5b5061032f60105481565b34801561071157600080fd5b506103f76107203660046124a3565b600d6020526000908152604090205460ff1681565b34801561074157600080fd5b506000546001600160a01b031661038b565b34801561075f57600080fd5b506103576111de565b34801561077457600080fd5b506103f7610783366004612414565b6111ed565b34801561079457600080fd5b506103f76107a3366004612414565b61123c565b3480156107b457600080fd5b506103176107c3366004612509565b611249565b3480156107d457600080fd5b506103176107e336600461253e565b61129e565b3480156107f457600080fd5b5061032f60125481565b34801561080a57600080fd5b5060065461038b906001600160a01b031681565b34801561082a57600080fd5b50610317610839366004612509565b6112fd565b34801561084a57600080fd5b506103f76108593660046124a3565b600c6020526000908152604090205460ff1681565b34801561087a57600080fd5b5061032f60055481565b34801561089057600080fd5b5061031761089f366004612462565b61137d565b3480156108b057600080fd5b5061032f6108bf36600461257a565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156108f657600080fd5b50610317610905366004612509565b611490565b34801561091657600080fd5b506103176114e5565b34801561092b57600080fd5b506013546103f7906301000000900460ff1681565b34801561094c57600080fd5b5061031761095b3660046124d5565b6115a1565b34801561096c57600080fd5b5060145461038b906001600160a01b031681565b34801561098c57600080fd5b5061031761099b3660046124a3565b6115eb565b3480156109ac57600080fd5b506103176109bb3660046124a3565b611683565b3480156109cc57600080fd5b506013546103f790600160281b900460ff1681565b6000546001600160a01b03163314610a145760405162461bcd60e51b8152600401610a0b906125b3565b60405180910390fd5b60125415610a585760405162461bcd60e51b8152602060048201526011602482015270416c7265616479206c61756e636865642160781b6044820152606401610a0b565b436012556013805461ff00191661010017908190553060008181526008602052604081205492600160301b90046001600160a01b03169163f305d71991349190859080610aad6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b15573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b3a91906125e8565b5050506000601360069054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb69190612616565b90506000816001600160a01b031663e6a4390530601360069054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c419190612616565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610c8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb09190612616565b601480546001600160a01b0319166001600160a01b0392831690811782556000908152600b60209081526040808320805460ff199081166001908117909255855487168552600c84528285208054909116909117905530835260098252808320935490941682529190915220600019905550506013805465ffff00ff000019166501010001000017905550565b606060018054610d4c90612633565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7890612633565b8015610dc55780601f10610d9a57610100808354040283529160200191610dc5565b820191906000526020600020905b815481529060010190602001808311610da857829003601f168201915b5050505050905090565b6000610ddc338484611793565b5060015b92915050565b6000546001600160a01b03163314610e105760405162461bcd60e51b8152600401610a0b906125b3565b600491909155600555565b6000610e288484846118b7565b50610ebc8433610eb7856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e63650000000000000000815250600960008b6001600160a01b03166001600160a01b031681526020019081526020016000206000610e963390565b6001600160a01b031681526020810191909152604001600020549190611ce6565b611793565b5060015b9392505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600090815260086020526040812054610f5590610f4f610f467f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b031660009081526008602052604090205490565b600e5490611d20565b90611d20565b905090565b3360008181526009602090815260408083206001600160a01b03871684529091528120549091610ddc918590610eb79086611d62565b6000546001600160a01b03163314610fba5760405162461bcd60e51b8152600401610a0b906125b3565b60138054911515600160281b0265ff000000000019909216919091179055565b6000546001600160a01b031633146110045760405162461bcd60e51b8152600401610a0b906125b3565b601380546001600160a01b03909216600160301b026601000000000000600160d01b0319909216919091179055565b6000546001600160a01b0316331461105d5760405162461bcd60e51b8152600401610a0b906125b3565b600f55565b6000546001600160a01b0316331461108c5760405162461bcd60e51b8152600401610a0b906125b3565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146110e15760405162461bcd60e51b8152600401610a0b906125b3565b6110eb6000611dc1565b565b6000546001600160a01b031633146111175760405162461bcd60e51b8152600401610a0b906125b3565b601055565b6000546001600160a01b031633146111465760405162461bcd60e51b8152600401610a0b906125b3565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b031633146111925760405162461bcd60e51b8152600401610a0b9061266d565b60138054600160281b60ff6401000000008084048216150264ff0000000019841681178390049091161590910265ff00000000001990911665ffff000000001990921691909117179055565b606060028054610d4c90612633565b6000610ddc3384610eb7856040518060600160405280602581526020016127de602591393360009081526009602090815260408083206001600160a01b038d1684529091529020549190611ce6565b6000610ebc3384846118b7565b6000546001600160a01b031633146112735760405162461bcd60e51b8152600401610a0b906125b3565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6006546001600160a01b031633146112c85760405162461bcd60e51b8152600401610a0b9061266d565b6013805463ffff00001916620100009315159390930263ff000000191692909217630100000091151591909102179055601155565b6000546001600160a01b031633146113275760405162461bcd60e51b8152600401610a0b906125b3565b6001600160a01b0382166000908152600b60205260409020805460ff19168215801591909117909155611379576001600160a01b0382166000908152600c60205260409020805460ff19168215151790555b5050565b6006546001600160a01b031633146113a75760405162461bcd60e51b8152600401610a0b9061266d565b6040516001600160a01b038381166024830152604482018390526000919085169060640160408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b179052516114009190612695565b6000604051808303816000865af19150503d806000811461143d576040519150601f19603f3d011682016040523d82523d6000602084013e611442565b606091505b505090508061148a5760405162461bcd60e51b8152602060048201526014602482015273151bdad95b881c185e5b595b9d0819985a5b195960621b6044820152606401610a0b565b50505050565b6000546001600160a01b031633146114ba5760405162461bcd60e51b8152600401610a0b906125b3565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6006546001600160a01b0316331461150f5760405162461bcd60e51b8152600401610a0b9061266d565b604051600090339047908381818185875af1925050503d8060008114611551576040519150601f19603f3d011682016040523d82523d6000602084013e611556565b606091505b505090508061159e5760405162461bcd60e51b81526020600482015260146024820152735472616e73616374696f6e204661696c6564212160601b6044820152606401610a0b565b50565b6000546001600160a01b031633146115cb5760405162461bcd60e51b8152600401610a0b906125b3565b601380549115156401000000000264ff0000000019909216919091179055565b6000546001600160a01b031633146116155760405162461bcd60e51b8152600401610a0b906125b3565b6001600160a01b03811661167a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a0b565b61159e81611dc1565b6000546001600160a01b031633146116ad5760405162461bcd60e51b8152600401610a0b906125b3565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b6000826000036116e157506000610de0565b60006116ed83856126c7565b9050826116fa85836126de565b14610ec05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a0b565b6000610ec083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e11565b6001600160a01b0383166117f55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a0b565b6001600160a01b0382166118565760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a0b565b6001600160a01b0383811660008181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166118cc57600080fd5b6001600160a01b0383166118df57600080fd5b600082116118ec57600080fd5b601454600160a01b900460ff161561191057611909848484611e3f565b9050610ec0565b601354610100900460ff166119a3576001600160a01b0384166000908152600a602052604090205460ff168061195e57506001600160a01b0383166000908152600a602052604090205460ff165b6119a35760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610a0b565b601254158015906119b7575060135460ff16155b156119c4576119c4611f25565b30600090815260086020526040902054601154811080159081906119f25750601454600160a01b900460ff16155b8015611a1757506001600160a01b0386166000908152600b602052604090205460ff16155b8015611a2b575060135462010000900460ff165b8015611a5057506001600160a01b0386166000908152600a602052604090205460ff16155b8015611a7557506001600160a01b0385166000908152600a602052604090205460ff16155b15611a8357611a8382611faa565b6001600160a01b0386166000908152600d602052604090205460ff16158015611ac557506001600160a01b0385166000908152600d602052604090205460ff16155b8015611adb5750601354640100000000900460ff165b15611b2857600f54841115611b285760405162461bcd60e51b8152602060048201526013602482015272115e18d959591cc81b585e151e105b5bdd5b9d606a1b6044820152606401610a0b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038916600090815260089091529190912054611b7a918690611ce6565b6001600160a01b038716600090815260086020526040812091909155611ba08787612040565b611bb457611baf8787876120e0565b611bb6565b845b601354909150600160281b900460ff168015611beb57506001600160a01b0386166000908152600c602052604090205460ff16155b15611c5b57601054611c1c82611c16896001600160a01b031660009081526008602052604090205490565b90611d62565b1115611c5b5760405162461bcd60e51b815260206004820152600e60248201526d115e18d959591cc815d85b1b195d60921b6044820152606401610a0b565b6001600160a01b038616600090815260086020526040902054611c7e9082611d62565b6001600160a01b0380881660008181526008602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cd29085815260200190565b60405180910390a360019350505050610ec0565b60008184841115611d0a5760405162461bcd60e51b8152600401610a0b91906123cc565b506000611d178486612700565b95945050505050565b6000610ec083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ce6565b600080611d6f8385612713565b905083811015610ec05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a0b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183611e325760405162461bcd60e51b8152600401610a0b91906123cc565b506000611d1784866126de565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611e90918490611ce6565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611ebf9083611d62565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f139086815260200190565b60405180910390a35060019392505050565b601254611f33906003612713565b4311611f4457606360048190556005555b601254611f52906003612713565b43118015611f6d5750601254611f69906016612713565b4311155b15611f7d57602d60048190556005555b601254611f8b906016612713565b4311156110eb576005600481905580556013805460ff19166001179055565b6014805460ff60a01b1916600160a01b1790556013546301000000900460ff1615611fd457506011545b47611fde826121ee565b6000611fea4783611d20565b9050801561202e576006546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561202c573d6000803e3d6000fd5b505b50506014805460ff60a01b1916905550565b6001600160a01b0382166000908152600a602052604081205460ff168061207f57506001600160a01b0382166000908152600a602052604090205460ff165b1561208c57506001610de0565b6001600160a01b0383166000908152600b602052604090205460ff16806120cb57506001600160a01b0382166000908152600b602052604090205460ff165b156120d857506000610de0565b506000610de0565b6001600160a01b0383166000908152600b6020526040812054819060ff161561212b5761212460075461211e600454866116cf90919063ffffffff16565b90611751565b905061216a565b6001600160a01b0384166000908152600b602052604090205460ff161561216a5761216760075461211e600554866116cf90919063ffffffff16565b90505b80156121e4573060009081526008602052604090205461218a9082611d62565b30600081815260086020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906121db9085815260200190565b60405180910390a35b611d178382611d20565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061222357612223612726565b60200260200101906001600160a01b031690816001600160a01b031681525050601360069054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612296573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ba9190612616565b816001815181106122cd576122cd612726565b6001600160a01b0392831660209182029290920101526013546122fa913091600160301b90041684611793565b60135460405163791ac94760e01b8152600160301b9091046001600160a01b03169063791ac94790612339908590600090869030904290600401612780565b600060405180830381600087803b15801561235357600080fd5b505af1158015612367573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161239c9291906127bc565b60405180910390a15050565b60005b838110156123c35781810151838201526020016123ab565b50506000910152565b60208152600082518060208401526123eb8160408501602087016123a8565b601f01601f19169190910160400192915050565b6001600160a01b038116811461159e57600080fd5b6000806040838503121561242757600080fd5b8235612432816123ff565b946020939093013593505050565b6000806040838503121561245357600080fd5b50508035926020909101359150565b60008060006060848603121561247757600080fd5b8335612482816123ff565b92506020840135612492816123ff565b929592945050506040919091013590565b6000602082840312156124b557600080fd5b8135610ec0816123ff565b803580151581146124d057600080fd5b919050565b6000602082840312156124e757600080fd5b610ec0826124c0565b60006020828403121561250257600080fd5b5035919050565b6000806040838503121561251c57600080fd5b8235612527816123ff565b9150612535602084016124c0565b90509250929050565b60008060006060848603121561255357600080fd5b83359250612563602085016124c0565b9150612571604085016124c0565b90509250925092565b6000806040838503121561258d57600080fd5b8235612598816123ff565b915060208301356125a8816123ff565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000806000606084860312156125fd57600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561262857600080fd5b8151610ec0816123ff565b600181811c9082168061264757607f821691505b60208210810361266757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600e908201526d24b73b30b634b21021b0b63632b960911b604082015260600190565b600082516126a78184602087016123a8565b9190910192915050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610de057610de06126b1565b6000826126fb57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610de057610de06126b1565b80820180821115610de057610de06126b1565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156127755781516001600160a01b031687529582019590820190600101612750565b509495945050505050565b85815284602082015260a06040820152600061279f60a083018661273c565b6001600160a01b0394909416606083015250608001529392505050565b8281526040602082015260006127d5604083018461273c565b94935050505056fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122029591582fa7e30aff865f6baf97ecc3d66af17cfe3f4e686a462e696db8b1d4164736f6c63430008120033

Deployed Bytecode Sourcemap

7411:13594:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16109:912;;;:::i;:::-;;8586:53;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8586:53:0;;;;;;;;10384:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;8903:31::-;;;;;;;;;;-1:-1:-1;8903:31:0;;;;-1:-1:-1;;;8903:31:0;;-1:-1:-1;;;;;8903:31:0;;;;;;-1:-1:-1;;;;;1038:32:1;;;1020:51;;1008:2;993:18;8903:31:0;852:225:1;7722:81:0;;;;;;;;;;;;;;;11722:161;;;;;;;;;;-1:-1:-1;11722:161:0;;;;;:::i;:::-;;:::i;:::-;;;1911:14:1;;1904:22;1886:41;;1874:2;1859:18;11722:161:0;1746:187:1;19094:119:0;;;;;;;;;;-1:-1:-1;19094:119:0;;;;;:::i;:::-;;:::i;8680:26::-;;;;;;;;;;-1:-1:-1;8680:26:0;;;;;;;;10661:100;;;;;;;;;;-1:-1:-1;10741:12:0;;10661:100;;12496:297;;;;;;;;;;-1:-1:-1;12496:297:0;;;;;:::i;:::-;;:::i;7634:81::-;;;;;;;;;;;;;;;11055:156;;;;;;;;;;;;;:::i;10570:83::-;;;;;;;;;;-1:-1:-1;10636:9:0;;10570:83;;10636:9;;;;2794:36:1;;2782:2;2767:18;10570:83:0;2652:184:1;11219:218:0;;;;;;;;;;-1:-1:-1;11219:218:0;;;;;:::i;:::-;;:::i;8197:45::-;;;;;;;;;;-1:-1:-1;8197:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7812:23;;;;;;;;;;;;;;;;19475:105;;;;;;;;;;-1:-1:-1;19475:105:0;;;;;:::i;:::-;;:::i;8140:50::-;;;;;;;;;;-1:-1:-1;8140:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;20784:115;;;;;;;;;;-1:-1:-1;20784:115:0;;;;;:::i;:::-;;:::i;20096:101::-;;;;;;;;;;-1:-1:-1;20096:101:0;;;;;:::i;:::-;;:::i;8818:33::-;;;;;;;;;;-1:-1:-1;8818:33:0;;;;;;;;;;;19718:128;;;;;;;;;;-1:-1:-1;19718:128:0;;;;;:::i;:::-;;:::i;8742:31::-;;;;;;;;;;-1:-1:-1;8742:31:0;;;;;;;;;;;10769:123;;;;;;;;;;-1:-1:-1;10769:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;10861:18:0;10835:7;10861:18;;;:9;:18;;;;;;;10769:123;2077:94;;;;;;;;;;;;;:::i;19982:106::-;;;;;;;;;;-1:-1:-1;19982:106:0;;;;;:::i;:::-;;:::i;20209:118::-;;;;;;;;;;-1:-1:-1;20209:118:0;;;;;:::i;:::-;;:::i;19221:140::-;;;;;;;;;;;;;:::i;8432:59::-;;;;;;;;;;;;;;;;8508:56;;;;;;;;;;;;;;;;8308:48;;;;;;;;;;-1:-1:-1;8308:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;1768:87;;;;;;;;;;-1:-1:-1;1814:7:0;1841:6;-1:-1:-1;;;;;1841:6:0;1768:87;;10475;;;;;;;;;;;;;:::i;11445:269::-;;;;;;;;;;-1:-1:-1;11445:269:0;;;;;:::i;:::-;;:::i;12321:167::-;;;;;;;;;;-1:-1:-1;12321:167:0;;;;;:::i;:::-;;:::i;19854:120::-;;;;;;;;;;-1:-1:-1;19854:120:0;;;;;:::i;:::-;;:::i;20547:229::-;;;;;;;;;;-1:-1:-1;20547:229:0;;;;;:::i;:::-;;:::i;8648:25::-;;;;;;;;;;;;;;;;7885:86;;;;;;;;;;-1:-1:-1;7885:86:0;;;;-1:-1:-1;;;;;7885:86:0;;;20335:204;;;;;;;;;;-1:-1:-1;20335:204:0;;;;;:::i;:::-;;:::i;8249:52::-;;;;;;;;;;-1:-1:-1;8249:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7847:24;;;;;;;;;;;;;;;;18814:272;;;;;;;;;;-1:-1:-1;18814:272:0;;;;;:::i;:::-;;:::i;10900:143::-;;;;;;;;;;-1:-1:-1;10900:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;11008:18:0;;;10981:7;11008:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10900:143;19588:122;;;;;;;;;;-1:-1:-1;19588:122:0;;;;;:::i;:::-;;:::i;18628:178::-;;;;;;;;;;;;;:::i;8780:31::-;;;;;;;;;;-1:-1:-1;8780:31:0;;;;;;;;;;;19369:98;;;;;;;;;;-1:-1:-1;19369:98:0;;;;;:::i;:::-;;:::i;8941:22::-;;;;;;;;;;-1:-1:-1;8941:22:0;;;;-1:-1:-1;;;;;8941:22:0;;;2179:229;;;;;;;;;;-1:-1:-1;2179:229:0;;;;;:::i;:::-;;:::i;20907:91::-;;;;;;;;;;-1:-1:-1;20907:91:0;;;;;:::i;:::-;;:::i;8858:36::-;;;;;;;;;;-1:-1:-1;8858:36:0;;;;-1:-1:-1;;;8858:36:0;;;;;;16109:912;1814:7;1841:6;-1:-1:-1;;;;;1841:6:0;415:10;1989:23;1981:68;;;;-1:-1:-1;;;1981:68:0;;;;;;;:::i;:::-;;;;;;;;;16171:10:::1;::::0;:15;16163:45:::1;;;::::0;-1:-1:-1;;;16163:45:0;;5225:2:1;16163:45:0::1;::::0;::::1;5207:21:1::0;5264:2;5244:18;;;5237:30;-1:-1:-1;;;5283:18:1;;;5276:47;5340:18;;16163:45:0::1;5023:341:1::0;16163:45:0::1;16232:12;16219:10;:25:::0;16255:13:::1;:20:::0;;-1:-1:-1;;16255:20:0::1;;;::::0;;;;16324:4:::1;16255:20:::0;16306:24;;;:9:::1;:24;::::0;;;;;;-1:-1:-1;;;16343:9:0;::::1;-1:-1:-1::0;;;;;16343:9:0::1;::::0;:25:::1;::::0;16377:9:::1;::::0;16324:4;16306:24;;16255:20;16488:7:::1;1814::::0;1841:6;-1:-1:-1;;;;;1841:6:0;;1768:87;16488:7:::1;16343:193;::::0;::::1;::::0;;;-1:-1:-1;;;;;;16343:193:0;;;-1:-1:-1;;;;;5728:15:1;;;16343:193:0::1;::::0;::::1;5710:34:1::0;5760:18;;;5753:34;;;;5803:18;;;5796:34;;;;5846:18;;;5839:34;5910:15;;;5889:19;;;5882:44;16510:15:0::1;5942:19:1::0;;;5935:35;5644:19;;16343:193:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16549:23;16591:9;;;;;;;;;-1:-1:-1::0;;;;;16591:9:0::1;-1:-1:-1::0;;;;;16591:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16549:62;;16624:17;16657:7;-1:-1:-1::0;;;;;16657:15:0::1;;16681:4;16688:9;;;;;;;;;-1:-1:-1::0;;;;;16688:9:0::1;-1:-1:-1::0;;;;;16688:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16657:48;::::0;-1:-1:-1;;;;;;16657:48:0::1;::::0;;;;;;-1:-1:-1;;;;;6778:15:1;;;16657:48:0::1;::::0;::::1;6760:34:1::0;6830:15;;6810:18;;;6803:43;6695:18;;16657:48:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16719:7;:23:::0;;-1:-1:-1;;;;;;16719:23:0::1;-1:-1:-1::0;;;;;16719:23:0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;16755:30:0;;;:12:::1;:30;::::0;;;;;;;:37;;-1:-1:-1;;16755:37:0;;::::1;-1:-1:-1::0;16755:37:0;;::::1;::::0;;;16831:7;;;::::1;16803:37:::0;;:19:::1;:37:::0;;;;;:44;;;;::::1;::::0;;::::1;::::0;;16878:4:::1;16858:26:::0;;:11:::1;:26:::0;;;;;16893:7;;;;::::1;16858:44:::0;;;;;;;-1:-1:-1;;16858:58:0;;-1:-1:-1;;16929:11:0::1;:18:::0;;-1:-1:-1;;16989:24:0;;;;;-1:-1:-1;16109:912:0:o;10384:83::-;10421:13;10454:5;10447:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10384:83;:::o;11722:161::-;11797:4;11814:39;415:10;11837:7;11846:6;11814:8;:39::i;:::-;-1:-1:-1;11871:4:0;11722:161;;;;;:::o;19094:119::-;1814:7;1841:6;-1:-1:-1;;;;;1841:6:0;415:10;1989:23;1981:68;;;;-1:-1:-1;;;1981:68:0;;;;;;;:::i;:::-;19164:7:::1;:14:::0;;;;19189:8:::1;:16:::0;19094:119::o;12496:297::-;12594:4;12611:36;12621:6;12629:9;12640:6;12611:9;:36::i;:::-;-1:-1:-1;12658:105:0;12667:6;415:10;12689:73;12727:6;12689:73;;;;;;;;;;;;;;;;;:11;:19;12701:6;-1:-1:-1;;;;;12689:19:0;-1:-1:-1;;;;;12689:19:0;;;;;;;;;;;;:33;12709:12;415:10;;335:98;12709:12;-1:-1:-1;;;;;12689:33:0;;;;;;;;;;;;-1:-1:-1;12689:33:0;;;:73;:37;:73::i;:::-;12658:8;:105::i;:::-;-1:-1:-1;12781:4:0;12496:297;;;;;;:::o;11055:156::-;-1:-1:-1;;;;;11190:11:0;10861:18;11108:7;10861:18;;;:9;:18;;;;;;11135:68;;:40;11152:22;11162:11;-1:-1:-1;;;;;10861:18:0;10835:7;10861:18;;;:9;:18;;;;;;;10769:123;11152:22;11135:12;;;:16;:40::i;:::-;:44;;:68::i;:::-;11128:75;;11055:156;:::o;11219:218::-;415:10;11307:4;11356:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11356:34:0;;;;;;;;;;11307:4;;11324:83;;11347:7;;11356:50;;11395:10;11356:38;:50::i;19475:105::-;1814:7;1841:6;-1:-1:-1;;;;;1841:6:0;415:10;1989:23;1981:68;;;;-1:-1:-1;;;1981:68:0;;;;;;;:::i;:::-;19546:16:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;19546:26:0::1;-1:-1:-1::0;;19546:26:0;;::::1;::::0;;;::::1;::::0;;19475:105::o;20784:115::-;1814:7;1841:6;-1:-1:-1;;;;;1841:6:0;415:10;1989:23;1981:68;;;;-1:-1:-1;;;1981:68:0;;;;;;;:::i;:::-;20856:9:::1;:35:::0;;-1:-1:-1;;;;;20856:35:0;;::::1;-1:-1:-1::0;;;20856:35:0::1;-1:-1:-1::0;;;;;;20856:35:0;;::::1;::::0;;;::::1;::::0;;20784:115::o;20096:101::-;1814:7;1841:6;-1:-1:-1;;;;;1841:6:0;415:10;1989:23;1981:68;;;;-1:-1:-1;;;1981:68:0;;;;;;;:::i;:::-;20166:12:::1;:23:::0;20096:101::o;19718:128::-;1814:7;1841:6;-1:-1:-1;;;;;1841:6:0;415:10;1989:23;1981:68;;;;-1:-1:-1;;;1981:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19803:25:0;;;::::1;;::::0;;;:19:::1;:25;::::0;;;;:35;;-1:-1:-1;;19803:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19718:128::o;2077:94::-;1814:7;1841:6;-1:-1:-1;;;;;1841:6:0;415:10;1989:23;1981:68;;;;-1:-1:-1;;;1981:68:0;;;;;;;:::i;:::-;2142:21:::1;2160:1;2142:9;:21::i;:::-;2077:94::o:0;19982:106::-;1814:7;1841:6;-1:-1:-1;;;;;1841:6:0;415:10;1989:23;1981:68;;;;-1:-1:-1;;;1981:68:0;;;;;;;:::i;:::-;20059:10:::1;:21:::0;19982:106::o;20209:118::-;1814:7;1841:6;-1:-1:-1;;;;;1841:6:0;415:10;1989:23;1981:68;;;;-1:-1:-1;;;1981:68:0;;;;;;;:::i;:::-;20289:17:::1;:30:::0;;-1:-1:-1;;;;;;20289:30:0::1;-1:-1:-1::0;;;;;20289:30:0;;;::::1;::::0;;;::::1;::::0;;20209:118::o;19221:140::-;9046:17;;-1:-1:-1;;;;;9046:17:0;9032:10;:31;9024:57;;;;-1:-1:-1;;;9024:57:0;;;;;;;:::i;:::-;19292:13:::1;::::0;;-1:-1:-1;;;19292:13:0::1;::::0;;;::::1;::::0;::::1;19291:14;19275:30;-1:-1:-1::0;;19275:30:0;::::1;::::0;::::1;19337:16:::0;;::::1;::::0;;::::1;19336:17;19316:37:::0;;::::1;-1:-1:-1::0;;19316:37:0;;;-1:-1:-1;;19316:37:0;;;;;;;::::1;::::0;;19221:140::o;10475:87::-;10514:13;10547:7;10540:14;;;;;:::i;11445:269::-;11538:4;11555:129;415:10;11578:7;11587:96;11626:15;11587:96;;;;;;;;;;;;;;;;;415:10;11587:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11587:34:0;;;;;;;;;;;;:38;:96::i;12321:167::-;12399:4;12416:42;415:10;12440:9;12451:6;12416:9;:42::i;19854:120::-;1814:7;1841:6;-1:-1:-1;;;;;1841:6:0;415:10;1989:23;1981:68;;;;-1:-1:-1;;;1981:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19935:21:0;;;::::1;;::::0;;;:15:::1;:21;::::0;;;;:31;;-1:-1:-1;;19935:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19854:120::o;20547:229::-;9046:17;;-1:-1:-1;;;;;9046:17:0;9032:10;:31;9024:57;;;;-1:-1:-1;;;9024:57:0;;;;;;;:::i;:::-;20676:11:::1;:22:::0;;-1:-1:-1;;20709:22:0;20676;;::::1;;::::0;;;::::1;-1:-1:-1::0;;20709:22:0;;;;;;;::::1;;::::0;;;::::1;;::::0;;20742:13:::1;:26:::0;20547:229::o;20335:204::-;1814:7;1841:6;-1:-1:-1;;;;;1841:6:0;415:10;1989:23;1981:68;;;;-1:-1:-1;;;1981:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20417:19:0;::::1;;::::0;;;:12:::1;:19;::::0;;;;:29;;-1:-1:-1;;20417:29:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;20457:75:::1;;-1:-1:-1::0;;;;;20484:26:0;::::1;;::::0;;;:19:::1;:26;::::0;;;;:36;;-1:-1:-1;;20484:36:0::1;::::0;::::1;;;::::0;;20457:75:::1;20335:204:::0;;:::o;18814:272::-;9046:17;;-1:-1:-1;;;;;9046:17:0;9032:10;:31;9024:57;;;;-1:-1:-1;;;9024:57:0;;;;;;;:::i;:::-;18953:73:::1;::::0;-1:-1:-1;;;;;7777:32:1;;;18953:73:0::1;::::0;::::1;7759:51:1::0;7826:18;;;7819:34;;;18914:12:0::1;::::0;18932:20;;::::1;::::0;7732:18:1;;18953:73:0::1;::::0;;-1:-1:-1;;18953:73:0;;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;18953:73:0::1;-1:-1:-1::0;;;18953:73:0::1;::::0;;18932:95;::::1;::::0;18953:73;18932:95:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18913:114;;;19046:7;19038:40;;;::::0;-1:-1:-1;;;19038:40:0;;8358:2:1;19038:40:0::1;::::0;::::1;8340:21:1::0;8397:2;8377:18;;;8370:30;-1:-1:-1;;;8416:18:1;;;8409:50;8476:18;;19038:40:0::1;8156:344:1::0;19038:40:0::1;18902:184;18814:272:::0;;;:::o;19588:122::-;1814:7;1841:6;-1:-1:-1;;;;;1841:6:0;415:10;1989:23;1981:68;;;;-1:-1:-1;;;1981:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19669:23:0;;;::::1;;::::0;;;:17:::1;:23;::::0;;;;:33;;-1:-1:-1;;19669:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19588:122::o;18628:178::-;9046:17;;-1:-1:-1;;;;;9046:17:0;9032:10;:31;9024:57;;;;-1:-1:-1;;;9024:57:0;;;;;;;:::i;:::-;18695:58:::1;::::0;18683:7:::1;::::0;18703:10:::1;::::0;18727:21:::1;::::0;18683:7;18695:58;18683:7;18695:58;18727:21;18703:10;18695:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18682:71;;;18772:2;18764:34;;;::::0;-1:-1:-1;;;18764:34:0;;8917:2:1;18764:34:0::1;::::0;::::1;8899:21:1::0;8956:2;8936:18;;;8929:30;-1:-1:-1;;;8975:18:1;;;8968:50;9035:18;;18764:34:0::1;8715:344:1::0;18764:34:0::1;18670:136;18628:178::o:0;19369:98::-;1814:7;1841:6;-1:-1:-1;;;;;1841:6:0;415:10;1989:23;1981:68;;;;-1:-1:-1;;;1981:68:0;;;;;;;:::i;:::-;19436:13:::1;:23:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;19436:23:0;;::::1;::::0;;;::::1;::::0;;19369:98::o;2179:229::-;1814:7;1841:6;-1:-1:-1;;;;;1841:6:0;415:10;1989:23;1981:68;;;;-1:-1:-1;;;1981:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2282:22:0;::::1;2260:110;;;::::0;-1:-1:-1;;;2260:110:0;;9266:2:1;2260:110:0::1;::::0;::::1;9248:21:1::0;9305:2;9285:18;;;9278:30;9344:34;9324:18;;;9317:62;-1:-1:-1;;;9395:18:1;;;9388:36;9441:19;;2260:110:0::1;9064:402:1::0;2260:110:0::1;2381:19;2391:8;2381:9;:19::i;20907:91::-:0;1814:7;1841:6;-1:-1:-1;;;;;1841:6:0;415:10;1989:23;1981:68;;;;-1:-1:-1;;;1981:68:0;;;;;;;:::i;:::-;20975:7:::1;:15:::0;;-1:-1:-1;;;;;;20975:15:0::1;-1:-1:-1::0;;;;;20975:15:0;;;::::1;::::0;;;::::1;::::0;;20907:91::o;3155:250::-;3213:7;3237:1;3242;3237:6;3233:47;;-1:-1:-1;3267:1:0;3260:8;;3233:47;3292:9;3304:5;3308:1;3304;:5;:::i;:::-;3292:17;-1:-1:-1;3337:1:0;3328:5;3332:1;3292:17;3328:5;:::i;:::-;:10;3320:56;;;;-1:-1:-1;;;3320:56:0;;10200:2:1;3320:56:0;;;10182:21:1;10239:2;10219:18;;;10212:30;10278:34;10258:18;;;10251:62;-1:-1:-1;;;10329:18:1;;;10322:31;10370:19;;3320:56:0;9998:397:1;3413:132:0;3471:7;3498:39;3502:1;3505;3498:39;;;;;;;;;;;;;;;;;:3;:39::i;11891:337::-;-1:-1:-1;;;;;11984:19:0;;11976:68;;;;-1:-1:-1;;;11976:68:0;;10602:2:1;11976:68:0;;;10584:21:1;10641:2;10621:18;;;10614:30;10680:34;10660:18;;;10653:62;-1:-1:-1;;;10731:18:1;;;10724:34;10775:19;;11976:68:0;10400:400:1;11976:68:0;-1:-1:-1;;;;;12063:21:0;;12055:68;;;;-1:-1:-1;;;12055:68:0;;11007:2:1;12055:68:0;;;10989:21:1;11046:2;11026:18;;;11019:30;11085:34;11065:18;;;11058:62;-1:-1:-1;;;11136:18:1;;;11129:32;11178:19;;12055:68:0;10805:398:1;12055:68:0;-1:-1:-1;;;;;12136:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12188:32;;160:25:1;;;12188:32:0;;133:18:1;12188:32:0;;;;;;;11891:337;;;:::o;12801:1877::-;12888:4;-1:-1:-1;;;;;12915:20:0;;12907:29;;;;;;-1:-1:-1;;;;;12955:23:0;;12947:32;;;;;;13007:1;12998:6;:10;12990:19;;;;;;13030:6;;-1:-1:-1;;;13030:6:0;;;;13026:1643;;;13060:41;13075:6;13083:9;13094:6;13060:14;:41::i;:::-;13053:48;;;;13026:1643;13150:13;;;;;;;13145:146;;-1:-1:-1;;;;;13192:25:0;;;;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;13221:28:0;;;;;;:17;:28;;;;;;;;13192:57;13184:91;;;;-1:-1:-1;;;13184:91:0;;11410:2:1;13184:91:0;;;11392:21:1;11449:2;11429:18;;;11422:30;-1:-1:-1;;;11468:18:1;;;11461:52;11530:18;;13184:91:0;11208:346:1;13184:91:0;13311:10;;:15;;;;:34;;-1:-1:-1;13331:14:0;;;;13330:15;13311:34;13307:93;;;13366:18;:16;:18::i;:::-;13465:4;13416:28;10861:18;;;:9;:18;;;;;;13541:13;;13517:37;;;;;;;13593:52;;-1:-1:-1;13639:6:0;;-1:-1:-1;;;13639:6:0;;;;13638:7;13593:52;:95;;;;-1:-1:-1;;;;;;13668:20:0;;;;;;:12;:20;;;;;;;;13667:21;13593:95;:128;;;;-1:-1:-1;13710:11:0;;;;;;;13593:128;:175;;;;-1:-1:-1;;;;;;13743:25:0;;;;;;:17;:25;;;;;;;;13742:26;13593:175;:225;;;;-1:-1:-1;;;;;;13790:28:0;;;;;;:17;:28;;;;;;;;13789:29;13593:225;13571:332;;;13857:30;13866:20;13857:8;:30::i;:::-;-1:-1:-1;;;;;13923:23:0;;;;;;:15;:23;;;;;;;;13922:24;:55;;;;-1:-1:-1;;;;;;13951:26:0;;;;;;:15;:26;;;;;;;;13950:27;13922:55;:72;;;;-1:-1:-1;13981:13:0;;;;;;;13922:72;13919:166;;;14033:12;;14023:6;:22;;14015:54;;;;-1:-1:-1;;;14015:54:0;;11761:2:1;14015:54:0;;;11743:21:1;11800:2;11780:18;;;11773:30;-1:-1:-1;;;11819:18:1;;;11812:49;11878:18;;14015:54:0;11559:343:1;14015:54:0;14134:53;;;;;;;;;;;-1:-1:-1;;;14134:53:0;;;;;;;;-1:-1:-1;;;;;14134:17:0;;-1:-1:-1;14134:17:0;;;:9;:17;;;;;;;;:53;;14156:6;;14134:21;:53::i;:::-;-1:-1:-1;;;;;14114:17:0;;;;;;:9;:17;;;;;:73;;;;14226:34;14124:6;14250:9;14226:16;:34::i;:::-;:80;;14272:34;14280:6;14288:9;14299:6;14272:7;:34::i;:::-;14226:80;;;14263:6;14226:80;14326:16;;14204:102;;-1:-1:-1;;;;14326:16:0;;;;:51;;;;-1:-1:-1;;;;;;14347:30:0;;;;;;:19;:30;;;;;;;;14346:31;14326:51;14323:168;;;14447:10;;14406:37;14431:11;14406:20;14416:9;-1:-1:-1;;;;;10861:18:0;10835:7;10861:18;;;:9;:18;;;;;;;10769:123;14406:20;:24;;:37::i;:::-;:51;;14398:77;;;;-1:-1:-1;;;14398:77:0;;12109:2:1;14398:77:0;;;12091:21:1;12148:2;12128:18;;;12121:30;-1:-1:-1;;;12167:18:1;;;12160:44;12221:18;;14398:77:0;11907:338:1;14398:77:0;-1:-1:-1;;;;;14530:20:0;;;;;;:9;:20;;;;;;:37;;14555:11;14530:24;:37::i;:::-;-1:-1:-1;;;;;14507:20:0;;;;;;;:9;:20;;;;;;;:60;;;;14589:40;;;;;;;;;;14617:11;160:25:1;;148:2;133:18;;14:177;14589:40:0;;;;;;;;14651:4;14644:11;;;;;;;2955:192;3041:7;3077:12;3069:6;;;;3061:29;;;;-1:-1:-1;;;3061:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3101:9:0;3113:5;3117:1;3113;:5;:::i;:::-;3101:17;2955:192;-1:-1:-1;;;;;2955:192:0:o;2811:136::-;2869:7;2896:43;2900:1;2903;2896:43;;;;;;;;;;;;;;;;;:3;:43::i;2622:181::-;2680:7;;2712:5;2716:1;2712;:5;:::i;:::-;2700:17;;2741:1;2736;:6;;2728:46;;;;-1:-1:-1;;;2728:46:0;;12715:2:1;2728:46:0;;;12697:21:1;12754:2;12734:18;;;12727:30;12793:29;12773:18;;;12766:57;12840:18;;2728:46:0;12513:351:1;2416:173:0;2472:16;2491:6;;-1:-1:-1;;;;;2508:17:0;;;-1:-1:-1;;;;;;2508:17:0;;;;;;2541:40;;2491:6;;;;;;;2541:40;;2472:16;2541:40;2461:128;2416:173;:::o;3553:278::-;3639:7;3674:12;3667:5;3659:28;;;;-1:-1:-1;;;3659:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3698:9:0;3710:5;3714:1;3710;:5;:::i;14686:330::-;14816:53;;;;;;;;;;;-1:-1:-1;;;14816:53:0;;;;;;;;-1:-1:-1;;;;;14816:17:0;;14779:4;14816:17;;;:9;:17;;;;;;;:53;;14838:6;;14816:21;:53::i;:::-;-1:-1:-1;;;;;14796:17:0;;;;;;;:9;:17;;;;;;:73;;;;14903:20;;;;;;;:32;;14928:6;14903:24;:32::i;:::-;-1:-1:-1;;;;;14880:20:0;;;;;;;:9;:20;;;;;;;:55;;;;14951:35;;;;;;;;;;14979:6;160:25:1;;148:2;133:18;;14:177;14951:35:0;;;;;;;;-1:-1:-1;15004:4:0;14686:330;;;;;:::o;17029:406::-;17097:10;;:14;;17110:1;17097:14;:::i;:::-;17081:12;:30;17077:83;;17142:2;19164:7:::1;:14:::0;;;19189:8:::1;:16:::0;17128:20;17189:10;;:14;;17202:1;17189:14;:::i;:::-;17174:12;:29;:64;;;;-1:-1:-1;17223:10:0;;:15;;17236:2;17223:15;:::i;:::-;17207:12;:31;;17174:64;17170:117;;;17269:2;19164:7:::1;:14:::0;;;19189:8:::1;:16:::0;17255:20;17316:10;;:15;;17329:2;17316:15;:::i;:::-;17301:12;:30;17297:117;;;17362:1;19164:7:::1;:14:::0;;;19189:16;;17381:14;:21;;-1:-1:-1;;17381:21:0;17398:4;17381:21;;;17029:406::o;17568:396::-;9140:6;:13;;-1:-1:-1;;;;9140:13:0;-1:-1:-1;;;9140:13:0;;;17642:11:::1;::::0;;;::::1;9140:13:::0;17642:11:::1;17639:47;;;-1:-1:-1::0;17673:13:0::1;::::0;17639:47:::1;17724:21;17756:33;17773:15:::0;17756:16:::1;:33::i;:::-;17800:22;17825:41;:21;17851:14:::0;17825:25:::1;:41::i;:::-;17800:66:::0;-1:-1:-1;17883:18:0;;17879:75:::1;;17911:17;::::0;17903:51:::1;::::0;-1:-1:-1;;;;;17911:17:0;;::::1;::::0;17903:51;::::1;;;::::0;17939:14;;17911:17:::1;17903:51:::0;17911:17;17903:51;17939:14;17911:17;17903:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17879:75;-1:-1:-1::0;;9176:6:0;:14;;-1:-1:-1;;;;9176:14:0;;;-1:-1:-1;17568:396:0:o;15028:369::-;-1:-1:-1;;;;;15132:25:0;;15112:4;15132:25;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;15161:28:0;;;;;;:17;:28;;;;;;;;15132:57;15129:261;;;-1:-1:-1;15213:4:0;15206:11;;15129:261;-1:-1:-1;;;;;15248:20:0;;;;;;:12;:20;;;;;;;;;:47;;-1:-1:-1;;;;;;15272:23:0;;;;;;:12;:23;;;;;;;;15248:47;15244:146;;;-1:-1:-1;15319:5:0;15312:12;;15244:146;-1:-1:-1;15373:5:0;15366:12;;15405:692;-1:-1:-1;;;;;15578:20:0;;15491:7;15578:20;;;:12;:20;;;;;;15491:7;;15578:20;;15575:248;;;15632:39;15656:14;;15632:19;15643:7;;15632:6;:10;;:19;;;;:::i;:::-;:23;;:39::i;:::-;15620:51;;15575:248;;;-1:-1:-1;;;;;15710:23:0;;;;;;:12;:23;;;;;;;;15707:116;;;15767:40;15792:14;;15767:20;15778:8;;15767:6;:10;;:20;;;;:::i;:40::-;15755:52;;15707:116;15842:13;;15839:185;;15921:4;15903:24;;;;:9;:24;;;;;;:39;;15932:9;15903:28;:39::i;:::-;15894:4;15876:24;;;;:9;:24;;;;;;;:66;;;;15966:42;;-1:-1:-1;;;;;15966:42:0;;;;;;;15998:9;160:25:1;;148:2;133:18;;14:177;15966:42:0;;;;;;;;15839:185;16047:21;:6;16058:9;16047:10;:21::i;17972:648::-;18122:16;;;18136:1;18122:16;;;;;;;;18098:21;;18122:16;;;;;;;;;;-1:-1:-1;18122:16:0;18098:40;;18167:4;18149;18154:1;18149:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;18149:23:0;;;-1:-1:-1;;;;;18149:23:0;;;;;18193:9;;;;;;;;;-1:-1:-1;;;;;18193:9:0;-1:-1:-1;;;;;18193:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18183:4;18188:1;18183:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18183:26:0;;;:7;;;;;;;;;:26;18254:9;;18222:56;;18239:4;;-1:-1:-1;;;18254:9:0;;;18266:11;18222:8;:56::i;:::-;18317:9;;:234;;-1:-1:-1;;;18317:234:0;;-1:-1:-1;;;18317:9:0;;;-1:-1:-1;;;;;18317:9:0;;:60;;:234;;18392:11;;18418:1;;18462:4;;18489;;18525:15;;18317:234;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18577:35;18594:11;18607:4;18577:35;;;;;;;:::i;:::-;;;;;;;;18027:593;17972:648;:::o;196:250:1:-;281:1;291:113;305:6;302:1;299:13;291:113;;;381:11;;;375:18;362:11;;;355:39;327:2;320:10;291:113;;;-1:-1:-1;;438:1:1;420:16;;413:27;196:250::o;451:396::-;600:2;589:9;582:21;563:4;632:6;626:13;675:6;670:2;659:9;655:18;648:34;691:79;763:6;758:2;747:9;743:18;738:2;730:6;726:15;691:79;:::i;:::-;831:2;810:15;-1:-1:-1;;806:29:1;791:45;;;;838:2;787:54;;451:396;-1:-1:-1;;451:396:1:o;1290:131::-;-1:-1:-1;;;;;1365:31:1;;1355:42;;1345:70;;1411:1;1408;1401:12;1426:315;1494:6;1502;1555:2;1543:9;1534:7;1530:23;1526:32;1523:52;;;1571:1;1568;1561:12;1523:52;1610:9;1597:23;1629:31;1654:5;1629:31;:::i;:::-;1679:5;1731:2;1716:18;;;;1703:32;;-1:-1:-1;;;1426:315:1:o;1938:248::-;2006:6;2014;2067:2;2055:9;2046:7;2042:23;2038:32;2035:52;;;2083:1;2080;2073:12;2035:52;-1:-1:-1;;2106:23:1;;;2176:2;2161:18;;;2148:32;;-1:-1:-1;1938:248:1:o;2191:456::-;2268:6;2276;2284;2337:2;2325:9;2316:7;2312:23;2308:32;2305:52;;;2353:1;2350;2343:12;2305:52;2392:9;2379:23;2411:31;2436:5;2411:31;:::i;:::-;2461:5;-1:-1:-1;2518:2:1;2503:18;;2490:32;2531:33;2490:32;2531:33;:::i;:::-;2191:456;;2583:7;;-1:-1:-1;;;2637:2:1;2622:18;;;;2609:32;;2191:456::o;2841:247::-;2900:6;2953:2;2941:9;2932:7;2928:23;2924:32;2921:52;;;2969:1;2966;2959:12;2921:52;3008:9;2995:23;3027:31;3052:5;3027:31;:::i;3093:160::-;3158:20;;3214:13;;3207:21;3197:32;;3187:60;;3243:1;3240;3233:12;3187:60;3093:160;;;:::o;3258:180::-;3314:6;3367:2;3355:9;3346:7;3342:23;3338:32;3335:52;;;3383:1;3380;3373:12;3335:52;3406:26;3422:9;3406:26;:::i;3443:180::-;3502:6;3555:2;3543:9;3534:7;3530:23;3526:32;3523:52;;;3571:1;3568;3561:12;3523:52;-1:-1:-1;3594:23:1;;3443:180;-1:-1:-1;3443:180:1:o;3628:315::-;3693:6;3701;3754:2;3742:9;3733:7;3729:23;3725:32;3722:52;;;3770:1;3767;3760:12;3722:52;3809:9;3796:23;3828:31;3853:5;3828:31;:::i;:::-;3878:5;-1:-1:-1;3902:35:1;3933:2;3918:18;;3902:35;:::i;:::-;3892:45;;3628:315;;;;;:::o;3948:316::-;4019:6;4027;4035;4088:2;4076:9;4067:7;4063:23;4059:32;4056:52;;;4104:1;4101;4094:12;4056:52;4140:9;4127:23;4117:33;;4169:35;4200:2;4189:9;4185:18;4169:35;:::i;:::-;4159:45;;4223:35;4254:2;4243:9;4239:18;4223:35;:::i;:::-;4213:45;;3948:316;;;;;:::o;4269:388::-;4337:6;4345;4398:2;4386:9;4377:7;4373:23;4369:32;4366:52;;;4414:1;4411;4404:12;4366:52;4453:9;4440:23;4472:31;4497:5;4472:31;:::i;:::-;4522:5;-1:-1:-1;4579:2:1;4564:18;;4551:32;4592:33;4551:32;4592:33;:::i;:::-;4644:7;4634:17;;;4269:388;;;;;:::o;4662:356::-;4864:2;4846:21;;;4883:18;;;4876:30;4942:34;4937:2;4922:18;;4915:62;5009:2;4994:18;;4662:356::o;5981:306::-;6069:6;6077;6085;6138:2;6126:9;6117:7;6113:23;6109:32;6106:52;;;6154:1;6151;6144:12;6106:52;6183:9;6177:16;6167:26;;6233:2;6222:9;6218:18;6212:25;6202:35;;6277:2;6266:9;6262:18;6256:25;6246:35;;5981:306;;;;;:::o;6292:251::-;6362:6;6415:2;6403:9;6394:7;6390:23;6386:32;6383:52;;;6431:1;6428;6421:12;6383:52;6463:9;6457:16;6482:31;6507:5;6482:31;:::i;6857:380::-;6936:1;6932:12;;;;6979;;;7000:61;;7054:4;7046:6;7042:17;7032:27;;7000:61;7107:2;7099:6;7096:14;7076:18;7073:38;7070:161;;7153:10;7148:3;7144:20;7141:1;7134:31;7188:4;7185:1;7178:15;7216:4;7213:1;7206:15;7070:161;;6857:380;;;:::o;7242:338::-;7444:2;7426:21;;;7483:2;7463:18;;;7456:30;-1:-1:-1;;;7517:2:1;7502:18;;7495:44;7571:2;7556:18;;7242:338::o;7864:287::-;7993:3;8031:6;8025:13;8047:66;8106:6;8101:3;8094:4;8086:6;8082:17;8047:66;:::i;:::-;8129:16;;;;;7864:287;-1:-1:-1;;7864:287:1:o;9471:127::-;9532:10;9527:3;9523:20;9520:1;9513:31;9563:4;9560:1;9553:15;9587:4;9584:1;9577:15;9603:168;9676:9;;;9707;;9724:15;;;9718:22;;9704:37;9694:71;;9745:18;;:::i;9776:217::-;9816:1;9842;9832:132;;9886:10;9881:3;9877:20;9874:1;9867:31;9921:4;9918:1;9911:15;9949:4;9946:1;9939:15;9832:132;-1:-1:-1;9978:9:1;;9776:217::o;12250:128::-;12317:9;;;12338:11;;;12335:37;;;12352:18;;:::i;12383:125::-;12448:9;;;12469:10;;;12466:36;;;12482:18;;:::i;13001:127::-;13062:10;13057:3;13053:20;13050:1;13043:31;13093:4;13090:1;13083:15;13117:4;13114:1;13107:15;13133:461;13186:3;13224:5;13218:12;13251:6;13246:3;13239:19;13277:4;13306:2;13301:3;13297:12;13290:19;;13343:2;13336:5;13332:14;13364:1;13374:195;13388:6;13385:1;13382:13;13374:195;;;13453:13;;-1:-1:-1;;;;;13449:39:1;13437:52;;13509:12;;;;13544:15;;;;13485:1;13403:9;13374:195;;;-1:-1:-1;13585:3:1;;13133:461;-1:-1:-1;;;;;13133:461:1:o;13599:582::-;13898:6;13887:9;13880:25;13941:6;13936:2;13925:9;13921:18;13914:34;13984:3;13979:2;13968:9;13964:18;13957:31;13861:4;14005:57;14057:3;14046:9;14042:19;14034:6;14005:57;:::i;:::-;-1:-1:-1;;;;;14098:32:1;;;;14093:2;14078:18;;14071:60;-1:-1:-1;14162:3:1;14147:19;14140:35;13997:65;13599:582;-1:-1:-1;;;13599:582:1:o;14186:332::-;14393:6;14382:9;14375:25;14436:2;14431;14420:9;14416:18;14409:30;14356:4;14456:56;14508:2;14497:9;14493:18;14485:6;14456:56;:::i;:::-;14448:64;14186:332;-1:-1:-1;;;;14186:332:1:o

Swarm Source

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