ETH Price: $2,237.87 (-1.63%)
 

Overview

Max Total Supply

500,000,000 RYF

Holders

4

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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

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

Contract Source Code Verified (Exact Match)

Contract Name:
RyoshiFinance

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-09-28
*/

// 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 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 RyoshiFinance is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private _name = "RYOSHI.FINANCE";
    string private _symbol = "RYF";
    uint8 private _decimals = 18; 

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

    uint256 public _buyMarketingFee = 3;
    uint256 public _sellMarketingFee = 3;

    address public Marketing = address(0x16ED57513632216e9AEe2cf8bC918b3Eec4C6224);
    
    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 = 500_000_000 * 10**_decimals;

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

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

    uint256 public launchedAt;
    uint256 public launchedAtTimestamp;
    bool public normalizeTrade;

    bool tradingActive;

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

    IDexSwapRouter public dexRouter;
    address public dexPair;

    bool inSwap;

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

    constructor() {

        address _owner = address(0x0DaBdAc264e365AAd257799d95Dc8acf30C1B6E8);

        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        dexPair = IDexSwapFactory(_dexRouter.factory()).createPair(
            address(this),
            _dexRouter.WETH()
        );

        dexRouter = _dexRouter;

        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[_owner] = true;
        isExcludedFromFee[address(dexRouter)] = true;

        isWalletLimitExempt[_owner] = true;
        isWalletLimitExempt[address(dexPair)] = true;
        isWalletLimitExempt[address(dexRouter)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[deadAddress] = true;
        isWalletLimitExempt[zeroAddress] = true;
        
        isTxLimitExempt[deadAddress] = true;
        isTxLimitExempt[zeroAddress] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[address(dexRouter)] = true;

        isMarketPair[address(dexPair)] = true;

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

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _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: transfer amount exceeds allowance"));
        return true;
    }

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

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
    
        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) {
                swapBack(contractTokenBalance);
            }

            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the 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,"Max Wallet Limit Exceeded!!");
            }

            _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(_buyMarketingFee).div(feedenominator);
            } 
            else if(isMarketPair[recipient]) { 
                feeAmount = amount.mul(_sellMarketingFee).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 onlyOwner {
        require(launchedAt == 0, "Already launched!");
        launchedAt = block.number;
        launchedAtTimestamp = block.timestamp;
        tradingActive = true;
        swapEnabled = true;
    }

    function dynamicTaxSetter() internal {
        if (block.number <= launchedAt + 3) {
            dynamicSetter(99,99);
        }
        if (block.number > launchedAt + 6 && block.number <= launchedAt + 20) {
            dynamicSetter(50,50);
        }
        if (block.number > launchedAt + 20 && block.number <= launchedAt + 100) {
            dynamicSetter(25,25);
        }
        if (block.number > launchedAt + 100) {
            dynamicSetter(3,3);
            normalizeTrade = true;
        }
            
    }

    function dynamicSetter(uint _buy, uint _Sell) internal {
        _buyMarketingFee = _buy;
        _sellMarketingFee = _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(Marketing).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 onlyOwner { 
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

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

    function setFee(uint _buyFee, uint _sellFee) external onlyOwner {    
        _buyMarketingFee = _buyFee;
        _sellMarketingFee = _sellFee;
    }

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

    function enableMaxHoldingLimit(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 setMarketingWallet(address _newWallet) external onlyOwner {
        Marketing = _newWallet;
    }

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

    function setSwapBackSettings(bool _enabled, bool _limited)
        external
        onlyOwner
    {
        swapEnabled = _enabled;
        swapbylimit = _limited;
    }

    function setSwapthreshold(uint _threshold) external onlyOwner {
        swapThreshold = _threshold;
    }

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

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


}

Contract Security Audit

Contract ABI

API
[{"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":"Marketing","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","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":"_sellMarketingFee","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":"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":"enableMaxHoldingLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","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":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAtTimestamp","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":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFee","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":"address","name":"_newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_limited","type":"bool"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"setSwapthreshold","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"}]

610100604052600e60c08190526d52594f5348492e46494e414e434560901b60e090815262000032916001919062000640565b5060408051808201909152600380825262292ca360e91b60209092019182526200005f9160029162000640565b506003805460ff19166012908117825561dead608052600060a0526004829055600591909155600680546001600160a01b0319167316ed57513632216e9aee2cf8bc918b3eec4c62241790556064600755620000bd90600a620007f9565b620000cd90631dcd65006200080a565b600e55620001076064620000f36001600e54620004d660201b620013c71790919060201c565b6200056a60201b620014461790919060201c565b600f556200012d6064620000f36001600e54620004d660201b620013c71790919060201c565b601055600354620001439060ff16600a620007f9565b62000152906203d0906200080a565b6011556014805465ffffffff00001916650101000100001790553480156200017957600080fd5b506200018533620005b4565b6000730dabdac264e365aad257799d95dc8acf30c1b6e890506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021c91906200082c565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029091906200082c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030491906200082c565b601580546001600160a01b0319166001600160a01b0392831617815560148054600160301b600160d01b03191666010000000000008585168102919091178255306000818152600a60209081526040808320805460ff1990811660019081179092558b8a16808652838620805483168417905588548890048b1686528386208054831684179055808652600c8552838620805483168417905589548b168652838620805483168417905588548890048b168652838620805483168417905586865283862080548316841790556080518b16808752848720805484168517905560a0518c168088528588208054851686179055908752600d86528487208054841685179055865283862080548316841790558086528386208054831684179055868652838620805483168417905588548890048b168652838620805483168417905589548b168652600b8552838620805490921690921790559383526009825280832095549490940487168252938452828120600019908190559454909516855281852093909355600e548385526008835281852081905590519081529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350506200090f565b600082620004e75750600062000564565b6000620004f583856200080a565b90508262000504858362000857565b14620005615760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200056183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200060460201b60201c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183620006285760405162461bcd60e51b81526004016200055891906200087a565b50600062000637848662000857565b95945050505050565b8280546200064e90620008d2565b90600052602060002090601f016020900481019282620006725760008555620006bd565b82601f106200068d57805160ff1916838001178555620006bd565b82800160010185558215620006bd579182015b82811115620006bd578251825591602001919060010190620006a0565b50620006cb929150620006cf565b5090565b5b80821115620006cb5760008155600101620006d0565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200073d578160001904821115620007215762000721620006e6565b808516156200072f57918102915b93841c939080029062000701565b509250929050565b600082620007565750600162000564565b81620007655750600062000564565b81600181146200077e57600281146200078957620007a9565b600191505062000564565b60ff8411156200079d576200079d620006e6565b50506001821b62000564565b5060208310610133831016604e8410600b8410161715620007ce575081810a62000564565b620007da8383620006fc565b8060001904821115620007f157620007f1620006e6565b029392505050565b60006200056160ff84168362000745565b6000816000190483118215151615620008275762000827620006e6565b500290565b6000602082840312156200083f57600080fd5b81516001600160a01b03811681146200056157600080fd5b6000826200087557634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015620008a9578581018301518582016040015282016200088b565b81811115620008bc576000604083870101525b50601f01601f1916929092016040019392505050565b600181811c90821680620008e757607f821691505b602082108114156200090957634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05161260a62000943600039600081816103dd0152610bdc0152600081816104900152610c17015261260a6000f3fe60806040526004361061031e5760003560e01c8063807c2d9c116101ab578063c867d60b116100f7578063e6b2603b11610095578063f242ab411161006f578063f242ab41146109a9578063f2fde38b146109c9578063f71b9bbf146109e9578063f872858a14610a0957600080fd5b8063e6b2603b14610953578063e9fd339414610968578063ee828db31461098957600080fd5b8063d89c12fd116100d1578063d89c12fd146108ad578063db886f23146108cd578063dd62ed3e146108ed578063df8408fe1461093357600080fd5b8063c867d60b1461083d578063cea9d26f1461086d578063d4e43fb31461088d57600080fd5b8063adc0d09211610164578063c16dd4a41161013e578063c16dd4a4146107db578063c5d24189146107fb578063c6d2577d14610811578063c86079521461082757600080fd5b8063adc0d09214610785578063ae85ade6146107a5578063bf56b371146107c557600080fd5b8063807c2d9c146106cc5780638b42507f146106e25780638da5cb5b1461071257806395d89b4114610730578063a457c2d714610745578063a9059cbb1461076557600080fd5b80633ecad2711161026a5780635e42358c1161022357806370a08231116101fd57806370a082311461064b578063715018a614610681578063728d41c9146106965780637d1db4a5146106b657600080fd5b80635e42358c146105e9578063651a89871461060b5780636ddd17131461062b57600080fd5b80633ecad2711461050957806352f7c988146105395780635342acb41461055957806359fac517146105895780635c85974f146105a95780635d098b38146105c957600080fd5b8063111a4651116102d757806327c8f835116102b157806327c8f8351461047e5780632b112e49146104b2578063313ce567146104c757806339509351146104e957600080fd5b8063111a46511461042f57806318160ddd1461044957806323b872dd1461045e57600080fd5b806301339c211461032a5780630445b6671461034157806306fdde031461036a5780630758d9241461038c5780630930907b146103cb578063095ea7b3146103ff57600080fd5b3661032557005b600080fd5b34801561033657600080fd5b5061033f610a2c565b005b34801561034d57600080fd5b5061035760115481565b6040519081526020015b60405180910390f35b34801561037657600080fd5b5061037f610abe565b60405161036191906121da565b34801561039857600080fd5b506014546103b390600160301b90046001600160a01b031681565b6040516001600160a01b039091168152602001610361565b3480156103d757600080fd5b506103b37f000000000000000000000000000000000000000000000000000000000000000081565b34801561040b57600080fd5b5061041f61041a366004612222565b610b50565b6040519015158152602001610361565b34801561043b57600080fd5b5060145461041f9060ff1681565b34801561045557600080fd5b50600e54610357565b34801561046a57600080fd5b5061041f61047936600461224e565b610b67565b34801561048a57600080fd5b506103b37f000000000000000000000000000000000000000000000000000000000000000081565b3480156104be57600080fd5b50610357610bd2565b3480156104d357600080fd5b5060035460405160ff9091168152602001610361565b3480156104f557600080fd5b5061041f610504366004612222565b610c65565b34801561051557600080fd5b5061041f61052436600461228f565b600b6020526000908152604090205460ff1681565b34801561054557600080fd5b5061033f6105543660046122ac565b610c9b565b34801561056557600080fd5b5061041f61057436600461228f565b600a6020526000908152604090205460ff1681565b34801561059557600080fd5b5061033f6105a436600461228f565b610cd0565b3480156105b557600080fd5b5061033f6105c43660046122ce565b610d29565b3480156105d557600080fd5b5061033f6105e436600461228f565b610d58565b3480156105f557600080fd5b5060145461041f90640100000000900460ff1681565b34801561061757600080fd5b5061033f6106263660046122fc565b610da4565b34801561063757600080fd5b5060145461041f9062010000900460ff1681565b34801561065757600080fd5b5061035761066636600461228f565b6001600160a01b031660009081526008602052604090205490565b34801561068d57600080fd5b5061033f610df9565b3480156106a257600080fd5b5061033f6106b13660046122ce565b610e2f565b3480156106c257600080fd5b50610357600f5481565b3480156106d857600080fd5b5061035760105481565b3480156106ee57600080fd5b5061041f6106fd36600461228f565b600d6020526000908152604090205460ff1681565b34801561071e57600080fd5b506000546001600160a01b03166103b3565b34801561073c57600080fd5b5061037f610e5e565b34801561075157600080fd5b5061041f610760366004612222565b610e6d565b34801561077157600080fd5b5061041f610780366004612222565b610ebc565b34801561079157600080fd5b5061033f6107a03660046122ce565b610ec9565b3480156107b157600080fd5b5061033f6107c03660046122fc565b610ef8565b3480156107d157600080fd5b5061035760125481565b3480156107e757600080fd5b5061033f6107f63660046122fc565b610f4d565b34801561080757600080fd5b5061035760045481565b34801561081d57600080fd5b5061035760135481565b34801561083357600080fd5b5061035760055481565b34801561084957600080fd5b5061041f61085836600461228f565b600c6020526000908152604090205460ff1681565b34801561087957600080fd5b5061033f61088836600461224e565b610fcd565b34801561089957600080fd5b5061033f6108a8366004612331565b6110e0565b3480156108b957600080fd5b5061033f6108c836600461234d565b61113c565b3480156108d957600080fd5b506006546103b3906001600160a01b031681565b3480156108f957600080fd5b50610357610908366004612368565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561093f57600080fd5b5061033f61094e3660046122fc565b611188565b34801561095f57600080fd5b5061033f6111dd565b34801561097457600080fd5b5060145461041f906301000000900460ff1681565b34801561099557600080fd5b5061033f6109a436600461234d565b611299565b3480156109b557600080fd5b506015546103b3906001600160a01b031681565b3480156109d557600080fd5b5061033f6109e436600461228f565b6112e3565b3480156109f557600080fd5b5061033f610a0436600461228f565b61137b565b348015610a1557600080fd5b5060145461041f9065010000000000900460ff1681565b6000546001600160a01b03163314610a5f5760405162461bcd60e51b8152600401610a56906123a1565b60405180910390fd5b60125415610aa35760405162461bcd60e51b8152602060048201526011602482015270416c7265616479206c61756e636865642160781b6044820152606401610a56565b43601255426013556014805462ffff00191662010100179055565b606060018054610acd906123d6565b80601f0160208091040260200160405190810160405280929190818152602001828054610af9906123d6565b8015610b465780601f10610b1b57610100808354040283529160200191610b46565b820191906000526020600020905b815481529060010190602001808311610b2957829003601f168201915b5050505050905090565b6000610b5d338484611488565b5060015b92915050565b6000610b748484846115ac565b50610bc78433610bc285604051806060016040528060288152602001612588602891396001600160a01b038a1660009081526009602090815260408083203384529091529020549190611ab2565b611488565b5060015b9392505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600090815260086020526040812054610c6090610c5a610c517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660009081526008602052604090205490565b600e5490611aec565b90611aec565b905090565b3360008181526009602090815260408083206001600160a01b03871684529091528120549091610b5d918590610bc29086611b2e565b6000546001600160a01b03163314610cc55760405162461bcd60e51b8152600401610a56906123a1565b600491909155600555565b6000546001600160a01b03163314610cfa5760405162461bcd60e51b8152600401610a56906123a1565b601480546001600160a01b03909216600160301b026601000000000000600160d01b0319909216919091179055565b6000546001600160a01b03163314610d535760405162461bcd60e51b8152600401610a56906123a1565b600f55565b6000546001600160a01b03163314610d825760405162461bcd60e51b8152600401610a56906123a1565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610dce5760405162461bcd60e51b8152600401610a56906123a1565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610e235760405162461bcd60e51b8152600401610a56906123a1565b610e2d6000611b8d565b565b6000546001600160a01b03163314610e595760405162461bcd60e51b8152600401610a56906123a1565b601055565b606060028054610acd906123d6565b6000610b5d3384610bc2856040518060600160405280602581526020016125b0602591393360009081526009602090815260408083206001600160a01b038d1684529091529020549190611ab2565b6000610bc73384846115ac565b6000546001600160a01b03163314610ef35760405162461bcd60e51b8152600401610a56906123a1565b601155565b6000546001600160a01b03163314610f225760405162461bcd60e51b8152600401610a56906123a1565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f775760405162461bcd60e51b8152600401610a56906123a1565b6001600160a01b0382166000908152600b60205260409020805460ff19168215801591909117909155610fc9576001600160a01b0382166000908152600c60205260409020805460ff19168215151790555b5050565b6000546001600160a01b03163314610ff75760405162461bcd60e51b8152600401610a56906123a1565b6040516001600160a01b038381166024830152604482018390526000919085169060640160408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b179052516110509190612411565b6000604051808303816000865af19150503d806000811461108d576040519150601f19603f3d011682016040523d82523d6000602084013e611092565b606091505b50509050806110da5760405162461bcd60e51b8152602060048201526014602482015273151bdad95b881c185e5b595b9d0819985a5b195960621b6044820152606401610a56565b50505050565b6000546001600160a01b0316331461110a5760405162461bcd60e51b8152600401610a56906123a1565b6014805463ffff00001916620100009315159390930263ff000000191692909217630100000091151591909102179055565b6000546001600160a01b031633146111665760405162461bcd60e51b8152600401610a56906123a1565b60148054911515650100000000000265ff000000000019909216919091179055565b6000546001600160a01b031633146111b25760405162461bcd60e51b8152600401610a56906123a1565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146112075760405162461bcd60e51b8152600401610a56906123a1565b604051600090339047908381818185875af1925050503d8060008114611249576040519150601f19603f3d011682016040523d82523d6000602084013e61124e565b606091505b50509050806112965760405162461bcd60e51b81526020600482015260146024820152735472616e73616374696f6e204661696c6564212160601b6044820152606401610a56565b50565b6000546001600160a01b031633146112c35760405162461bcd60e51b8152600401610a56906123a1565b601480549115156401000000000264ff0000000019909216919091179055565b6000546001600160a01b0316331461130d5760405162461bcd60e51b8152600401610a56906123a1565b6001600160a01b0381166113725760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a56565b61129681611b8d565b6000546001600160a01b031633146113a55760405162461bcd60e51b8152600401610a56906123a1565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b6000826113d657506000610b61565b60006113e28385612443565b9050826113ef8583612462565b14610bcb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a56565b6000610bcb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bdd565b6001600160a01b0383166114ea5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a56565b6001600160a01b03821661154b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a56565b6001600160a01b0383811660008181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166116125760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a56565b6001600160a01b0383166116745760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a56565b600082116116d65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a56565b601554600160a01b900460ff16156116fa576116f3848484611c0b565b9050610bcb565b601454610100900460ff1661178d576001600160a01b0384166000908152600a602052604090205460ff168061174857506001600160a01b0383166000908152600a602052604090205460ff165b61178d5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610a56565b601254158015906117a1575060145460ff16155b156117ae576117ae611cf1565b30600090815260086020526040902054601154811080159081906117dc5750601554600160a01b900460ff16155b801561180157506001600160a01b0386166000908152600b602052604090205460ff16155b8015611815575060145462010000900460ff165b156118235761182382611db0565b6001600160a01b0386166000908152600d602052604090205460ff1615801561186557506001600160a01b0385166000908152600d602052604090205460ff16155b801561187b5750601454640100000000900460ff165b156118e357600f548411156118e35760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610a56565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038916600090815260089091529190912054611935918690611ab2565b6001600160a01b03871660009081526008602052604081209190915561195b8787611e46565b61196f5761196a878787611ee6565b611971565b845b60145490915065010000000000900460ff1680156119a857506001600160a01b0386166000908152600c602052604090205460ff16155b15611a27576010546119d9826119d3896001600160a01b031660009081526008602052604090205490565b90611b2e565b1115611a275760405162461bcd60e51b815260206004820152601b60248201527f4d61782057616c6c6574204c696d6974204578636565646564212100000000006044820152606401610a56565b6001600160a01b038616600090815260086020526040902054611a4a9082611b2e565b6001600160a01b0380881660008181526008602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a9e9085815260200190565b60405180910390a360019350505050610bcb565b60008184841115611ad65760405162461bcd60e51b8152600401610a5691906121da565b506000611ae38486612484565b95945050505050565b6000610bcb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ab2565b600080611b3b838561249b565b905083811015610bcb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a56565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183611bfe5760405162461bcd60e51b8152600401610a5691906121da565b506000611ae38486612462565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611c5c918490611ab2565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611c8b9083611b2e565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cdf9086815260200190565b60405180910390a35060019392505050565b601254611cff90600361249b565b4311611d1057606360048190556005555b601254611d1e90600661249b565b43118015611d395750601254611d3590601461249b565b4311155b15611d4957603260048190556005555b601254611d5790601461249b565b43118015611d725750601254611d6e90606461249b565b4311155b15611d8257601960048190556005555b601254611d9090606461249b565b431115610e2d57600360048190556005556014805460ff19166001179055565b6015805460ff60a01b1916600160a01b1790556014546301000000900460ff1615611dda57506011545b47611de482611ff4565b6000611df04783611aec565b90508015611e34576006546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611e32573d6000803e3d6000fd5b505b50506015805460ff60a01b1916905550565b6001600160a01b0382166000908152600a602052604081205460ff1680611e8557506001600160a01b0382166000908152600a602052604090205460ff165b15611e9257506001610b61565b6001600160a01b0383166000908152600b602052604090205460ff1680611ed157506001600160a01b0382166000908152600b602052604090205460ff165b15611ede57506000610b61565b506000610b61565b6001600160a01b0383166000908152600b6020526040812054819060ff1615611f3157611f2a600754611f24600454866113c790919063ffffffff16565b90611446565b9050611f70565b6001600160a01b0384166000908152600b602052604090205460ff1615611f7057611f6d600754611f24600554866113c790919063ffffffff16565b90505b8015611fea5730600090815260086020526040902054611f909082611b2e565b30600081815260086020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611fe19085815260200190565b60405180910390a35b611ae38382611aec565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612029576120296124b3565b60200260200101906001600160a01b031690816001600160a01b031681525050601460069054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561209c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c091906124c9565b816001815181106120d3576120d36124b3565b6001600160a01b039283166020918202929092010152601454612100913091600160301b90041684611488565b60145460405163791ac94760e01b8152600160301b9091046001600160a01b03169063791ac9479061213f90859060009086903090429060040161252a565b600060405180830381600087803b15801561215957600080fd5b505af115801561216d573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516121a2929190612566565b60405180910390a15050565b60005b838110156121c95781810151838201526020016121b1565b838111156110da5750506000910152565b60208152600082518060208401526121f98160408501602087016121ae565b601f01601f19169190910160400192915050565b6001600160a01b038116811461129657600080fd5b6000806040838503121561223557600080fd5b82356122408161220d565b946020939093013593505050565b60008060006060848603121561226357600080fd5b833561226e8161220d565b9250602084013561227e8161220d565b929592945050506040919091013590565b6000602082840312156122a157600080fd5b8135610bcb8161220d565b600080604083850312156122bf57600080fd5b50508035926020909101359150565b6000602082840312156122e057600080fd5b5035919050565b803580151581146122f757600080fd5b919050565b6000806040838503121561230f57600080fd5b823561231a8161220d565b9150612328602084016122e7565b90509250929050565b6000806040838503121561234457600080fd5b61231a836122e7565b60006020828403121561235f57600080fd5b610bcb826122e7565b6000806040838503121561237b57600080fd5b82356123868161220d565b915060208301356123968161220d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c908216806123ea57607f821691505b6020821081141561240b57634e487b7160e01b600052602260045260246000fd5b50919050565b600082516124238184602087016121ae565b9190910192915050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561245d5761245d61242d565b500290565b60008261247f57634e487b7160e01b600052601260045260246000fd5b500490565b6000828210156124965761249661242d565b500390565b600082198211156124ae576124ae61242d565b500190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156124db57600080fd5b8151610bcb8161220d565b600081518084526020808501945080840160005b8381101561251f5781516001600160a01b0316875295820195908201906001016124fa565b509495945050505050565b85815284602082015260a06040820152600061254960a08301866124e6565b6001600160a01b0394909416606083015250608001529392505050565b82815260406020820152600061257f60408301846124e6565b94935050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220cf574a1d25762511c45e1ff5fd8264fcc4b9c3a1f1404d05adc03401babef1d064736f6c634300080a0033

Deployed Bytecode

0x60806040526004361061031e5760003560e01c8063807c2d9c116101ab578063c867d60b116100f7578063e6b2603b11610095578063f242ab411161006f578063f242ab41146109a9578063f2fde38b146109c9578063f71b9bbf146109e9578063f872858a14610a0957600080fd5b8063e6b2603b14610953578063e9fd339414610968578063ee828db31461098957600080fd5b8063d89c12fd116100d1578063d89c12fd146108ad578063db886f23146108cd578063dd62ed3e146108ed578063df8408fe1461093357600080fd5b8063c867d60b1461083d578063cea9d26f1461086d578063d4e43fb31461088d57600080fd5b8063adc0d09211610164578063c16dd4a41161013e578063c16dd4a4146107db578063c5d24189146107fb578063c6d2577d14610811578063c86079521461082757600080fd5b8063adc0d09214610785578063ae85ade6146107a5578063bf56b371146107c557600080fd5b8063807c2d9c146106cc5780638b42507f146106e25780638da5cb5b1461071257806395d89b4114610730578063a457c2d714610745578063a9059cbb1461076557600080fd5b80633ecad2711161026a5780635e42358c1161022357806370a08231116101fd57806370a082311461064b578063715018a614610681578063728d41c9146106965780637d1db4a5146106b657600080fd5b80635e42358c146105e9578063651a89871461060b5780636ddd17131461062b57600080fd5b80633ecad2711461050957806352f7c988146105395780635342acb41461055957806359fac517146105895780635c85974f146105a95780635d098b38146105c957600080fd5b8063111a4651116102d757806327c8f835116102b157806327c8f8351461047e5780632b112e49146104b2578063313ce567146104c757806339509351146104e957600080fd5b8063111a46511461042f57806318160ddd1461044957806323b872dd1461045e57600080fd5b806301339c211461032a5780630445b6671461034157806306fdde031461036a5780630758d9241461038c5780630930907b146103cb578063095ea7b3146103ff57600080fd5b3661032557005b600080fd5b34801561033657600080fd5b5061033f610a2c565b005b34801561034d57600080fd5b5061035760115481565b6040519081526020015b60405180910390f35b34801561037657600080fd5b5061037f610abe565b60405161036191906121da565b34801561039857600080fd5b506014546103b390600160301b90046001600160a01b031681565b6040516001600160a01b039091168152602001610361565b3480156103d757600080fd5b506103b37f000000000000000000000000000000000000000000000000000000000000000081565b34801561040b57600080fd5b5061041f61041a366004612222565b610b50565b6040519015158152602001610361565b34801561043b57600080fd5b5060145461041f9060ff1681565b34801561045557600080fd5b50600e54610357565b34801561046a57600080fd5b5061041f61047936600461224e565b610b67565b34801561048a57600080fd5b506103b37f000000000000000000000000000000000000000000000000000000000000dead81565b3480156104be57600080fd5b50610357610bd2565b3480156104d357600080fd5b5060035460405160ff9091168152602001610361565b3480156104f557600080fd5b5061041f610504366004612222565b610c65565b34801561051557600080fd5b5061041f61052436600461228f565b600b6020526000908152604090205460ff1681565b34801561054557600080fd5b5061033f6105543660046122ac565b610c9b565b34801561056557600080fd5b5061041f61057436600461228f565b600a6020526000908152604090205460ff1681565b34801561059557600080fd5b5061033f6105a436600461228f565b610cd0565b3480156105b557600080fd5b5061033f6105c43660046122ce565b610d29565b3480156105d557600080fd5b5061033f6105e436600461228f565b610d58565b3480156105f557600080fd5b5060145461041f90640100000000900460ff1681565b34801561061757600080fd5b5061033f6106263660046122fc565b610da4565b34801561063757600080fd5b5060145461041f9062010000900460ff1681565b34801561065757600080fd5b5061035761066636600461228f565b6001600160a01b031660009081526008602052604090205490565b34801561068d57600080fd5b5061033f610df9565b3480156106a257600080fd5b5061033f6106b13660046122ce565b610e2f565b3480156106c257600080fd5b50610357600f5481565b3480156106d857600080fd5b5061035760105481565b3480156106ee57600080fd5b5061041f6106fd36600461228f565b600d6020526000908152604090205460ff1681565b34801561071e57600080fd5b506000546001600160a01b03166103b3565b34801561073c57600080fd5b5061037f610e5e565b34801561075157600080fd5b5061041f610760366004612222565b610e6d565b34801561077157600080fd5b5061041f610780366004612222565b610ebc565b34801561079157600080fd5b5061033f6107a03660046122ce565b610ec9565b3480156107b157600080fd5b5061033f6107c03660046122fc565b610ef8565b3480156107d157600080fd5b5061035760125481565b3480156107e757600080fd5b5061033f6107f63660046122fc565b610f4d565b34801561080757600080fd5b5061035760045481565b34801561081d57600080fd5b5061035760135481565b34801561083357600080fd5b5061035760055481565b34801561084957600080fd5b5061041f61085836600461228f565b600c6020526000908152604090205460ff1681565b34801561087957600080fd5b5061033f61088836600461224e565b610fcd565b34801561089957600080fd5b5061033f6108a8366004612331565b6110e0565b3480156108b957600080fd5b5061033f6108c836600461234d565b61113c565b3480156108d957600080fd5b506006546103b3906001600160a01b031681565b3480156108f957600080fd5b50610357610908366004612368565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561093f57600080fd5b5061033f61094e3660046122fc565b611188565b34801561095f57600080fd5b5061033f6111dd565b34801561097457600080fd5b5060145461041f906301000000900460ff1681565b34801561099557600080fd5b5061033f6109a436600461234d565b611299565b3480156109b557600080fd5b506015546103b3906001600160a01b031681565b3480156109d557600080fd5b5061033f6109e436600461228f565b6112e3565b3480156109f557600080fd5b5061033f610a0436600461228f565b61137b565b348015610a1557600080fd5b5060145461041f9065010000000000900460ff1681565b6000546001600160a01b03163314610a5f5760405162461bcd60e51b8152600401610a56906123a1565b60405180910390fd5b60125415610aa35760405162461bcd60e51b8152602060048201526011602482015270416c7265616479206c61756e636865642160781b6044820152606401610a56565b43601255426013556014805462ffff00191662010100179055565b606060018054610acd906123d6565b80601f0160208091040260200160405190810160405280929190818152602001828054610af9906123d6565b8015610b465780601f10610b1b57610100808354040283529160200191610b46565b820191906000526020600020905b815481529060010190602001808311610b2957829003601f168201915b5050505050905090565b6000610b5d338484611488565b5060015b92915050565b6000610b748484846115ac565b50610bc78433610bc285604051806060016040528060288152602001612588602891396001600160a01b038a1660009081526009602090815260408083203384529091529020549190611ab2565b611488565b5060015b9392505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600090815260086020526040812054610c6090610c5a610c517f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b031660009081526008602052604090205490565b600e5490611aec565b90611aec565b905090565b3360008181526009602090815260408083206001600160a01b03871684529091528120549091610b5d918590610bc29086611b2e565b6000546001600160a01b03163314610cc55760405162461bcd60e51b8152600401610a56906123a1565b600491909155600555565b6000546001600160a01b03163314610cfa5760405162461bcd60e51b8152600401610a56906123a1565b601480546001600160a01b03909216600160301b026601000000000000600160d01b0319909216919091179055565b6000546001600160a01b03163314610d535760405162461bcd60e51b8152600401610a56906123a1565b600f55565b6000546001600160a01b03163314610d825760405162461bcd60e51b8152600401610a56906123a1565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610dce5760405162461bcd60e51b8152600401610a56906123a1565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610e235760405162461bcd60e51b8152600401610a56906123a1565b610e2d6000611b8d565b565b6000546001600160a01b03163314610e595760405162461bcd60e51b8152600401610a56906123a1565b601055565b606060028054610acd906123d6565b6000610b5d3384610bc2856040518060600160405280602581526020016125b0602591393360009081526009602090815260408083206001600160a01b038d1684529091529020549190611ab2565b6000610bc73384846115ac565b6000546001600160a01b03163314610ef35760405162461bcd60e51b8152600401610a56906123a1565b601155565b6000546001600160a01b03163314610f225760405162461bcd60e51b8152600401610a56906123a1565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f775760405162461bcd60e51b8152600401610a56906123a1565b6001600160a01b0382166000908152600b60205260409020805460ff19168215801591909117909155610fc9576001600160a01b0382166000908152600c60205260409020805460ff19168215151790555b5050565b6000546001600160a01b03163314610ff75760405162461bcd60e51b8152600401610a56906123a1565b6040516001600160a01b038381166024830152604482018390526000919085169060640160408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b179052516110509190612411565b6000604051808303816000865af19150503d806000811461108d576040519150601f19603f3d011682016040523d82523d6000602084013e611092565b606091505b50509050806110da5760405162461bcd60e51b8152602060048201526014602482015273151bdad95b881c185e5b595b9d0819985a5b195960621b6044820152606401610a56565b50505050565b6000546001600160a01b0316331461110a5760405162461bcd60e51b8152600401610a56906123a1565b6014805463ffff00001916620100009315159390930263ff000000191692909217630100000091151591909102179055565b6000546001600160a01b031633146111665760405162461bcd60e51b8152600401610a56906123a1565b60148054911515650100000000000265ff000000000019909216919091179055565b6000546001600160a01b031633146111b25760405162461bcd60e51b8152600401610a56906123a1565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146112075760405162461bcd60e51b8152600401610a56906123a1565b604051600090339047908381818185875af1925050503d8060008114611249576040519150601f19603f3d011682016040523d82523d6000602084013e61124e565b606091505b50509050806112965760405162461bcd60e51b81526020600482015260146024820152735472616e73616374696f6e204661696c6564212160601b6044820152606401610a56565b50565b6000546001600160a01b031633146112c35760405162461bcd60e51b8152600401610a56906123a1565b601480549115156401000000000264ff0000000019909216919091179055565b6000546001600160a01b0316331461130d5760405162461bcd60e51b8152600401610a56906123a1565b6001600160a01b0381166113725760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a56565b61129681611b8d565b6000546001600160a01b031633146113a55760405162461bcd60e51b8152600401610a56906123a1565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b6000826113d657506000610b61565b60006113e28385612443565b9050826113ef8583612462565b14610bcb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a56565b6000610bcb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bdd565b6001600160a01b0383166114ea5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a56565b6001600160a01b03821661154b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a56565b6001600160a01b0383811660008181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166116125760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a56565b6001600160a01b0383166116745760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a56565b600082116116d65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a56565b601554600160a01b900460ff16156116fa576116f3848484611c0b565b9050610bcb565b601454610100900460ff1661178d576001600160a01b0384166000908152600a602052604090205460ff168061174857506001600160a01b0383166000908152600a602052604090205460ff165b61178d5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610a56565b601254158015906117a1575060145460ff16155b156117ae576117ae611cf1565b30600090815260086020526040902054601154811080159081906117dc5750601554600160a01b900460ff16155b801561180157506001600160a01b0386166000908152600b602052604090205460ff16155b8015611815575060145462010000900460ff165b156118235761182382611db0565b6001600160a01b0386166000908152600d602052604090205460ff1615801561186557506001600160a01b0385166000908152600d602052604090205460ff16155b801561187b5750601454640100000000900460ff165b156118e357600f548411156118e35760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610a56565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038916600090815260089091529190912054611935918690611ab2565b6001600160a01b03871660009081526008602052604081209190915561195b8787611e46565b61196f5761196a878787611ee6565b611971565b845b60145490915065010000000000900460ff1680156119a857506001600160a01b0386166000908152600c602052604090205460ff16155b15611a27576010546119d9826119d3896001600160a01b031660009081526008602052604090205490565b90611b2e565b1115611a275760405162461bcd60e51b815260206004820152601b60248201527f4d61782057616c6c6574204c696d6974204578636565646564212100000000006044820152606401610a56565b6001600160a01b038616600090815260086020526040902054611a4a9082611b2e565b6001600160a01b0380881660008181526008602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a9e9085815260200190565b60405180910390a360019350505050610bcb565b60008184841115611ad65760405162461bcd60e51b8152600401610a5691906121da565b506000611ae38486612484565b95945050505050565b6000610bcb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ab2565b600080611b3b838561249b565b905083811015610bcb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a56565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183611bfe5760405162461bcd60e51b8152600401610a5691906121da565b506000611ae38486612462565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611c5c918490611ab2565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611c8b9083611b2e565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cdf9086815260200190565b60405180910390a35060019392505050565b601254611cff90600361249b565b4311611d1057606360048190556005555b601254611d1e90600661249b565b43118015611d395750601254611d3590601461249b565b4311155b15611d4957603260048190556005555b601254611d5790601461249b565b43118015611d725750601254611d6e90606461249b565b4311155b15611d8257601960048190556005555b601254611d9090606461249b565b431115610e2d57600360048190556005556014805460ff19166001179055565b6015805460ff60a01b1916600160a01b1790556014546301000000900460ff1615611dda57506011545b47611de482611ff4565b6000611df04783611aec565b90508015611e34576006546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611e32573d6000803e3d6000fd5b505b50506015805460ff60a01b1916905550565b6001600160a01b0382166000908152600a602052604081205460ff1680611e8557506001600160a01b0382166000908152600a602052604090205460ff165b15611e9257506001610b61565b6001600160a01b0383166000908152600b602052604090205460ff1680611ed157506001600160a01b0382166000908152600b602052604090205460ff165b15611ede57506000610b61565b506000610b61565b6001600160a01b0383166000908152600b6020526040812054819060ff1615611f3157611f2a600754611f24600454866113c790919063ffffffff16565b90611446565b9050611f70565b6001600160a01b0384166000908152600b602052604090205460ff1615611f7057611f6d600754611f24600554866113c790919063ffffffff16565b90505b8015611fea5730600090815260086020526040902054611f909082611b2e565b30600081815260086020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611fe19085815260200190565b60405180910390a35b611ae38382611aec565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612029576120296124b3565b60200260200101906001600160a01b031690816001600160a01b031681525050601460069054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561209c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c091906124c9565b816001815181106120d3576120d36124b3565b6001600160a01b039283166020918202929092010152601454612100913091600160301b90041684611488565b60145460405163791ac94760e01b8152600160301b9091046001600160a01b03169063791ac9479061213f90859060009086903090429060040161252a565b600060405180830381600087803b15801561215957600080fd5b505af115801561216d573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516121a2929190612566565b60405180910390a15050565b60005b838110156121c95781810151838201526020016121b1565b838111156110da5750506000910152565b60208152600082518060208401526121f98160408501602087016121ae565b601f01601f19169190910160400192915050565b6001600160a01b038116811461129657600080fd5b6000806040838503121561223557600080fd5b82356122408161220d565b946020939093013593505050565b60008060006060848603121561226357600080fd5b833561226e8161220d565b9250602084013561227e8161220d565b929592945050506040919091013590565b6000602082840312156122a157600080fd5b8135610bcb8161220d565b600080604083850312156122bf57600080fd5b50508035926020909101359150565b6000602082840312156122e057600080fd5b5035919050565b803580151581146122f757600080fd5b919050565b6000806040838503121561230f57600080fd5b823561231a8161220d565b9150612328602084016122e7565b90509250929050565b6000806040838503121561234457600080fd5b61231a836122e7565b60006020828403121561235f57600080fd5b610bcb826122e7565b6000806040838503121561237b57600080fd5b82356123868161220d565b915060208301356123968161220d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c908216806123ea57607f821691505b6020821081141561240b57634e487b7160e01b600052602260045260246000fd5b50919050565b600082516124238184602087016121ae565b9190910192915050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561245d5761245d61242d565b500290565b60008261247f57634e487b7160e01b600052601260045260246000fd5b500490565b6000828210156124965761249661242d565b500390565b600082198211156124ae576124ae61242d565b500190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156124db57600080fd5b8151610bcb8161220d565b600081518084526020808501945080840160005b8381101561251f5781516001600160a01b0316875295820195908201906001016124fa565b509495945050505050565b85815284602082015260a06040820152600061254960a08301866124e6565b6001600160a01b0394909416606083015250608001529392505050565b82815260406020820152600061257f60408301846124e6565b94935050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220cf574a1d25762511c45e1ff5fd8264fcc4b9c3a1f1404d05adc03401babef1d064736f6c634300080a0033

Deployed Bytecode Sourcemap

7077:13257:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16029:243;;;;;;;;;;;;;:::i;:::-;;8255:54;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8255:54:0;;;;;;;;10302:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;8611:31::-;;;;;;;;;;-1:-1:-1;8611:31:0;;;;-1:-1:-1;;;8611:31:0;;-1:-1:-1;;;;;8611:31:0;;;;;;-1:-1:-1;;;;;1033:32:1;;;1015:51;;1003:2;988:18;8611:31:0;847:225:1;7381:81:0;;;;;;;;;;;;;;;11640:161;;;;;;;;;;-1:-1:-1;11640:161:0;;;;;:::i;:::-;;:::i;:::-;;;1906:14:1;;1899:22;1881:41;;1869:2;1854:18;11640:161:0;1741:187:1;8391:26:0;;;;;;;;;;-1:-1:-1;8391:26:0;;;;;;;;10579:100;;;;;;;;;;-1:-1:-1;10659:12:0;;10579:100;;12414:313;;;;;;;;;;-1:-1:-1;12414:313:0;;;;;:::i;:::-;;:::i;7293:81::-;;;;;;;;;;;;;;;10973:156;;;;;;;;;;;;;:::i;10488:83::-;;;;;;;;;;-1:-1:-1;10554:9:0;;10488:83;;10554:9;;;;2536:36:1;;2524:2;2509:18;10488:83:0;2394:184:1;11137:218:0;;;;;;;;;;-1:-1:-1;11137:218:0;;;;;:::i;:::-;;:::i;7866:45::-;;;;;;;;;;-1:-1:-1;7866:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18483:152;;;;;;;;;;-1:-1:-1;18483:152:0;;;;;:::i;:::-;;:::i;7809:50::-;;;;;;;;;;-1:-1:-1;7809:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;20113:115;;;;;;;;;;-1:-1:-1;20113:115:0;;;;;:::i;:::-;;:::i;19374:101::-;;;;;;;;;;-1:-1:-1;19374:101:0;;;;;:::i;:::-;;:::i;19487:108::-;;;;;;;;;;-1:-1:-1;19487:108:0;;;;;:::i;:::-;;:::i;8528:32::-;;;;;;;;;;-1:-1:-1;8528:32:0;;;;;;;;;;;18996:128;;;;;;;;;;-1:-1:-1;18996:128:0;;;;;:::i;:::-;;:::i;8453:30::-;;;;;;;;;;-1:-1:-1;8453:30:0;;;;;;;;;;;10687:123;;;;;;;;;;-1:-1:-1;10687:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;10779:18:0;10753:7;10779:18;;;:9;:18;;;;;;;10687:123;1837:94;;;;;;;;;;;;;:::i;19260:106::-;;;;;;;;;;-1:-1:-1;19260:106:0;;;;;:::i;:::-;;:::i;8101:59::-;;;;;;;;;;;;;;;;8177:56;;;;;;;;;;;;;;;;7977:48;;;;;;;;;;-1:-1:-1;7977:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;1528:87;;;;;;;;;;-1:-1:-1;1574:7:0;1601:6;-1:-1:-1;;;;;1601:6:0;1528:87;;10393;;;;;;;;;;;;;:::i;11363:269::-;;;;;;;;;;-1:-1:-1;11363:269:0;;;;;:::i;:::-;;:::i;12239:167::-;;;;;;;;;;-1:-1:-1;12239:167:0;;;;;:::i;:::-;;:::i;19998:107::-;;;;;;;;;;-1:-1:-1;19998:107:0;;;;;:::i;:::-;;:::i;19132:120::-;;;;;;;;;;-1:-1:-1;19132:120:0;;;;;:::i;:::-;;:::i;8318:25::-;;;;;;;;;;;;;;;;19603:204;;;;;;;;;;-1:-1:-1;19603:204:0;;;;;:::i;:::-;;:::i;7471:35::-;;;;;;;;;;;;;;;;8350:34;;;;;;;;;;;;;;;;7513:36;;;;;;;;;;;;;;;;7918:52;;;;;;;;;;-1:-1:-1;7918:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18203:272;;;;;;;;;;-1:-1:-1;18203:272:0;;;;;:::i;:::-;;:::i;19815:175::-;;;;;;;;;;-1:-1:-1;19815:175:0;;;;;:::i;:::-;;:::i;18749:109::-;;;;;;;;;;-1:-1:-1;18749:109:0;;;;;:::i;:::-;;:::i;7558:78::-;;;;;;;;;;-1:-1:-1;7558:78:0;;;;-1:-1:-1;;;;;7558:78:0;;;10818:143;;;;;;;;;;-1:-1:-1;10818:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;10926:18:0;;;10899:7;10926:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10818:143;18866:122;;;;;;;;;;-1:-1:-1;18866:122:0;;;;;:::i;:::-;;:::i;18017:178::-;;;;;;;;;;;;;:::i;8490:31::-;;;;;;;;;;-1:-1:-1;8490:31:0;;;;;;;;;;;18643:98;;;;;;;;;;-1:-1:-1;18643:98:0;;;;;:::i;:::-;;:::i;8649:22::-;;;;;;;;;;-1:-1:-1;8649:22:0;;;;-1:-1:-1;;;;;8649:22:0;;;1939:229;;;;;;;;;;-1:-1:-1;1939:229:0;;;;;:::i;:::-;;:::i;20236:91::-;;;;;;;;;;-1:-1:-1;20236:91:0;;;;;:::i;:::-;;:::i;8567:35::-;;;;;;;;;;-1:-1:-1;8567:35:0;;;;;;;;;;;16029:243;1574:7;1601:6;-1:-1:-1;;;;;1601:6:0;175:10;1749:23;1741:68;;;;-1:-1:-1;;;1741:68:0;;;;;;;:::i;:::-;;;;;;;;;16083:10:::1;::::0;:15;16075:45:::1;;;::::0;-1:-1:-1;;;16075:45:0;;5152:2:1;16075:45:0::1;::::0;::::1;5134:21:1::0;5191:2;5171:18;;;5164:30;-1:-1:-1;;;5210:18:1;;;5203:47;5267:18;;16075:45:0::1;4950:341:1::0;16075:45:0::1;16144:12;16131:10;:25:::0;16189:15:::1;16167:19;:37:::0;16215:13:::1;:20:::0;;-1:-1:-1;;16246:18:0;;;;;16029:243::o;10302:83::-;10339:13;10372:5;10365:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10302:83;:::o;11640:161::-;11715:4;11732:39;175:10;11755:7;11764:6;11732:8;:39::i;:::-;-1:-1:-1;11789:4:0;11640:161;;;;;:::o;12414:313::-;12512:4;12529:36;12539:6;12547:9;12558:6;12529:9;:36::i;:::-;-1:-1:-1;12576:121:0;12585:6;175:10;12607:89;12645:6;12607:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12607:19:0;;;;;;:11;:19;;;;;;;;175:10;12607:33;;;;;;;;;;:37;:89::i;:::-;12576:8;:121::i;:::-;-1:-1:-1;12715:4:0;12414:313;;;;;;:::o;10973:156::-;-1:-1:-1;;;;;11108:11:0;10779:18;11026:7;10779:18;;;:9;:18;;;;;;11053:68;;:40;11070:22;11080:11;-1:-1:-1;;;;;10779:18:0;10753:7;10779:18;;;:9;:18;;;;;;;10687:123;11070:22;11053:12;;;:16;:40::i;:::-;:44;;:68::i;:::-;11046:75;;10973:156;:::o;11137:218::-;175:10;11225:4;11274:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11274:34:0;;;;;;;;;;11225:4;;11242:83;;11265:7;;11274:50;;11313:10;11274:38;:50::i;18483:152::-;1574:7;1601:6;-1:-1:-1;;;;;1601:6:0;175:10;1749:23;1741:68;;;;-1:-1:-1;;;1741:68:0;;;;;;;:::i;:::-;18562:16:::1;:26:::0;;;;18599:17:::1;:28:::0;18483:152::o;20113:115::-;1574:7;1601:6;-1:-1:-1;;;;;1601:6:0;175:10;1749:23;1741:68;;;;-1:-1:-1;;;1741:68:0;;;;;;;:::i;:::-;20185:9:::1;:35:::0;;-1:-1:-1;;;;;20185:35:0;;::::1;-1:-1:-1::0;;;20185:35:0::1;-1:-1:-1::0;;;;;;20185:35:0;;::::1;::::0;;;::::1;::::0;;20113:115::o;19374:101::-;1574:7;1601:6;-1:-1:-1;;;;;1601:6:0;175:10;1749:23;1741:68;;;;-1:-1:-1;;;1741:68:0;;;;;;;:::i;:::-;19444:12:::1;:23:::0;19374:101::o;19487:108::-;1574:7;1601:6;-1:-1:-1;;;;;1601:6:0;175:10;1749:23;1741:68;;;;-1:-1:-1;;;1741:68:0;;;;;;;:::i;:::-;19565:9:::1;:22:::0;;-1:-1:-1;;;;;;19565:22:0::1;-1:-1:-1::0;;;;;19565:22:0;;;::::1;::::0;;;::::1;::::0;;19487:108::o;18996:128::-;1574:7;1601:6;-1:-1:-1;;;;;1601:6:0;175:10;1749:23;1741:68;;;;-1:-1:-1;;;1741:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19081:25:0;;;::::1;;::::0;;;:19:::1;:25;::::0;;;;:35;;-1:-1:-1;;19081:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18996:128::o;1837:94::-;1574:7;1601:6;-1:-1:-1;;;;;1601:6:0;175:10;1749:23;1741:68;;;;-1:-1:-1;;;1741:68:0;;;;;;;:::i;:::-;1902:21:::1;1920:1;1902:9;:21::i;:::-;1837:94::o:0;19260:106::-;1574:7;1601:6;-1:-1:-1;;;;;1601:6:0;175:10;1749:23;1741:68;;;;-1:-1:-1;;;1741:68:0;;;;;;;:::i;:::-;19337:10:::1;:21:::0;19260:106::o;10393:87::-;10432:13;10465:7;10458:14;;;;;:::i;11363:269::-;11456:4;11473:129;175:10;11496:7;11505:96;11544:15;11505:96;;;;;;;;;;;;;;;;;175:10;11505:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11505:34:0;;;;;;;;;;;;:38;:96::i;12239:167::-;12317:4;12334:42;175:10;12358:9;12369:6;12334:9;:42::i;19998:107::-;1574:7;1601:6;-1:-1:-1;;;;;1601:6:0;175:10;1749:23;1741:68;;;;-1:-1:-1;;;1741:68:0;;;;;;;:::i;:::-;20071:13:::1;:26:::0;19998:107::o;19132:120::-;1574:7;1601:6;-1:-1:-1;;;;;1601:6:0;175:10;1749:23;1741:68;;;;-1:-1:-1;;;1741:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19213:21:0;;;::::1;;::::0;;;:15:::1;:21;::::0;;;;:31;;-1:-1:-1;;19213:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19132:120::o;19603:204::-;1574:7;1601:6;-1:-1:-1;;;;;1601:6:0;175:10;1749:23;1741:68;;;;-1:-1:-1;;;1741:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19685:19:0;::::1;;::::0;;;:12:::1;:19;::::0;;;;:29;;-1:-1:-1;;19685:29:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;19725:75:::1;;-1:-1:-1::0;;;;;19752:26:0;::::1;;::::0;;;:19:::1;:26;::::0;;;;:36;;-1:-1:-1;;19752:36:0::1;::::0;::::1;;;::::0;;19725:75:::1;19603:204:::0;;:::o;18203:272::-;1574:7;1601:6;-1:-1:-1;;;;;1601:6:0;175:10;1749:23;1741:68;;;;-1:-1:-1;;;1741:68:0;;;;;;;:::i;:::-;18342:73:::1;::::0;-1:-1:-1;;;;;5873:32:1;;;18342:73:0::1;::::0;::::1;5855:51:1::0;5922:18;;;5915:34;;;18303:12:0::1;::::0;18321:20;;::::1;::::0;5828:18:1;;18342:73:0::1;::::0;;-1:-1:-1;;18342:73:0;;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;18342:73:0::1;-1:-1:-1::0;;;18342:73:0::1;::::0;;18321:95;::::1;::::0;18342:73;18321:95:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18302:114;;;18435:7;18427:40;;;::::0;-1:-1:-1;;;18427:40:0;;6441:2:1;18427:40:0::1;::::0;::::1;6423:21:1::0;6480:2;6460:18;;;6453:30;-1:-1:-1;;;6499:18:1;;;6492:50;6559:18;;18427:40:0::1;6239:344:1::0;18427:40:0::1;18291:184;18203:272:::0;;;:::o;19815:175::-;1574:7;1601:6;-1:-1:-1;;;;;1601:6:0;175:10;1749:23;1741:68;;;;-1:-1:-1;;;1741:68:0;;;;;;;:::i;:::-;19927:11:::1;:22:::0;;-1:-1:-1;;19960:22:0;19927;;::::1;;::::0;;;::::1;-1:-1:-1::0;;19960:22:0;;;;;;;::::1;;::::0;;;::::1;;::::0;;19815:175::o;18749:109::-;1574:7;1601:6;-1:-1:-1;;;;;1601:6:0;175:10;1749:23;1741:68;;;;-1:-1:-1;;;1741:68:0;;;;;;;:::i;:::-;18824:16:::1;:26:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;18824:26:0;;::::1;::::0;;;::::1;::::0;;18749:109::o;18866:122::-;1574:7;1601:6;-1:-1:-1;;;;;1601:6:0;175:10;1749:23;1741:68;;;;-1:-1:-1;;;1741:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18947:23:0;;;::::1;;::::0;;;:17:::1;:23;::::0;;;;:33;;-1:-1:-1;;18947:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18866:122::o;18017:178::-;1574:7;1601:6;-1:-1:-1;;;;;1601:6:0;175:10;1749:23;1741:68;;;;-1:-1:-1;;;1741:68:0;;;;;;;:::i;:::-;18084:58:::1;::::0;18072:7:::1;::::0;18092:10:::1;::::0;18116:21:::1;::::0;18072:7;18084:58;18072:7;18084:58;18116:21;18092:10;18084:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18071:71;;;18161:2;18153:34;;;::::0;-1:-1:-1;;;18153:34:0;;7000:2:1;18153:34:0::1;::::0;::::1;6982:21:1::0;7039:2;7019:18;;;7012:30;-1:-1:-1;;;7058:18:1;;;7051:50;7118:18;;18153:34:0::1;6798:344:1::0;18153:34:0::1;18059:136;18017:178::o:0;18643:98::-;1574:7;1601:6;-1:-1:-1;;;;;1601:6:0;175:10;1749:23;1741:68;;;;-1:-1:-1;;;1741:68:0;;;;;;;:::i;:::-;18710:13:::1;:23:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;18710:23:0;;::::1;::::0;;;::::1;::::0;;18643:98::o;1939:229::-;1574:7;1601:6;-1:-1:-1;;;;;1601:6:0;175:10;1749:23;1741:68;;;;-1:-1:-1;;;1741:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2042:22:0;::::1;2020:110;;;::::0;-1:-1:-1;;;2020:110:0;;7349:2:1;2020:110:0::1;::::0;::::1;7331:21:1::0;7388:2;7368:18;;;7361:30;7427:34;7407:18;;;7400:62;-1:-1:-1;;;7478:18:1;;;7471:36;7524:19;;2020:110:0::1;7147:402:1::0;2020:110:0::1;2141:19;2151:8;2141:9;:19::i;20236:91::-:0;1574:7;1601:6;-1:-1:-1;;;;;1601:6:0;175:10;1749:23;1741:68;;;;-1:-1:-1;;;1741:68:0;;;;;;;:::i;:::-;20304:7:::1;:15:::0;;-1:-1:-1;;;;;;20304:15:0::1;-1:-1:-1::0;;;;;20304:15:0;;;::::1;::::0;;;::::1;::::0;;20236:91::o;2915:250::-;2973:7;2997:6;2993:47;;-1:-1:-1;3027:1:0;3020:8;;2993:47;3052:9;3064:5;3068:1;3064;:5;:::i;:::-;3052:17;-1:-1:-1;3097:1:0;3088:5;3092:1;3052:17;3088:5;:::i;:::-;:10;3080:56;;;;-1:-1:-1;;;3080:56:0;;8283:2:1;3080:56:0;;;8265:21:1;8322:2;8302:18;;;8295:30;8361:34;8341:18;;;8334:62;-1:-1:-1;;;8412:18:1;;;8405:31;8453:19;;3080:56:0;8081:397:1;3173:132:0;3231:7;3258:39;3262:1;3265;3258:39;;;;;;;;;;;;;;;;;:3;:39::i;11809:337::-;-1:-1:-1;;;;;11902:19:0;;11894:68;;;;-1:-1:-1;;;11894:68:0;;8685:2:1;11894:68:0;;;8667:21:1;8724:2;8704:18;;;8697:30;8763:34;8743:18;;;8736:62;-1:-1:-1;;;8814:18:1;;;8807:34;8858:19;;11894:68:0;8483:400:1;11894:68:0;-1:-1:-1;;;;;11981:21:0;;11973:68;;;;-1:-1:-1;;;11973:68:0;;9090:2:1;11973:68:0;;;9072:21:1;9129:2;9109:18;;;9102:30;9168:34;9148:18;;;9141:62;-1:-1:-1;;;9219:18:1;;;9212:32;9261:19;;11973:68:0;8888:398:1;11973:68:0;-1:-1:-1;;;;;12054:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12106:32;;160:25:1;;;12106:32:0;;133:18:1;12106:32:0;;;;;;;11809:337;;;:::o;12735:1849::-;12822:4;-1:-1:-1;;;;;12849:20:0;;12841:70;;;;-1:-1:-1;;;12841:70:0;;9493:2:1;12841:70:0;;;9475:21:1;9532:2;9512:18;;;9505:30;9571:34;9551:18;;;9544:62;-1:-1:-1;;;9622:18:1;;;9615:35;9667:19;;12841:70:0;9291:401:1;12841:70:0;-1:-1:-1;;;;;12930:23:0;;12922:71;;;;-1:-1:-1;;;12922:71:0;;9899:2:1;12922:71:0;;;9881:21:1;9938:2;9918:18;;;9911:30;9977:34;9957:18;;;9950:62;-1:-1:-1;;;10028:18:1;;;10021:33;10071:19;;12922:71:0;9697:399:1;12922:71:0;13021:1;13012:6;:10;13004:64;;;;-1:-1:-1;;;13004:64:0;;10303:2:1;13004:64:0;;;10285:21:1;10342:2;10322:18;;;10315:30;10381:34;10361:18;;;10354:62;-1:-1:-1;;;10432:18:1;;;10425:39;10481:19;;13004:64:0;10101:405:1;13004:64:0;13089:6;;-1:-1:-1;;;13089:6:0;;;;13085:1490;;;13119:41;13134:6;13142:9;13153:6;13119:14;:41::i;:::-;13112:48;;;;13085:1490;13209:13;;;;;;;13204:146;;-1:-1:-1;;;;;13251:25:0;;;;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;13280:28:0;;;;;;:17;:28;;;;;;;;13251:57;13243:91;;;;-1:-1:-1;;;13243:91:0;;10713:2:1;13243:91:0;;;10695:21:1;10752:2;10732:18;;;10725:30;-1:-1:-1;;;10771:18:1;;;10764:52;10833:18;;13243:91:0;10511:346:1;13243:91:0;13370:10;;:15;;;;:34;;-1:-1:-1;13390:14:0;;;;13389:15;13370:34;13366:93;;;13425:18;:16;:18::i;:::-;13524:4;13475:28;10779:18;;;:9;:18;;;;;;13600:13;;13576:37;;;;;;;13634:34;;-1:-1:-1;13662:6:0;;-1:-1:-1;;;13662:6:0;;;;13661:7;13634:34;:59;;;;-1:-1:-1;;;;;;13673:20:0;;;;;;:12;:20;;;;;;;;13672:21;13634:59;:74;;;;-1:-1:-1;13697:11:0;;;;;;;13634:74;13630:145;;;13729:30;13738:20;13729:8;:30::i;:::-;-1:-1:-1;;;;;13795:23:0;;;;;;:15;:23;;;;;;;;13794:24;:55;;;;-1:-1:-1;;;;;;13823:26:0;;;;;;:15;:26;;;;;;;;13822:27;13794:55;:72;;;;-1:-1:-1;13853:13:0;;;;;;;13794:72;13791:187;;;13905:12;;13895:6;:22;;13887:75;;;;-1:-1:-1;;;13887:75:0;;11064:2:1;13887:75:0;;;11046:21:1;11103:2;11083:18;;;11076:30;11142:34;11122:18;;;11115:62;-1:-1:-1;;;11193:18:1;;;11186:38;11241:19;;13887:75:0;10862:404:1;13887:75:0;14027:53;;;;;;;;;;;-1:-1:-1;;;14027:53:0;;;;;;;;-1:-1:-1;;;;;14027:17:0;;-1:-1:-1;14027:17:0;;;:9;:17;;;;;;;;:53;;14049:6;;14027:21;:53::i;:::-;-1:-1:-1;;;;;14007:17:0;;;;;;:9;:17;;;;;:73;;;;14119:34;14017:6;14143:9;14119:16;:34::i;:::-;:80;;14165:34;14173:6;14181:9;14192:6;14165:7;:34::i;:::-;14119:80;;;14156:6;14119:80;14219:16;;14097:102;;-1:-1:-1;14219:16:0;;;;;:51;;;;-1:-1:-1;;;;;;14240:30:0;;;;;;:19;:30;;;;;;;;14239:31;14219:51;14216:181;;;14340:10;;14299:37;14324:11;14299:20;14309:9;-1:-1:-1;;;;;10779:18:0;10753:7;10779:18;;;:9;:18;;;;;;;10687:123;14299:20;:24;;:37::i;:::-;:51;;14291:90;;;;-1:-1:-1;;;14291:90:0;;11473:2:1;14291:90:0;;;11455:21:1;11512:2;11492:18;;;11485:30;11551:29;11531:18;;;11524:57;11598:18;;14291:90:0;11271:351:1;14291:90:0;-1:-1:-1;;;;;14436:20:0;;;;;;:9;:20;;;;;;:37;;14461:11;14436:24;:37::i;:::-;-1:-1:-1;;;;;14413:20:0;;;;;;;:9;:20;;;;;;;:60;;;;14495:40;;;;;;;;;;14523:11;160:25:1;;148:2;133:18;;14:177;14495:40:0;;;;;;;;14557:4;14550:11;;;;;;;2715:192;2801:7;2837:12;2829:6;;;;2821:29;;;;-1:-1:-1;;;2821:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2861:9:0;2873:5;2877:1;2873;:5;:::i;:::-;2861:17;2715:192;-1:-1:-1;;;;;2715:192:0:o;2571:136::-;2629:7;2656:43;2660:1;2663;2656:43;;;;;;;;;;;;;;;;;:3;:43::i;2382:181::-;2440:7;;2472:5;2476:1;2472;:5;:::i;:::-;2460:17;;2501:1;2496;:6;;2488:46;;;;-1:-1:-1;;;2488:46:0;;12092:2:1;2488:46:0;;;12074:21:1;12131:2;12111:18;;;12104:30;12170:29;12150:18;;;12143:57;12217:18;;2488:46:0;11890:351:1;2176:173:0;2232:16;2251:6;;-1:-1:-1;;;;;2268:17:0;;;-1:-1:-1;;;;;;2268:17:0;;;;;;2301:40;;2251:6;;;;;;;2301:40;;2232:16;2301:40;2221:128;2176:173;:::o;3313:278::-;3399:7;3434:12;3427:5;3419:28;;;;-1:-1:-1;;;3419:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3458:9:0;3470:5;3474:1;3470;:5;:::i;14592:330::-;14722:53;;;;;;;;;;;-1:-1:-1;;;14722:53:0;;;;;;;;-1:-1:-1;;;;;14722:17:0;;14685:4;14722:17;;;:9;:17;;;;;;;:53;;14744:6;;14722:21;:53::i;:::-;-1:-1:-1;;;;;14702:17:0;;;;;;;:9;:17;;;;;;:73;;;;14809:20;;;;;;;:32;;14834:6;14809:24;:32::i;:::-;-1:-1:-1;;;;;14786:20:0;;;;;;;:9;:20;;;;;;;:55;;;;14857:35;;;;;;;;;;14885:6;160:25:1;;148:2;133:18;;14:177;14857:35:0;;;;;;;;-1:-1:-1;14910:4:0;14592:330;;;;;:::o;16280:536::-;16348:10;;:14;;16361:1;16348:14;:::i;:::-;16332:12;:30;16328:83;;16393:2;18562:16:::1;:26:::0;;;18599:17:::1;:28:::0;16379:20;16440:10;;:14;;16453:1;16440:14;:::i;:::-;16425:12;:29;:64;;;;-1:-1:-1;16474:10:0;;:15;;16487:2;16474:15;:::i;:::-;16458:12;:31;;16425:64;16421:117;;;16520:2;18562:16:::1;:26:::0;;;18599:17:::1;:28:::0;16506:20;16567:10;;:15;;16580:2;16567:15;:::i;:::-;16552:12;:30;:66;;;;-1:-1:-1;16602:10:0;;:16;;16615:3;16602:16;:::i;:::-;16586:12;:32;;16552:66;16548:119;;;16649:2;18562:16:::1;:26:::0;;;18599:17:::1;:28:::0;16635:20;16696:10;;:16;;16709:3;16696:16;:::i;:::-;16681:12;:31;16677:118;;;16743:1;18562:16:::1;:26:::0;;;18599:17:::1;:28:::0;16762:14;:21;;-1:-1:-1;;16762:21:0;16779:4;16762:21;;;16280:536::o;16967:386::-;8731:6;:13;;-1:-1:-1;;;;8731:13:0;-1:-1:-1;;;8731:13:0;;;:6;17041:11;;;::::1;8731:13:::0;17041:11:::1;17038:47;;;-1:-1:-1::0;17072:13:0::1;::::0;17038:47:::1;17123:21;17155:33;17172:15:::0;17155:16:::1;:33::i;:::-;17199:22;17224:41;:21;17250:14:::0;17224:25:::1;:41::i;:::-;17199:66:::0;-1:-1:-1;17280:18:0;;17277:66:::1;;17308:9;::::0;17300:43:::1;::::0;-1:-1:-1;;;;;17308:9:0;;::::1;::::0;17300:43;::::1;;;::::0;17328:14;;17308:9:::1;17300:43:::0;17308:9;17300:43;17328:14;17308:9;17300:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17277:66;-1:-1:-1::0;;8767:6:0;:14;;-1:-1:-1;;;;8767:14:0;;;-1:-1:-1;16967:386:0:o;14934:369::-;-1:-1:-1;;;;;15038:25:0;;15018:4;15038:25;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;15067:28:0;;;;;;:17;:28;;;;;;;;15038:57;15035:261;;;-1:-1:-1;15119:4:0;15112:11;;15035:261;-1:-1:-1;;;;;15154:20:0;;;;;;:12;:20;;;;;;;;;:47;;-1:-1:-1;;;;;;15178:23:0;;;;;;:12;:23;;;;;;;;15154:47;15150:146;;;-1:-1:-1;15225:5:0;15218:12;;15150:146;-1:-1:-1;15279:5:0;15272:12;;15311:710;-1:-1:-1;;;;;15484:20:0;;15397:7;15484:20;;;:12;:20;;;;;;15397:7;;15484:20;;15481:266;;;15538:48;15571:14;;15538:28;15549:16;;15538:6;:10;;:28;;;;:::i;:::-;:32;;:48::i;:::-;15526:60;;15481:266;;;-1:-1:-1;;;;;15625:23:0;;;;;;:12;:23;;;;;;;;15622:125;;;15682:49;15716:14;;15682:29;15693:17;;15682:6;:10;;:29;;;;:::i;:49::-;15670:61;;15622:125;15766:13;;15763:185;;15845:4;15827:24;;;;:9;:24;;;;;;:39;;15856:9;15827:28;:39::i;:::-;15818:4;15800:24;;;;:9;:24;;;;;;;:66;;;;15890:42;;-1:-1:-1;;;;;15890:42:0;;;;;;;15922:9;160:25:1;;148:2;133:18;;14:177;15890:42:0;;;;;;;;15763:185;15971:21;:6;15982:9;15971:10;:21::i;17361:648::-;17511:16;;;17525:1;17511:16;;;;;;;;17487:21;;17511:16;;;;;;;;;;-1:-1:-1;17511:16:0;17487:40;;17556:4;17538;17543:1;17538:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;17538:23:0;;;-1:-1:-1;;;;;17538:23:0;;;;;17582:9;;;;;;;;;-1:-1:-1;;;;;17582:9:0;-1:-1:-1;;;;;17582:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17572:4;17577:1;17572:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17572:26:0;;;:7;;;;;;;;;:26;17643:9;;17611:56;;17628:4;;-1:-1:-1;;;17643:9:0;;;17655:11;17611:8;:56::i;:::-;17706:9;;:234;;-1:-1:-1;;;17706:234:0;;-1:-1:-1;;;17706:9:0;;;-1:-1:-1;;;;;17706:9:0;;:60;;:234;;17781:11;;17807:1;;17851:4;;17878;;17914:15;;17706:234;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17966:35;17983:11;17996:4;17966:35;;;;;;;:::i;:::-;;;;;;;;17416:593;17361:648;:::o;196:258:1:-;268:1;278:113;292:6;289:1;286:13;278:113;;;368:11;;;362:18;349:11;;;342:39;314:2;307:10;278:113;;;409:6;406:1;403:13;400:48;;;-1:-1:-1;;444:1:1;426:16;;419:27;196:258::o;459:383::-;608:2;597:9;590:21;571:4;640:6;634:13;683:6;678:2;667:9;663:18;656:34;699:66;758:6;753:2;742:9;738:18;733:2;725:6;721:15;699:66;:::i;:::-;826:2;805:15;-1:-1:-1;;801:29:1;786:45;;;;833:2;782:54;;459:383;-1:-1:-1;;459:383:1:o;1285:131::-;-1:-1:-1;;;;;1360:31:1;;1350:42;;1340:70;;1406:1;1403;1396:12;1421:315;1489:6;1497;1550:2;1538:9;1529:7;1525:23;1521:32;1518:52;;;1566:1;1563;1556:12;1518:52;1605:9;1592:23;1624:31;1649:5;1624:31;:::i;:::-;1674:5;1726:2;1711:18;;;;1698:32;;-1:-1:-1;;;1421:315:1:o;1933:456::-;2010:6;2018;2026;2079:2;2067:9;2058:7;2054:23;2050:32;2047:52;;;2095:1;2092;2085:12;2047:52;2134:9;2121:23;2153:31;2178:5;2153:31;:::i;:::-;2203:5;-1:-1:-1;2260:2:1;2245:18;;2232:32;2273:33;2232:32;2273:33;:::i;:::-;1933:456;;2325:7;;-1:-1:-1;;;2379:2:1;2364:18;;;;2351:32;;1933:456::o;2583:247::-;2642:6;2695:2;2683:9;2674:7;2670:23;2666:32;2663:52;;;2711:1;2708;2701:12;2663:52;2750:9;2737:23;2769:31;2794:5;2769:31;:::i;2835:248::-;2903:6;2911;2964:2;2952:9;2943:7;2939:23;2935:32;2932:52;;;2980:1;2977;2970:12;2932:52;-1:-1:-1;;3003:23:1;;;3073:2;3058:18;;;3045:32;;-1:-1:-1;2835:248:1:o;3088:180::-;3147:6;3200:2;3188:9;3179:7;3175:23;3171:32;3168:52;;;3216:1;3213;3206:12;3168:52;-1:-1:-1;3239:23:1;;3088:180;-1:-1:-1;3088:180:1:o;3273:160::-;3338:20;;3394:13;;3387:21;3377:32;;3367:60;;3423:1;3420;3413:12;3367:60;3273:160;;;:::o;3438:315::-;3503:6;3511;3564:2;3552:9;3543:7;3539:23;3535:32;3532:52;;;3580:1;3577;3570:12;3532:52;3619:9;3606:23;3638:31;3663:5;3638:31;:::i;:::-;3688:5;-1:-1:-1;3712:35:1;3743:2;3728:18;;3712:35;:::i;:::-;3702:45;;3438:315;;;;;:::o;3758:248::-;3820:6;3828;3881:2;3869:9;3860:7;3856:23;3852:32;3849:52;;;3897:1;3894;3887:12;3849:52;3920:26;3936:9;3920:26;:::i;4011:180::-;4067:6;4120:2;4108:9;4099:7;4095:23;4091:32;4088:52;;;4136:1;4133;4126:12;4088:52;4159:26;4175:9;4159:26;:::i;4196:388::-;4264:6;4272;4325:2;4313:9;4304:7;4300:23;4296:32;4293:52;;;4341:1;4338;4331:12;4293:52;4380:9;4367:23;4399:31;4424:5;4399:31;:::i;:::-;4449:5;-1:-1:-1;4506:2:1;4491:18;;4478:32;4519:33;4478:32;4519:33;:::i;:::-;4571:7;4561:17;;;4196:388;;;;;:::o;4589:356::-;4791:2;4773:21;;;4810:18;;;4803:30;4869:34;4864:2;4849:18;;4842:62;4936:2;4921:18;;4589:356::o;5296:380::-;5375:1;5371:12;;;;5418;;;5439:61;;5493:4;5485:6;5481:17;5471:27;;5439:61;5546:2;5538:6;5535:14;5515:18;5512:38;5509:161;;;5592:10;5587:3;5583:20;5580:1;5573:31;5627:4;5624:1;5617:15;5655:4;5652:1;5645:15;5509:161;;5296:380;;;:::o;5960:274::-;6089:3;6127:6;6121:13;6143:53;6189:6;6184:3;6177:4;6169:6;6165:17;6143:53;:::i;:::-;6212:16;;;;;5960:274;-1:-1:-1;;5960:274:1:o;7554:127::-;7615:10;7610:3;7606:20;7603:1;7596:31;7646:4;7643:1;7636:15;7670:4;7667:1;7660:15;7686:168;7726:7;7792:1;7788;7784:6;7780:14;7777:1;7774:21;7769:1;7762:9;7755:17;7751:45;7748:71;;;7799:18;;:::i;:::-;-1:-1:-1;7839:9:1;;7686:168::o;7859:217::-;7899:1;7925;7915:132;;7969:10;7964:3;7960:20;7957:1;7950:31;8004:4;8001:1;7994:15;8032:4;8029:1;8022:15;7915:132;-1:-1:-1;8061:9:1;;7859:217::o;11627:125::-;11667:4;11695:1;11692;11689:8;11686:34;;;11700:18;;:::i;:::-;-1:-1:-1;11737:9:1;;11627:125::o;11757:128::-;11797:3;11828:1;11824:6;11821:1;11818:13;11815:39;;;11834:18;;:::i;:::-;-1:-1:-1;11870:9:1;;11757:128::o;12378:127::-;12439:10;12434:3;12430:20;12427:1;12420:31;12470:4;12467:1;12460:15;12494:4;12491:1;12484:15;12510:251;12580:6;12633:2;12621:9;12612:7;12608:23;12604:32;12601:52;;;12649:1;12646;12639:12;12601:52;12681:9;12675:16;12700:31;12725:5;12700:31;:::i;12766:461::-;12819:3;12857:5;12851:12;12884:6;12879:3;12872:19;12910:4;12939:2;12934:3;12930:12;12923:19;;12976:2;12969:5;12965:14;12997:1;13007:195;13021:6;13018:1;13015:13;13007:195;;;13086:13;;-1:-1:-1;;;;;13082:39:1;13070:52;;13142:12;;;;13177:15;;;;13118:1;13036:9;13007:195;;;-1:-1:-1;13218:3:1;;12766:461;-1:-1:-1;;;;;12766:461:1:o;13232:582::-;13531:6;13520:9;13513:25;13574:6;13569:2;13558:9;13554:18;13547:34;13617:3;13612:2;13601:9;13597:18;13590:31;13494:4;13638:57;13690:3;13679:9;13675:19;13667:6;13638:57;:::i;:::-;-1:-1:-1;;;;;13731:32:1;;;;13726:2;13711:18;;13704:60;-1:-1:-1;13795:3:1;13780:19;13773:35;13630:65;13232:582;-1:-1:-1;;;13232:582:1:o;13819:332::-;14026:6;14015:9;14008:25;14069:2;14064;14053:9;14049:18;14042:30;13989:4;14089:56;14141:2;14130:9;14126:18;14118:6;14089:56;:::i;:::-;14081:64;13819:332;-1:-1:-1;;;;13819:332:1:o

Swarm Source

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