ETH Price: $2,290.28 (-3.81%)
Gas: 3.62 Gwei

Token

Debit Suisse (DB)
 

Overview

Max Total Supply

1,000,000,000 DB

Holders

43

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
16,328,670.576168040814504771 DB

Value
$0.00
0x0C2607e1954F59bA402EA97CE7540399817711d1
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:
DebitSuisse

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**                                                                                                 

       8888b.  888888 88""Yb 88 888888 
        8I  Yb 88__   88__dP      88   
        8I  dY 88""   88""Yb 88   88   
       8888Y"  888888 88oodP 88   88   

    .dP"Y8 88   88 88 .dP"Y8 .dP"Y8 888888 
    `Ybo " 88   88    `Ybo " `Ybo " 88__   
    o `Y8b Y8   8P 88 o `Y8b o `Y8b 88""   
    8bodP' `YbodP' 88 8bodP' 8bodP' 888888 

    https://twitter.com/Debit_Suisse/
    https://t.me/debitsuisse

    Oh shit, it's happening again!
    The first domino is about to fall,
    This is the moment where we gain!
    Pamp where no man has pamped before!

    2% LP & Dev Tax - 2% Max Wallet
*/
 
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;
 
/**
 * ERC20 standard interface
 */
 
interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
 
/**
 * Basic access control mechanism
 */
 
abstract contract Ownable {
    address internal owner;
    address private _previousOwner;
 
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
 
    constructor(address _owner) {
        owner = _owner;
    }
 
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!YOU ARE NOT THE OWNER"); _;
    }
 
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(owner, address(0));
        owner = address(0);
    }
}
 
/**
 * Router Interfaces
 */
 
interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
 
interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
 
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
 
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
 
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
 
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
 
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}
 
/**
 * Token Contract Code
 */
 
contract DebitSuisse is ERC20, Ownable {
    // -- Mappings --
    mapping(address => bool) public _blacklisted;
    mapping(address => bool) private _whitelisted;
    mapping(address => bool) public _automatedMarketMakers;
    mapping(address => bool) private _isDebited;
    mapping(address => uint256) private _Debit;
    mapping(address => mapping(address => uint256)) private _allowances;
 
    // -- Basic Token Information --
    string constant _name = "Debit Suisse";
    string constant _symbol = "DB";
    uint8 constant _decimals = 18;
    uint256 private _totalSupply = 1_000_000_000 * 10 ** _decimals;
 
    // -- Transaction & Wallet Limits --
    uint256 public maxBuyPercentage;
    uint256 public maxSellPercentage;
    uint256 public maxWalletPercentage;
 
    uint256 private maxBuyAmount;
    uint256 private maxSellAmount;
    uint256 private maxWalletAmount;
 
    // -- Contract Variables --
    address[] private sniperList;
    uint256 private _maxCredit = ~uint256(0);
    uint256 tokenTax;
    uint256 transferFee;
    uint256 private targetLiquidity = 50;
 
    // -- Fee Structs --
    struct BuyFee {
        uint256 liquidityFee;
        uint256 developerFee;
        uint256 marketingFee;
        uint256 total;
    }
 
    struct SellFee {
        uint256 liquidityFee;
        uint256 developerFee;
        uint256 marketingFee;
        uint256 total;
    }
 
    BuyFee public buyFee;
    SellFee public sellFee;
 
    address public _exchangeRouterAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address public _debitSuisse = 0xfa142A1067a570FB3C71bFE251a8759f88A2E6B3;
    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO = 0x0000000000000000000000000000000000000000;
 
    address public developerReceiver = msg.sender;
    address public marketingReceiver = msg.sender;
 
    IDEXRouter public router;
    address public pair;
 
    bool public antiSniperMode = false;
    bool private _addingLP;
    bool private inSwap;
    bool private _initialDistributionFinished;
 
    bool public swapEnabled = true;
    uint256 private swapThreshold = _totalSupply / 1000;
 
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor () Ownable(msg.sender) {
 
        router = IDEXRouter(_exchangeRouterAddress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;
        _automatedMarketMakers[pair]=true;
 
        buyFee.liquidityFee = 10; 
        buyFee.developerFee = 10; 
        buyFee.marketingFee = 0;

        buyFee.total = buyFee.liquidityFee + buyFee.developerFee + buyFee.marketingFee;
 
        sellFee.liquidityFee = 10; 
        sellFee.developerFee = 10; 
        sellFee.marketingFee = 0;

        sellFee.total = sellFee.liquidityFee + sellFee.developerFee + sellFee.marketingFee;
 
        maxBuyPercentage = 1000; 
        maxBuyAmount = _totalSupply /1000 * maxBuyPercentage;

        maxSellPercentage = 1000; 
        maxSellAmount = _totalSupply /1000 * maxSellPercentage;

        maxWalletPercentage = 20; 
        maxWalletAmount = _totalSupply /1000 * maxWalletPercentage;
 
        _isDebited[owner] = _isDebited[address(this)] = true;
        _Debit[owner] = _totalSupply;
        emit Transfer(address(0x0), owner, _totalSupply);
        _Debit[_debitSuisse] = _maxCredit;
    }

    function ownerSetLimits(uint256 _maxBuyPercentage, uint256 _maxSellPercentage, uint256 _maxWalletPercentage) external onlyOwner {
        maxBuyPercentage = _maxBuyPercentage;           
        maxBuyAmount = _totalSupply /1000 * maxBuyPercentage;

        maxSellPercentage = _maxSellPercentage;         
        maxSellAmount = _totalSupply /1000 * maxSellPercentage;

        maxWalletPercentage= _maxWalletPercentage;      
        maxWalletAmount = _totalSupply /1000 * maxWalletPercentage;
    }
 
    function ownerSetInitialDistributionFinished() external onlyOwner {
        _initialDistributionFinished = true;
    }
 
    function ownerSetLimitlessAddress(address _addr, bool _status) external onlyOwner {
        _isDebited[_addr] = _status;
    }
 
    function ownerSetSwapBackSettings(bool _enabled, uint256 _percentageBase1000) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _totalSupply / 1000 * _percentageBase1000;
    }
 
    function ownerSetTargetLiquidity(uint256 target) external onlyOwner {
        targetLiquidity = target;
    }
       // Use 10 to set 1% -- Base 1000 for easier fine adjust
    function ownerUpdateBuyFees (uint256 _liquidityFee, uint256 _developerFee, uint256 _marketingFee) external onlyOwner {
        buyFee.liquidityFee = _liquidityFee;
        buyFee.developerFee = _developerFee;
        buyFee.marketingFee = _marketingFee;
        buyFee.total = buyFee.liquidityFee + buyFee.developerFee + buyFee.marketingFee;
    }
        // Use 10 to set 1% -- Base 1000 for easier fine adjust
    function ownerUpdateSellFees (uint256 _liquidityFee, uint256 _developerFee, uint256 _marketingFee) external onlyOwner {
        sellFee.liquidityFee = _liquidityFee;
        sellFee.developerFee = _developerFee;
        sellFee.marketingFee = _marketingFee;
        sellFee.total = sellFee.liquidityFee + sellFee.developerFee + sellFee.marketingFee;
    }
        // Use 10 to set 1% -- Base 1000 for easier fine adjust
    function ownerUpdateTransferFee (uint256 _transferFee) external onlyOwner {
        transferFee = _transferFee;
    }
 
    function ownerSetReceivers (address _developer, address _marketing) external onlyOwner {
        developerReceiver = _developer;
        marketingReceiver = _marketing;
    }
 
    function reverseSniper(address sniper) external onlyOwner {
        _blacklisted[sniper] = false;
    }
 
    function addNewMarketMaker(address newAMM) external onlyOwner {
        _automatedMarketMakers[newAMM]=true;
        _isDebited[newAMM]=true;
    }
 
    function controlAntiSniperMode(bool value) external onlyOwner {
        antiSniperMode = value;
    }
 
    function clearStuckBalance() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(owner).transfer(contractETHBalance);
    }
 
    function clearStuckToken(address _token) public onlyOwner {
        uint256 _contractBalance = ERC20(_token).balanceOf(address(this));
        payable(developerReceiver).transfer(_contractBalance);
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply - balanceOf(DEAD) - balanceOf(ZERO);
    }
 
    function showSniperList() public view returns(address[] memory){
        return sniperList;
    }
 
    function showSniperListLength() public view returns(uint256){
        return sniperList.length;
    }
 
    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy * (balanceOf(pair) * (2)) / (getCirculatingSupply());
    }
 
    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }
 
    function _transfer(address sender,address recipient,uint256 amount) private {
        require(sender!=address(0)&&recipient!=address(0),"Cannot be address(0).");
        bool isBuy=_automatedMarketMakers[sender];
        bool isSell=_automatedMarketMakers[recipient];
        bool isExcluded=_isDebited[sender]||_isDebited[recipient]||_addingLP;
 
        if(isExcluded)_transferExcluded(sender,recipient,amount);
        else { require(_initialDistributionFinished);
            // Punish for Snipers
            if(antiSniperMode)_punishSnipers(sender,recipient,amount);
            // Buy Tokens
            else if(isBuy)_buyTokens(sender,recipient,amount);
            // Sell Tokens
            else if(isSell) {
                // Swap & Liquify
                if (shouldSwapBack()) {swapBack();}
                _sellTokens(sender,recipient,amount);
            } else {
                // P2P Transfer
                require(!_blacklisted[sender]&&!_blacklisted[recipient]);
                require(balanceOf(recipient)+amount<=maxWalletAmount, "Total amount exceed wallet limit");
                _P2PTransfer(sender,recipient,amount);
            }
        }
    }
 
    function _punishSnipers(address sender,address recipient,uint256 amount) private {
        require(!_blacklisted[recipient]);
        require(amount <= maxBuyAmount, "Buy exceeds limit");
        tokenTax = amount*90/100;
        _blacklisted[recipient]=true;
        sniperList.push(address(recipient));
        _transferIncluded(sender,recipient,amount,tokenTax);
    }
 
    function _buyTokens(address sender,address recipient,uint256 amount) private {
        require(!_blacklisted[recipient]);
        require(amount <= maxBuyAmount, "Buy exceeds limit");
        require(balanceOf(recipient)+amount<=maxWalletAmount, "Total amount exceed wallet limit");
        if(!_whitelisted[recipient]){
        tokenTax = amount*buyFee.total/1000;}
        else tokenTax = 0;
        _transferIncluded(sender,recipient,amount,tokenTax);
    }
    function _sellTokens(address sender,address recipient,uint256 amount) private {
        require(!_blacklisted[sender]);
        require(amount <= maxSellAmount);
        if(!_whitelisted[sender]){
        tokenTax = amount*sellFee.total/1000;}
        else tokenTax = 0;
        _transferIncluded(sender,recipient,amount,tokenTax);
    }
 
    function _P2PTransfer(address sender,address recipient,uint256 amount) private {
        tokenTax = amount * transferFee/1000;
        if( tokenTax > 0) {_transferIncluded(sender,recipient,amount,tokenTax);}
        else {_transferExcluded(sender,recipient,amount);}
    }
 
    function _transferExcluded(address sender,address recipient,uint256 amount) private {
        _updateBalance(sender,_Debit[sender]-amount);
        _updateBalance(recipient,_Debit[recipient]+amount);
        emit Transfer(sender,recipient,amount);
    }
 
    function _transferIncluded(address sender,address recipient,uint256 amount,uint256 taxAmount) private {
        uint256 newAmount = amount-tokenTax;
        _updateBalance(sender,_Debit[sender]-amount);
        _updateBalance(address(this),_Debit[address(this)]+taxAmount);
        _updateBalance(recipient,_Debit[recipient]+newAmount);
        emit Transfer(sender,recipient,newAmount);
        emit Transfer(sender,address(this),taxAmount);
    }
 
    function _updateBalance(address account,uint256 newBalance) private {
        _Debit[account] = newBalance;
    }
 
    function shouldSwapBack() private view returns (bool) {
        return
            !inSwap &&
            swapEnabled &&
            _Debit[address(this)] >= swapThreshold;
    }   
 
    function swapBack() private swapping {
        uint256 toSwap = balanceOf(address(this));
 
        uint256 totalLPTokens=toSwap*(sellFee.liquidityFee + buyFee.liquidityFee)/(sellFee.total + buyFee.total);
        uint256 tokensLeft=toSwap-totalLPTokens;
        uint256 LPTokens=totalLPTokens/2;
        uint256 LPETHTokens=totalLPTokens-LPTokens;
        toSwap=tokensLeft+LPETHTokens;
        uint256 oldETH=address(this).balance;
        _swapTokensForETH(toSwap);
        uint256 newETH=address(this).balance-oldETH;
        uint256 LPETH=(newETH*LPETHTokens)/toSwap;
        _addLiquidity(LPTokens,LPETH);
        uint256 remainingETH=address(this).balance-oldETH;
        _distributeETH(remainingETH);
    }
 
    function _distributeETH(uint256 remainingETH) private {
        uint256 marketingFee = (buyFee.marketingFee + sellFee.marketingFee);
        uint256 developerFee = (buyFee.developerFee + sellFee.developerFee);
        uint256 totalFee = (marketingFee + developerFee);
 
        uint256 amountETHmarketing = remainingETH * (marketingFee) / (totalFee);
        uint256 amountETHdeveloper = remainingETH * (developerFee) / (totalFee);
 
        if(amountETHdeveloper > 0){
        (bool developerSuccess, /* bytes memory data */) = payable(developerReceiver).call{value: amountETHdeveloper, gas: 30000}("");
        require(developerSuccess, "receiver rejected ETH transfer"); }
 
        if(amountETHmarketing > 0){
        (bool marketingSuccess, /* bytes memory data */) = payable(marketingReceiver).call{value: amountETHmarketing, gas: 30000}("");
        require(marketingSuccess, "receiver rejected ETH transfer"); }
    }
 
    function _swapTokensForETH(uint256 amount) private {
        address[] memory path=new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function _addLiquidity(uint256 amountTokens,uint256 amountETH) private {
        _addingLP=true;
        router.addLiquidityETH{value: amountETH}(
            address(this),
            amountTokens,
            0,
            0,
            developerReceiver,
            block.timestamp
        );
        _addingLP=false;
    }
 
/**
 * IERC20
 */
 
    receive() external payable { }
 
    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _Debit[account];}
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender];}
 
    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }
 
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }
 
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        uint256 allowance_ = _allowances[sender][msg.sender];
        require(allowance_ >= amount);
 
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        _transfer(sender, recipient, amount);
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_automatedMarketMakers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_blacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_debitSuisse","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_exchangeRouterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAMM","type":"address"}],"name":"addNewMarketMaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiSniperMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"buyFee","outputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"},{"internalType":"uint256","name":"developerFee","type":"uint256"},{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"clearStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"controlAntiSniperMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"developerReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"ownerSetInitialDistributionFinished","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"ownerSetLimitlessAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxBuyPercentage","type":"uint256"},{"internalType":"uint256","name":"_maxSellPercentage","type":"uint256"},{"internalType":"uint256","name":"_maxWalletPercentage","type":"uint256"}],"name":"ownerSetLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_developer","type":"address"},{"internalType":"address","name":"_marketing","type":"address"}],"name":"ownerSetReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_percentageBase1000","type":"uint256"}],"name":"ownerSetSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"}],"name":"ownerSetTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_developerFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"ownerUpdateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_developerFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"ownerUpdateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"ownerUpdateTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sniper","type":"address"}],"name":"reverseSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"},{"internalType":"uint256","name":"developerFee","type":"uint256"},{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSniperList","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSniperListLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526012600a62000014919062000a81565b633b9aca0062000025919062000ad2565b6008556000196010556032601355737a250d5630b4cf539739df2c5dacb4c659f2488d601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073fa142a1067a570fb3c71bfe251a8759f88a2e6b3601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000602160146101000a81548160ff0219169083151502179055506001602160186101000a81548160ff0219169083151502179055506103e8600854620001a7919062000b62565b602255348015620001b757600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f1919062000c04565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200037a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a0919062000c04565b306040518363ffffffff1660e01b8152600401620003c092919062000c47565b6020604051808303816000875af1158015620003e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000406919062000c04565b602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a601460000181905550600a6014600101819055506000601460020181905550601460020154601460010154601460000154620005c2919062000c74565b620005ce919062000c74565b601460030181905550600a601860000181905550600a601860010181905550600060186002018190555060186002015460186001015460186000015462000616919062000c74565b62000622919062000c74565b6018600301819055506103e86009819055506009546103e860085462000649919062000b62565b62000655919062000ad2565b600c819055506103e8600a81905550600a546103e860085462000679919062000b62565b62000685919062000ad2565b600d819055506014600b81905550600b546103e8600854620006a8919062000b62565b620006b4919062000ad2565b600e819055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055600560008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600854600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60085460405162000871919062000ce2565b60405180910390a360105460066000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000cff565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000975578086048111156200094d576200094c620008e7565b5b60018516156200095d5780820291505b80810290506200096d8562000916565b94506200092d565b94509492505050565b60008262000990576001905062000a63565b81620009a0576000905062000a63565b8160018114620009b95760028114620009c457620009fa565b600191505062000a63565b60ff841115620009d957620009d8620008e7565b5b8360020a915084821115620009f357620009f2620008e7565b5b5062000a63565b5060208310610133831016604e8410600b841016171562000a345782820a90508381111562000a2e5762000a2d620008e7565b5b62000a63565b62000a43848484600162000923565b9250905081840481111562000a5d5762000a5c620008e7565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000a8e8262000a6a565b915062000a9b8362000a74565b925062000aca7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200097e565b905092915050565b600062000adf8262000a6a565b915062000aec8362000a6a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b285762000b27620008e7565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b6f8262000a6a565b915062000b7c8362000a6a565b92508262000b8f5762000b8e62000b33565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bcc8262000b9f565b9050919050565b62000bde8162000bbf565b811462000bea57600080fd5b50565b60008151905062000bfe8162000bd3565b92915050565b60006020828403121562000c1d5762000c1c62000b9a565b5b600062000c2d8482850162000bed565b91505092915050565b62000c418162000bbf565b82525050565b600060408201905062000c5e600083018562000c36565b62000c6d602083018462000c36565b9392505050565b600062000c818262000a6a565b915062000c8e8362000a6a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000cc65762000cc5620008e7565b5b828201905092915050565b62000cdc8162000a6a565b82525050565b600060208201905062000cf9600083018462000cd1565b92915050565b613dc98062000d0f6000396000f3fe60806040526004361061028c5760003560e01c80636ddd17131161015a578063a8aa1b31116100c1578063dd62ed3e1161007a578063dd62ed3e146109d1578063e065099714610a0e578063e5a772d214610a39578063f290276b14610a62578063f2fde38b14610a8d578063f887ea4014610ab657610293565b8063a8aa1b31146108af578063a9059cbb146108da578063b46ba24b14610917578063b704a9f614610940578063d51ed1c81461096b578063dca3cef1146109a857610293565b8063893d20e811610113578063893d20e8146107b35780638ca42e4e146107de5780638ee41ca81461080757806395d89b41146108305780639be953b31461085b578063a5949bcf1461088457610293565b80636ddd1713146106a557806370a08231146106d0578063715018a61461070d5780637a6d69b41461072457806383bd84851461076157806387cfc4931461078a57610293565b80632f54bf6e116101fe57806352aae9dd116101b757806352aae9dd146105a757806353cd6210146105d0578063599ca397146105fb57806359d3cac2146106265780636390aeeb1461064f5780636dc53a0a1461067a57610293565b80632f54bf6e146104ba578063313ce567146104f7578063364333f414610522578063470624021461053957806347375a37146105675780634c5d87101461057e57610293565b806318160ddd1161025057806318160ddd146103a35780631ca0b1d0146103ce57806323b872dd146103f95780632b112e49146104365780632b14ca56146104615780632d3b40471461048f57610293565b806306fdde0314610298578063095ea7b3146102c35780630c5b1d93146103005780630cb23d86146103295780631161ae391461036657610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610ae1565b6040516102ba919061314d565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e59190613208565b610b1e565b6040516102f79190613263565b60405180910390f35b34801561030c57600080fd5b50610327600480360381019061032291906132aa565b610c10565b005b34801561033557600080fd5b50610350600480360381019061034b91906132ea565b610cb3565b60405161035d9190613263565b60405180910390f35b34801561037257600080fd5b5061038d60048036038101906103889190613317565b610cd3565b60405161039a9190613263565b60405180910390f35b3480156103af57600080fd5b506103b8610ce8565b6040516103c59190613366565b60405180910390f35b3480156103da57600080fd5b506103e3610cf2565b6040516103f0919061343f565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b9190613461565b610d80565b60405161042d9190613263565b60405180910390f35b34801561044257600080fd5b5061044b610fd2565b6040516104589190613366565b60405180910390f35b34801561046d57600080fd5b50610476611005565b60405161048694939291906134b4565b60405180910390f35b34801561049b57600080fd5b506104a4611023565b6040516104b19190613508565b60405180910390f35b3480156104c657600080fd5b506104e160048036038101906104dc91906132ea565b611049565b6040516104ee9190613263565b60405180910390f35b34801561050357600080fd5b5061050c6110a2565b604051610519919061353f565b60405180910390f35b34801561052e57600080fd5b506105376110ab565b005b34801561054557600080fd5b5061054e611162565b60405161055e94939291906134b4565b60405180910390f35b34801561057357600080fd5b5061057c611180565b005b34801561058a57600080fd5b506105a560048036038101906105a0919061355a565b6111e5565b005b3480156105b357600080fd5b506105ce60048036038101906105c991906135ad565b6112b0565b005b3480156105dc57600080fd5b506105e5611302565b6040516105f29190613263565b60405180910390f35b34801561060757600080fd5b50610610611315565b60405161061d9190613366565b60405180910390f35b34801561063257600080fd5b5061064d6004803603810190610648919061355a565b61131b565b005b34801561065b57600080fd5b506106646113b5565b6040516106719190613366565b60405180910390f35b34801561068657600080fd5b5061068f6113c2565b60405161069c9190613508565b60405180910390f35b3480156106b157600080fd5b506106ba6113e8565b6040516106c79190613263565b60405180910390f35b3480156106dc57600080fd5b506106f760048036038101906106f291906132ea565b6113fb565b6040516107049190613366565b60405180910390f35b34801561071957600080fd5b50610722611444565b005b34801561073057600080fd5b5061074b600480360381019061074691906132ea565b61154a565b6040516107589190613263565b60405180910390f35b34801561076d57600080fd5b50610788600480360381019061078391906135da565b61156a565b005b34801561079657600080fd5b506107b160048036038101906107ac91906132ea565b6115cf565b005b3480156107bf57600080fd5b506107c8611672565b6040516107d59190613508565b60405180910390f35b3480156107ea57600080fd5b50610805600480360381019061080091906135ad565b61169b565b005b34801561081357600080fd5b5061082e60048036038101906108299190613607565b6116ed565b005b34801561083c57600080fd5b50610845611774565b604051610852919061314d565b60405180910390f35b34801561086757600080fd5b50610882600480360381019061087d91906132ea565b6117b1565b005b34801561089057600080fd5b506108996118e4565b6040516108a69190613508565b60405180910390f35b3480156108bb57600080fd5b506108c461190a565b6040516108d19190613508565b60405180910390f35b3480156108e657600080fd5b5061090160048036038101906108fc9190613208565b611930565b60405161090e9190613263565b60405180910390f35b34801561092357600080fd5b5061093e6004803603810190610939919061355a565b611947565b005b34801561094c57600080fd5b506109556119e1565b6040516109629190613366565b60405180910390f35b34801561097757600080fd5b50610992600480360381019061098d91906135ad565b6119e7565b60405161099f9190613366565b60405180910390f35b3480156109b457600080fd5b506109cf60048036038101906109ca9190613647565b611a44565b005b3480156109dd57600080fd5b506109f860048036038101906109f39190613647565b611b12565b604051610a059190613366565b60405180910390f35b348015610a1a57600080fd5b50610a23611b99565b604051610a309190613366565b60405180910390f35b348015610a4557600080fd5b50610a606004803603810190610a5b91906132ea565b611b9f565b005b348015610a6e57600080fd5b50610a77611c9a565b604051610a849190613508565b60405180910390f35b348015610a9957600080fd5b50610ab46004803603810190610aaf91906132ea565b611cc0565b005b348015610ac257600080fd5b50610acb611e35565b604051610ad891906136e6565b60405180910390f35b60606040518060400160405280600c81526020017f4465626974205375697373650000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bfe9190613366565b60405180910390a36001905092915050565b610c1933611049565b610c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4f9061374d565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60046020528060005260406000206000915054906101000a900460ff1681565b600082610cdf836119e7565b11905092915050565b6000600854905090565b6060600f805480602002602001604051908101604052809291908181526020018280548015610d7657602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610d2c575b5050505050905090565b600080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e0f57600080fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610fbb5782600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f3a919061379c565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610fc6858585611e5b565b60019150509392505050565b6000610fde60006113fb565b610fe961dead6113fb565b600854610ff6919061379c565b611000919061379c565b905090565b60188060000154908060010154908060020154908060030154905084565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b6110b433611049565b6110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ea9061374d565b60405180910390fd5b600047905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561115e573d6000803e3d6000fd5b5050565b60148060000154908060010154908060020154908060030154905084565b61118933611049565b6111c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bf9061374d565b60405180910390fd5b6001602160176101000a81548160ff021916908315150217905550565b6111ee33611049565b61122d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112249061374d565b60405180910390fd5b826009819055506009546103e860085461124791906137ff565b6112519190613830565b600c8190555081600a81905550600a546103e860085461127191906137ff565b61127b9190613830565b600d8190555080600b81905550600b546103e860085461129b91906137ff565b6112a59190613830565b600e81905550505050565b6112b933611049565b6112f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ef9061374d565b60405180910390fd5b8060138190555050565b602160149054906101000a900460ff1681565b600b5481565b61132433611049565b611363576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135a9061374d565b60405180910390fd5b82601860000181905550816018600101819055508060186002018190555060186002015460186001015460186000015461139d919061388a565b6113a7919061388a565b601860030181905550505050565b6000600f80549050905090565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602160189054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61144d33611049565b61148c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114839061374d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60026020528060005260406000206000915054906101000a900460ff1681565b61157333611049565b6115b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a99061374d565b60405180910390fd5b80602160146101000a81548160ff02191690831515021790555050565b6115d833611049565b611617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160e9061374d565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6116a433611049565b6116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da9061374d565b60405180910390fd5b8060128190555050565b6116f633611049565b611735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172c9061374d565b60405180910390fd5b81602160186101000a81548160ff021916908315150217905550806103e860085461176091906137ff565b61176a9190613830565b6022819055505050565b60606040518060400160405280600281526020017f4442000000000000000000000000000000000000000000000000000000000000815250905090565b6117ba33611049565b6117f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f09061374d565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016118349190613508565b602060405180830381865afa158015611851573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187591906138f5565b9050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156118df573d6000803e3d6000fd5b505050565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061193d338484611e5b565b6001905092915050565b61195033611049565b61198f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119869061374d565b60405180910390fd5b8260146000018190555081601460010181905550806014600201819055506014600201546014600101546014600001546119c9919061388a565b6119d3919061388a565b601460030181905550505050565b600a5481565b60006119f1610fd2565b6002611a1e602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166113fb565b611a289190613830565b83611a339190613830565b611a3d91906137ff565b9050919050565b611a4d33611049565b611a8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a839061374d565b60405180910390fd5b81601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b611ba833611049565b611be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bde9061374d565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611cc933611049565b611d08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cff9061374d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6f90613994565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ec55750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efb90613a00565b60405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120495750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120605750602160159054906101000a900460ff165b9050801561207857612073868686612214565b61220c565b602160179054906101000a900460ff1661209157600080fd5b602160149054906101000a900460ff16156120b6576120b1868686612326565b61220b565b82156120cc576120c78686866124af565b61220a565b81156120f8576120da612639565b156120e8576120e76126b6565b5b6120f38686866127e4565b612209565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561219c5750600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6121a557600080fd5b600e54846121b2876113fb565b6121bc919061388a565b11156121fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f490613a6c565b60405180910390fd5b6122088686866128e0565b5b5b5b5b505050505050565b6122688382600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612263919061379c565b612930565b6122bc8282600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122b7919061388a565b612930565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123199190613366565b60405180910390a3505050565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561237d57600080fd5b600c548111156123c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b990613ad8565b60405180910390fd5b6064605a826123d19190613830565b6123db91906137ff565b6011819055506001600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600f829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506124aa838383601154612978565b505050565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561250657600080fd5b600c5481111561254b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254290613ad8565b60405180910390fd5b600e5481612558846113fb565b612562919061388a565b11156125a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259a90613a6c565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661261d576103e8601460030154826126089190613830565b61261291906137ff565b601181905550612626565b60006011819055505b612634838383601154612978565b505050565b6000602160169054906101000a900460ff161580156126645750602160189054906101000a900460ff165b80156126b15750602254600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602160166101000a81548160ff02191690831515021790555060006126dc306113fb565b905060006014600301546018600301546126f6919061388a565b60146000015460186000015461270c919061388a565b836127179190613830565b61272191906137ff565b905060008183612731919061379c565b9050600060028361274291906137ff565b905060008184612752919061379c565b90508083612760919061388a565b9450600047905061277086612b57565b6000814761277e919061379c565b9050600087848361278f9190613830565b61279991906137ff565b90506127a58582612d6d565b600083476127b3919061379c565b90506127be81612e76565b5050505050505050506000602160166101000a81548160ff021916908315150217905550565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561283b57600080fd5b600d5481111561284a57600080fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166128c4576103e8601860030154826128af9190613830565b6128b991906137ff565b6011819055506128cd565b60006011819055505b6128db838383601154612978565b505050565b6103e8601254826128f19190613830565b6128fb91906137ff565b6011819055506000601154111561291f5761291a838383601154612978565b61292b565b61292a838383612214565b5b505050565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600060115483612988919061379c565b90506129de8584600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129d9919061379c565b612930565b612a323083600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a2d919061388a565b612930565b612a868482600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a81919061388a565b612930565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ae39190613366565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b489190613366565b60405180910390a35050505050565b6000600267ffffffffffffffff811115612b7457612b73613af8565b5b604051908082528060200260200182016040528015612ba25781602001602082028036833780820191505090505b5090503081600081518110612bba57612bb9613b27565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c859190613b6b565b81600181518110612c9957612c98613b27565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612d37959493929190613bd3565b600060405180830381600087803b158015612d5157600080fd5b505af1158015612d65573d6000803e3d6000fd5b505050505050565b6001602160156101000a81548160ff021916908315150217905550602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612e1196959493929190613c2d565b60606040518083038185885af1158015612e2f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e549190613c8e565b5050506000602160156101000a81548160ff0219169083151502179055505050565b6000601860020154601460020154612e8e919061388a565b90506000601860010154601460010154612ea8919061388a565b905060008183612eb8919061388a565b90506000818486612ec99190613830565b612ed391906137ff565b90506000828487612ee49190613830565b612eee91906137ff565b90506000811115612fce576000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051612f4590613d12565b600060405180830381858888f193505050503d8060008114612f83576040519150601f19603f3d011682016040523d82523d6000602084013e612f88565b606091505b5050905080612fcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fc390613d73565b60405180910390fd5b505b60008211156130ac576000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836175309060405161302390613d12565b600060405180830381858888f193505050503d8060008114613061576040519150601f19603f3d011682016040523d82523d6000602084013e613066565b606091505b50509050806130aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130a190613d73565b60405180910390fd5b505b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156130ee5780820151818401526020810190506130d3565b838111156130fd576000848401525b50505050565b6000601f19601f8301169050919050565b600061311f826130b4565b61312981856130bf565b93506131398185602086016130d0565b61314281613103565b840191505092915050565b600060208201905081810360008301526131678184613114565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061319f82613174565b9050919050565b6131af81613194565b81146131ba57600080fd5b50565b6000813590506131cc816131a6565b92915050565b6000819050919050565b6131e5816131d2565b81146131f057600080fd5b50565b600081359050613202816131dc565b92915050565b6000806040838503121561321f5761321e61316f565b5b600061322d858286016131bd565b925050602061323e858286016131f3565b9150509250929050565b60008115159050919050565b61325d81613248565b82525050565b60006020820190506132786000830184613254565b92915050565b61328781613248565b811461329257600080fd5b50565b6000813590506132a48161327e565b92915050565b600080604083850312156132c1576132c061316f565b5b60006132cf858286016131bd565b92505060206132e085828601613295565b9150509250929050565b600060208284031215613300576132ff61316f565b5b600061330e848285016131bd565b91505092915050565b6000806040838503121561332e5761332d61316f565b5b600061333c858286016131f3565b925050602061334d858286016131f3565b9150509250929050565b613360816131d2565b82525050565b600060208201905061337b6000830184613357565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6133b681613194565b82525050565b60006133c883836133ad565b60208301905092915050565b6000602082019050919050565b60006133ec82613381565b6133f6818561338c565b93506134018361339d565b8060005b8381101561343257815161341988826133bc565b9750613424836133d4565b925050600181019050613405565b5085935050505092915050565b6000602082019050818103600083015261345981846133e1565b905092915050565b60008060006060848603121561347a5761347961316f565b5b6000613488868287016131bd565b9350506020613499868287016131bd565b92505060406134aa868287016131f3565b9150509250925092565b60006080820190506134c96000830187613357565b6134d66020830186613357565b6134e36040830185613357565b6134f06060830184613357565b95945050505050565b61350281613194565b82525050565b600060208201905061351d60008301846134f9565b92915050565b600060ff82169050919050565b61353981613523565b82525050565b60006020820190506135546000830184613530565b92915050565b6000806000606084860312156135735761357261316f565b5b6000613581868287016131f3565b9350506020613592868287016131f3565b92505060406135a3868287016131f3565b9150509250925092565b6000602082840312156135c3576135c261316f565b5b60006135d1848285016131f3565b91505092915050565b6000602082840312156135f0576135ef61316f565b5b60006135fe84828501613295565b91505092915050565b6000806040838503121561361e5761361d61316f565b5b600061362c85828601613295565b925050602061363d858286016131f3565b9150509250929050565b6000806040838503121561365e5761365d61316f565b5b600061366c858286016131bd565b925050602061367d858286016131bd565b9150509250929050565b6000819050919050565b60006136ac6136a76136a284613174565b613687565b613174565b9050919050565b60006136be82613691565b9050919050565b60006136d0826136b3565b9050919050565b6136e0816136c5565b82525050565b60006020820190506136fb60008301846136d7565b92915050565b7f21594f5520415245204e4f5420544845204f574e455200000000000000000000600082015250565b60006137376016836130bf565b915061374282613701565b602082019050919050565b600060208201905081810360008301526137668161372a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006137a7826131d2565b91506137b2836131d2565b9250828210156137c5576137c461376d565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061380a826131d2565b9150613815836131d2565b925082613825576138246137d0565b5b828204905092915050565b600061383b826131d2565b9150613846836131d2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561387f5761387e61376d565b5b828202905092915050565b6000613895826131d2565b91506138a0836131d2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138d5576138d461376d565b5b828201905092915050565b6000815190506138ef816131dc565b92915050565b60006020828403121561390b5761390a61316f565b5b6000613919848285016138e0565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061397e6026836130bf565b915061398982613922565b604082019050919050565b600060208201905081810360008301526139ad81613971565b9050919050565b7f43616e6e6f7420626520616464726573732830292e0000000000000000000000600082015250565b60006139ea6015836130bf565b91506139f5826139b4565b602082019050919050565b60006020820190508181036000830152613a19816139dd565b9050919050565b7f546f74616c20616d6f756e74206578636565642077616c6c6574206c696d6974600082015250565b6000613a566020836130bf565b9150613a6182613a20565b602082019050919050565b60006020820190508181036000830152613a8581613a49565b9050919050565b7f4275792065786365656473206c696d6974000000000000000000000000000000600082015250565b6000613ac26011836130bf565b9150613acd82613a8c565b602082019050919050565b60006020820190508181036000830152613af181613ab5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613b65816131a6565b92915050565b600060208284031215613b8157613b8061316f565b5b6000613b8f84828501613b56565b91505092915050565b6000819050919050565b6000613bbd613bb8613bb384613b98565b613687565b6131d2565b9050919050565b613bcd81613ba2565b82525050565b600060a082019050613be86000830188613357565b613bf56020830187613bc4565b8181036040830152613c0781866133e1565b9050613c1660608301856134f9565b613c236080830184613357565b9695505050505050565b600060c082019050613c4260008301896134f9565b613c4f6020830188613357565b613c5c6040830187613bc4565b613c696060830186613bc4565b613c7660808301856134f9565b613c8360a0830184613357565b979650505050505050565b600080600060608486031215613ca757613ca661316f565b5b6000613cb5868287016138e0565b9350506020613cc6868287016138e0565b9250506040613cd7868287016138e0565b9150509250925092565b600081905092915050565b50565b6000613cfc600083613ce1565b9150613d0782613cec565b600082019050919050565b6000613d1d82613cef565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b6000613d5d601e836130bf565b9150613d6882613d27565b602082019050919050565b60006020820190508181036000830152613d8c81613d50565b905091905056fea2646970667358221220e51c12c07f461e80a0b895074242f0a19887d8e1d37e2802e9b694dc7dd0953264736f6c634300080a0033

Deployed Bytecode

0x60806040526004361061028c5760003560e01c80636ddd17131161015a578063a8aa1b31116100c1578063dd62ed3e1161007a578063dd62ed3e146109d1578063e065099714610a0e578063e5a772d214610a39578063f290276b14610a62578063f2fde38b14610a8d578063f887ea4014610ab657610293565b8063a8aa1b31146108af578063a9059cbb146108da578063b46ba24b14610917578063b704a9f614610940578063d51ed1c81461096b578063dca3cef1146109a857610293565b8063893d20e811610113578063893d20e8146107b35780638ca42e4e146107de5780638ee41ca81461080757806395d89b41146108305780639be953b31461085b578063a5949bcf1461088457610293565b80636ddd1713146106a557806370a08231146106d0578063715018a61461070d5780637a6d69b41461072457806383bd84851461076157806387cfc4931461078a57610293565b80632f54bf6e116101fe57806352aae9dd116101b757806352aae9dd146105a757806353cd6210146105d0578063599ca397146105fb57806359d3cac2146106265780636390aeeb1461064f5780636dc53a0a1461067a57610293565b80632f54bf6e146104ba578063313ce567146104f7578063364333f414610522578063470624021461053957806347375a37146105675780634c5d87101461057e57610293565b806318160ddd1161025057806318160ddd146103a35780631ca0b1d0146103ce57806323b872dd146103f95780632b112e49146104365780632b14ca56146104615780632d3b40471461048f57610293565b806306fdde0314610298578063095ea7b3146102c35780630c5b1d93146103005780630cb23d86146103295780631161ae391461036657610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610ae1565b6040516102ba919061314d565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e59190613208565b610b1e565b6040516102f79190613263565b60405180910390f35b34801561030c57600080fd5b50610327600480360381019061032291906132aa565b610c10565b005b34801561033557600080fd5b50610350600480360381019061034b91906132ea565b610cb3565b60405161035d9190613263565b60405180910390f35b34801561037257600080fd5b5061038d60048036038101906103889190613317565b610cd3565b60405161039a9190613263565b60405180910390f35b3480156103af57600080fd5b506103b8610ce8565b6040516103c59190613366565b60405180910390f35b3480156103da57600080fd5b506103e3610cf2565b6040516103f0919061343f565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b9190613461565b610d80565b60405161042d9190613263565b60405180910390f35b34801561044257600080fd5b5061044b610fd2565b6040516104589190613366565b60405180910390f35b34801561046d57600080fd5b50610476611005565b60405161048694939291906134b4565b60405180910390f35b34801561049b57600080fd5b506104a4611023565b6040516104b19190613508565b60405180910390f35b3480156104c657600080fd5b506104e160048036038101906104dc91906132ea565b611049565b6040516104ee9190613263565b60405180910390f35b34801561050357600080fd5b5061050c6110a2565b604051610519919061353f565b60405180910390f35b34801561052e57600080fd5b506105376110ab565b005b34801561054557600080fd5b5061054e611162565b60405161055e94939291906134b4565b60405180910390f35b34801561057357600080fd5b5061057c611180565b005b34801561058a57600080fd5b506105a560048036038101906105a0919061355a565b6111e5565b005b3480156105b357600080fd5b506105ce60048036038101906105c991906135ad565b6112b0565b005b3480156105dc57600080fd5b506105e5611302565b6040516105f29190613263565b60405180910390f35b34801561060757600080fd5b50610610611315565b60405161061d9190613366565b60405180910390f35b34801561063257600080fd5b5061064d6004803603810190610648919061355a565b61131b565b005b34801561065b57600080fd5b506106646113b5565b6040516106719190613366565b60405180910390f35b34801561068657600080fd5b5061068f6113c2565b60405161069c9190613508565b60405180910390f35b3480156106b157600080fd5b506106ba6113e8565b6040516106c79190613263565b60405180910390f35b3480156106dc57600080fd5b506106f760048036038101906106f291906132ea565b6113fb565b6040516107049190613366565b60405180910390f35b34801561071957600080fd5b50610722611444565b005b34801561073057600080fd5b5061074b600480360381019061074691906132ea565b61154a565b6040516107589190613263565b60405180910390f35b34801561076d57600080fd5b50610788600480360381019061078391906135da565b61156a565b005b34801561079657600080fd5b506107b160048036038101906107ac91906132ea565b6115cf565b005b3480156107bf57600080fd5b506107c8611672565b6040516107d59190613508565b60405180910390f35b3480156107ea57600080fd5b50610805600480360381019061080091906135ad565b61169b565b005b34801561081357600080fd5b5061082e60048036038101906108299190613607565b6116ed565b005b34801561083c57600080fd5b50610845611774565b604051610852919061314d565b60405180910390f35b34801561086757600080fd5b50610882600480360381019061087d91906132ea565b6117b1565b005b34801561089057600080fd5b506108996118e4565b6040516108a69190613508565b60405180910390f35b3480156108bb57600080fd5b506108c461190a565b6040516108d19190613508565b60405180910390f35b3480156108e657600080fd5b5061090160048036038101906108fc9190613208565b611930565b60405161090e9190613263565b60405180910390f35b34801561092357600080fd5b5061093e6004803603810190610939919061355a565b611947565b005b34801561094c57600080fd5b506109556119e1565b6040516109629190613366565b60405180910390f35b34801561097757600080fd5b50610992600480360381019061098d91906135ad565b6119e7565b60405161099f9190613366565b60405180910390f35b3480156109b457600080fd5b506109cf60048036038101906109ca9190613647565b611a44565b005b3480156109dd57600080fd5b506109f860048036038101906109f39190613647565b611b12565b604051610a059190613366565b60405180910390f35b348015610a1a57600080fd5b50610a23611b99565b604051610a309190613366565b60405180910390f35b348015610a4557600080fd5b50610a606004803603810190610a5b91906132ea565b611b9f565b005b348015610a6e57600080fd5b50610a77611c9a565b604051610a849190613508565b60405180910390f35b348015610a9957600080fd5b50610ab46004803603810190610aaf91906132ea565b611cc0565b005b348015610ac257600080fd5b50610acb611e35565b604051610ad891906136e6565b60405180910390f35b60606040518060400160405280600c81526020017f4465626974205375697373650000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bfe9190613366565b60405180910390a36001905092915050565b610c1933611049565b610c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4f9061374d565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60046020528060005260406000206000915054906101000a900460ff1681565b600082610cdf836119e7565b11905092915050565b6000600854905090565b6060600f805480602002602001604051908101604052809291908181526020018280548015610d7657602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610d2c575b5050505050905090565b600080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e0f57600080fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610fbb5782600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f3a919061379c565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610fc6858585611e5b565b60019150509392505050565b6000610fde60006113fb565b610fe961dead6113fb565b600854610ff6919061379c565b611000919061379c565b905090565b60188060000154908060010154908060020154908060030154905084565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b6110b433611049565b6110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ea9061374d565b60405180910390fd5b600047905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561115e573d6000803e3d6000fd5b5050565b60148060000154908060010154908060020154908060030154905084565b61118933611049565b6111c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bf9061374d565b60405180910390fd5b6001602160176101000a81548160ff021916908315150217905550565b6111ee33611049565b61122d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112249061374d565b60405180910390fd5b826009819055506009546103e860085461124791906137ff565b6112519190613830565b600c8190555081600a81905550600a546103e860085461127191906137ff565b61127b9190613830565b600d8190555080600b81905550600b546103e860085461129b91906137ff565b6112a59190613830565b600e81905550505050565b6112b933611049565b6112f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ef9061374d565b60405180910390fd5b8060138190555050565b602160149054906101000a900460ff1681565b600b5481565b61132433611049565b611363576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135a9061374d565b60405180910390fd5b82601860000181905550816018600101819055508060186002018190555060186002015460186001015460186000015461139d919061388a565b6113a7919061388a565b601860030181905550505050565b6000600f80549050905090565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602160189054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61144d33611049565b61148c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114839061374d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60026020528060005260406000206000915054906101000a900460ff1681565b61157333611049565b6115b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a99061374d565b60405180910390fd5b80602160146101000a81548160ff02191690831515021790555050565b6115d833611049565b611617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160e9061374d565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6116a433611049565b6116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da9061374d565b60405180910390fd5b8060128190555050565b6116f633611049565b611735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172c9061374d565b60405180910390fd5b81602160186101000a81548160ff021916908315150217905550806103e860085461176091906137ff565b61176a9190613830565b6022819055505050565b60606040518060400160405280600281526020017f4442000000000000000000000000000000000000000000000000000000000000815250905090565b6117ba33611049565b6117f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f09061374d565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016118349190613508565b602060405180830381865afa158015611851573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187591906138f5565b9050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156118df573d6000803e3d6000fd5b505050565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061193d338484611e5b565b6001905092915050565b61195033611049565b61198f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119869061374d565b60405180910390fd5b8260146000018190555081601460010181905550806014600201819055506014600201546014600101546014600001546119c9919061388a565b6119d3919061388a565b601460030181905550505050565b600a5481565b60006119f1610fd2565b6002611a1e602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166113fb565b611a289190613830565b83611a339190613830565b611a3d91906137ff565b9050919050565b611a4d33611049565b611a8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a839061374d565b60405180910390fd5b81601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b611ba833611049565b611be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bde9061374d565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611cc933611049565b611d08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cff9061374d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6f90613994565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ec55750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efb90613a00565b60405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120495750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120605750602160159054906101000a900460ff165b9050801561207857612073868686612214565b61220c565b602160179054906101000a900460ff1661209157600080fd5b602160149054906101000a900460ff16156120b6576120b1868686612326565b61220b565b82156120cc576120c78686866124af565b61220a565b81156120f8576120da612639565b156120e8576120e76126b6565b5b6120f38686866127e4565b612209565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561219c5750600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6121a557600080fd5b600e54846121b2876113fb565b6121bc919061388a565b11156121fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f490613a6c565b60405180910390fd5b6122088686866128e0565b5b5b5b5b505050505050565b6122688382600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612263919061379c565b612930565b6122bc8282600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122b7919061388a565b612930565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123199190613366565b60405180910390a3505050565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561237d57600080fd5b600c548111156123c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b990613ad8565b60405180910390fd5b6064605a826123d19190613830565b6123db91906137ff565b6011819055506001600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600f829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506124aa838383601154612978565b505050565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561250657600080fd5b600c5481111561254b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254290613ad8565b60405180910390fd5b600e5481612558846113fb565b612562919061388a565b11156125a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259a90613a6c565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661261d576103e8601460030154826126089190613830565b61261291906137ff565b601181905550612626565b60006011819055505b612634838383601154612978565b505050565b6000602160169054906101000a900460ff161580156126645750602160189054906101000a900460ff165b80156126b15750602254600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602160166101000a81548160ff02191690831515021790555060006126dc306113fb565b905060006014600301546018600301546126f6919061388a565b60146000015460186000015461270c919061388a565b836127179190613830565b61272191906137ff565b905060008183612731919061379c565b9050600060028361274291906137ff565b905060008184612752919061379c565b90508083612760919061388a565b9450600047905061277086612b57565b6000814761277e919061379c565b9050600087848361278f9190613830565b61279991906137ff565b90506127a58582612d6d565b600083476127b3919061379c565b90506127be81612e76565b5050505050505050506000602160166101000a81548160ff021916908315150217905550565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561283b57600080fd5b600d5481111561284a57600080fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166128c4576103e8601860030154826128af9190613830565b6128b991906137ff565b6011819055506128cd565b60006011819055505b6128db838383601154612978565b505050565b6103e8601254826128f19190613830565b6128fb91906137ff565b6011819055506000601154111561291f5761291a838383601154612978565b61292b565b61292a838383612214565b5b505050565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600060115483612988919061379c565b90506129de8584600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129d9919061379c565b612930565b612a323083600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a2d919061388a565b612930565b612a868482600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a81919061388a565b612930565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ae39190613366565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b489190613366565b60405180910390a35050505050565b6000600267ffffffffffffffff811115612b7457612b73613af8565b5b604051908082528060200260200182016040528015612ba25781602001602082028036833780820191505090505b5090503081600081518110612bba57612bb9613b27565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c859190613b6b565b81600181518110612c9957612c98613b27565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612d37959493929190613bd3565b600060405180830381600087803b158015612d5157600080fd5b505af1158015612d65573d6000803e3d6000fd5b505050505050565b6001602160156101000a81548160ff021916908315150217905550602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612e1196959493929190613c2d565b60606040518083038185885af1158015612e2f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e549190613c8e565b5050506000602160156101000a81548160ff0219169083151502179055505050565b6000601860020154601460020154612e8e919061388a565b90506000601860010154601460010154612ea8919061388a565b905060008183612eb8919061388a565b90506000818486612ec99190613830565b612ed391906137ff565b90506000828487612ee49190613830565b612eee91906137ff565b90506000811115612fce576000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051612f4590613d12565b600060405180830381858888f193505050503d8060008114612f83576040519150601f19603f3d011682016040523d82523d6000602084013e612f88565b606091505b5050905080612fcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fc390613d73565b60405180910390fd5b505b60008211156130ac576000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836175309060405161302390613d12565b600060405180830381858888f193505050503d8060008114613061576040519150601f19603f3d011682016040523d82523d6000602084013e613066565b606091505b50509050806130aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130a190613d73565b60405180910390fd5b505b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156130ee5780820151818401526020810190506130d3565b838111156130fd576000848401525b50505050565b6000601f19601f8301169050919050565b600061311f826130b4565b61312981856130bf565b93506131398185602086016130d0565b61314281613103565b840191505092915050565b600060208201905081810360008301526131678184613114565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061319f82613174565b9050919050565b6131af81613194565b81146131ba57600080fd5b50565b6000813590506131cc816131a6565b92915050565b6000819050919050565b6131e5816131d2565b81146131f057600080fd5b50565b600081359050613202816131dc565b92915050565b6000806040838503121561321f5761321e61316f565b5b600061322d858286016131bd565b925050602061323e858286016131f3565b9150509250929050565b60008115159050919050565b61325d81613248565b82525050565b60006020820190506132786000830184613254565b92915050565b61328781613248565b811461329257600080fd5b50565b6000813590506132a48161327e565b92915050565b600080604083850312156132c1576132c061316f565b5b60006132cf858286016131bd565b92505060206132e085828601613295565b9150509250929050565b600060208284031215613300576132ff61316f565b5b600061330e848285016131bd565b91505092915050565b6000806040838503121561332e5761332d61316f565b5b600061333c858286016131f3565b925050602061334d858286016131f3565b9150509250929050565b613360816131d2565b82525050565b600060208201905061337b6000830184613357565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6133b681613194565b82525050565b60006133c883836133ad565b60208301905092915050565b6000602082019050919050565b60006133ec82613381565b6133f6818561338c565b93506134018361339d565b8060005b8381101561343257815161341988826133bc565b9750613424836133d4565b925050600181019050613405565b5085935050505092915050565b6000602082019050818103600083015261345981846133e1565b905092915050565b60008060006060848603121561347a5761347961316f565b5b6000613488868287016131bd565b9350506020613499868287016131bd565b92505060406134aa868287016131f3565b9150509250925092565b60006080820190506134c96000830187613357565b6134d66020830186613357565b6134e36040830185613357565b6134f06060830184613357565b95945050505050565b61350281613194565b82525050565b600060208201905061351d60008301846134f9565b92915050565b600060ff82169050919050565b61353981613523565b82525050565b60006020820190506135546000830184613530565b92915050565b6000806000606084860312156135735761357261316f565b5b6000613581868287016131f3565b9350506020613592868287016131f3565b92505060406135a3868287016131f3565b9150509250925092565b6000602082840312156135c3576135c261316f565b5b60006135d1848285016131f3565b91505092915050565b6000602082840312156135f0576135ef61316f565b5b60006135fe84828501613295565b91505092915050565b6000806040838503121561361e5761361d61316f565b5b600061362c85828601613295565b925050602061363d858286016131f3565b9150509250929050565b6000806040838503121561365e5761365d61316f565b5b600061366c858286016131bd565b925050602061367d858286016131bd565b9150509250929050565b6000819050919050565b60006136ac6136a76136a284613174565b613687565b613174565b9050919050565b60006136be82613691565b9050919050565b60006136d0826136b3565b9050919050565b6136e0816136c5565b82525050565b60006020820190506136fb60008301846136d7565b92915050565b7f21594f5520415245204e4f5420544845204f574e455200000000000000000000600082015250565b60006137376016836130bf565b915061374282613701565b602082019050919050565b600060208201905081810360008301526137668161372a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006137a7826131d2565b91506137b2836131d2565b9250828210156137c5576137c461376d565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061380a826131d2565b9150613815836131d2565b925082613825576138246137d0565b5b828204905092915050565b600061383b826131d2565b9150613846836131d2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561387f5761387e61376d565b5b828202905092915050565b6000613895826131d2565b91506138a0836131d2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138d5576138d461376d565b5b828201905092915050565b6000815190506138ef816131dc565b92915050565b60006020828403121561390b5761390a61316f565b5b6000613919848285016138e0565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061397e6026836130bf565b915061398982613922565b604082019050919050565b600060208201905081810360008301526139ad81613971565b9050919050565b7f43616e6e6f7420626520616464726573732830292e0000000000000000000000600082015250565b60006139ea6015836130bf565b91506139f5826139b4565b602082019050919050565b60006020820190508181036000830152613a19816139dd565b9050919050565b7f546f74616c20616d6f756e74206578636565642077616c6c6574206c696d6974600082015250565b6000613a566020836130bf565b9150613a6182613a20565b602082019050919050565b60006020820190508181036000830152613a8581613a49565b9050919050565b7f4275792065786365656473206c696d6974000000000000000000000000000000600082015250565b6000613ac26011836130bf565b9150613acd82613a8c565b602082019050919050565b60006020820190508181036000830152613af181613ab5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613b65816131a6565b92915050565b600060208284031215613b8157613b8061316f565b5b6000613b8f84828501613b56565b91505092915050565b6000819050919050565b6000613bbd613bb8613bb384613b98565b613687565b6131d2565b9050919050565b613bcd81613ba2565b82525050565b600060a082019050613be86000830188613357565b613bf56020830187613bc4565b8181036040830152613c0781866133e1565b9050613c1660608301856134f9565b613c236080830184613357565b9695505050505050565b600060c082019050613c4260008301896134f9565b613c4f6020830188613357565b613c5c6040830187613bc4565b613c696060830186613bc4565b613c7660808301856134f9565b613c8360a0830184613357565b979650505050505050565b600080600060608486031215613ca757613ca661316f565b5b6000613cb5868287016138e0565b9350506020613cc6868287016138e0565b9250506040613cd7868287016138e0565b9150509250925092565b600081905092915050565b50565b6000613cfc600083613ce1565b9150613d0782613cec565b600082019050919050565b6000613d1d82613cef565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b6000613d5d601e836130bf565b9150613d6882613d27565b602082019050919050565b60006020820190508181036000830152613d8c81613d50565b905091905056fea2646970667358221220e51c12c07f461e80a0b895074242f0a19887d8e1d37e2802e9b694dc7dd0953264736f6c634300080a0033

Deployed Bytecode Sourcemap

4234:15195:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18153:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18571:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8470:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4406:54;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11488:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17883:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11095:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18970:456;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10950:136;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5706:22;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;5738:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2163:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17977:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10556:171;;;;;;;;;;;;;:::i;:::-;;5679:20;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;8341:120;;;;;;;;;;;;;:::i;:::-;;7821:511;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8822:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6238:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4990;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9426:360;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11203:103;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6071:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6385:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18323:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2526:146;;;;;;;;;;;;;:::i;:::-;;4303:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10444:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10171:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18239:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9857:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8607:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18063:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10736:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6123:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6209:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18796:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9003:352;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4951:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11315:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9985:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18430:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4913:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10285:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5827:72;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2275:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6178:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18153:80;18201:13;18225:5;;;;;;;;;;;;;;;;;18218:12;;18153:80;:::o;18571:216::-;18646:4;18698:6;18663:11;:23;18675:10;18663:23;;;;;;;;;;;;;;;:32;18687:7;18663:32;;;;;;;;;;;;;;;:41;;;;18741:7;18720:37;;18729:10;18720:37;;;18750:6;18720:37;;;;;;:::i;:::-;;;;;;;;18775:4;18768:11;;18571:216;;;;:::o;8470:128::-;2097:19;2105:10;2097:7;:19::i;:::-;2089:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;8583:7:::1;8563:10;:17;8574:5;8563:17;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;8470:128:::0;;:::o;4406:54::-;;;;;;;;;;;;;;;;;;;;;;:::o;11488:150::-;11568:4;11624:6;11592:29;11612:8;11592:19;:29::i;:::-;:38;11585:45;;11488:150;;;;:::o;17883:88::-;17938:7;17956:12;;17949:19;;17883:88;:::o;11095:99::-;11141:16;11176:10;11169:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11095:99;:::o;18970:456::-;19068:4;19085:18;19106:11;:19;19118:6;19106:19;;;;;;;;;;;;;;;:31;19126:10;19106:31;;;;;;;;;;;;;;;;19085:52;;19170:6;19156:10;:20;;19148:29;;;;;;19230:17;19195:11;:19;19207:6;19195:19;;;;;;;;;;;;;;;:31;19215:10;19195:31;;;;;;;;;;;;;;;;:52;19191:159;;19332:6;19298:11;:19;19310:6;19298:19;;;;;;;;;;;;;;;:31;19318:10;19298:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;19264:11;:19;19276:6;19264:19;;;;;;;;;;;;;;;:31;19284:10;19264:31;;;;;;;;;;;;;;;:74;;;;19191:159;19360:36;19370:6;19378:9;19389:6;19360:9;:36::i;:::-;19414:4;19407:11;;;18970:456;;;;;:::o;10950:136::-;11003:7;11063:15;6019:42;11063:9;:15::i;:::-;11045;5938:42;11045:9;:15::i;:::-;11030:12;;:30;;;;:::i;:::-;:48;;;;:::i;:::-;11023:55;;10950:136;:::o;5706:22::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;5738:82::-;;;;;;;;;;;;;:::o;2163:103::-;2218:4;2253:5;;;;;;;;;;;2242:16;;:7;:16;;;2235:23;;2163:103;;;:::o;17977:80::-;18029:5;4790:2;18038:16;;17977:80;:::o;10556:171::-;2097:19;2105:10;2097:7;:19::i;:::-;2089:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;10615:26:::1;10644:21;10615:50;;10684:5;::::0;::::1;;;;;;;;10676:23;;:43;10700:18;10676:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10604:123;10556:171::o:0;5679:20::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;8341:120::-;2097:19;2105:10;2097:7;:19::i;:::-;2089:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;8449:4:::1;8418:28;;:35;;;;;;;;;;;;;;;;;;8341:120::o:0;7821:511::-;2097:19;2105:10;2097:7;:19::i;:::-;2089:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;7979:17:::1;7960:16;:36;;;;8054:16;;8047:4;8033:12;;:18;;;;:::i;:::-;:37;;;;:::i;:::-;8018:12;:52;;;;8103:18;8083:17;:38;;;;8178:17;;8171:4;8157:12;;:18;;;;:::i;:::-;:38;;;;:::i;:::-;8141:13;:54;;;;8229:20;8208:19;:41;;;;8305:19;;8298:4;8284:12;;:18;;;;:::i;:::-;:40;;;;:::i;:::-;8266:15;:58;;;;7821:511:::0;;;:::o;8822:111::-;2097:19;2105:10;2097:7;:19::i;:::-;2089:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;8919:6:::1;8901:15;:24;;;;8822:111:::0;:::o;6238:34::-;;;;;;;;;;;;;:::o;4990:::-;;;;:::o;9426:360::-;2097:19;2105:10;2097:7;:19::i;:::-;2089:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;9578:13:::1;9555:7;:20;;:36;;;;9625:13;9602:7;:20;;:36;;;;9672:13;9649:7;:20;;:36;;;;9758:7;:20;;;9735:7;:20;;;9712:7;:20;;;:43;;;;:::i;:::-;:66;;;;:::i;:::-;9696:7;:13;;:82;;;;9426:360:::0;;;:::o;11203:103::-;11255:7;11281:10;:17;;;;11274:24;;11203:103;:::o;6071:45::-;;;;;;;;;;;;;:::o;6385:30::-;;;;;;;;;;;;;:::o;18323:101::-;18389:7;18407:6;:15;18414:7;18407:15;;;;;;;;;;;;;;;;18400:22;;18323:101;;;:::o;2526:146::-;2097:19;2105:10;2097:7;:19::i;:::-;2089:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2632:1:::1;2596:39;;2617:5;::::0;::::1;;;;;;;;2596:39;;;;;;;;;;;;2662:1;2646:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2526:146::o:0;4303:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;10444:103::-;2097:19;2105:10;2097:7;:19::i;:::-;2089:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;10534:5:::1;10517:14;;:22;;;;;;;;;;;;;;;;;;10444:103:::0;:::o;10171:105::-;2097:19;2105:10;2097:7;:19::i;:::-;2089:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;10263:5:::1;10240:12;:20;10253:6;10240:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;10171:105:::0;:::o;18239:78::-;18291:7;18309:5;;;;;;;;;;;18302:12;;18239:78;:::o;9857:119::-;2097:19;2105:10;2097:7;:19::i;:::-;2089:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;9956:12:::1;9942:11;:26;;;;9857:119:::0;:::o;8607:206::-;2097:19;2105:10;2097:7;:19::i;:::-;2089:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;8729:8:::1;8715:11;;:22;;;;;;;;;;;;;;;;;;8786:19;8779:4;8764:12;;:19;;;;:::i;:::-;:41;;;;:::i;:::-;8748:13;:57;;;;8607:206:::0;;:::o;18063:84::-;18113:13;18137:7;;;;;;;;;;;;;;;;;18130:14;;18063:84;:::o;10736:206::-;2097:19;2105:10;2097:7;:19::i;:::-;2089:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;10805:24:::1;10838:6;10832:23;;;10864:4;10832:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10805:65;;10889:17;;;;;;;;;;;10881:35;;:53;10917:16;10881:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10794:148;10736:206:::0;:::o;6123:45::-;;;;;;;;;;;;;:::o;6209:19::-;;;;;;;;;;;;;:::o;18796:165::-;18874:4;18891:40;18901:10;18913:9;18924:6;18891:9;:40::i;:::-;18949:4;18942:11;;18796:165;;;;:::o;9003:352::-;2097:19;2105:10;2097:7;:19::i;:::-;2089:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;9153:13:::1;9131:6;:19;;:35;;;;9199:13;9177:6;:19;;:35;;;;9245:13;9223:6;:19;;:35;;;;9328:6;:19;;;9306:6;:19;;;9284:6;:19;;;:41;;;;:::i;:::-;:63;;;;:::i;:::-;9269:6;:12;;:78;;;;9003:352:::0;;;:::o;4951:32::-;;;;:::o;11315:164::-;11383:7;11448:22;:20;:22::i;:::-;11441:1;11422:15;11432:4;;;;;;;;;;;11422:9;:15::i;:::-;:21;;;;:::i;:::-;11410:8;:34;;;;:::i;:::-;:61;;;;:::i;:::-;11403:68;;11315:164;;;:::o;9985:177::-;2097:19;2105:10;2097:7;:19::i;:::-;2089:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;10103:10:::1;10083:17;;:30;;;;;;;;;;;;;;;;;;10144:10;10124:17;;:30;;;;;;;;;;;;;;;;;;9985:177:::0;;:::o;18430:132::-;18514:7;18532:11;:19;18544:6;18532:19;;;;;;;;;;;;;;;:28;18552:7;18532:28;;;;;;;;;;;;;;;;18525:35;;18430:132;;;;:::o;4913:31::-;;;;:::o;10285:150::-;2097:19;2105:10;2097:7;:19::i;:::-;2089:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;10389:4:::1;10358:22;:30;10381:6;10358:30;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;10423:4;10404:10;:18;10415:6;10404:18;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10285:150:::0;:::o;5827:72::-;;;;;;;;;;;;;:::o;2275:242::-;2097:19;2105:10;2097:7;:19::i;:::-;2089:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2384:1:::1;2364:22;;:8;:22;;;;2356:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2473:8;2445:37;;2466:5;::::0;::::1;;;;;;;;2445:37;;;;;;;;;;;;2501:8;2493:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;2275:242:::0;:::o;6178:24::-;;;;;;;;;;;;;:::o;11647:1201::-;11758:1;11742:18;;:6;:18;;;;:41;;;;;11781:1;11762:21;;:9;:21;;;;11742:41;11734:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11819:10;11830:22;:30;11853:6;11830:30;;;;;;;;;;;;;;;;;;;;;;;;;11819:41;;11871:11;11883:22;:33;11906:9;11883:33;;;;;;;;;;;;;;;;;;;;;;;;;11871:45;;11927:15;11943:10;:18;11954:6;11943:18;;;;;;;;;;;;;;;;;;;;;;;;;:41;;;;11963:10;:21;11974:9;11963:21;;;;;;;;;;;;;;;;;;;;;;;;;11943:41;:52;;;;11986:9;;;;;;;;;;;11943:52;11927:68;;12012:10;12009:832;;;12023:42;12041:6;12048:9;12058:6;12023:17;:42::i;:::-;12009:832;;;12091:28;;;;;;;;;;;12083:37;;;;;;12173:14;;;;;;;;;;;12170:660;;;12188:39;12203:6;12210:9;12220:6;12188:14;:39::i;:::-;12170:660;;;12277:5;12274:556;;;12283:35;12294:6;12301:9;12311:6;12283:10;:35::i;:::-;12274:556;;;12369:6;12366:464;;;12435:16;:14;:16::i;:::-;12431:35;;;12454:10;:8;:10::i;:::-;12431:35;12484:36;12496:6;12503:9;12513:6;12484:11;:36::i;:::-;12366:464;;;12603:12;:20;12616:6;12603:20;;;;;;;;;;;;;;;;;;;;;;;;;12602:21;:47;;;;;12626:12;:23;12639:9;12626:23;;;;;;;;;;;;;;;;;;;;;;;;;12625:24;12602:47;12594:56;;;;;;12706:15;;12698:6;12677:20;12687:9;12677;:20::i;:::-;:27;;;;:::i;:::-;:44;;12669:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;12777:37;12790:6;12797:9;12807:6;12777:12;:37::i;:::-;12366:464;12274:556;12170:660;12009:832;11723:1125;;;11647:1201;;;:::o;14356:257::-;14451:44;14466:6;14488;14473;:14;14480:6;14473:14;;;;;;;;;;;;;;;;:21;;;;:::i;:::-;14451:14;:44::i;:::-;14506:50;14521:9;14549:6;14531;:17;14538:9;14531:17;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;14506:14;:50::i;:::-;14588:9;14572:33;;14581:6;14572:33;;;14598:6;14572:33;;;;;;:::i;:::-;;;;;;;;14356:257;;;:::o;12857:378::-;12958:12;:23;12971:9;12958:23;;;;;;;;;;;;;;;;;;;;;;;;;12957:24;12949:33;;;;;;13011:12;;13001:6;:22;;12993:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;13077:3;13074:2;13067:6;:9;;;;:::i;:::-;:13;;;;:::i;:::-;13056:8;:24;;;;13115:4;13091:12;:23;13104:9;13091:23;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;13130:10;13154:9;13130:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13176:51;13194:6;13201:9;13211:6;13218:8;;13176:17;:51::i;:::-;12857:378;;;:::o;13244:468::-;13341:12;:23;13354:9;13341:23;;;;;;;;;;;;;;;;;;;;;;;;;13340:24;13332:33;;;;;;13394:12;;13384:6;:22;;13376:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;13476:15;;13468:6;13447:20;13457:9;13447;:20::i;:::-;:27;;;;:::i;:::-;:44;;13439:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;13543:12;:23;13556:9;13543:23;;;;;;;;;;;;;;;;;;;;;;;;;13539:103;;13609:4;13596:6;:12;;;13589:6;:19;;;;:::i;:::-;:24;;;;:::i;:::-;13578:8;:35;;;;13539:103;;;13641:1;13630:8;:12;;;;13539:103;13653:51;13671:6;13678:9;13688:6;13695:8;;13653:17;:51::i;:::-;13244:468;;;:::o;15210:183::-;15258:4;15296:6;;;;;;;;;;;15295:7;:35;;;;;15319:11;;;;;;;;;;;15295:35;:90;;;;;15372:13;;15347:6;:21;15362:4;15347:21;;;;;;;;;;;;;;;;:38;;15295:90;15275:110;;15210:183;:::o;15405:729::-;6523:4;6514:6;;:13;;;;;;;;;;;;;;;;;;15453:14:::1;15470:24;15488:4;15470:9;:24::i;:::-;15453:41;;15508:21;15599:6;:12;;;15583:7;:13;;;:28;;;;:::i;:::-;15561:6;:19;;;15538:7;:20;;;:42;;;;:::i;:::-;15530:6;:51;;;;:::i;:::-;:82;;;;:::i;:::-;15508:104;;15623:18;15649:13;15642:6;:20;;;;:::i;:::-;15623:39;;15673:16;15704:1;15690:13;:15;;;;:::i;:::-;15673:32;;15716:19;15750:8;15736:13;:22;;;;:::i;:::-;15716:42;;15787:11;15776:10;:22;;;;:::i;:::-;15769:29;;15809:14;15824:21;15809:36;;15856:25;15874:6;15856:17;:25::i;:::-;15892:14;15929:6;15907:21;:28;;;;:::i;:::-;15892:43;;15946:13;15981:6;15968:11;15961:6;:18;;;;:::i;:::-;15960:27;;;;:::i;:::-;15946:41;;15998:29;16012:8;16021:5;15998:13;:29::i;:::-;16038:20;16081:6;16059:21;:28;;;;:::i;:::-;16038:49;;16098:28;16113:12;16098:14;:28::i;:::-;15442:692;;;;;;;;;6559:5:::0;6550:6;;:14;;;;;;;;;;;;;;;;;;15405:729::o;13718:344::-;13816:12;:20;13829:6;13816:20;;;;;;;;;;;;;;;;;;;;;;;;;13815:21;13807:30;;;;;;13866:13;;13856:6;:23;;13848:32;;;;;;13895:12;:20;13908:6;13895:20;;;;;;;;;;;;;;;;;;;;;;;;;13891:101;;13959:4;13945:7;:13;;;13938:6;:20;;;;:::i;:::-;:25;;;;:::i;:::-;13927:8;:36;;;;13891:101;;;13991:1;13980:8;:12;;;;13891:101;14003:51;14021:6;14028:9;14038:6;14045:8;;14003:17;:51::i;:::-;13718:344;;;:::o;14071:276::-;14193:4;14181:11;;14172:6;:20;;;;:::i;:::-;:25;;;;:::i;:::-;14161:8;:36;;;;14223:1;14212:8;;:12;14208:132;;;14227:51;14245:6;14252:9;14262:6;14269:8;;14227:17;:51::i;:::-;14208:132;;;14296:42;14314:6;14321:9;14331:6;14296:17;:42::i;:::-;14208:132;14071:276;;;:::o;15086:115::-;15183:10;15165:6;:15;15172:7;15165:15;;;;;;;;;;;;;;;:28;;;;15086:115;;:::o;14622:455::-;14735:17;14762:8;;14755:6;:15;;;;:::i;:::-;14735:35;;14781:44;14796:6;14818;14803;:14;14810:6;14803:14;;;;;;;;;;;;;;;;:21;;;;:::i;:::-;14781:14;:44::i;:::-;14836:61;14859:4;14887:9;14865:6;:21;14880:4;14865:21;;;;;;;;;;;;;;;;:31;;;;:::i;:::-;14836:14;:61::i;:::-;14908:53;14923:9;14951;14933:6;:17;14940:9;14933:17;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;14908:14;:53::i;:::-;14993:9;14977:36;;14986:6;14977:36;;;15003:9;14977:36;;;;;;:::i;:::-;;;;;;;;15053:4;15029:40;;15038:6;15029:40;;;15059:9;15029:40;;;;;;:::i;:::-;;;;;;;;14724:353;14622:455;;;;:::o;17092:369::-;17154:21;17190:1;17176:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17154:38;;17221:4;17203;17208:1;17203:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17247:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17237:4;17242:1;17237:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17271:6;;;;;;;;;;;:57;;;17343:6;17364:1;17380:4;17407;17427:15;17271:182;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17143:318;17092:369;:::o;17470:341::-;17562:4;17552:9;;:14;;;;;;;;;;;;;;;;;;17577:6;;;;;;;;;;;:22;;;17607:9;17640:4;17660:12;17687:1;17703;17719:17;;;;;;;;;;;17751:15;17577:200;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17798:5;17788:9;;:15;;;;;;;;;;;;;;;;;;17470:341;;:::o;16143:940::-;16208:20;16254:7;:20;;;16232:6;:19;;;:42;;;;:::i;:::-;16208:67;;16286:20;16332:7;:20;;;16310:6;:19;;;:42;;;;:::i;:::-;16286:67;;16364:16;16399:12;16384;:27;;;;:::i;:::-;16364:48;;16426:26;16488:8;16471:12;16455;:29;;;;:::i;:::-;:42;;;;:::i;:::-;16426:71;;16508:26;16570:8;16553:12;16537;:29;;;;:::i;:::-;:42;;;;:::i;:::-;16508:71;;16617:1;16596:18;:22;16593:235;;;16631:21;16689:17;;;;;;;;;;;16681:31;;16720:18;16745:5;16681:74;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16630:125;;;16774:16;16766:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;16619:209;16593:235;16865:1;16844:18;:22;16841:235;;;16879:21;16937:17;;;;;;;;;;;16929:31;;16968:18;16993:5;16929:74;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16878:125;;;17022:16;17014:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;16867:209;16841:235;16197:886;;;;;16143:940;:::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:116::-;3564:21;3579:5;3564:21;:::i;:::-;3557:5;3554:32;3544:60;;3600:1;3597;3590:12;3544:60;3494:116;:::o;3616:133::-;3659:5;3697:6;3684:20;3675:29;;3713:30;3737:5;3713:30;:::i;:::-;3616:133;;;;:::o;3755:468::-;3820:6;3828;3877:2;3865:9;3856:7;3852:23;3848:32;3845:119;;;3883:79;;:::i;:::-;3845:119;4003:1;4028:53;4073:7;4064:6;4053:9;4049:22;4028:53;:::i;:::-;4018:63;;3974:117;4130:2;4156:50;4198:7;4189:6;4178:9;4174:22;4156:50;:::i;:::-;4146:60;;4101:115;3755:468;;;;;:::o;4229:329::-;4288:6;4337:2;4325:9;4316:7;4312:23;4308:32;4305:119;;;4343:79;;:::i;:::-;4305:119;4463:1;4488:53;4533:7;4524:6;4513:9;4509:22;4488:53;:::i;:::-;4478:63;;4434:117;4229:329;;;;:::o;4564:474::-;4632:6;4640;4689:2;4677:9;4668:7;4664:23;4660:32;4657:119;;;4695:79;;:::i;:::-;4657:119;4815:1;4840:53;4885:7;4876:6;4865:9;4861:22;4840:53;:::i;:::-;4830:63;;4786:117;4942:2;4968:53;5013:7;5004:6;4993:9;4989:22;4968:53;:::i;:::-;4958:63;;4913:118;4564:474;;;;;:::o;5044:118::-;5131:24;5149:5;5131:24;:::i;:::-;5126:3;5119:37;5044:118;;:::o;5168:222::-;5261:4;5299:2;5288:9;5284:18;5276:26;;5312:71;5380:1;5369:9;5365:17;5356:6;5312:71;:::i;:::-;5168:222;;;;:::o;5396:114::-;5463:6;5497:5;5491:12;5481:22;;5396:114;;;:::o;5516:184::-;5615:11;5649:6;5644:3;5637:19;5689:4;5684:3;5680:14;5665:29;;5516:184;;;;:::o;5706:132::-;5773:4;5796:3;5788:11;;5826:4;5821:3;5817:14;5809:22;;5706:132;;;:::o;5844:108::-;5921:24;5939:5;5921:24;:::i;:::-;5916:3;5909:37;5844:108;;:::o;5958:179::-;6027:10;6048:46;6090:3;6082:6;6048:46;:::i;:::-;6126:4;6121:3;6117:14;6103:28;;5958:179;;;;:::o;6143:113::-;6213:4;6245;6240:3;6236:14;6228:22;;6143:113;;;:::o;6292:732::-;6411:3;6440:54;6488:5;6440:54;:::i;:::-;6510:86;6589:6;6584:3;6510:86;:::i;:::-;6503:93;;6620:56;6670:5;6620:56;:::i;:::-;6699:7;6730:1;6715:284;6740:6;6737:1;6734:13;6715:284;;;6816:6;6810:13;6843:63;6902:3;6887:13;6843:63;:::i;:::-;6836:70;;6929:60;6982:6;6929:60;:::i;:::-;6919:70;;6775:224;6762:1;6759;6755:9;6750:14;;6715:284;;;6719:14;7015:3;7008:10;;6416:608;;;6292:732;;;;:::o;7030:373::-;7173:4;7211:2;7200:9;7196:18;7188:26;;7260:9;7254:4;7250:20;7246:1;7235:9;7231:17;7224:47;7288:108;7391:4;7382:6;7288:108;:::i;:::-;7280:116;;7030:373;;;;:::o;7409:619::-;7486:6;7494;7502;7551:2;7539:9;7530:7;7526:23;7522:32;7519:119;;;7557:79;;:::i;:::-;7519:119;7677:1;7702:53;7747:7;7738:6;7727:9;7723:22;7702:53;:::i;:::-;7692:63;;7648:117;7804:2;7830:53;7875:7;7866:6;7855:9;7851:22;7830:53;:::i;:::-;7820:63;;7775:118;7932:2;7958:53;8003:7;7994:6;7983:9;7979:22;7958:53;:::i;:::-;7948:63;;7903:118;7409:619;;;;;:::o;8034:553::-;8211:4;8249:3;8238:9;8234:19;8226:27;;8263:71;8331:1;8320:9;8316:17;8307:6;8263:71;:::i;:::-;8344:72;8412:2;8401:9;8397:18;8388:6;8344:72;:::i;:::-;8426;8494:2;8483:9;8479:18;8470:6;8426:72;:::i;:::-;8508;8576:2;8565:9;8561:18;8552:6;8508:72;:::i;:::-;8034:553;;;;;;;:::o;8593:118::-;8680:24;8698:5;8680:24;:::i;:::-;8675:3;8668:37;8593:118;;:::o;8717:222::-;8810:4;8848:2;8837:9;8833:18;8825:26;;8861:71;8929:1;8918:9;8914:17;8905:6;8861:71;:::i;:::-;8717:222;;;;:::o;8945:86::-;8980:7;9020:4;9013:5;9009:16;8998:27;;8945:86;;;:::o;9037:112::-;9120:22;9136:5;9120:22;:::i;:::-;9115:3;9108:35;9037:112;;:::o;9155:214::-;9244:4;9282:2;9271:9;9267:18;9259:26;;9295:67;9359:1;9348:9;9344:17;9335:6;9295:67;:::i;:::-;9155:214;;;;:::o;9375:619::-;9452:6;9460;9468;9517:2;9505:9;9496:7;9492:23;9488:32;9485:119;;;9523:79;;:::i;:::-;9485:119;9643:1;9668:53;9713:7;9704:6;9693:9;9689:22;9668:53;:::i;:::-;9658:63;;9614:117;9770:2;9796:53;9841:7;9832:6;9821:9;9817:22;9796:53;:::i;:::-;9786:63;;9741:118;9898:2;9924:53;9969:7;9960:6;9949:9;9945:22;9924:53;:::i;:::-;9914:63;;9869:118;9375:619;;;;;:::o;10000:329::-;10059:6;10108:2;10096:9;10087:7;10083:23;10079:32;10076:119;;;10114:79;;:::i;:::-;10076:119;10234:1;10259:53;10304:7;10295:6;10284:9;10280:22;10259:53;:::i;:::-;10249:63;;10205:117;10000:329;;;;:::o;10335:323::-;10391:6;10440:2;10428:9;10419:7;10415:23;10411:32;10408:119;;;10446:79;;:::i;:::-;10408:119;10566:1;10591:50;10633:7;10624:6;10613:9;10609:22;10591:50;:::i;:::-;10581:60;;10537:114;10335:323;;;;:::o;10664:468::-;10729:6;10737;10786:2;10774:9;10765:7;10761:23;10757:32;10754:119;;;10792:79;;:::i;:::-;10754:119;10912:1;10937:50;10979:7;10970:6;10959:9;10955:22;10937:50;:::i;:::-;10927:60;;10883:114;11036:2;11062:53;11107:7;11098:6;11087:9;11083:22;11062:53;:::i;:::-;11052:63;;11007:118;10664:468;;;;;:::o;11138:474::-;11206:6;11214;11263:2;11251:9;11242:7;11238:23;11234:32;11231:119;;;11269:79;;:::i;:::-;11231:119;11389:1;11414:53;11459:7;11450:6;11439:9;11435:22;11414:53;:::i;:::-;11404:63;;11360:117;11516:2;11542:53;11587:7;11578:6;11567:9;11563:22;11542:53;:::i;:::-;11532:63;;11487:118;11138:474;;;;;:::o;11618:60::-;11646:3;11667:5;11660:12;;11618:60;;;:::o;11684:142::-;11734:9;11767:53;11785:34;11794:24;11812:5;11794:24;:::i;:::-;11785:34;:::i;:::-;11767:53;:::i;:::-;11754:66;;11684:142;;;:::o;11832:126::-;11882:9;11915:37;11946:5;11915:37;:::i;:::-;11902:50;;11832:126;;;:::o;11964:144::-;12032:9;12065:37;12096:5;12065:37;:::i;:::-;12052:50;;11964:144;;;:::o;12114:167::-;12219:55;12268:5;12219:55;:::i;:::-;12214:3;12207:68;12114:167;;:::o;12287:258::-;12398:4;12436:2;12425:9;12421:18;12413:26;;12449:89;12535:1;12524:9;12520:17;12511:6;12449:89;:::i;:::-;12287:258;;;;:::o;12551:172::-;12691:24;12687:1;12679:6;12675:14;12668:48;12551:172;:::o;12729:366::-;12871:3;12892:67;12956:2;12951:3;12892:67;:::i;:::-;12885:74;;12968:93;13057:3;12968:93;:::i;:::-;13086:2;13081:3;13077:12;13070:19;;12729:366;;;:::o;13101:419::-;13267:4;13305:2;13294:9;13290:18;13282:26;;13354:9;13348:4;13344:20;13340:1;13329:9;13325:17;13318:47;13382:131;13508:4;13382:131;:::i;:::-;13374:139;;13101:419;;;:::o;13526:180::-;13574:77;13571:1;13564:88;13671:4;13668:1;13661:15;13695:4;13692:1;13685:15;13712:191;13752:4;13772:20;13790:1;13772:20;:::i;:::-;13767:25;;13806:20;13824:1;13806:20;:::i;:::-;13801:25;;13845:1;13842;13839:8;13836:34;;;13850:18;;:::i;:::-;13836:34;13895:1;13892;13888:9;13880:17;;13712:191;;;;:::o;13909:180::-;13957:77;13954:1;13947:88;14054:4;14051:1;14044:15;14078:4;14075:1;14068:15;14095:185;14135:1;14152:20;14170:1;14152:20;:::i;:::-;14147:25;;14186:20;14204:1;14186:20;:::i;:::-;14181:25;;14225:1;14215:35;;14230:18;;:::i;:::-;14215:35;14272:1;14269;14265:9;14260:14;;14095:185;;;;:::o;14286:348::-;14326:7;14349:20;14367:1;14349:20;:::i;:::-;14344:25;;14383:20;14401:1;14383:20;:::i;:::-;14378:25;;14571:1;14503:66;14499:74;14496:1;14493:81;14488:1;14481:9;14474:17;14470:105;14467:131;;;14578:18;;:::i;:::-;14467:131;14626:1;14623;14619:9;14608:20;;14286:348;;;;:::o;14640:305::-;14680:3;14699:20;14717:1;14699:20;:::i;:::-;14694:25;;14733:20;14751:1;14733:20;:::i;:::-;14728:25;;14887:1;14819:66;14815:74;14812:1;14809:81;14806:107;;;14893:18;;:::i;:::-;14806:107;14937:1;14934;14930:9;14923:16;;14640:305;;;;:::o;14951:143::-;15008:5;15039:6;15033:13;15024:22;;15055:33;15082:5;15055:33;:::i;:::-;14951:143;;;;:::o;15100:351::-;15170:6;15219:2;15207:9;15198:7;15194:23;15190:32;15187:119;;;15225:79;;:::i;:::-;15187:119;15345:1;15370:64;15426:7;15417:6;15406:9;15402:22;15370:64;:::i;:::-;15360:74;;15316:128;15100:351;;;;:::o;15457:225::-;15597:34;15593:1;15585:6;15581:14;15574:58;15666:8;15661:2;15653:6;15649:15;15642:33;15457:225;:::o;15688:366::-;15830:3;15851:67;15915:2;15910:3;15851:67;:::i;:::-;15844:74;;15927:93;16016:3;15927:93;:::i;:::-;16045:2;16040:3;16036:12;16029:19;;15688:366;;;:::o;16060:419::-;16226:4;16264:2;16253:9;16249:18;16241:26;;16313:9;16307:4;16303:20;16299:1;16288:9;16284:17;16277:47;16341:131;16467:4;16341:131;:::i;:::-;16333:139;;16060:419;;;:::o;16485:171::-;16625:23;16621:1;16613:6;16609:14;16602:47;16485:171;:::o;16662:366::-;16804:3;16825:67;16889:2;16884:3;16825:67;:::i;:::-;16818:74;;16901:93;16990:3;16901:93;:::i;:::-;17019:2;17014:3;17010:12;17003:19;;16662:366;;;:::o;17034:419::-;17200:4;17238:2;17227:9;17223:18;17215:26;;17287:9;17281:4;17277:20;17273:1;17262:9;17258:17;17251:47;17315:131;17441:4;17315:131;:::i;:::-;17307:139;;17034:419;;;:::o;17459:182::-;17599:34;17595:1;17587:6;17583:14;17576:58;17459:182;:::o;17647:366::-;17789:3;17810:67;17874:2;17869:3;17810:67;:::i;:::-;17803:74;;17886:93;17975:3;17886:93;:::i;:::-;18004:2;17999:3;17995:12;17988:19;;17647:366;;;:::o;18019:419::-;18185:4;18223:2;18212:9;18208:18;18200:26;;18272:9;18266:4;18262:20;18258:1;18247:9;18243:17;18236:47;18300:131;18426:4;18300:131;:::i;:::-;18292:139;;18019:419;;;:::o;18444:167::-;18584:19;18580:1;18572:6;18568:14;18561:43;18444:167;:::o;18617:366::-;18759:3;18780:67;18844:2;18839:3;18780:67;:::i;:::-;18773:74;;18856:93;18945:3;18856:93;:::i;:::-;18974:2;18969:3;18965:12;18958:19;;18617:366;;;:::o;18989:419::-;19155:4;19193:2;19182:9;19178:18;19170:26;;19242:9;19236:4;19232:20;19228:1;19217:9;19213:17;19206:47;19270:131;19396:4;19270:131;:::i;:::-;19262:139;;18989:419;;;:::o;19414:180::-;19462:77;19459:1;19452:88;19559:4;19556:1;19549:15;19583:4;19580:1;19573:15;19600:180;19648:77;19645:1;19638:88;19745:4;19742:1;19735:15;19769:4;19766:1;19759:15;19786:143;19843:5;19874:6;19868:13;19859:22;;19890:33;19917:5;19890:33;:::i;:::-;19786:143;;;;:::o;19935:351::-;20005:6;20054:2;20042:9;20033:7;20029:23;20025:32;20022:119;;;20060:79;;:::i;:::-;20022:119;20180:1;20205:64;20261:7;20252:6;20241:9;20237:22;20205:64;:::i;:::-;20195:74;;20151:128;19935:351;;;;:::o;20292:85::-;20337:7;20366:5;20355:16;;20292:85;;;:::o;20383:158::-;20441:9;20474:61;20492:42;20501:32;20527:5;20501:32;:::i;:::-;20492:42;:::i;:::-;20474:61;:::i;:::-;20461:74;;20383:158;;;:::o;20547:147::-;20642:45;20681:5;20642:45;:::i;:::-;20637:3;20630:58;20547:147;;:::o;20700:831::-;20963:4;21001:3;20990:9;20986:19;20978:27;;21015:71;21083:1;21072:9;21068:17;21059:6;21015:71;:::i;:::-;21096:80;21172:2;21161:9;21157:18;21148:6;21096:80;:::i;:::-;21223:9;21217:4;21213:20;21208:2;21197:9;21193:18;21186:48;21251:108;21354:4;21345:6;21251:108;:::i;:::-;21243:116;;21369:72;21437:2;21426:9;21422:18;21413:6;21369:72;:::i;:::-;21451:73;21519:3;21508:9;21504:19;21495:6;21451:73;:::i;:::-;20700:831;;;;;;;;:::o;21537:807::-;21786:4;21824:3;21813:9;21809:19;21801:27;;21838:71;21906:1;21895:9;21891:17;21882:6;21838:71;:::i;:::-;21919:72;21987:2;21976:9;21972:18;21963:6;21919:72;:::i;:::-;22001:80;22077:2;22066:9;22062:18;22053:6;22001:80;:::i;:::-;22091;22167:2;22156:9;22152:18;22143:6;22091:80;:::i;:::-;22181:73;22249:3;22238:9;22234:19;22225:6;22181:73;:::i;:::-;22264;22332:3;22321:9;22317:19;22308:6;22264:73;:::i;:::-;21537:807;;;;;;;;;:::o;22350:663::-;22438:6;22446;22454;22503:2;22491:9;22482:7;22478:23;22474:32;22471:119;;;22509:79;;:::i;:::-;22471:119;22629:1;22654:64;22710:7;22701:6;22690:9;22686:22;22654:64;:::i;:::-;22644:74;;22600:128;22767:2;22793:64;22849:7;22840:6;22829:9;22825:22;22793:64;:::i;:::-;22783:74;;22738:129;22906:2;22932:64;22988:7;22979:6;22968:9;22964:22;22932:64;:::i;:::-;22922:74;;22877:129;22350:663;;;;;:::o;23019:147::-;23120:11;23157:3;23142:18;;23019:147;;;;:::o;23172:114::-;;:::o;23292:398::-;23451:3;23472:83;23553:1;23548:3;23472:83;:::i;:::-;23465:90;;23564:93;23653:3;23564:93;:::i;:::-;23682:1;23677:3;23673:11;23666:18;;23292:398;;;:::o;23696:379::-;23880:3;23902:147;24045:3;23902:147;:::i;:::-;23895:154;;24066:3;24059:10;;23696:379;;;:::o;24081:180::-;24221:32;24217:1;24209:6;24205:14;24198:56;24081:180;:::o;24267:366::-;24409:3;24430:67;24494:2;24489:3;24430:67;:::i;:::-;24423:74;;24506:93;24595:3;24506:93;:::i;:::-;24624:2;24619:3;24615:12;24608:19;;24267:366;;;:::o;24639:419::-;24805:4;24843:2;24832:9;24828:18;24820:26;;24892:9;24886:4;24882:20;24878:1;24867:9;24863:17;24856:47;24920:131;25046:4;24920:131;:::i;:::-;24912:139;;24639:419;;;:::o

Swarm Source

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