ETH Price: $3,009.94 (-8.33%)

Token

World Cup DAO (WCDAO)
 

Overview

Max Total Supply

10,000,000 WCDAO

Holders

43

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
29,935.349790518932433505 WCDAO

Value
$0.00
0xe9f020d21e4e54735e5f628d92a2ddac7a27283a
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:
StandardERC20

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*

https://t.me/FIFADAO_PORT

Code/Launch done by @iron_eyez
Contact for solidity/deployment/launch services

*/


// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.15;

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

    function _msgData() internal view returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IERC20 {
  function totalSupply() external view returns (uint256);
  function decimals() external view returns (uint8);
  function symbol() external view returns (string memory);
  function name() external view returns (string memory);
  function getOwner() external view returns (address);
  function balanceOf(address account) external view returns (uint256);
  function transfer(address recipient, uint256 amount) external returns (bool);
  function allowance(address _owner, address spender) external view returns (uint256);
  function approve(address spender, uint256 amount) external returns (bool);
  function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    function factory() external view returns (address);
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    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;
}

contract StandardERC20 is Context, IERC20 {
    // Ownership moved to in-contract for customizability.
    address public _owner;

    mapping (address => uint256) private _tOwned;
    mapping (address => bool) lpPairs;
    uint256 private timeSinceLastPair = 0;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) private _liquidityHolders;
    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) public isExcludedFromMaxWalletRestrictions;
    mapping (address => bool) private _isblacklisted;
    mapping (address => uint256) private _transferDelay;
    mapping (address => bool) private _holderDelay;


    bool private sameBlockActive = false;
    mapping (address => uint256) private lastTrade;   

    bool private isInitialized = false;
    
    mapping (address => uint256) firstBuy;
    
    uint256 private startingSupply;

    string private _name;
    string private _symbol;
//==========================
    // FEES
    struct taxes {
    uint buyFee;
    uint sellFee;
    uint transferFee;
    }

    taxes public Fees = taxes(
    {buyFee: 700, sellFee: 700, transferFee: 0});
//==========================
    // Max Limits

    struct MaxLimits {
    uint maxBuy;
    uint maxSell;
    uint maxTransfer;
    }

    MaxLimits public maxFees = MaxLimits(
    {maxBuy: 1500, maxSell: 1500, maxTransfer: 1500});
//==========================    
    //Proportions of Taxes
    struct feeProportions {
    uint liquidity;
    uint developer;
    uint team;
    }

    feeProportions public Ratios = feeProportions(
    { liquidity: 10, developer: 40, team: 40});

    uint256 private constant masterTaxDivisor = 10000;
    uint256 private constant MAX = ~uint256(0);
    uint8 private _decimals;
 
    uint256 private _tTotal = startingSupply * 10**_decimals;
    uint256 private _tFeeTotal;

    IUniswapV2Router02 public dexRouter;
    address public lpPair;


    address constant private _routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD; // Receives tokens, deflates supply, increases price floor.
    
    address public _devWallet;
    address public _teamWallet;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = false;
    
    uint256 private maxTxPercent;
    uint256 private maxTxDivisor;
    uint256 private _maxTxAmount;
    uint256 private _liqAddedBlock;
    
    uint256 private maxWalletPercent;
    uint256 private maxWalletDivisor;
    uint256 private _maxWalletSize;

    uint256 private swapThreshold;
    uint256 private swapAmount;

    bool public _hasLiqBeenAdded = false;
    
    uint256 private _liqAddStatus = 0;
    uint256 private _liqAddBlock = 0;
    uint256 private _liqAddStamp = 0;
    uint256 private _initialLiquidityAmount = 0; // make constant

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender() || _devWallet == _msgSender(), "Caller != owner.");
        _;
    }
    
    constructor () {
        _owner = msg.sender;
    }

    receive() external payable {}

//===============================================================================================================
//===============================================================================================================
//===============================================================================================================
    // Ownable removed as a lib and added here to allow for custom transfers and recnouncements.
    // This allows for removal of ownership privelages from the owner once renounced or transferred.
    function owner() public view returns (address) {
        return _owner;
    }

    function transferOwner(address newOwner) external onlyOwner() {
        require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address.");
        require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address.");
        setExcludedFromFees(_owner, false);
        setExcludedFromFees(newOwner, true);
        
        if (_devWallet == payable(_owner))
            _devWallet = payable(newOwner);
        
        _allowances[_owner][newOwner] = balanceOf(_owner);
        if(balanceOf(_owner) > 0) {
            _transfer(_owner, newOwner, balanceOf(_owner));
        }
        
        _owner = newOwner;
        emit OwnershipTransferred(_owner, newOwner);
        
    }

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

    function totalSupply() external view override returns (uint256) { return _tTotal; }
    function decimals() external view override returns (uint8) { return _decimals; }
    function symbol() external view override returns (string memory) { return _symbol; }
    function name() external view override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner(); }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

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

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

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

    function _approve(address sender, address spender, uint256 amount) private {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

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

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

    function getFirstBuy(address account) public view returns (uint256) {
        return firstBuy[account];
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
        return true;
    }

    function isExcludedFromFees(address account) public view returns(bool) {
        return _isExcludedFromFees[account];
    }

    function openTrade() external onlyOwner {
        _liqAddStatus = 1;
    }
    
    function launch(string memory initName, string memory initSymbol, uint256 initSupply, address _devWall, address _teamWall, address[] memory presales, uint256[] memory tokenamount) external onlyOwner payable {
        require(!isInitialized, "can only run this once");
        require(presales.length == tokenamount.length, "arrays must be the same length");
        require(presales.length < 200, "Can only airdrop 200 wallets per txn due to gas limits"); // allows for airdrop + launch at the same exact time, reducing delays and reducing sniper input.
 
        require(_liqAddStatus == 0);
   
        _name = initName;
        _symbol = initSymbol;

        startingSupply = initSupply;
        _decimals = 18;
        _tTotal = startingSupply * 10**_decimals;

        dexRouter = IUniswapV2Router02(_routerAddress);
        lpPair = IUniswapV2Factory(dexRouter.factory()).createPair(dexRouter.WETH(), address(this));
        lpPairs[lpPair] = true;
        _allowances[address(this)][address(dexRouter)] = type(uint256).max;

        _devWallet = _devWall;
        _teamWallet = _teamWall;

        maxTxPercent = 74; // Max Transaction Amount: 100 = 1%
        maxTxDivisor = 10000;
        _maxTxAmount = (_tTotal * maxTxPercent) / maxTxDivisor;
        
        maxWalletPercent = 260; //Max Wallet 100: 1%
        maxWalletDivisor = 10000;
        _maxWalletSize = (_tTotal * maxWalletPercent) / maxWalletDivisor;
        
        swapThreshold = (_tTotal * 5) / 10_000;
        swapAmount = (_tTotal * 5) / 1_000;

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[_devWallet] = true;
        _isExcludedFromFees[_teamWallet] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[DEAD] = true;
        _liquidityHolders[owner()] = true;
        isExcludedFromMaxWalletRestrictions[owner()] = true;
        isExcludedFromMaxWalletRestrictions[_devWallet] = true;
        isExcludedFromMaxWalletRestrictions[_teamWallet] = true;
        isExcludedFromMaxWalletRestrictions[DEAD] = true;

        approve(_routerAddress, type(uint256).max);
        approve(owner(), type(uint256).max);

        isInitialized = true;
        _tOwned[owner()] = _tTotal;
        _approve(owner(), _routerAddress, _tTotal);
        emit Transfer(address(0), owner(), _tTotal);
 
        _approve(_owner, address(dexRouter), type(uint256).max);
        _approve(address(this), address(dexRouter), type(uint256).max);


        for(uint256 i = 0; i < presales.length; i++){
            address presale = presales[i];
            uint256 amount = tokenamount[i]*1e18;
            _transfer(_owner, presale, amount);
        }

        _transfer(_owner, address(this), balanceOf(_owner));

        dexRouter.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner(),
            block.timestamp
        );
        _liqAddStatus = 1;
        _liqAddedBlock = block.number;
        isInitialized = true;
    }

    function setExcludedFromFees(address account, bool enabled) public onlyOwner {
        _isExcludedFromFees[account] = enabled;
    }

    function excludeFromWalletRestrictions(address excludedAddress) public onlyOwner{
        isExcludedFromMaxWalletRestrictions[excludedAddress] = true;
    }

    function revokeExcludedFromWalletRestrictions(address excludedAddress) public onlyOwner{
        isExcludedFromMaxWalletRestrictions[excludedAddress] = false;
    }
    
    function setRatios(uint _liquidity, uint _developer, uint _team) external onlyOwner {
        require ( (_liquidity+_developer+_team) == 100, "ratios must equal 100");
        Ratios.liquidity = _liquidity;
        Ratios.developer = _developer;
        Ratios.team = _team;
        }

    function setTaxes(uint _buyFee, uint _sellFee, uint _transferFee) external onlyOwner {
        require(_buyFee <= maxFees.maxBuy
                && _sellFee <= maxFees.maxSell
                && _transferFee <= maxFees.maxTransfer,
                "Cannot exceed maximums.");
         Fees.buyFee = _buyFee;
         Fees.sellFee = _sellFee;
         Fees.transferFee = _transferFee;

    }

    function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }

    function setMaxTxPercent(uint percent, uint divisor) external onlyOwner {
        uint256 check = (_tTotal * percent) / divisor;
        require(check >= (_tTotal / 300), "Must be above 0.33~% of total supply.");
        _maxTxAmount = check;
    }

    function setMaxWalletSize(uint percent, uint divisor) external onlyOwner {
        uint256 check = (_tTotal * percent) / divisor;
        require(check >= (_tTotal / 300), "Must be above 0.33~% of total supply.");
        _maxWalletSize = check;

    }

    function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor) external onlyOwner {
        swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor;
        swapAmount = (_tTotal * amountPercent) / amountDivisor;
    }

    function setWallets(address payable developerWallet, address payable teamWallet) external onlyOwner {
        _devWallet = payable(developerWallet);
        _teamWallet = payable(teamWallet);
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }
     
    function setBlacklist(address[] memory blacklisted_, bool status_) public onlyOwner {
        require(block.number < _liqAddBlock + 300, "too late to blacklist");
        for (uint i = 0; i < blacklisted_.length; i++) {
            if (!lpPairs[blacklisted_[i]] && blacklisted_[i] != address(_routerAddress)) {
                _isblacklisted[blacklisted_[i]] = status_;
            }
        }
    }

    function _hasLimits(address from, address to) private view returns (bool) {
        return from != owner()
            && to != owner()
            && !_liquidityHolders[to]
            && !_liquidityHolders[from]
            && to != DEAD
            && to != address(0)
            && from != address(this);
    }

    function transferDelay(address from, address to, address orig) internal returns (bool) {
       bool oktoswap = true;
      if (lpPair == from) {  _transferDelay[to] = block.number;  _transferDelay[orig] = block.number;}
      else if (lpPair == to) {
             if (_transferDelay[from] >= block.number) { _holderDelay[from] = true; oktoswap = false;}
                 if (_holderDelay[from]) { oktoswap = false; }
                else if (lpPair != to && lpPair != from) { _transferDelay[from] = block.number; _transferDelay[to] = block.number; _transferDelay[orig] = block.number;}
            }
           return (oktoswap);
    }
    

    function _transfer(address from, address to, uint256 amount) internal returns (bool) {
        require(from != address(0), "ERC20: Zero address.");
        require(to != address(0), "ERC20: Zero address.");
        require(amount > 0, "Must >0.");
        require(!_isblacklisted[to] && !_isblacklisted[from],"unable to trade");
        if (_liqAddedBlock > block.number - 50) {
            bool oktoswap;
            address orig = tx.origin;
            oktoswap = transferDelay(from,to,orig);
            require(oktoswap, "transfer delay enabled");
        }
        if(_hasLimits(from, to)) {
            if (sameBlockActive) {
                if (lpPairs[from]){
                    require(lastTrade[to] != block.number);
                    lastTrade[to] = block.number;
                    } 
                else {
                    require(lastTrade[from] != block.number);
                    lastTrade[from] = block.number;
                    }
            }
            if(!(isExcludedFromMaxWalletRestrictions[from] || isExcludedFromMaxWalletRestrictions[to])) {
                if(lpPairs[from] || lpPairs[to]){
                require(amount <= _maxTxAmount, "Exceeds the maxTxAmount.");
                }
                if(to != _routerAddress && !lpPairs[to]) {
                    require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                }

            }
            
        }

        if (_tOwned[to] == 0) {
            firstBuy[to] = block.timestamp;
        }

        bool takeFee = true;
        if(_isExcludedFromFees[from] || _isExcludedFromFees[to]){
            takeFee = false;
        }

        if (lpPairs[to]) {
            if (!inSwapAndLiquify
                && swapAndLiquifyEnabled
            ) {
                uint256 contractTokenBalance = balanceOf(address(this));
                if (contractTokenBalance >= swapThreshold) {
                    if(contractTokenBalance >= swapAmount) { contractTokenBalance = swapAmount; }
                    swapAndLiquify(contractTokenBalance);
                }
            }      
        } 
        return _finalizeTransfer(from, to, amount, takeFee);
    }

    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        if (Ratios.liquidity + Ratios.developer == 0)
            return;
        uint256 toLiquify = ((contractTokenBalance * Ratios.liquidity) / (Ratios.liquidity + Ratios.developer + Ratios.team) ) / 2;

        uint256 toSwapForEth = contractTokenBalance - toLiquify;
        swapTokensForEth(toSwapForEth);

        uint256 currentBalance = address(this).balance;
        uint256 liquidityBalance = ((currentBalance * Ratios.liquidity) / (Ratios.liquidity + Ratios.developer + Ratios.team) ) / 2;


        if (toLiquify > 0) {
            addLiquidity(toLiquify, liquidityBalance);
            emit SwapAndLiquify(toLiquify, liquidityBalance, toLiquify);
        }
        
        currentBalance = address(this).balance;
        if (currentBalance > 0) {
            uint256 devETH = (currentBalance * Ratios.developer) / (Ratios.developer + Ratios.team);
            uint256 teamETH = (currentBalance * Ratios.team) / (Ratios.developer + Ratios.team);
    
            bool success = true;
            (success,) = address(_devWallet).call{value: devETH}("");
            (success,) = address(_teamWallet).call{value: teamETH}("");
        }
    }

    function swapTokensForEth(uint256 tokenAmount) internal {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        dexRouter.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner(),
            block.timestamp
        );
    }

    function _checkLiquidityAdd(address from, address to) private {
        require(!_hasLiqBeenAdded, "Liquidity already added and marked.");
        if (!_hasLimits(from, to) && to == lpPair) {
                _liqAddBlock = block.number;

            _liquidityHolders[from] = true;
            _hasLiqBeenAdded = true;
            _liqAddStamp = block.timestamp;

            swapAndLiquifyEnabled = true;
            emit SwapAndLiquifyEnabledUpdated(true);
        }
    }

    function airdropPresales(address[] memory wallets, uint256[] memory amountsInTokens) external onlyOwner {
        require(wallets.length == amountsInTokens.length, "arrays must be the same length");
        require(wallets.length < 200, "Can only airdrop 200 wallets per txn due to gas limits"); // allows for airdrop + launch at the same exact time, reducing delays and reducing sniper input.
        for(uint256 i = 0; i < wallets.length; i++){
            address wallet = wallets[i];
            uint256 amount = amountsInTokens[i]*1e18;
            _transfer(msg.sender, wallet, amount);
        }
    }

    function _finalizeTransfer(address from, address to, uint256 amount, bool takeFee) private returns (bool) {
        if (!_hasLiqBeenAdded) {
            _checkLiquidityAdd(from, to);
            if (!_hasLiqBeenAdded && _hasLimits(from, to)) {
                revert("Only owner can transfer at this time.");
            }
        } 
        _tOwned[from] -= amount;
        uint256 amountReceived = (takeFee) ? takeTaxes(from, to, amount) : amount; //A
        _tOwned[to] += amountReceived;

        emit Transfer(from, to, amountReceived);
        return true;
    }

    function takeTaxes(address from, address to, uint256 amount) internal returns (uint256) {
        uint256 currentFee;

        if (to == lpPair) {
            currentFee=Fees.sellFee;
            } 

        else if (from == lpPair) {currentFee = Fees.buyFee;} 

        else {currentFee = Fees.transferFee;}

        if (_hasLimits(from, to)){
            if (_liqAddStatus == 0 || _liqAddStatus != (1)) {
                revert();
            }
        }
        uint256 feeAmount = (amount * currentFee / masterTaxDivisor);
        _tOwned[address(this)] += (feeAmount);
        emit Transfer(from, address(this), feeAmount);
        return amount - feeAmount;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Fees","outputs":[{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"sellFee","type":"uint256"},{"internalType":"uint256","name":"transferFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Ratios","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"developer","type":"uint256"},{"internalType":"uint256","name":"team","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"},{"internalType":"uint256[]","name":"amountsInTokens","type":"uint256[]"}],"name":"airdropPresales","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"excludedAddress","type":"address"}],"name":"excludeFromWalletRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getFirstBuy","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":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxWalletRestrictions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"initName","type":"string"},{"internalType":"string","name":"initSymbol","type":"string"},{"internalType":"uint256","name":"initSupply","type":"uint256"},{"internalType":"address","name":"_devWall","type":"address"},{"internalType":"address","name":"_teamWall","type":"address"},{"internalType":"address[]","name":"presales","type":"address[]"},{"internalType":"uint256[]","name":"tokenamount","type":"uint256[]"}],"name":"launch","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxFees","outputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"},{"internalType":"uint256","name":"maxTransfer","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"excludedAddress","type":"address"}],"name":"revokeExcludedFromWalletRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"blacklisted_","type":"address[]"},{"internalType":"bool","name":"status_","type":"bool"}],"name":"setBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_developer","type":"uint256"},{"internalType":"uint256","name":"_team","type":"uint256"}],"name":"setRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdPercent","type":"uint256"},{"internalType":"uint256","name":"thresholdDivisor","type":"uint256"},{"internalType":"uint256","name":"amountPercent","type":"uint256"},{"internalType":"uint256","name":"amountDivisor","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"},{"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"developerWallet","type":"address"},{"internalType":"address payable","name":"teamWallet","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60006003819055600b805460ff19908116909155600d805490911690556102bc608081905260a081905260c082905260128190556013556014556105dc60e0819052610100819052610120819052601581905560168190556017556101a0604052600a610140819052602861016081905261018081905260188290556019819055601a55601b54620000979160ff909116906200020f565b600f54620000a6919062000227565b601c556021805460ff60a81b19169055602b805460ff191690556000602c819055602d819055602e819055602f55348015620000e157600080fd5b50600080546001600160a01b0319163317905562000249565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000151578160001904821115620001355762000135620000fa565b808516156200014357918102915b93841c939080029062000115565b509250929050565b6000826200016a5750600162000209565b81620001795750600062000209565b81600181146200019257600281146200019d57620001bd565b600191505062000209565b60ff841115620001b157620001b1620000fa565b50506001821b62000209565b5060208310610133831016604e8410600b8410161715620001e2575081810a62000209565b620001ee838362000110565b8060001904821115620002055762000205620000fa565b0290505b92915050565b60006200022060ff84168362000159565b9392505050565b6000816000190483118215151615620002445762000244620000fa565b500290565b61375f80620002596000396000f3fe6080604052600436106102765760003560e01c806361e435441161014f578063b2bdfa7b116100c1578063d3f6a1571161007a578063d3f6a1571461078d578063dd62ed3e146107ad578063e83e34b1146107f3578063e9dae5ed14610812578063fb201b1d14610832578063fb78680d1461084757600080fd5b8063b2bdfa7b146106ce578063b5f7bfa2146106ee578063bc1323e81461070d578063c49b9a801461072d578063cdfdb7dc1461074d578063ce8b79c91461076d57600080fd5b80638c7321ad116101135780638c7321ad146106135780638da5cb5b146105f557806395d89b4114610643578063a13ce2c614610658578063a457c2d71461068e578063a9059cbb146106ae57600080fd5b806361e435441461058b57806370a08231146105ab578063715018a6146105cb578063751039fc146105e0578063893d20e8146105f557600080fd5b806339509351116101e85780634a74bb02116101ac5780634a74bb02146104b75780634fb2e45d146104d85780634fbee193146104f857806350a8e01614610531578063571ac8b01461054b578063590ffdce1461056b57600080fd5b8063395093511461040a5780633aaa36e61461042a5780633f3cf56c146104645780634481265e14610484578063452ed4f11461049757600080fd5b806311a63e171161023a57806311a63e171461034957806318160ddd1461036957806323b872dd1461038857806326003957146103a8578063313ce567146103c857806337e294d5146103ea57600080fd5b806303fd2a451461028257806306fdde03146102b55780630758d924146102d7578063095ea7b3146102f75780630e85d1e31461032757600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b5061029861dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102c157600080fd5b506102ca610867565b6040516102ac9190612cdd565b3480156102e357600080fd5b50601e54610298906001600160a01b031681565b34801561030357600080fd5b50610317610312366004612d5a565b6108f9565b60405190151581526020016102ac565b34801561033357600080fd5b50610347610342366004612e75565b610910565b005b34801561035557600080fd5b50602054610298906001600160a01b031681565b34801561037557600080fd5b50601c545b6040519081526020016102ac565b34801561039457600080fd5b506103176103a3366004612ec3565b610ab5565b3480156103b457600080fd5b506103476103c3366004612f04565b610b2d565b3480156103d457600080fd5b50601b5460405160ff90911681526020016102ac565b3480156103f657600080fd5b50602154610298906001600160a01b031681565b34801561041657600080fd5b50610317610425366004612d5a565b610bbf565b34801561043657600080fd5b5060125460135460145461044992919083565b604080519384526020840192909252908201526060016102ac565b34801561047057600080fd5b5061034761047f366004612f04565b610bfb565b610347610492366004612ff1565b610c8d565b3480156104a357600080fd5b50601f54610298906001600160a01b031681565b3480156104c357600080fd5b5060215461031790600160a81b900460ff1681565b3480156104e457600080fd5b506103476104f33660046130c9565b6114ae565b34801561050457600080fd5b506103176105133660046130c9565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561053d57600080fd5b50602b546103179060ff1681565b34801561055757600080fd5b506103176105663660046130c9565b611651565b34801561057757600080fd5b506103476105863660046130e6565b61165f565b34801561059757600080fd5b506103476105a6366004613112565b6116c9565b3480156105b757600080fd5b5061037a6105c63660046130c9565b6117f6565b3480156105d757600080fd5b50610347611811565b3480156105ec57600080fd5b506103476118a5565b34801561060157600080fd5b506000546001600160a01b0316610298565b34801561061f57600080fd5b5061031761062e3660046130c9565b60076020526000908152604090205460ff1681565b34801561064f57600080fd5b506102ca6118f1565b34801561066457600080fd5b5061037a6106733660046130c9565b6001600160a01b03166000908152600e602052604090205490565b34801561069a57600080fd5b506103176106a9366004612d5a565b611900565b3480156106ba57600080fd5b506103176106c9366004612d5a565b611937565b3480156106da57600080fd5b50600054610298906001600160a01b031681565b3480156106fa57600080fd5b50601854601954601a5461044992919083565b34801561071957600080fd5b506103476107283660046130c9565b61194e565b34801561073957600080fd5b50610347610748366004613176565b6119ae565b34801561075957600080fd5b50610347610768366004613191565b611a45565b34801561077957600080fd5b506103476107883660046130c9565b611aee565b34801561079957600080fd5b506103476107a83660046131bd565b611b51565b3480156107b957600080fd5b5061037a6107c83660046131bd565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156107ff57600080fd5b5060155460165460175461044992919083565b34801561081e57600080fd5b5061034761082d366004613191565b611bbe565b34801561083e57600080fd5b50610347611c79565b34801561085357600080fd5b506103476108623660046131f6565b611cbf565b60606010805461087690613228565b80601f01602080910402602001604051908101604052809291908181526020018280546108a290613228565b80156108ef5780601f106108c4576101008083540402835291602001916108ef565b820191906000526020600020905b8154815290600101906020018083116108d257829003601f168201915b5050505050905090565b6000610906338484611d3d565b5060015b92915050565b6000546001600160a01b031633148061093357506020546001600160a01b031633145b6109585760405162461bcd60e51b815260040161094f90613262565b60405180910390fd5b602d546109679061012c6132a2565b43106109ad5760405162461bcd60e51b81526020600482015260156024820152741d1bdbc81b185d19481d1bc8189b1858dadb1a5cdd605a1b604482015260640161094f565b60005b8251811015610ab057600260008483815181106109cf576109cf6132ba565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff16158015610a425750737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316838281518110610a2e57610a2e6132ba565b60200260200101516001600160a01b031614155b15610a9e578160086000858481518110610a5e57610a5e6132ba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80610aa8816132d0565b9150506109b0565b505050565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610b1a576001600160a01b038416600090815260046020908152604080832033845290915281208054849290610b149084906132e9565b90915550505b610b25848484611e36565b949350505050565b6000546001600160a01b0316331480610b5057506020546001600160a01b031633145b610b6c5760405162461bcd60e51b815260040161094f90613262565b60008183601c54610b7d9190613300565b610b87919061331f565b905061012c601c54610b99919061331f565b811015610bb85760405162461bcd60e51b815260040161094f90613341565b6028555050565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610906918590610bf69086906132a2565b611d3d565b6000546001600160a01b0316331480610c1e57506020546001600160a01b031633145b610c3a5760405162461bcd60e51b815260040161094f90613262565b60008183601c54610c4b9190613300565b610c55919061331f565b905061012c601c54610c67919061331f565b811015610c865760405162461bcd60e51b815260040161094f90613341565b6024555050565b6000546001600160a01b0316331480610cb057506020546001600160a01b031633145b610ccc5760405162461bcd60e51b815260040161094f90613262565b600d5460ff1615610d185760405162461bcd60e51b815260206004820152601660248201527563616e206f6e6c792072756e2074686973206f6e636560501b604482015260640161094f565b8051825114610d695760405162461bcd60e51b815260206004820152601e60248201527f617272617973206d757374206265207468652073616d65206c656e6774680000604482015260640161094f565b60c8825110610d8a5760405162461bcd60e51b815260040161094f90613386565b602c5415610d9757600080fd5b6010610da38882613422565b506011610db08782613422565b50600f859055601b805460ff19166012908117909155610dd190600a6135c6565b600f54610dde9190613300565b601c55601e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610e45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6991906135d5565b6001600160a01b031663c9c65396601e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eee91906135d5565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015610f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5e91906135d5565b601f80546001600160a01b03199081166001600160a01b039384169081179092556000918252600260209081526040808420805460ff1916600117905530845260048252808420601e548616855282529092206000199055815481168784161790915560218054909116918516919091179055604a60228190556127106023819055601c549091610fee91613300565b610ff8919061331f565b60245561010460268190556127106027819055601c54909161101991613300565b611023919061331f565b602855601c5461271090611038906005613300565b611042919061331f565b602955601c546103e890611057906005613300565b611061919061331f565b602a5560016006600061107c6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055835482168152600690935281832080548516600190811790915560215490911683528183208054851682179055308352908220805484168217905561dead82527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e228054909316811790925560059061112a6000546001600160a01b031690565b6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760006111796000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905583548216815260079093528183208054851660019081179091556021549091168352908220805484168217905561dead9091527fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d8054909216179055611223737a250d5630b4cf539739df2c5dacb4c659f2488d6000196108f9565b506112416112396000546001600160a01b031690565b6000196108f9565b50600d805460ff19166001908117909155601c5490600061126a6000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020556112b66112996000546001600160a01b031690565b737a250d5630b4cf539739df2c5dacb4c659f2488d601c54611d3d565b6000546001600160a01b03166001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601c5460405161130991815260200190565b60405180910390a3600054601e54611330916001600160a01b039081169116600019611d3d565b601e5461134a9030906001600160a01b0316600019611d3d565b60005b82518110156113d357600083828151811061136a5761136a6132ba565b602002602001015190506000838381518110611388576113886132ba565b6020026020010151670de0b6b3a76400006113a39190613300565b6000549091506113bd906001600160a01b03168383611e36565b50505080806113cb906132d0565b91505061134d565b506000546113f3906001600160a01b0316306113ee826117f6565b611e36565b50601e546001600160a01b031663f305d7194730611410816117f6565b6000806114256000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401611447969594939291906135f2565b60606040518083038185885af1158015611465573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061148a919061362d565b50506001602c81905543602555600d805460ff191690911790555050505050505050565b6000546001600160a01b03163314806114d157506020546001600160a01b031633145b6114ed5760405162461bcd60e51b815260040161094f90613262565b6001600160a01b0381166115135760405162461bcd60e51b815260040161094f9061365b565b61deac196001600160a01b0382160161153e5760405162461bcd60e51b815260040161094f9061365b565b60008054611557916001600160a01b039091169061165f565b61156281600161165f565b6000546020546001600160a01b0391821691160361159657602080546001600160a01b0319166001600160a01b0383161790555b6000546115ab906001600160a01b03166117f6565b600080546001600160a01b0390811682526004602090815260408084208684168552909152822092909255805490916115e491166117f6565b111561160657600054611604906001600160a01b0316826113ee826117f6565b505b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b600061090a826000196108f9565b6000546001600160a01b031633148061168257506020546001600160a01b031633145b61169e5760405162461bcd60e51b815260040161094f90613262565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314806116ec57506020546001600160a01b031633145b6117085760405162461bcd60e51b815260040161094f90613262565b80518251146117595760405162461bcd60e51b815260206004820152601e60248201527f617272617973206d757374206265207468652073616d65206c656e6774680000604482015260640161094f565b60c882511061177a5760405162461bcd60e51b815260040161094f90613386565b60005b8251811015610ab057600083828151811061179a5761179a6132ba565b6020026020010151905060008383815181106117b8576117b86132ba565b6020026020010151670de0b6b3a76400006117d39190613300565b90506117e0338383611e36565b50505080806117ee906132d0565b91505061177d565b6001600160a01b031660009081526001602052604090205490565b6000546001600160a01b031633148061183457506020546001600160a01b031633145b6118505760405162461bcd60e51b815260040161094f90613262565b60008054611869916001600160a01b039091169061165f565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b03163314806118c857506020546001600160a01b031633145b6118e45760405162461bcd60e51b815260040161094f90613262565b601c546024819055602855565b60606011805461087690613228565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610906918590610bf69086906132e9565b6000611944338484611e36565b5060019392505050565b6000546001600160a01b031633148061197157506020546001600160a01b031633145b61198d5760405162461bcd60e51b815260040161094f90613262565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6000546001600160a01b03163314806119d157506020546001600160a01b031633145b6119ed5760405162461bcd60e51b815260040161094f90613262565b60218054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990611a3a90831515815260200190565b60405180910390a150565b6000546001600160a01b0316331480611a6857506020546001600160a01b031633145b611a845760405162461bcd60e51b815260040161094f90613262565b80611a8f83856132a2565b611a9991906132a2565b606414611ae05760405162461bcd60e51b81526020600482015260156024820152740726174696f73206d75737420657175616c2031303605c1b604482015260640161094f565b601892909255601955601a55565b6000546001600160a01b0316331480611b1157506020546001600160a01b031633145b611b2d5760405162461bcd60e51b815260040161094f90613262565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6000546001600160a01b0316331480611b7457506020546001600160a01b031633145b611b905760405162461bcd60e51b815260040161094f90613262565b602080546001600160a01b039384166001600160a01b03199182161790915560218054929093169116179055565b6000546001600160a01b0316331480611be157506020546001600160a01b031633145b611bfd5760405162461bcd60e51b815260040161094f90613262565b6015548311801590611c1157506016548211155b8015611c1f57506017548111155b611c6b5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e000000000000000000604482015260640161094f565b601292909255601355601455565b6000546001600160a01b0316331480611c9c57506020546001600160a01b031633145b611cb85760405162461bcd60e51b815260040161094f90613262565b6001602c55565b6000546001600160a01b0316331480611ce257506020546001600160a01b031633145b611cfe5760405162461bcd60e51b815260040161094f90613262565b8284601c54611d0d9190613300565b611d17919061331f565b602955601c548190611d2a908490613300565b611d34919061331f565b602a5550505050565b6001600160a01b038316611d895760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161094f565b6001600160a01b038216611dd55760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161094f565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611e855760405162461bcd60e51b815260206004820152601460248201527322a92199181d102d32b9379030b2323932b9b99760611b604482015260640161094f565b6001600160a01b038316611ed25760405162461bcd60e51b815260206004820152601460248201527322a92199181d102d32b9379030b2323932b9b99760611b604482015260640161094f565b60008211611f0d5760405162461bcd60e51b815260206004820152600860248201526726bab9ba101f181760c11b604482015260640161094f565b6001600160a01b03831660009081526008602052604090205460ff16158015611f4f57506001600160a01b03841660009081526008602052604090205460ff16155b611f8d5760405162461bcd60e51b815260206004820152600f60248201526e756e61626c6520746f20747261646560881b604482015260640161094f565b611f986032436132e9565b6025541115611ffa57600032611faf868683612357565b915081611ff75760405162461bcd60e51b81526020600482015260166024820152751d1c985b9cd9995c8819195b185e48195b98589b195960521b604482015260640161094f565b50505b612004848461248b565b1561224457600b5460ff16156120bb576001600160a01b03841660009081526002602052604090205460ff161561207a576001600160a01b0383166000908152600c602052604090205443900361205a57600080fd5b6001600160a01b0383166000908152600c602052604090204390556120bb565b6001600160a01b0384166000908152600c602052604090205443900361209f57600080fd5b6001600160a01b0384166000908152600c602052604090204390555b6001600160a01b03841660009081526007602052604090205460ff16806120fa57506001600160a01b03831660009081526007602052604090205460ff165b612244576001600160a01b03841660009081526002602052604090205460ff168061213d57506001600160a01b03831660009081526002602052604090205460ff165b15612194576024548211156121945760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e0000000000000000604482015260640161094f565b6001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d148015906121da57506001600160a01b03831660009081526002602052604090205460ff16155b1561224457602854826121ec856117f6565b6121f691906132a2565b11156122445760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161094f565b6001600160a01b038316600090815260016020526040812054900361227f576001600160a01b0383166000908152600e602052604090204290555b6001600160a01b03841660009081526006602052604090205460019060ff16806122c157506001600160a01b03841660009081526006602052604090205460ff165b156122ca575060005b6001600160a01b03841660009081526002602052604090205460ff161561234257602154600160a01b900460ff1615801561230e5750602154600160a81b900460ff165b1561234257600061231e306117f6565b9050602954811061234057602a5481106123375750602a545b61234081612549565b505b61234e85858584612792565b95945050505050565b601f546000906001906001600160a01b0380871691160361239e576001600160a01b0380851660009081526009602052604080822043908190559286168252902055610b25565b601f546001600160a01b03808616911603610b25576001600160a01b03851660009081526009602052604090205443116123f757506001600160a01b0384166000908152600a60205260408120805460ff191660011790555b6001600160a01b0385166000908152600a602052604090205460ff161561242057506000610b25565b601f546001600160a01b0385811691161480159061244c5750601f546001600160a01b03868116911614155b15610b25576001600160a01b03808616600090815260096020526040808220439081905587841683528183208190559286168252902055949350505050565b600080546001600160a01b038481169116148015906124b857506000546001600160a01b03838116911614155b80156124dd57506001600160a01b03821660009081526005602052604090205460ff16155b801561250257506001600160a01b03831660009081526005602052604090205460ff16155b801561251957506001600160a01b03821661dead14155b801561252d57506001600160a01b03821615155b801561254257506001600160a01b0383163014155b9392505050565b6021805460ff60a01b1916600160a01b17905560195460185461256c91906132a2565b1561278257601a54601954601854600092600292909161258c91906132a2565b61259691906132a2565b6018546125a39085613300565b6125ad919061331f565b6125b7919061331f565b905060006125c582846132e9565b90506125d0816128ef565b601a5460195460185447926000926002926125eb91906132a2565b6125f591906132a2565b6018546126029085613300565b61260c919061331f565b612616919061331f565b9050831561266a576126288482612a30565b60408051858152602081018390529081018590527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15b479150811561277d57601a54601954600091612685916132a2565b6019546126929085613300565b61269c919061331f565b601a546019549192506000916126b291906132a2565b601a546126bf9086613300565b6126c9919061331f565b6020546040519192506001916001600160a01b03909116908490600081818185875af1925050503d806000811461271c576040519150601f19603f3d011682016040523d82523d6000602084013e612721565b606091505b50506021546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114612771576040519150601f19603f3d011682016040523d82523d6000602084013e612776565b606091505b5050505050505b505050505b506021805460ff60a01b19169055565b602b5460009060ff1661281c576127a98585612ac5565b602b5460ff161580156127c157506127c1858561248b565b1561281c5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e736665722061742074686973206044820152643a34b6b29760d91b606482015260840161094f565b6001600160a01b038516600090815260016020526040812080548592906128449084906132e9565b9091555060009050826128575783612862565b612862868686612bd4565b6001600160a01b03861660009081526001602052604081208054929350839290919061288f9084906132a2565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128db91815260200190565b60405180910390a350600195945050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612924576129246132ba565b6001600160a01b03928316602091820292909201810191909152601e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561297d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a191906135d5565b816001815181106129b4576129b46132ba565b6001600160a01b039283166020918202929092010152601e5460405163791ac94760e01b815291169063791ac947906129fa9085906000908690309042906004016136b8565b600060405180830381600087803b158015612a1457600080fd5b505af1158015612a28573d6000803e3d6000fd5b505050505050565b601e546001600160a01b031663f305d719823085600080612a596000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401612a7b969594939291906135f2565b60606040518083038185885af1158015612a99573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612abe919061362d565b5050505050565b602b5460ff1615612b245760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b606482015260840161094f565b612b2e828261248b565b158015612b485750601f546001600160a01b038281169116145b15612bd05743602d556001600160a01b038216600090815260056020908152604091829020805460ff199081166001908117909255602b80549091168217905542602e556021805460ff60a81b1916600160a81b17905591519182527f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159910160405180910390a15b5050565b601f5460009081906001600160a01b0390811690851603612bf85750601354612c1c565b601f546001600160a01b0390811690861603612c175750601254612c1c565b506014545b612c26858561248b565b15612c4757602c541580612c3d5750602c54600114155b15612c4757600080fd5b6000612710612c568386613300565b612c60919061331f565b30600090815260016020526040812080549293508392909190612c849084906132a2565b909155505060405181815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3612cd381856132e9565b9695505050505050565b600060208083528351808285015260005b81811015612d0a57858101830151858201604001528201612cee565b81811115612d1c576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114612d4757600080fd5b50565b8035612d5581612d32565b919050565b60008060408385031215612d6d57600080fd5b8235612d7881612d32565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612dc557612dc5612d86565b604052919050565b600067ffffffffffffffff821115612de757612de7612d86565b5060051b60200190565b600082601f830112612e0257600080fd5b81356020612e17612e1283612dcd565b612d9c565b82815260059290921b84018101918181019086841115612e3657600080fd5b8286015b84811015612e5a578035612e4d81612d32565b8352918301918301612e3a565b509695505050505050565b80358015158114612d5557600080fd5b60008060408385031215612e8857600080fd5b823567ffffffffffffffff811115612e9f57600080fd5b612eab85828601612df1565b925050612eba60208401612e65565b90509250929050565b600080600060608486031215612ed857600080fd5b8335612ee381612d32565b92506020840135612ef381612d32565b929592945050506040919091013590565b60008060408385031215612f1757600080fd5b50508035926020909101359150565b600082601f830112612f3757600080fd5b813567ffffffffffffffff811115612f5157612f51612d86565b612f64601f8201601f1916602001612d9c565b818152846020838601011115612f7957600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112612fa757600080fd5b81356020612fb7612e1283612dcd565b82815260059290921b84018101918181019086841115612fd657600080fd5b8286015b84811015612e5a5780358352918301918301612fda565b600080600080600080600060e0888a03121561300c57600080fd5b873567ffffffffffffffff8082111561302457600080fd5b6130308b838c01612f26565b985060208a013591508082111561304657600080fd5b6130528b838c01612f26565b975060408a0135965061306760608b01612d4a565b955061307560808b01612d4a565b945060a08a013591508082111561308b57600080fd5b6130978b838c01612df1565b935060c08a01359150808211156130ad57600080fd5b506130ba8a828b01612f96565b91505092959891949750929550565b6000602082840312156130db57600080fd5b813561254281612d32565b600080604083850312156130f957600080fd5b823561310481612d32565b9150612eba60208401612e65565b6000806040838503121561312557600080fd5b823567ffffffffffffffff8082111561313d57600080fd5b61314986838701612df1565b9350602085013591508082111561315f57600080fd5b5061316c85828601612f96565b9150509250929050565b60006020828403121561318857600080fd5b61254282612e65565b6000806000606084860312156131a657600080fd5b505081359360208301359350604090920135919050565b600080604083850312156131d057600080fd5b82356131db81612d32565b915060208301356131eb81612d32565b809150509250929050565b6000806000806080858703121561320c57600080fd5b5050823594602084013594506040840135936060013592509050565b600181811c9082168061323c57607f821691505b60208210810361325c57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526010908201526f21b0b63632b910109e9037bbb732b91760811b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156132b5576132b561328c565b500190565b634e487b7160e01b600052603260045260246000fd5b6000600182016132e2576132e261328c565b5060010190565b6000828210156132fb576132fb61328c565b500390565b600081600019048311821515161561331a5761331a61328c565b500290565b60008261333c57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f4d7573742062652061626f766520302e33337e25206f6620746f74616c2073756040820152643838363c9760d91b606082015260800190565b60208082526036908201527f43616e206f6e6c792061697264726f70203230302077616c6c657473207065726040820152752074786e2064756520746f20676173206c696d69747360501b606082015260800190565b601f821115610ab057600081815260208120601f850160051c810160208610156134035750805b601f850160051c820191505b81811015612a285782815560010161340f565b815167ffffffffffffffff81111561343c5761343c612d86565b6134508161344a8454613228565b846133dc565b602080601f831160018114613485576000841561346d5750858301515b600019600386901b1c1916600185901b178555612a28565b600085815260208120601f198616915b828110156134b457888601518255948401946001909101908401613495565b50858210156134d25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600181815b8085111561351d5781600019048211156135035761350361328c565b8085161561351057918102915b93841c93908002906134e7565b509250929050565b6000826135345750600161090a565b816135415750600061090a565b816001811461355757600281146135615761357d565b600191505061090a565b60ff8411156135725761357261328c565b50506001821b61090a565b5060208310610133831016604e8410600b84101617156135a0575081810a61090a565b6135aa83836134e2565b80600019048211156135be576135be61328c565b029392505050565b600061254260ff841683613525565b6000602082840312156135e757600080fd5b815161254281612d32565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b60008060006060848603121561364257600080fd5b8351925060208401519150604084015190509250925092565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156137085784516001600160a01b0316835293830193918301916001016136e3565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212203905010a0b7176d84c26e720b107a2bc8fd4ea7eac88e13293249a75e79ba18564736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106102765760003560e01c806361e435441161014f578063b2bdfa7b116100c1578063d3f6a1571161007a578063d3f6a1571461078d578063dd62ed3e146107ad578063e83e34b1146107f3578063e9dae5ed14610812578063fb201b1d14610832578063fb78680d1461084757600080fd5b8063b2bdfa7b146106ce578063b5f7bfa2146106ee578063bc1323e81461070d578063c49b9a801461072d578063cdfdb7dc1461074d578063ce8b79c91461076d57600080fd5b80638c7321ad116101135780638c7321ad146106135780638da5cb5b146105f557806395d89b4114610643578063a13ce2c614610658578063a457c2d71461068e578063a9059cbb146106ae57600080fd5b806361e435441461058b57806370a08231146105ab578063715018a6146105cb578063751039fc146105e0578063893d20e8146105f557600080fd5b806339509351116101e85780634a74bb02116101ac5780634a74bb02146104b75780634fb2e45d146104d85780634fbee193146104f857806350a8e01614610531578063571ac8b01461054b578063590ffdce1461056b57600080fd5b8063395093511461040a5780633aaa36e61461042a5780633f3cf56c146104645780634481265e14610484578063452ed4f11461049757600080fd5b806311a63e171161023a57806311a63e171461034957806318160ddd1461036957806323b872dd1461038857806326003957146103a8578063313ce567146103c857806337e294d5146103ea57600080fd5b806303fd2a451461028257806306fdde03146102b55780630758d924146102d7578063095ea7b3146102f75780630e85d1e31461032757600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b5061029861dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102c157600080fd5b506102ca610867565b6040516102ac9190612cdd565b3480156102e357600080fd5b50601e54610298906001600160a01b031681565b34801561030357600080fd5b50610317610312366004612d5a565b6108f9565b60405190151581526020016102ac565b34801561033357600080fd5b50610347610342366004612e75565b610910565b005b34801561035557600080fd5b50602054610298906001600160a01b031681565b34801561037557600080fd5b50601c545b6040519081526020016102ac565b34801561039457600080fd5b506103176103a3366004612ec3565b610ab5565b3480156103b457600080fd5b506103476103c3366004612f04565b610b2d565b3480156103d457600080fd5b50601b5460405160ff90911681526020016102ac565b3480156103f657600080fd5b50602154610298906001600160a01b031681565b34801561041657600080fd5b50610317610425366004612d5a565b610bbf565b34801561043657600080fd5b5060125460135460145461044992919083565b604080519384526020840192909252908201526060016102ac565b34801561047057600080fd5b5061034761047f366004612f04565b610bfb565b610347610492366004612ff1565b610c8d565b3480156104a357600080fd5b50601f54610298906001600160a01b031681565b3480156104c357600080fd5b5060215461031790600160a81b900460ff1681565b3480156104e457600080fd5b506103476104f33660046130c9565b6114ae565b34801561050457600080fd5b506103176105133660046130c9565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561053d57600080fd5b50602b546103179060ff1681565b34801561055757600080fd5b506103176105663660046130c9565b611651565b34801561057757600080fd5b506103476105863660046130e6565b61165f565b34801561059757600080fd5b506103476105a6366004613112565b6116c9565b3480156105b757600080fd5b5061037a6105c63660046130c9565b6117f6565b3480156105d757600080fd5b50610347611811565b3480156105ec57600080fd5b506103476118a5565b34801561060157600080fd5b506000546001600160a01b0316610298565b34801561061f57600080fd5b5061031761062e3660046130c9565b60076020526000908152604090205460ff1681565b34801561064f57600080fd5b506102ca6118f1565b34801561066457600080fd5b5061037a6106733660046130c9565b6001600160a01b03166000908152600e602052604090205490565b34801561069a57600080fd5b506103176106a9366004612d5a565b611900565b3480156106ba57600080fd5b506103176106c9366004612d5a565b611937565b3480156106da57600080fd5b50600054610298906001600160a01b031681565b3480156106fa57600080fd5b50601854601954601a5461044992919083565b34801561071957600080fd5b506103476107283660046130c9565b61194e565b34801561073957600080fd5b50610347610748366004613176565b6119ae565b34801561075957600080fd5b50610347610768366004613191565b611a45565b34801561077957600080fd5b506103476107883660046130c9565b611aee565b34801561079957600080fd5b506103476107a83660046131bd565b611b51565b3480156107b957600080fd5b5061037a6107c83660046131bd565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156107ff57600080fd5b5060155460165460175461044992919083565b34801561081e57600080fd5b5061034761082d366004613191565b611bbe565b34801561083e57600080fd5b50610347611c79565b34801561085357600080fd5b506103476108623660046131f6565b611cbf565b60606010805461087690613228565b80601f01602080910402602001604051908101604052809291908181526020018280546108a290613228565b80156108ef5780601f106108c4576101008083540402835291602001916108ef565b820191906000526020600020905b8154815290600101906020018083116108d257829003601f168201915b5050505050905090565b6000610906338484611d3d565b5060015b92915050565b6000546001600160a01b031633148061093357506020546001600160a01b031633145b6109585760405162461bcd60e51b815260040161094f90613262565b60405180910390fd5b602d546109679061012c6132a2565b43106109ad5760405162461bcd60e51b81526020600482015260156024820152741d1bdbc81b185d19481d1bc8189b1858dadb1a5cdd605a1b604482015260640161094f565b60005b8251811015610ab057600260008483815181106109cf576109cf6132ba565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff16158015610a425750737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316838281518110610a2e57610a2e6132ba565b60200260200101516001600160a01b031614155b15610a9e578160086000858481518110610a5e57610a5e6132ba565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80610aa8816132d0565b9150506109b0565b505050565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610b1a576001600160a01b038416600090815260046020908152604080832033845290915281208054849290610b149084906132e9565b90915550505b610b25848484611e36565b949350505050565b6000546001600160a01b0316331480610b5057506020546001600160a01b031633145b610b6c5760405162461bcd60e51b815260040161094f90613262565b60008183601c54610b7d9190613300565b610b87919061331f565b905061012c601c54610b99919061331f565b811015610bb85760405162461bcd60e51b815260040161094f90613341565b6028555050565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610906918590610bf69086906132a2565b611d3d565b6000546001600160a01b0316331480610c1e57506020546001600160a01b031633145b610c3a5760405162461bcd60e51b815260040161094f90613262565b60008183601c54610c4b9190613300565b610c55919061331f565b905061012c601c54610c67919061331f565b811015610c865760405162461bcd60e51b815260040161094f90613341565b6024555050565b6000546001600160a01b0316331480610cb057506020546001600160a01b031633145b610ccc5760405162461bcd60e51b815260040161094f90613262565b600d5460ff1615610d185760405162461bcd60e51b815260206004820152601660248201527563616e206f6e6c792072756e2074686973206f6e636560501b604482015260640161094f565b8051825114610d695760405162461bcd60e51b815260206004820152601e60248201527f617272617973206d757374206265207468652073616d65206c656e6774680000604482015260640161094f565b60c8825110610d8a5760405162461bcd60e51b815260040161094f90613386565b602c5415610d9757600080fd5b6010610da38882613422565b506011610db08782613422565b50600f859055601b805460ff19166012908117909155610dd190600a6135c6565b600f54610dde9190613300565b601c55601e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610e45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6991906135d5565b6001600160a01b031663c9c65396601e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eee91906135d5565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015610f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5e91906135d5565b601f80546001600160a01b03199081166001600160a01b039384169081179092556000918252600260209081526040808420805460ff1916600117905530845260048252808420601e548616855282529092206000199055815481168784161790915560218054909116918516919091179055604a60228190556127106023819055601c549091610fee91613300565b610ff8919061331f565b60245561010460268190556127106027819055601c54909161101991613300565b611023919061331f565b602855601c5461271090611038906005613300565b611042919061331f565b602955601c546103e890611057906005613300565b611061919061331f565b602a5560016006600061107c6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055835482168152600690935281832080548516600190811790915560215490911683528183208054851682179055308352908220805484168217905561dead82527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e228054909316811790925560059061112a6000546001600160a01b031690565b6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760006111796000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905583548216815260079093528183208054851660019081179091556021549091168352908220805484168217905561dead9091527fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d8054909216179055611223737a250d5630b4cf539739df2c5dacb4c659f2488d6000196108f9565b506112416112396000546001600160a01b031690565b6000196108f9565b50600d805460ff19166001908117909155601c5490600061126a6000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020556112b66112996000546001600160a01b031690565b737a250d5630b4cf539739df2c5dacb4c659f2488d601c54611d3d565b6000546001600160a01b03166001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601c5460405161130991815260200190565b60405180910390a3600054601e54611330916001600160a01b039081169116600019611d3d565b601e5461134a9030906001600160a01b0316600019611d3d565b60005b82518110156113d357600083828151811061136a5761136a6132ba565b602002602001015190506000838381518110611388576113886132ba565b6020026020010151670de0b6b3a76400006113a39190613300565b6000549091506113bd906001600160a01b03168383611e36565b50505080806113cb906132d0565b91505061134d565b506000546113f3906001600160a01b0316306113ee826117f6565b611e36565b50601e546001600160a01b031663f305d7194730611410816117f6565b6000806114256000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401611447969594939291906135f2565b60606040518083038185885af1158015611465573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061148a919061362d565b50506001602c81905543602555600d805460ff191690911790555050505050505050565b6000546001600160a01b03163314806114d157506020546001600160a01b031633145b6114ed5760405162461bcd60e51b815260040161094f90613262565b6001600160a01b0381166115135760405162461bcd60e51b815260040161094f9061365b565b61deac196001600160a01b0382160161153e5760405162461bcd60e51b815260040161094f9061365b565b60008054611557916001600160a01b039091169061165f565b61156281600161165f565b6000546020546001600160a01b0391821691160361159657602080546001600160a01b0319166001600160a01b0383161790555b6000546115ab906001600160a01b03166117f6565b600080546001600160a01b0390811682526004602090815260408084208684168552909152822092909255805490916115e491166117f6565b111561160657600054611604906001600160a01b0316826113ee826117f6565b505b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b600061090a826000196108f9565b6000546001600160a01b031633148061168257506020546001600160a01b031633145b61169e5760405162461bcd60e51b815260040161094f90613262565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314806116ec57506020546001600160a01b031633145b6117085760405162461bcd60e51b815260040161094f90613262565b80518251146117595760405162461bcd60e51b815260206004820152601e60248201527f617272617973206d757374206265207468652073616d65206c656e6774680000604482015260640161094f565b60c882511061177a5760405162461bcd60e51b815260040161094f90613386565b60005b8251811015610ab057600083828151811061179a5761179a6132ba565b6020026020010151905060008383815181106117b8576117b86132ba565b6020026020010151670de0b6b3a76400006117d39190613300565b90506117e0338383611e36565b50505080806117ee906132d0565b91505061177d565b6001600160a01b031660009081526001602052604090205490565b6000546001600160a01b031633148061183457506020546001600160a01b031633145b6118505760405162461bcd60e51b815260040161094f90613262565b60008054611869916001600160a01b039091169061165f565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b03163314806118c857506020546001600160a01b031633145b6118e45760405162461bcd60e51b815260040161094f90613262565b601c546024819055602855565b60606011805461087690613228565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610906918590610bf69086906132e9565b6000611944338484611e36565b5060019392505050565b6000546001600160a01b031633148061197157506020546001600160a01b031633145b61198d5760405162461bcd60e51b815260040161094f90613262565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6000546001600160a01b03163314806119d157506020546001600160a01b031633145b6119ed5760405162461bcd60e51b815260040161094f90613262565b60218054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990611a3a90831515815260200190565b60405180910390a150565b6000546001600160a01b0316331480611a6857506020546001600160a01b031633145b611a845760405162461bcd60e51b815260040161094f90613262565b80611a8f83856132a2565b611a9991906132a2565b606414611ae05760405162461bcd60e51b81526020600482015260156024820152740726174696f73206d75737420657175616c2031303605c1b604482015260640161094f565b601892909255601955601a55565b6000546001600160a01b0316331480611b1157506020546001600160a01b031633145b611b2d5760405162461bcd60e51b815260040161094f90613262565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6000546001600160a01b0316331480611b7457506020546001600160a01b031633145b611b905760405162461bcd60e51b815260040161094f90613262565b602080546001600160a01b039384166001600160a01b03199182161790915560218054929093169116179055565b6000546001600160a01b0316331480611be157506020546001600160a01b031633145b611bfd5760405162461bcd60e51b815260040161094f90613262565b6015548311801590611c1157506016548211155b8015611c1f57506017548111155b611c6b5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e000000000000000000604482015260640161094f565b601292909255601355601455565b6000546001600160a01b0316331480611c9c57506020546001600160a01b031633145b611cb85760405162461bcd60e51b815260040161094f90613262565b6001602c55565b6000546001600160a01b0316331480611ce257506020546001600160a01b031633145b611cfe5760405162461bcd60e51b815260040161094f90613262565b8284601c54611d0d9190613300565b611d17919061331f565b602955601c548190611d2a908490613300565b611d34919061331f565b602a5550505050565b6001600160a01b038316611d895760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161094f565b6001600160a01b038216611dd55760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161094f565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611e855760405162461bcd60e51b815260206004820152601460248201527322a92199181d102d32b9379030b2323932b9b99760611b604482015260640161094f565b6001600160a01b038316611ed25760405162461bcd60e51b815260206004820152601460248201527322a92199181d102d32b9379030b2323932b9b99760611b604482015260640161094f565b60008211611f0d5760405162461bcd60e51b815260206004820152600860248201526726bab9ba101f181760c11b604482015260640161094f565b6001600160a01b03831660009081526008602052604090205460ff16158015611f4f57506001600160a01b03841660009081526008602052604090205460ff16155b611f8d5760405162461bcd60e51b815260206004820152600f60248201526e756e61626c6520746f20747261646560881b604482015260640161094f565b611f986032436132e9565b6025541115611ffa57600032611faf868683612357565b915081611ff75760405162461bcd60e51b81526020600482015260166024820152751d1c985b9cd9995c8819195b185e48195b98589b195960521b604482015260640161094f565b50505b612004848461248b565b1561224457600b5460ff16156120bb576001600160a01b03841660009081526002602052604090205460ff161561207a576001600160a01b0383166000908152600c602052604090205443900361205a57600080fd5b6001600160a01b0383166000908152600c602052604090204390556120bb565b6001600160a01b0384166000908152600c602052604090205443900361209f57600080fd5b6001600160a01b0384166000908152600c602052604090204390555b6001600160a01b03841660009081526007602052604090205460ff16806120fa57506001600160a01b03831660009081526007602052604090205460ff165b612244576001600160a01b03841660009081526002602052604090205460ff168061213d57506001600160a01b03831660009081526002602052604090205460ff165b15612194576024548211156121945760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e0000000000000000604482015260640161094f565b6001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d148015906121da57506001600160a01b03831660009081526002602052604090205460ff16155b1561224457602854826121ec856117f6565b6121f691906132a2565b11156122445760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161094f565b6001600160a01b038316600090815260016020526040812054900361227f576001600160a01b0383166000908152600e602052604090204290555b6001600160a01b03841660009081526006602052604090205460019060ff16806122c157506001600160a01b03841660009081526006602052604090205460ff165b156122ca575060005b6001600160a01b03841660009081526002602052604090205460ff161561234257602154600160a01b900460ff1615801561230e5750602154600160a81b900460ff165b1561234257600061231e306117f6565b9050602954811061234057602a5481106123375750602a545b61234081612549565b505b61234e85858584612792565b95945050505050565b601f546000906001906001600160a01b0380871691160361239e576001600160a01b0380851660009081526009602052604080822043908190559286168252902055610b25565b601f546001600160a01b03808616911603610b25576001600160a01b03851660009081526009602052604090205443116123f757506001600160a01b0384166000908152600a60205260408120805460ff191660011790555b6001600160a01b0385166000908152600a602052604090205460ff161561242057506000610b25565b601f546001600160a01b0385811691161480159061244c5750601f546001600160a01b03868116911614155b15610b25576001600160a01b03808616600090815260096020526040808220439081905587841683528183208190559286168252902055949350505050565b600080546001600160a01b038481169116148015906124b857506000546001600160a01b03838116911614155b80156124dd57506001600160a01b03821660009081526005602052604090205460ff16155b801561250257506001600160a01b03831660009081526005602052604090205460ff16155b801561251957506001600160a01b03821661dead14155b801561252d57506001600160a01b03821615155b801561254257506001600160a01b0383163014155b9392505050565b6021805460ff60a01b1916600160a01b17905560195460185461256c91906132a2565b1561278257601a54601954601854600092600292909161258c91906132a2565b61259691906132a2565b6018546125a39085613300565b6125ad919061331f565b6125b7919061331f565b905060006125c582846132e9565b90506125d0816128ef565b601a5460195460185447926000926002926125eb91906132a2565b6125f591906132a2565b6018546126029085613300565b61260c919061331f565b612616919061331f565b9050831561266a576126288482612a30565b60408051858152602081018390529081018590527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15b479150811561277d57601a54601954600091612685916132a2565b6019546126929085613300565b61269c919061331f565b601a546019549192506000916126b291906132a2565b601a546126bf9086613300565b6126c9919061331f565b6020546040519192506001916001600160a01b03909116908490600081818185875af1925050503d806000811461271c576040519150601f19603f3d011682016040523d82523d6000602084013e612721565b606091505b50506021546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114612771576040519150601f19603f3d011682016040523d82523d6000602084013e612776565b606091505b5050505050505b505050505b506021805460ff60a01b19169055565b602b5460009060ff1661281c576127a98585612ac5565b602b5460ff161580156127c157506127c1858561248b565b1561281c5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e736665722061742074686973206044820152643a34b6b29760d91b606482015260840161094f565b6001600160a01b038516600090815260016020526040812080548592906128449084906132e9565b9091555060009050826128575783612862565b612862868686612bd4565b6001600160a01b03861660009081526001602052604081208054929350839290919061288f9084906132a2565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128db91815260200190565b60405180910390a350600195945050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612924576129246132ba565b6001600160a01b03928316602091820292909201810191909152601e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561297d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a191906135d5565b816001815181106129b4576129b46132ba565b6001600160a01b039283166020918202929092010152601e5460405163791ac94760e01b815291169063791ac947906129fa9085906000908690309042906004016136b8565b600060405180830381600087803b158015612a1457600080fd5b505af1158015612a28573d6000803e3d6000fd5b505050505050565b601e546001600160a01b031663f305d719823085600080612a596000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401612a7b969594939291906135f2565b60606040518083038185885af1158015612a99573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612abe919061362d565b5050505050565b602b5460ff1615612b245760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b606482015260840161094f565b612b2e828261248b565b158015612b485750601f546001600160a01b038281169116145b15612bd05743602d556001600160a01b038216600090815260056020908152604091829020805460ff199081166001908117909255602b80549091168217905542602e556021805460ff60a81b1916600160a81b17905591519182527f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159910160405180910390a15b5050565b601f5460009081906001600160a01b0390811690851603612bf85750601354612c1c565b601f546001600160a01b0390811690861603612c175750601254612c1c565b506014545b612c26858561248b565b15612c4757602c541580612c3d5750602c54600114155b15612c4757600080fd5b6000612710612c568386613300565b612c60919061331f565b30600090815260016020526040812080549293508392909190612c849084906132a2565b909155505060405181815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3612cd381856132e9565b9695505050505050565b600060208083528351808285015260005b81811015612d0a57858101830151858201604001528201612cee565b81811115612d1c576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114612d4757600080fd5b50565b8035612d5581612d32565b919050565b60008060408385031215612d6d57600080fd5b8235612d7881612d32565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612dc557612dc5612d86565b604052919050565b600067ffffffffffffffff821115612de757612de7612d86565b5060051b60200190565b600082601f830112612e0257600080fd5b81356020612e17612e1283612dcd565b612d9c565b82815260059290921b84018101918181019086841115612e3657600080fd5b8286015b84811015612e5a578035612e4d81612d32565b8352918301918301612e3a565b509695505050505050565b80358015158114612d5557600080fd5b60008060408385031215612e8857600080fd5b823567ffffffffffffffff811115612e9f57600080fd5b612eab85828601612df1565b925050612eba60208401612e65565b90509250929050565b600080600060608486031215612ed857600080fd5b8335612ee381612d32565b92506020840135612ef381612d32565b929592945050506040919091013590565b60008060408385031215612f1757600080fd5b50508035926020909101359150565b600082601f830112612f3757600080fd5b813567ffffffffffffffff811115612f5157612f51612d86565b612f64601f8201601f1916602001612d9c565b818152846020838601011115612f7957600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112612fa757600080fd5b81356020612fb7612e1283612dcd565b82815260059290921b84018101918181019086841115612fd657600080fd5b8286015b84811015612e5a5780358352918301918301612fda565b600080600080600080600060e0888a03121561300c57600080fd5b873567ffffffffffffffff8082111561302457600080fd5b6130308b838c01612f26565b985060208a013591508082111561304657600080fd5b6130528b838c01612f26565b975060408a0135965061306760608b01612d4a565b955061307560808b01612d4a565b945060a08a013591508082111561308b57600080fd5b6130978b838c01612df1565b935060c08a01359150808211156130ad57600080fd5b506130ba8a828b01612f96565b91505092959891949750929550565b6000602082840312156130db57600080fd5b813561254281612d32565b600080604083850312156130f957600080fd5b823561310481612d32565b9150612eba60208401612e65565b6000806040838503121561312557600080fd5b823567ffffffffffffffff8082111561313d57600080fd5b61314986838701612df1565b9350602085013591508082111561315f57600080fd5b5061316c85828601612f96565b9150509250929050565b60006020828403121561318857600080fd5b61254282612e65565b6000806000606084860312156131a657600080fd5b505081359360208301359350604090920135919050565b600080604083850312156131d057600080fd5b82356131db81612d32565b915060208301356131eb81612d32565b809150509250929050565b6000806000806080858703121561320c57600080fd5b5050823594602084013594506040840135936060013592509050565b600181811c9082168061323c57607f821691505b60208210810361325c57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526010908201526f21b0b63632b910109e9037bbb732b91760811b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156132b5576132b561328c565b500190565b634e487b7160e01b600052603260045260246000fd5b6000600182016132e2576132e261328c565b5060010190565b6000828210156132fb576132fb61328c565b500390565b600081600019048311821515161561331a5761331a61328c565b500290565b60008261333c57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f4d7573742062652061626f766520302e33337e25206f6620746f74616c2073756040820152643838363c9760d91b606082015260800190565b60208082526036908201527f43616e206f6e6c792061697264726f70203230302077616c6c657473207065726040820152752074786e2064756520746f20676173206c696d69747360501b606082015260800190565b601f821115610ab057600081815260208120601f850160051c810160208610156134035750805b601f850160051c820191505b81811015612a285782815560010161340f565b815167ffffffffffffffff81111561343c5761343c612d86565b6134508161344a8454613228565b846133dc565b602080601f831160018114613485576000841561346d5750858301515b600019600386901b1c1916600185901b178555612a28565b600085815260208120601f198616915b828110156134b457888601518255948401946001909101908401613495565b50858210156134d25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600181815b8085111561351d5781600019048211156135035761350361328c565b8085161561351057918102915b93841c93908002906134e7565b509250929050565b6000826135345750600161090a565b816135415750600061090a565b816001811461355757600281146135615761357d565b600191505061090a565b60ff8411156135725761357261328c565b50506001821b61090a565b5060208310610133831016604e8410600b84101617156135a0575081810a61090a565b6135aa83836134e2565b80600019048211156135be576135be61328c565b029392505050565b600061254260ff841683613525565b6000602082840312156135e757600080fd5b815161254281612d32565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b60008060006060848603121561364257600080fd5b8351925060208401519150604084015190509250925092565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156137085784516001600160a01b0316835293830193918301916001016136e3565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212203905010a0b7176d84c26e720b107a2bc8fd4ea7eac88e13293249a75e79ba18564736f6c634300080f0033

Deployed Bytecode Sourcemap

3762:22071:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5896:73;;;;;;;;;;;;5927:42;5896:73;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;5896:73:0;;;;;;;;9688:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5725:35::-;;;;;;;;;;-1:-1:-1;5725:35:0;;;;-1:-1:-1;;;;;5725:35:0;;;10301:161;;;;;;;;;;-1:-1:-1;10301:161:0;;;;;:::i;:::-;;:::i;:::-;;;1818:14:1;;1811:22;1793:41;;1781:2;1766:18;10301:161:0;1653:187:1;17745:406:0;;;;;;;;;;-1:-1:-1;17745:406:0;;;;;:::i;:::-;;:::i;:::-;;6042:25;;;;;;;;;;-1:-1:-1;6042:25:0;;;;-1:-1:-1;;;;;6042:25:0;;;9423:83;;;;;;;;;;-1:-1:-1;9496:7:0;;9423:83;;;3919:25:1;;;3907:2;3892:18;9423:83:0;3773:177:1;11034:306:0;;;;;;;;;;-1:-1:-1;11034:306:0;;;;;:::i;:::-;;:::i;16791:257::-;;;;;;;;;;-1:-1:-1;16791:257:0;;;;;:::i;:::-;;:::i;9512:80::-;;;;;;;;;;-1:-1:-1;9580:9:0;;9512:80;;9580:9;;;;4811:36:1;;4799:2;4784:18;9512:80:0;4669:184:1;6074:26:0;;;;;;;;;;-1:-1:-1;6074:26:0;;;;-1:-1:-1;;;;;6074:26:0;;;11348:215;;;;;;;;;;-1:-1:-1;11348:215:0;;;;;:::i;:::-;;:::i;4902:76::-;;;;;;;;;;-1:-1:-1;4902:76:0;;;;;;;;;;;;;;;;5060:25:1;;;5116:2;5101:18;;5094:34;;;;5144:18;;;5137:34;5048:2;5033:18;4902:76:0;4858:319:1;16531:252:0;;;;;;;;;;-1:-1:-1;16531:252:0;;;;;:::i;:::-;;:::i;12025:3181::-;;;;;;:::i;:::-;;:::i;5767:21::-;;;;;;;;;;-1:-1:-1;5767:21:0;;;;-1:-1:-1;;;;;5767:21:0;;;6141:41;;;;;;;;;;-1:-1:-1;6141:41:0;;;;-1:-1:-1;;;6141:41:0;;;;;;8112:749;;;;;;;;;;-1:-1:-1;8112:749:0;;;;;:::i;:::-;;:::i;11804:125::-;;;;;;;;;;-1:-1:-1;11804:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;11893:28:0;11869:4;11893:28;;;:19;:28;;;;;;;;;11804:125;6531:36;;;;;;;;;;-1:-1:-1;6531:36:0;;;;;;;;10787:120;;;;;;;;;;-1:-1:-1;10787:120:0;;;;;:::i;:::-;;:::i;15214:134::-;;;;;;;;;;-1:-1:-1;15214:134:0;;;;;:::i;:::-;;:::i;23927:616::-;;;;;;;;;;-1:-1:-1;23927:616:0;;;;;:::i;:::-;;:::i;10001:117::-;;;;;;;;;;-1:-1:-1;10001:117:0;;;;;:::i;:::-;;:::i;8869:195::-;;;;;;;;;;;;;:::i;16404:119::-;;;;;;;;;;;;;:::i;9774:80::-;;;;;;;;;;-1:-1:-1;9826:7:0;8090:6;-1:-1:-1;;;;;8090:6:0;9774:80;;4232:68;;;;;;;;;;-1:-1:-1;4232:68:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9598:84;;;;;;;;;;;;;:::i;10915:111::-;;;;;;;;;;-1:-1:-1;10915:111:0;;;;;:::i;:::-;-1:-1:-1;;;;;11001:17:0;10974:7;11001:17;;;:8;:17;;;;;;;10915:111;11571:225;;;;;;;;;;-1:-1:-1;11571:225:0;;;;;:::i;:::-;;:::i;10126:167::-;;;;;;;;;;-1:-1:-1;10126:167:0;;;;;:::i;:::-;;:::i;3871:21::-;;;;;;;;;;-1:-1:-1;3871:21:0;;;;-1:-1:-1;;;;;3871:21:0;;;5386:94;;;;;;;;;;-1:-1:-1;5386:94:0;;;;;;;;;;;;15522:166;;;;;;;;;;-1:-1:-1;15522:166:0;;;;;:::i;:::-;;:::i;17561:171::-;;;;;;;;;;-1:-1:-1;17561:171:0;;;;;:::i;:::-;;:::i;15700:289::-;;;;;;;;;;-1:-1:-1;15700:289:0;;;;;:::i;:::-;;:::i;15356:158::-;;;;;;;;;;-1:-1:-1;15356:158:0;;;;;:::i;:::-;;:::i;17353:200::-;;;;;;;;;;-1:-1:-1;17353:200:0;;;;;:::i;:::-;;:::i;9860:133::-;;;;;;;;;;-1:-1:-1;9860:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9962:19:0;;;9944:7;9962:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9860:133;5129:92;;;;;;;;;;-1:-1:-1;5129:92:0;;;;;;;;;;;;15997:399;;;;;;;;;;-1:-1:-1;15997:399:0;;;;;:::i;:::-;;:::i;11937:76::-;;;;;;;;;;;;;:::i;17056:289::-;;;;;;;;;;-1:-1:-1;17056:289:0;;;;;:::i;:::-;;:::i;9688:80::-;9736:13;9760:5;9753:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9688:80;:::o;10301:161::-;10376:4;10393:39;314:10;10416:7;10425:6;10393:8;:39::i;:::-;-1:-1:-1;10450:4:0;10301:161;;;;;:::o;17745:406::-;7277:6;;-1:-1:-1;;;;;7277:6:0;314:10;7277:22;;:52;;-1:-1:-1;7303:10:0;;-1:-1:-1;;;;;7303:10:0;314;7303:26;7277:52;7269:81;;;;-1:-1:-1;;;7269:81:0;;;;;;;:::i;:::-;;;;;;;;;17863:12:::1;::::0;:18:::1;::::0;17878:3:::1;17863:18;:::i;:::-;17848:12;:33;17840:67;;;::::0;-1:-1:-1;;;17840:67:0;;11672:2:1;17840:67:0::1;::::0;::::1;11654:21:1::0;11711:2;11691:18;;;11684:30;-1:-1:-1;;;11730:18:1;;;11723:51;11791:18;;17840:67:0::1;11470:345:1::0;17840:67:0::1;17923:6;17918:226;17939:12;:19;17935:1;:23;17918:226;;;17985:7;:24;17993:12;18006:1;17993:15;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;17985:24:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;17985:24:0;;::::1;;17984:25;:71:::0;::::1;;;;5841:42;-1:-1:-1::0;;;;;18013:42:0::1;:12;18026:1;18013:15;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;18013:42:0::1;;;17984:71;17980:153;;;18110:7;18076:14;:31;18091:12;18104:1;18091:15;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;18076:31:0::1;-1:-1:-1::0;;;;;18076:31:0::1;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;17980:153;17960:3:::0;::::1;::::0;::::1;:::i;:::-;;;;17918:226;;;;17745:406:::0;;:::o;11034:306::-;-1:-1:-1;;;;;11155:19:0;;11134:4;11155:19;;;:11;:19;;;;;;;;11175:10;11155:31;;;;;;;;-1:-1:-1;;11155:52:0;11151:126;;-1:-1:-1;;;;;11224:19:0;;;;;;:11;:19;;;;;;;;11244:10;11224:31;;;;;;;:41;;11259:6;;11224:19;:41;;11259:6;;11224:41;:::i;:::-;;;;-1:-1:-1;;11151:126:0;11296:36;11306:6;11314:9;11325:6;11296:9;:36::i;:::-;11289:43;11034:306;-1:-1:-1;;;;11034:306:0:o;16791:257::-;7277:6;;-1:-1:-1;;;;;7277:6:0;314:10;7277:22;;:52;;-1:-1:-1;7303:10:0;;-1:-1:-1;;;;;7303:10:0;314;7303:26;7277:52;7269:81;;;;-1:-1:-1;;;7269:81:0;;;;;;;:::i;:::-;16875:13:::1;16913:7;16902;16892;;:17;;;;:::i;:::-;16891:29;;;;:::i;:::-;16875:45;;16959:3;16949:7;;:13;;;;:::i;:::-;16939:5;:24;;16931:74;;;;-1:-1:-1::0;;;16931:74:0::1;;;;;;;:::i;:::-;17016:14;:22:::0;-1:-1:-1;;16791:257:0:o;11348:215::-;314:10;11436:4;11485:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11485:34:0;;;;;;;;;;11436:4;;11453:80;;11476:7;;11485:47;;11522:10;;11485:47;:::i;:::-;11453:8;:80::i;16531:252::-;7277:6;;-1:-1:-1;;;;;7277:6:0;314:10;7277:22;;:52;;-1:-1:-1;7303:10:0;;-1:-1:-1;;;;;7303:10:0;314;7303:26;7277:52;7269:81;;;;-1:-1:-1;;;7269:81:0;;;;;;;:::i;:::-;16614:13:::1;16652:7;16641;16631;;:17;;;;:::i;:::-;16630:29;;;;:::i;:::-;16614:45;;16698:3;16688:7;;:13;;;;:::i;:::-;16678:5;:24;;16670:74;;;;-1:-1:-1::0;;;16670:74:0::1;;;;;;;:::i;:::-;16755:12;:20:::0;-1:-1:-1;;16531:252:0:o;12025:3181::-;7277:6;;-1:-1:-1;;;;;7277:6:0;314:10;7277:22;;:52;;-1:-1:-1;7303:10:0;;-1:-1:-1;;;;;7303:10:0;314;7303:26;7277:52;7269:81;;;;-1:-1:-1;;;7269:81:0;;;;;;;:::i;:::-;12252:13:::1;::::0;::::1;;12251:14;12243:49;;;::::0;-1:-1:-1;;;12243:49:0;;13225:2:1;12243:49:0::1;::::0;::::1;13207:21:1::0;13264:2;13244:18;;;13237:30;-1:-1:-1;;;13283:18:1;;;13276:52;13345:18;;12243:49:0::1;13023:346:1::0;12243:49:0::1;12330:11;:18;12311:8;:15;:37;12303:80;;;::::0;-1:-1:-1;;;12303:80:0;;13576:2:1;12303:80:0::1;::::0;::::1;13558:21:1::0;13615:2;13595:18;;;13588:30;13654:32;13634:18;;;13627:60;13704:18;;12303:80:0::1;13374:354:1::0;12303:80:0::1;12420:3;12402:8;:15;:21;12394:88;;;;-1:-1:-1::0;;;12394:88:0::1;;;;;;;:::i;:::-;12602:13;::::0;:18;12594:27:::1;;;::::0;::::1;;12637:5;:16;12645:8:::0;12637:5;:16:::1;:::i;:::-;-1:-1:-1::0;12664:7:0::1;:20;12674:10:::0;12664:7;:20:::1;:::i;:::-;-1:-1:-1::0;12697:14:0::1;:27:::0;;;12735:9:::1;:14:::0;;-1:-1:-1;;12735:14:0::1;12747:2;12735:14:::0;;::::1;::::0;;;12787:13:::1;::::0;:2:::1;:13;:::i;:::-;12770:14;;:30;;;;:::i;:::-;12760:7;:40:::0;12813:9:::1;:46:::0;;-1:-1:-1;;;;;;12813:46:0::1;5841:42;12813:46:::0;;::::1;::::0;;;12897:19:::1;::::0;;-1:-1:-1;;;12897:19:0;;;;:17:::1;::::0;:19:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;5841:42;12897:19:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12879:49:0::1;;12929:9;;;;;;;;;-1:-1:-1::0;;;;;12929:9:0::1;-1:-1:-1::0;;;;;12929:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12879:82;::::0;-1:-1:-1;;;;;;12879:82:0::1;::::0;;;;;;-1:-1:-1;;;;;18229:15:1;;;12879:82:0::1;::::0;::::1;18211:34:1::0;12955:4:0::1;18261:18:1::0;;;18254:43;18146:18;;12879:82:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12870:6;:91:::0;;-1:-1:-1;;;;;;12870:91:0;;::::1;-1:-1:-1::0;;;;;12870:91:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;12972:15:0;;;:7:::1;:15;::::0;;;;;;;:22;;-1:-1:-1;;12972:22:0::1;-1:-1:-1::0;12972:22:0::1;::::0;;13025:4:::1;13005:26:::0;;:11:::1;:26:::0;;;;;13040:9:::1;::::0;;::::1;13005:46:::0;;;;;;;-1:-1:-1;;13005:66:0;;13084:21;;;::::1;::::0;;::::1;;::::0;;;13116:11:::1;:23:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;13167:2:::1;13152:12;:17:::0;;;13231:5:::1;13216:12;:20:::0;;;13263:7:::1;::::0;13231:5;;13263:22:::1;::::0;::::1;:::i;:::-;13262:39;;;;:::i;:::-;13247:12;:54:::0;13341:3:::1;13322:16;:22:::0;;;13395:5:::1;13376:16;:24:::0;;;13429:7:::1;::::0;13395:5;;13429:26:::1;::::0;::::1;:::i;:::-;13428:47;;;;:::i;:::-;13411:14;:64:::0;13513:7:::1;::::0;13528:6:::1;::::0;13513:11:::1;::::0;13523:1:::1;13513:11;:::i;:::-;13512:22;;;;:::i;:::-;13496:13;:38:::0;13559:7:::1;::::0;13574:5:::1;::::0;13559:11:::1;::::0;13569:1:::1;13559:11;:::i;:::-;13558:21;;;;:::i;:::-;13545:10;:34:::0;13623:4:::1;13592:19;:28;13612:7;8063::::0;8090:6;-1:-1:-1;;;;;8090:6:0;;8025:79;13612:7:::1;-1:-1:-1::0;;;;;13592:28:0;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;13592:28:0;;;:35;;;::::1;;-1:-1:-1::0;;13592:35:0;;::::1;;::::0;;13658:10;;;::::1;13638:31:::0;;:19:::1;:31:::0;;;;;;:38;;;::::1;13592:35:::0;13638:38;;::::1;::::0;;;13707:11:::1;::::0;;;::::1;13687:32:::0;;;;;:39;;;::::1;::::0;::::1;::::0;;13765:4:::1;13737:34:::0;;;;;:41;;;::::1;::::0;::::1;::::0;;5927:42:::1;13789:25:::0;;;:32;;;;::::1;::::0;::::1;::::0;;;13832:17:::1;::::0;13850:7:::1;8063::::0;8090:6;-1:-1:-1;;;;;8090:6:0;;8025:79;13850:7:::1;-1:-1:-1::0;;;;;13832:26:0::1;-1:-1:-1::0;;;;;13832:26:0::1;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;13923:4;13876:35;:44;13912:7;8063::::0;8090:6;-1:-1:-1;;;;;8090:6:0;;8025:79;13912:7:::1;-1:-1:-1::0;;;;;13876:44:0;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;13876:44:0;;;:51;;;::::1;;-1:-1:-1::0;;13876:51:0;;::::1;;::::0;;13974:10;;;::::1;13938:47:::0;;:35:::1;:47:::0;;;;;;:54;;;::::1;13876:51:::0;13938:54;;::::1;::::0;;;14039:11:::1;::::0;;;::::1;14003:48:::0;;;;;:55;;;::::1;::::0;::::1;::::0;;5927:42:::1;14069:41:::0;;;;:48;;;;::::1;;::::0;;14130:42:::1;5841;-1:-1:-1::0;;14130:7:0::1;:42::i;:::-;;14183:35;14191:7;8063::::0;8090:6;-1:-1:-1;;;;;8090:6:0;;8025:79;14191:7:::1;-1:-1:-1::0;;14183:7:0::1;:35::i;:::-;-1:-1:-1::0;14231:13:0::1;:20:::0;;-1:-1:-1;;14231:20:0::1;14247:4;14231:20:::0;;::::1;::::0;;;14281:7:::1;::::0;;14231:13:::1;14270:7;8063::::0;8090:6;-1:-1:-1;;;;;8090:6:0;;8025:79;14270:7:::1;-1:-1:-1::0;;;;;14262:16:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14262:16:0;:26;14299:42:::1;14308:7;8063::::0;8090:6;-1:-1:-1;;;;;8090:6:0;;8025:79;14308:7:::1;5841:42;14333:7;;14299:8;:42::i;:::-;8063:7:::0;8090:6;-1:-1:-1;;;;;8090:6:0;-1:-1:-1;;;;;14357:38:0::1;14374:1;-1:-1:-1::0;;;;;14357:38:0::1;;14387:7;;14357:38;;;;3919:25:1::0;;3907:2;3892:18;;3773:177;14357:38:0::1;;;;;;;;14418:6;::::0;14434:9:::1;::::0;14409:55:::1;::::0;-1:-1:-1;;;;;14418:6:0;;::::1;::::0;14434:9:::1;-1:-1:-1::0;;14409:8:0::1;:55::i;:::-;14507:9;::::0;14475:62:::1;::::0;14492:4:::1;::::0;-1:-1:-1;;;;;14507:9:0::1;-1:-1:-1::0;;14475:8:0::1;:62::i;:::-;14556:9;14552:200;14575:8;:15;14571:1;:19;14552:200;;;14611:15;14629:8;14638:1;14629:11;;;;;;;;:::i;:::-;;;;;;;14611:29;;14655:14;14672:11;14684:1;14672:14;;;;;;;;:::i;:::-;;;;;;;14687:4;14672:19;;;;:::i;:::-;14716:6;::::0;14655:36;;-1:-1:-1;14706:34:0::1;::::0;-1:-1:-1;;;;;14716:6:0::1;14724:7:::0;14655:36;14706:9:::1;:34::i;:::-;;14596:156;;14592:3;;;;;:::i;:::-;;;;14552:200;;;-1:-1:-1::0;14774:6:0::1;::::0;14764:51:::1;::::0;-1:-1:-1;;;;;14774:6:0::1;14790:4;14797:17;14774:6:::0;14797:9:::1;:17::i;:::-;14764:9;:51::i;:::-;-1:-1:-1::0;14828:9:0::1;::::0;-1:-1:-1;;;;;14828:9:0::1;:25;14861:21;14906:4;14926:24;14906:4:::0;14926:9:::1;:24::i;:::-;14965:1;15008::::0;15051:7:::1;8063::::0;8090:6;-1:-1:-1;;;;;8090:6:0;;8025:79;15051:7:::1;15073:15;14828:271;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;15126:1:0::1;15110:13;:17:::0;;;15155:12:::1;15138:14;:29:::0;15178:13:::1;:20:::0;;-1:-1:-1;;15178:20:0::1;::::0;;::::1;::::0;;-1:-1:-1;;;;;;;;12025:3181:0:o;8112:749::-;7277:6;;-1:-1:-1;;;;;7277:6:0;314:10;7277:22;;:52;;-1:-1:-1;7303:10:0;;-1:-1:-1;;;;;7303:10:0;314;7303:26;7277:52;7269:81;;;;-1:-1:-1;;;7269:81:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8193:22:0;::::1;8185:96;;;;-1:-1:-1::0;;;8185:96:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;;;8300:16:0;::::1;::::0;8292:90:::1;;;;-1:-1:-1::0;;;8292:90:0::1;;;;;;;:::i;:::-;8413:6;::::0;;8393:34:::1;::::0;-1:-1:-1;;;;;8413:6:0;;::::1;::::0;8393:19:::1;:34::i;:::-;8438:35;8458:8;8468:4;8438:19;:35::i;:::-;8520:6;::::0;8498:10:::1;::::0;-1:-1:-1;;;;;8520:6:0;;::::1;8498:10:::0;::::1;:29:::0;8494:78:::1;;8542:10;:30:::0;;-1:-1:-1;;;;;;8542:30:0::1;-1:-1:-1::0;;;;;8542:30:0;::::1;;::::0;;8494:78:::1;8635:6;::::0;8625:17:::1;::::0;-1:-1:-1;;;;;8635:6:0::1;8625:9;:17::i;:::-;8593:19;8605:6:::0;;-1:-1:-1;;;;;8605:6:0;;::::1;8593:19:::0;;:11:::1;:19;::::0;;;;;;;:29;;::::1;::::0;;;;;;;:49;;;;8666:6;;8593:19;;8656:17:::1;::::0;8666:6:::1;8656:9;:17::i;:::-;:21;8653:99;;;8704:6;::::0;8694:46:::1;::::0;-1:-1:-1;;;;;8704:6:0::1;8712:8:::0;8722:17:::1;8704:6:::0;8722:9:::1;:17::i;8694:46::-;;8653:99;8772:6;:17:::0;;-1:-1:-1;;;;;;8772:17:0::1;-1:-1:-1::0;;;;;8772:17:0;::::1;::::0;;::::1;::::0;;8805:38:::1;::::0;8772:17;;;;8805:38:::1;::::0;8772:6;8805:38:::1;8112:749:::0;:::o;10787:120::-;10840:4;10864:35;10872:7;-1:-1:-1;;10864:7:0;:35::i;15214:134::-;7277:6;;-1:-1:-1;;;;;7277:6:0;314:10;7277:22;;:52;;-1:-1:-1;7303:10:0;;-1:-1:-1;;;;;7303:10:0;314;7303:26;7277:52;7269:81;;;;-1:-1:-1;;;7269:81:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15302:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:38;;-1:-1:-1;;15302:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15214:134::o;23927:616::-;7277:6;;-1:-1:-1;;;;;7277:6:0;314:10;7277:22;;:52;;-1:-1:-1;7303:10:0;;-1:-1:-1;;;;;7303:10:0;314;7303:26;7277:52;7269:81;;;;-1:-1:-1;;;7269:81:0;;;;;;;:::i;:::-;24068:15:::1;:22;24050:7;:14;:40;24042:83;;;::::0;-1:-1:-1;;;24042:83:0;;13576:2:1;24042:83:0::1;::::0;::::1;13558:21:1::0;13615:2;13595:18;;;13588:30;13654:32;13634:18;;;13627:60;13704:18;;24042:83:0::1;13374:354:1::0;24042:83:0::1;24161:3;24144:7;:14;:20;24136:87;;;;-1:-1:-1::0;;;24136:87:0::1;;;;;;;:::i;:::-;24336:9;24332:204;24355:7;:14;24351:1;:18;24332:204;;;24390:14;24407:7;24415:1;24407:10;;;;;;;;:::i;:::-;;;;;;;24390:27;;24432:14;24449:15;24465:1;24449:18;;;;;;;;:::i;:::-;;;;;;;24468:4;24449:23;;;;:::i;:::-;24432:40;;24487:37;24497:10;24509:6;24517;24487:9;:37::i;:::-;;24375:161;;24371:3;;;;;:::i;:::-;;;;24332:204;;10001:117:::0;-1:-1:-1;;;;;10094:16:0;10067:7;10094:16;;;:7;:16;;;;;;;10001:117::o;8869:195::-;7277:6;;-1:-1:-1;;;;;7277:6:0;314:10;7277:22;;:52;;-1:-1:-1;7303:10:0;;-1:-1:-1;;;;;7303:10:0;314;7303:26;7277:52;7269:81;;;;-1:-1:-1;;;7269:81:0;;;;;;;:::i;:::-;8956:6:::1;::::0;;8936:34:::1;::::0;-1:-1:-1;;;;;8956:6:0;;::::1;::::0;8936:19:::1;:34::i;:::-;8998:1;8981:19:::0;;-1:-1:-1;;;;;;8981:19:0::1;::::0;;9016:40:::1;::::0;8998:1;;9016:40:::1;::::0;8998:1;;9016:40:::1;8869:195::o:0;16404:119::-;7277:6;;-1:-1:-1;;;;;7277:6:0;314:10;7277:22;;:52;;-1:-1:-1;7303:10:0;;-1:-1:-1;;;;;7303:10:0;314;7303:26;7277:52;7269:81;;;;-1:-1:-1;;;7269:81:0;;;;;;;:::i;:::-;16473:7:::1;::::0;16458:12:::1;:22:::0;;;16491:14:::1;:24:::0;16404:119::o;9598:84::-;9648:13;9672:7;9665:14;;;;;:::i;11571:225::-;314:10;11664:4;11713:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11713:34:0;;;;;;;;;;11664:4;;11681:85;;11704:7;;11713:52;;11750:15;;11713:52;:::i;10126:167::-;10204:4;10221:42;314:10;10245:9;10256:6;10221:9;:42::i;:::-;-1:-1:-1;10281:4:0;;10126:167;-1:-1:-1;;;10126:167:0:o;15522:166::-;7277:6;;-1:-1:-1;;;;;7277:6:0;314:10;7277:22;;:52;;-1:-1:-1;7303:10:0;;-1:-1:-1;;;;;7303:10:0;314;7303:26;7277:52;7269:81;;;;-1:-1:-1;;;7269:81:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15620:52:0::1;15675:5;15620:52:::0;;;:35:::1;:52;::::0;;;;:60;;-1:-1:-1;;15620:60:0::1;::::0;;15522:166::o;17561:171::-;7277:6;;-1:-1:-1;;;;;7277:6:0;314:10;7277:22;;:52;;-1:-1:-1;7303:10:0;;-1:-1:-1;;;;;7303:10:0;314;7303:26;7277:52;7269:81;;;;-1:-1:-1;;;7269:81:0;;;;;;;:::i;:::-;17638:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;17638:32:0::1;-1:-1:-1::0;;;;17638:32:0;;::::1;;::::0;;17686:38:::1;::::0;::::1;::::0;::::1;::::0;17662:8;1818:14:1;1811:22;1793:41;;1781:2;1766:18;;1653:187;17686:38:0::1;;;;;;;;17561:171:::0;:::o;15700:289::-;7277:6;;-1:-1:-1;;;;;7277:6:0;314:10;7277:22;;:52;;-1:-1:-1;7303:10:0;;-1:-1:-1;;;;;7303:10:0;314;7303:26;7277:52;7269:81;;;;-1:-1:-1;;;7269:81:0;;;;;;;:::i;:::-;15828:5;15806:21:::1;15817:10:::0;15806;:21:::1;:::i;:::-;:27;;;;:::i;:::-;15838:3;15805:36;15795:72;;;::::0;-1:-1:-1;;;15795:72:0;;19863:2:1;15795:72:0::1;::::0;::::1;19845:21:1::0;19902:2;19882:18;;;19875:30;-1:-1:-1;;;19921:18:1;;;19914:51;19982:18;;15795:72:0::1;19661:345:1::0;15795:72:0::1;15878:6;:29:::0;;;;15918:16;:29;15958:11;:19;15700:289::o;15356:158::-;7277:6;;-1:-1:-1;;;;;7277:6:0;314:10;7277:22;;:52;;-1:-1:-1;7303:10:0;;-1:-1:-1;;;;;7303:10:0;314;7303:26;7277:52;7269:81;;;;-1:-1:-1;;;7269:81:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15447:52:0::1;;::::0;;;:35:::1;:52;::::0;;;;:59;;-1:-1:-1;;15447:59:0::1;15502:4;15447:59;::::0;;15356:158::o;17353:200::-;7277:6;;-1:-1:-1;;;;;7277:6:0;314:10;7277:22;;:52;;-1:-1:-1;7303:10:0;;-1:-1:-1;;;;;7303:10:0;314;7303:26;7277:52;7269:81;;;;-1:-1:-1;;;7269:81:0;;;;;;;:::i;:::-;17464:10:::1;:37:::0;;-1:-1:-1;;;;;17464:37:0;;::::1;-1:-1:-1::0;;;;;;17464:37:0;;::::1;;::::0;;;17512:11:::1;:33:::0;;;;;::::1;::::0;::::1;;::::0;;17353:200::o;15997:399::-;7277:6;;-1:-1:-1;;;;;7277:6:0;314:10;7277:22;;:52;;-1:-1:-1;7303:10:0;;-1:-1:-1;;;;;7303:10:0;314;7303:26;7277:52;7269:81;;;;-1:-1:-1;;;7269:81:0;;;;;;;:::i;:::-;16112:7:::1;:14:::0;16101:25;::::1;::::0;::::1;::::0;:73:::1;;-1:-1:-1::0;16159:15:0;;16147:27;::::1;;16101:73;:129;;;;-1:-1:-1::0;16211:19:0;;16195:35;::::1;;16101:129;16093:182;;;::::0;-1:-1:-1;;;16093:182:0;;20213:2:1;16093:182:0::1;::::0;::::1;20195:21:1::0;20252:2;20232:18;;;20225:30;20291:25;20271:18;;;20264:53;20334:18;;16093:182:0::1;20011:347:1::0;16093:182:0::1;16287:4;:21:::0;;;;16320:12;:23;16355:16;:31;15997:399::o;11937:76::-;7277:6;;-1:-1:-1;;;;;7277:6:0;314:10;7277:22;;:52;;-1:-1:-1;7303:10:0;;-1:-1:-1;;;;;7303:10:0;314;7303:26;7277:52;7269:81;;;;-1:-1:-1;;;7269:81:0;;;;;;;:::i;:::-;12004:1:::1;11988:13;:17:::0;11937:76::o;17056:289::-;7277:6;;-1:-1:-1;;;;;7277:6:0;314:10;7277:22;;:52;;-1:-1:-1;7303:10:0;;-1:-1:-1;;;;;7303:10:0;314;7303:26;7277:52;7269:81;;;;-1:-1:-1;;;7269:81:0;;;;;;;:::i;:::-;17256:16:::1;17236;17226:7;;:26;;;;:::i;:::-;17225:47;;;;:::i;:::-;17209:13;:63:::0;17297:7:::1;::::0;17324:13;;17297:23:::1;::::0;17307:13;;17297:23:::1;:::i;:::-;17296:41;;;;:::i;:::-;17283:10;:54:::0;-1:-1:-1;;;;17056:289:0:o;10470:309::-;-1:-1:-1;;;;;10564:20:0;;10556:52;;;;-1:-1:-1;;;10556:52:0;;20565:2:1;10556:52:0;;;20547:21:1;20604:2;20584:18;;;20577:30;-1:-1:-1;;;20623:18:1;;;20616:49;20682:18;;10556:52:0;20363:343:1;10556:52:0;-1:-1:-1;;;;;10627:21:0;;10619:53;;;;-1:-1:-1;;;10619:53:0;;20565:2:1;10619:53:0;;;20547:21:1;20604:2;20584:18;;;20577:30;-1:-1:-1;;;20623:18:1;;;20616:49;20682:18;;10619:53:0;20363:343:1;10619:53:0;-1:-1:-1;;;;;10685:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;10738:33;;3919:25:1;;;10738:33:0;;3892:18:1;10738:33:0;;;;;;;10470:309;;;:::o;19149:2243::-;19228:4;-1:-1:-1;;;;;19253:18:0;;19245:51;;;;-1:-1:-1;;;19245:51:0;;20913:2:1;19245:51:0;;;20895:21:1;20952:2;20932:18;;;20925:30;-1:-1:-1;;;20971:18:1;;;20964:50;21031:18;;19245:51:0;20711:344:1;19245:51:0;-1:-1:-1;;;;;19315:16:0;;19307:49;;;;-1:-1:-1;;;19307:49:0;;20913:2:1;19307:49:0;;;20895:21:1;20952:2;20932:18;;;20925:30;-1:-1:-1;;;20971:18:1;;;20964:50;21031:18;;19307:49:0;20711:344:1;19307:49:0;19384:1;19375:6;:10;19367:31;;;;-1:-1:-1;;;19367:31:0;;21262:2:1;19367:31:0;;;21244:21:1;21301:1;21281:18;;;21274:29;-1:-1:-1;;;21319:18:1;;;21312:38;21367:18;;19367:31:0;21060:331:1;19367:31:0;-1:-1:-1;;;;;19418:18:0;;;;;;:14;:18;;;;;;;;19417:19;:44;;;;-1:-1:-1;;;;;;19441:20:0;;;;;;:14;:20;;;;;;;;19440:21;19417:44;19409:71;;;;-1:-1:-1;;;19409:71:0;;21598:2:1;19409:71:0;;;21580:21:1;21637:2;21617:18;;;21610:30;-1:-1:-1;;;21656:18:1;;;21649:45;21711:18;;19409:71:0;21396:339:1;19409:71:0;19512:17;19527:2;19512:12;:17;:::i;:::-;19495:14;;:34;19491:230;;;19546:13;19589:9;19624:27;19638:4;19643:2;19589:9;19624:13;:27::i;:::-;19613:38;;19674:8;19666:43;;;;-1:-1:-1;;;19666:43:0;;21942:2:1;19666:43:0;;;21924:21:1;21981:2;21961:18;;;21954:30;-1:-1:-1;;;22000:18:1;;;21993:52;22062:18;;19666:43:0;21740:346:1;19666:43:0;19531:190;;19491:230;19734:20;19745:4;19751:2;19734:10;:20::i;:::-;19731:891;;;19775:15;;;;19771:373;;;-1:-1:-1;;;;;19815:13:0;;;;;;:7;:13;;;;;;;;19811:318;;;-1:-1:-1;;;;;19860:13:0;;;;;;:9;:13;;;;;;19877:12;19860:29;;19852:38;;;;;;-1:-1:-1;;;;;19913:13:0;;;;;;:9;:13;;;;;19929:12;19913:28;;19811:318;;;-1:-1:-1;;;;;20020:15:0;;;;;;:9;:15;;;;;;20039:12;20020:31;;20012:40;;;;;;-1:-1:-1;;;;;20075:15:0;;;;;;:9;:15;;;;;20093:12;20075:30;;19811:318;-1:-1:-1;;;;;20163:41:0;;;;;;:35;:41;;;;;;;;;:84;;-1:-1:-1;;;;;;20208:39:0;;;;;;:35;:39;;;;;;;;20163:84;20158:439;;-1:-1:-1;;;;;20272:13:0;;;;;;:7;:13;;;;;;;;;:28;;-1:-1:-1;;;;;;20289:11:0;;;;;;:7;:11;;;;;;;;20272:28;20269:130;;;20338:12;;20328:6;:22;;20320:59;;;;-1:-1:-1;;;20320:59:0;;22293:2:1;20320:59:0;;;22275:21:1;22332:2;22312:18;;;22305:30;22371:26;22351:18;;;22344:54;22415:18;;20320:59:0;22091:348:1;20320:59:0;-1:-1:-1;;;;;20420:20:0;;5841:42;20420:20;;;;:36;;-1:-1:-1;;;;;;20445:11:0;;;;;;:7;:11;;;;;;;;20444:12;20420:36;20417:163;;;20515:14;;20505:6;20489:13;20499:2;20489:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;20481:79;;;;-1:-1:-1;;;20481:79:0;;22646:2:1;20481:79:0;;;22628:21:1;22685:2;22665:18;;;22658:30;22724:28;22704:18;;;22697:56;22770:18;;20481:79:0;22444:350:1;20481:79:0;-1:-1:-1;;;;;20638:11:0;;;;;;:7;:11;;;;;;:16;;20634:79;;-1:-1:-1;;;;;20671:12:0;;;;;;:8;:12;;;;;20686:15;20671:30;;20634:79;-1:-1:-1;;;;;20758:25:0;;20725:12;20758:25;;;:19;:25;;;;;;20740:4;;20758:25;;;:52;;-1:-1:-1;;;;;;20787:23:0;;;;;;:19;:23;;;;;;;;20758:52;20755:98;;;-1:-1:-1;20836:5:0;20755:98;-1:-1:-1;;;;;20869:11:0;;;;;;:7;:11;;;;;;;;20865:457;;;20902:16;;-1:-1:-1;;;20902:16:0;;;;20901:17;:59;;;;-1:-1:-1;20939:21:0;;-1:-1:-1;;;20939:21:0;;;;20901:59;20897:408;;;20995:28;21026:24;21044:4;21026:9;:24::i;:::-;20995:55;;21097:13;;21073:20;:37;21069:221;;21162:10;;21138:20;:34;21135:77;;-1:-1:-1;21199:10:0;;21135:77;21234:36;21249:20;21234:14;:36::i;:::-;20976:329;20897:408;21340:44;21358:4;21364:2;21368:6;21376:7;21340:17;:44::i;:::-;21333:51;19149:2243;-1:-1:-1;;;;;19149:2243:0:o;18490:645::-;18620:6;;18571:4;;18603;;-1:-1:-1;;;;;18620:14:0;;;:6;;:14;18616:481;;-1:-1:-1;;;;;18639:18:0;;;;;;;:14;:18;;;;;;18660:12;18639:33;;;;18675:20;;;;;;;:35;18616:481;;;18729:6;;-1:-1:-1;;;;;18729:12:0;;;:6;;:12;18725:372;;-1:-1:-1;;;;;18763:20:0;;;;;;:14;:20;;;;;;18787:12;-1:-1:-1;18759:89:0;;-1:-1:-1;;;;;;18803:18:0;;;;;;:12;:18;;;;;:25;;-1:-1:-1;;18803:25:0;18824:4;18803:25;;;18759:89;-1:-1:-1;;;;;18871:18:0;;;;;;:12;:18;;;;;;;;18867:215;;;-1:-1:-1;18904:5:0;18867:215;;;18939:6;;-1:-1:-1;;;;;18939:12:0;;;:6;;:12;;;;:30;;-1:-1:-1;18955:6:0;;-1:-1:-1;;;;;18955:14:0;;;:6;;:14;;18939:30;18935:147;;;-1:-1:-1;;;;;18973:20:0;;;;;;;:14;:20;;;;;;18996:12;18973:35;;;;19010:18;;;;;;;;:33;;;19045:20;;;;;;;:35;19118:8;18490:645;-1:-1:-1;;;;18490:645:0:o;18159:323::-;18227:4;8090:6;;-1:-1:-1;;;;;18251:15:0;;;8090:6;;18251:15;;;;:45;;-1:-1:-1;8063:7:0;8090:6;-1:-1:-1;;;;;18283:13:0;;;8090:6;;18283:13;;18251:45;:84;;;;-1:-1:-1;;;;;;18314:21:0;;;;;;:17;:21;;;;;;;;18313:22;18251:84;:125;;;;-1:-1:-1;;;;;;18353:23:0;;;;;;:17;:23;;;;;;;;18352:24;18251:125;:152;;;;-1:-1:-1;;;;;;18393:10:0;;5927:42;18393:10;;18251:152;:185;;;;-1:-1:-1;;;;;;18420:16:0;;;;18251:185;:223;;;;-1:-1:-1;;;;;;18453:21:0;;18469:4;18453:21;;18251:223;18244:230;18159:323;-1:-1:-1;;;18159:323:0:o;21400:1257::-;7151:16;:23;;-1:-1:-1;;;;7151:23:0;-1:-1:-1;;;7151:23:0;;;21508:16;;:6:::1;21489:16:::0;:35:::1;::::0;21508:16;21489:35:::1;:::i;:::-;21485:66:::0;21544:7:::1;21485:66;21665:11:::0;;21646:16;;21665:6:::1;21627:16:::0;21561:17:::1;::::0;21682:1:::1;::::0;21665:11;;21627:35:::1;::::0;21646:16;21627:35:::1;:::i;:::-;:49;;;;:::i;:::-;21606:6;:16:::0;21583:39:::1;::::0;:20;:39:::1;:::i;:::-;21582:95;;;;:::i;:::-;21581:102;;;;:::i;:::-;21561:122:::0;-1:-1:-1;21696:20:0::1;21719:32;21561:122:::0;21719:20;:32:::1;:::i;:::-;21696:55;;21762:30;21779:12;21762:16;:30::i;:::-;21967:11:::0;;21948:16;;21967:6:::1;21929:16:::0;21830:21:::1;::::0;21805:22:::1;::::0;21984:1:::1;::::0;21929:35:::1;::::0;21948:16;21929:35:::1;:::i;:::-;:49;;;;:::i;:::-;21908:6;:16:::0;21891:33:::1;::::0;:14;:33:::1;:::i;:::-;21890:89;;;;:::i;:::-;21889:96;;;;:::i;:::-;21862:123:::0;-1:-1:-1;22004:13:0;;22000:161:::1;;22034:41;22047:9;22058:16;22034:12;:41::i;:::-;22095:54;::::0;;5060:25:1;;;5116:2;5101:18;;5094:34;;;5144:18;;;5137:34;;;22095:54:0::1;::::0;5048:2:1;5033:18;22095:54:0::1;;;;;;;22000:161;22198:21;::::0;-1:-1:-1;22234:18:0;;22230:420:::1;;22344:11:::0;;22325:16;;22269:14:::1;::::0;22325:30:::1;::::0;::::1;:::i;:::-;22304:16:::0;;22287:33:::1;::::0;:14;:33:::1;:::i;:::-;22286:70;;;;:::i;:::-;22442:11:::0;;22423:16;;22269:87;;-1:-1:-1;22371:15:0::1;::::0;22423:30:::1;::::0;22442:11;22423:30:::1;:::i;:::-;22407:11:::0;;22390:28:::1;::::0;:14;:28:::1;:::i;:::-;22389:65;;;;:::i;:::-;22530:10;::::0;22522:43:::1;::::0;22371:83;;-1:-1:-1;22490:4:0::1;::::0;-1:-1:-1;;;;;22530:10:0;;::::1;::::0;22554:6;;22522:43:::1;::::0;;;22554:6;22530:10;22522:43:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;22601:11:0::1;::::0;22593:45:::1;::::0;22509:56;;-1:-1:-1;;;;;;22601:11:0::1;::::0;22626:7;;22593:45:::1;::::0;;;22626:7;22601:11;22593:45:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;22230:420:0::1;21474:1183;;;;7185:1;-1:-1:-1::0;7197:16:0;:24;;-1:-1:-1;;;;7197:24:0;;;21400:1257::o;24551:582::-;24673:16;;24651:4;;24673:16;;24668:221;;24706:28;24725:4;24731:2;24706:18;:28::i;:::-;24754:16;;;;24753:17;:41;;;;;24774:20;24785:4;24791:2;24774:10;:20::i;:::-;24749:129;;;24815:47;;-1:-1:-1;;;24815:47:0;;23211:2:1;24815:47:0;;;23193:21:1;23250:2;23230:18;;;23223:30;23289:34;23269:18;;;23262:62;-1:-1:-1;;;23340:18:1;;;23333:35;23385:19;;24815:47:0;23009:401:1;24749:129:0;-1:-1:-1;;;;;24900:13:0;;;;;;:7;:13;;;;;:23;;24917:6;;24900:13;:23;;24917:6;;24900:23;:::i;:::-;;;;-1:-1:-1;24934:22:0;;-1:-1:-1;24960:7:0;24959:48;;25001:6;24959:48;;;24971:27;24981:4;24987:2;24991:6;24971:9;:27::i;:::-;-1:-1:-1;;;;;25022:11:0;;;;;;:7;:11;;;;;:29;;24934:73;;-1:-1:-1;24934:73:0;;25022:11;;;:29;;24934:73;;25022:29;:::i;:::-;;;;;;;;25084:2;-1:-1:-1;;;;;25069:34:0;25078:4;-1:-1:-1;;;;;25069:34:0;;25088:14;25069:34;;;;3919:25:1;;3907:2;3892:18;;3773:177;25069:34:0;;;;;;;;-1:-1:-1;25121:4:0;;24551:582;-1:-1:-1;;;;;24551:582:0:o;22665:417::-;22756:16;;;22770:1;22756:16;;;;;;;;22732:21;;22756:16;;;;;;;;;;-1:-1:-1;22756:16:0;22732:40;;22801:4;22783;22788:1;22783:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22783:23:0;;;:7;;;;;;;;;;:23;;;;22827:9;;:16;;;-1:-1:-1;;;22827:16:0;;;;:9;;;;;:14;;:16;;;;;22783:7;;22827:16;;;;;:9;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22817:4;22822:1;22817:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22817:26:0;;;:7;;;;;;;;;:26;22856:9;;:218;;-1:-1:-1;;;22856:218:0;;:9;;;:60;;:218;;22931:11;;22856:9;;23001:4;;23028;;23048:15;;22856:218;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22721:361;22665:417;:::o;23090:335::-;23171:9;;-1:-1:-1;;;;;23171:9:0;:25;23204:9;23237:4;23257:11;23171:9;;23369:7;8063;8090:6;-1:-1:-1;;;;;8090:6:0;;8025:79;23369:7;23391:15;23171:246;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;23090:335;;:::o;23433:486::-;23515:16;;;;23514:17;23506:65;;;;-1:-1:-1;;;23506:65:0;;24602:2:1;23506:65:0;;;24584:21:1;24641:2;24621:18;;;24614:30;24680:34;24660:18;;;24653:62;-1:-1:-1;;;24731:18:1;;;24724:33;24774:19;;23506:65:0;24400:399:1;23506:65:0;23587:20;23598:4;23604:2;23587:10;:20::i;:::-;23586:21;:37;;;;-1:-1:-1;23617:6:0;;-1:-1:-1;;;;;23611:12:0;;;23617:6;;23611:12;23586:37;23582:330;;;23659:12;23644;:27;-1:-1:-1;;;;;23688:23:0;;;;;;:17;:23;;;;;;;;;:30;;-1:-1:-1;;23688:30:0;;;23714:4;23688:30;;;;;;23733:16;:23;;;;;;;;;23786:15;23771:12;:30;23818:21;:28;;-1:-1:-1;;;;23818:28:0;-1:-1:-1;;;23818:28:0;;;23866:34;;1793:41:1;;;23866:34:0;;1766:18:1;23866:34:0;;;;;;;23582:330;23433:486;;:::o;25141:689::-;25281:6;;25220:7;;;;-1:-1:-1;;;;;25281:6:0;;;25275:12;;;;25271:187;;-1:-1:-1;25315:12:0;;25271:187;;;25373:6;;-1:-1:-1;;;;;25373:6:0;;;25365:14;;;;25361:97;;-1:-1:-1;25395:4:0;:11;25361:97;;;-1:-1:-1;25440:16:0;;25361:97;25474:20;25485:4;25491:2;25474:10;:20::i;:::-;25470:142;;;25514:13;;:18;;:42;;;25536:13;;25554:1;25536:20;;25514:42;25510:91;;;25577:8;;;25510:91;25622:17;5533:5;25643:19;25652:10;25643:6;:19;:::i;:::-;:38;;;;:::i;:::-;25709:4;25693:22;;;;:7;:22;;;;;:37;;25622:60;;-1:-1:-1;25622:60:0;;25693:22;;;:37;;25622:60;;25693:37;:::i;:::-;;;;-1:-1:-1;;25746:40:0;;3919:25:1;;;25769:4:0;;-1:-1:-1;;;;;25746:40:0;;;;;3907:2:1;3892:18;25746:40:0;;;;;;;25804:18;25813:9;25804:6;:18;:::i;:::-;25797:25;25141:689;-1:-1:-1;;;;;;25141:689:0:o;222:597:1:-;334:4;363:2;392;381:9;374:21;424:6;418:13;467:6;462:2;451:9;447:18;440:34;492:1;502:140;516:6;513:1;510:13;502:140;;;611:14;;;607:23;;601:30;577:17;;;596:2;573:26;566:66;531:10;;502:140;;;660:6;657:1;654:13;651:91;;;730:1;725:2;716:6;705:9;701:22;697:31;690:42;651:91;-1:-1:-1;803:2:1;782:15;-1:-1:-1;;778:29:1;763:45;;;;810:2;759:54;;222:597;-1:-1:-1;;;222:597:1:o;1058:131::-;-1:-1:-1;;;;;1133:31:1;;1123:42;;1113:70;;1179:1;1176;1169:12;1113:70;1058:131;:::o;1194:134::-;1262:20;;1291:31;1262:20;1291:31;:::i;:::-;1194:134;;;:::o;1333:315::-;1401:6;1409;1462:2;1450:9;1441:7;1437:23;1433:32;1430:52;;;1478:1;1475;1468:12;1430:52;1517:9;1504:23;1536:31;1561:5;1536:31;:::i;:::-;1586:5;1638:2;1623:18;;;;1610:32;;-1:-1:-1;;;1333:315:1:o;1845:127::-;1906:10;1901:3;1897:20;1894:1;1887:31;1937:4;1934:1;1927:15;1961:4;1958:1;1951:15;1977:275;2048:2;2042:9;2113:2;2094:13;;-1:-1:-1;;2090:27:1;2078:40;;2148:18;2133:34;;2169:22;;;2130:62;2127:88;;;2195:18;;:::i;:::-;2231:2;2224:22;1977:275;;-1:-1:-1;1977:275:1:o;2257:183::-;2317:4;2350:18;2342:6;2339:30;2336:56;;;2372:18;;:::i;:::-;-1:-1:-1;2417:1:1;2413:14;2429:4;2409:25;;2257:183::o;2445:737::-;2499:5;2552:3;2545:4;2537:6;2533:17;2529:27;2519:55;;2570:1;2567;2560:12;2519:55;2606:6;2593:20;2632:4;2656:60;2672:43;2712:2;2672:43;:::i;:::-;2656:60;:::i;:::-;2750:15;;;2836:1;2832:10;;;;2820:23;;2816:32;;;2781:12;;;;2860:15;;;2857:35;;;2888:1;2885;2878:12;2857:35;2924:2;2916:6;2912:15;2936:217;2952:6;2947:3;2944:15;2936:217;;;3032:3;3019:17;3049:31;3074:5;3049:31;:::i;:::-;3093:18;;3131:12;;;;2969;;2936:217;;;-1:-1:-1;3171:5:1;2445:737;-1:-1:-1;;;;;;2445:737:1:o;3187:160::-;3252:20;;3308:13;;3301:21;3291:32;;3281:60;;3337:1;3334;3327:12;3352:416;3442:6;3450;3503:2;3491:9;3482:7;3478:23;3474:32;3471:52;;;3519:1;3516;3509:12;3471:52;3559:9;3546:23;3592:18;3584:6;3581:30;3578:50;;;3624:1;3621;3614:12;3578:50;3647:61;3700:7;3691:6;3680:9;3676:22;3647:61;:::i;:::-;3637:71;;;3727:35;3758:2;3747:9;3743:18;3727:35;:::i;:::-;3717:45;;3352:416;;;;;:::o;3955:456::-;4032:6;4040;4048;4101:2;4089:9;4080:7;4076:23;4072:32;4069:52;;;4117:1;4114;4107:12;4069:52;4156:9;4143:23;4175:31;4200:5;4175:31;:::i;:::-;4225:5;-1:-1:-1;4282:2:1;4267:18;;4254:32;4295:33;4254:32;4295:33;:::i;:::-;3955:456;;4347:7;;-1:-1:-1;;;4401:2:1;4386:18;;;;4373:32;;3955:456::o;4416:248::-;4484:6;4492;4545:2;4533:9;4524:7;4520:23;4516:32;4513:52;;;4561:1;4558;4551:12;4513:52;-1:-1:-1;;4584:23:1;;;4654:2;4639:18;;;4626:32;;-1:-1:-1;4416:248:1:o;5182:531::-;5225:5;5278:3;5271:4;5263:6;5259:17;5255:27;5245:55;;5296:1;5293;5286:12;5245:55;5332:6;5319:20;5358:18;5354:2;5351:26;5348:52;;;5380:18;;:::i;:::-;5424:55;5467:2;5448:13;;-1:-1:-1;;5444:27:1;5473:4;5440:38;5424:55;:::i;:::-;5504:2;5495:7;5488:19;5550:3;5543:4;5538:2;5530:6;5526:15;5522:26;5519:35;5516:55;;;5567:1;5564;5557:12;5516:55;5632:2;5625:4;5617:6;5613:17;5606:4;5597:7;5593:18;5580:55;5680:1;5655:16;;;5673:4;5651:27;5644:38;;;;5659:7;5182:531;-1:-1:-1;;;5182:531:1:o;5718:662::-;5772:5;5825:3;5818:4;5810:6;5806:17;5802:27;5792:55;;5843:1;5840;5833:12;5792:55;5879:6;5866:20;5905:4;5929:60;5945:43;5985:2;5945:43;:::i;5929:60::-;6023:15;;;6109:1;6105:10;;;;6093:23;;6089:32;;;6054:12;;;;6133:15;;;6130:35;;;6161:1;6158;6151:12;6130:35;6197:2;6189:6;6185:15;6209:142;6225:6;6220:3;6217:15;6209:142;;;6291:17;;6279:30;;6329:12;;;;6242;;6209:142;;6385:1215;6568:6;6576;6584;6592;6600;6608;6616;6669:3;6657:9;6648:7;6644:23;6640:33;6637:53;;;6686:1;6683;6676:12;6637:53;6726:9;6713:23;6755:18;6796:2;6788:6;6785:14;6782:34;;;6812:1;6809;6802:12;6782:34;6835:50;6877:7;6868:6;6857:9;6853:22;6835:50;:::i;:::-;6825:60;;6938:2;6927:9;6923:18;6910:32;6894:48;;6967:2;6957:8;6954:16;6951:36;;;6983:1;6980;6973:12;6951:36;7006:52;7050:7;7039:8;7028:9;7024:24;7006:52;:::i;:::-;6996:62;;7105:2;7094:9;7090:18;7077:32;7067:42;;7128:38;7162:2;7151:9;7147:18;7128:38;:::i;:::-;7118:48;;7185:39;7219:3;7208:9;7204:19;7185:39;:::i;:::-;7175:49;;7277:3;7266:9;7262:19;7249:33;7233:49;;7307:2;7297:8;7294:16;7291:36;;;7323:1;7320;7313:12;7291:36;7346:63;7401:7;7390:8;7379:9;7375:24;7346:63;:::i;:::-;7336:73;;7462:3;7451:9;7447:19;7434:33;7418:49;;7492:2;7482:8;7479:16;7476:36;;;7508:1;7505;7498:12;7476:36;;7531:63;7586:7;7575:8;7564:9;7560:24;7531:63;:::i;:::-;7521:73;;;6385:1215;;;;;;;;;;:::o;7605:247::-;7664:6;7717:2;7705:9;7696:7;7692:23;7688:32;7685:52;;;7733:1;7730;7723:12;7685:52;7772:9;7759:23;7791:31;7816:5;7791:31;:::i;7857:315::-;7922:6;7930;7983:2;7971:9;7962:7;7958:23;7954:32;7951:52;;;7999:1;7996;7989:12;7951:52;8038:9;8025:23;8057:31;8082:5;8057:31;:::i;:::-;8107:5;-1:-1:-1;8131:35:1;8162:2;8147:18;;8131:35;:::i;8177:595::-;8295:6;8303;8356:2;8344:9;8335:7;8331:23;8327:32;8324:52;;;8372:1;8369;8362:12;8324:52;8412:9;8399:23;8441:18;8482:2;8474:6;8471:14;8468:34;;;8498:1;8495;8488:12;8468:34;8521:61;8574:7;8565:6;8554:9;8550:22;8521:61;:::i;:::-;8511:71;;8635:2;8624:9;8620:18;8607:32;8591:48;;8664:2;8654:8;8651:16;8648:36;;;8680:1;8677;8670:12;8648:36;;8703:63;8758:7;8747:8;8736:9;8732:24;8703:63;:::i;:::-;8693:73;;;8177:595;;;;;:::o;8777:180::-;8833:6;8886:2;8874:9;8865:7;8861:23;8857:32;8854:52;;;8902:1;8899;8892:12;8854:52;8925:26;8941:9;8925:26;:::i;8962:316::-;9039:6;9047;9055;9108:2;9096:9;9087:7;9083:23;9079:32;9076:52;;;9124:1;9121;9114:12;9076:52;-1:-1:-1;;9147:23:1;;;9217:2;9202:18;;9189:32;;-1:-1:-1;9268:2:1;9253:18;;;9240:32;;8962:316;-1:-1:-1;8962:316:1:o;9283:404::-;9367:6;9375;9428:2;9416:9;9407:7;9403:23;9399:32;9396:52;;;9444:1;9441;9434:12;9396:52;9483:9;9470:23;9502:31;9527:5;9502:31;:::i;:::-;9552:5;-1:-1:-1;9609:2:1;9594:18;;9581:32;9622:33;9581:32;9622:33;:::i;:::-;9674:7;9664:17;;;9283:404;;;;;:::o;10085:385::-;10171:6;10179;10187;10195;10248:3;10236:9;10227:7;10223:23;10219:33;10216:53;;;10265:1;10262;10255:12;10216:53;-1:-1:-1;;10288:23:1;;;10358:2;10343:18;;10330:32;;-1:-1:-1;10409:2:1;10394:18;;10381:32;;10460:2;10445:18;10432:32;;-1:-1:-1;10085:385:1;-1:-1:-1;10085:385:1:o;10475:380::-;10554:1;10550:12;;;;10597;;;10618:61;;10672:4;10664:6;10660:17;10650:27;;10618:61;10725:2;10717:6;10714:14;10694:18;10691:38;10688:161;;10771:10;10766:3;10762:20;10759:1;10752:31;10806:4;10803:1;10796:15;10834:4;10831:1;10824:15;10688:161;;10475:380;;;:::o;10860:340::-;11062:2;11044:21;;;11101:2;11081:18;;;11074:30;-1:-1:-1;;;11135:2:1;11120:18;;11113:46;11191:2;11176:18;;10860:340::o;11205:127::-;11266:10;11261:3;11257:20;11254:1;11247:31;11297:4;11294:1;11287:15;11321:4;11318:1;11311:15;11337:128;11377:3;11408:1;11404:6;11401:1;11398:13;11395:39;;;11414:18;;:::i;:::-;-1:-1:-1;11450:9:1;;11337:128::o;11820:127::-;11881:10;11876:3;11872:20;11869:1;11862:31;11912:4;11909:1;11902:15;11936:4;11933:1;11926:15;11952:135;11991:3;12012:17;;;12009:43;;12032:18;;:::i;:::-;-1:-1:-1;12079:1:1;12068:13;;11952:135::o;12092:125::-;12132:4;12160:1;12157;12154:8;12151:34;;;12165:18;;:::i;:::-;-1:-1:-1;12202:9:1;;12092:125::o;12222:168::-;12262:7;12328:1;12324;12320:6;12316:14;12313:1;12310:21;12305:1;12298:9;12291:17;12287:45;12284:71;;;12335:18;;:::i;:::-;-1:-1:-1;12375:9:1;;12222:168::o;12395:217::-;12435:1;12461;12451:132;;12505:10;12500:3;12496:20;12493:1;12486:31;12540:4;12537:1;12530:15;12568:4;12565:1;12558:15;12451:132;-1:-1:-1;12597:9:1;;12395:217::o;12617:401::-;12819:2;12801:21;;;12858:2;12838:18;;;12831:30;12897:34;12892:2;12877:18;;12870:62;-1:-1:-1;;;12963:2:1;12948:18;;12941:35;13008:3;12993:19;;12617:401::o;13733:418::-;13935:2;13917:21;;;13974:2;13954:18;;;13947:30;14013:34;14008:2;13993:18;;13986:62;-1:-1:-1;;;14079:2:1;14064:18;;14057:52;14141:3;14126:19;;13733:418::o;14282:545::-;14384:2;14379:3;14376:11;14373:448;;;14420:1;14445:5;14441:2;14434:17;14490:4;14486:2;14476:19;14560:2;14548:10;14544:19;14541:1;14537:27;14531:4;14527:38;14596:4;14584:10;14581:20;14578:47;;;-1:-1:-1;14619:4:1;14578:47;14674:2;14669:3;14665:12;14662:1;14658:20;14652:4;14648:31;14638:41;;14729:82;14747:2;14740:5;14737:13;14729:82;;;14792:17;;;14773:1;14762:13;14729:82;;15003:1352;15129:3;15123:10;15156:18;15148:6;15145:30;15142:56;;;15178:18;;:::i;:::-;15207:97;15297:6;15257:38;15289:4;15283:11;15257:38;:::i;:::-;15251:4;15207:97;:::i;:::-;15359:4;;15423:2;15412:14;;15440:1;15435:663;;;;16142:1;16159:6;16156:89;;;-1:-1:-1;16211:19:1;;;16205:26;16156:89;-1:-1:-1;;14960:1:1;14956:11;;;14952:24;14948:29;14938:40;14984:1;14980:11;;;14935:57;16258:81;;15405:944;;15435:663;14229:1;14222:14;;;14266:4;14253:18;;-1:-1:-1;;15471:20:1;;;15589:236;15603:7;15600:1;15597:14;15589:236;;;15692:19;;;15686:26;15671:42;;15784:27;;;;15752:1;15740:14;;;;15619:19;;15589:236;;;15593:3;15853:6;15844:7;15841:19;15838:201;;;15914:19;;;15908:26;-1:-1:-1;;15997:1:1;15993:14;;;16009:3;15989:24;15985:37;15981:42;15966:58;15951:74;;15838:201;-1:-1:-1;;;;;16085:1:1;16069:14;;;16065:22;16052:36;;-1:-1:-1;15003:1352:1:o;16360:422::-;16449:1;16492:5;16449:1;16506:270;16527:7;16517:8;16514:21;16506:270;;;16586:4;16582:1;16578:6;16574:17;16568:4;16565:27;16562:53;;;16595:18;;:::i;:::-;16645:7;16635:8;16631:22;16628:55;;;16665:16;;;;16628:55;16744:22;;;;16704:15;;;;16506:270;;;16510:3;16360:422;;;;;:::o;16787:806::-;16836:5;16866:8;16856:80;;-1:-1:-1;16907:1:1;16921:5;;16856:80;16955:4;16945:76;;-1:-1:-1;16992:1:1;17006:5;;16945:76;17037:4;17055:1;17050:59;;;;17123:1;17118:130;;;;17030:218;;17050:59;17080:1;17071:10;;17094:5;;;17118:130;17155:3;17145:8;17142:17;17139:43;;;17162:18;;:::i;:::-;-1:-1:-1;;17218:1:1;17204:16;;17233:5;;17030:218;;17332:2;17322:8;17319:16;17313:3;17307:4;17304:13;17300:36;17294:2;17284:8;17281:16;17276:2;17270:4;17267:12;17263:35;17260:77;17257:159;;;-1:-1:-1;17369:19:1;;;17401:5;;17257:159;17448:34;17473:8;17467:4;17448:34;:::i;:::-;17518:6;17514:1;17510:6;17506:19;17497:7;17494:32;17491:58;;;17529:18;;:::i;:::-;17567:20;;16787:806;-1:-1:-1;;;16787:806:1:o;17598:140::-;17656:5;17685:47;17726:4;17716:8;17712:19;17706:4;17685:47;:::i;17743:251::-;17813:6;17866:2;17854:9;17845:7;17841:23;17837:32;17834:52;;;17882:1;17879;17872:12;17834:52;17914:9;17908:16;17933:31;17958:5;17933:31;:::i;18308:607::-;-1:-1:-1;;;;;18667:15:1;;;18649:34;;18714:2;18699:18;;18692:34;;;;18757:2;18742:18;;18735:34;;;;18800:2;18785:18;;18778:34;;;;18849:15;;;18843:3;18828:19;;18821:44;18629:3;18881:19;;18874:35;;;;18598:3;18583:19;;18308:607::o;18920:306::-;19008:6;19016;19024;19077:2;19065:9;19056:7;19052:23;19048:32;19045:52;;;19093:1;19090;19083:12;19045:52;19122:9;19116:16;19106:26;;19172:2;19161:9;19157:18;19151:25;19141:35;;19216:2;19205:9;19201:18;19195:25;19185:35;;18920:306;;;;;:::o;19231:425::-;19433:2;19415:21;;;19472:2;19452:18;;;19445:30;19511:34;19506:2;19491:18;;19484:62;19582:31;19577:2;19562:18;;19555:59;19646:3;19631:19;;19231:425::o;23415:980::-;23677:4;23725:3;23714:9;23710:19;23756:6;23745:9;23738:25;23782:2;23820:6;23815:2;23804:9;23800:18;23793:34;23863:3;23858:2;23847:9;23843:18;23836:31;23887:6;23922;23916:13;23953:6;23945;23938:22;23991:3;23980:9;23976:19;23969:26;;24030:2;24022:6;24018:15;24004:29;;24051:1;24061:195;24075:6;24072:1;24069:13;24061:195;;;24140:13;;-1:-1:-1;;;;;24136:39:1;24124:52;;24231:15;;;;24196:12;;;;24172:1;24090:9;24061:195;;;-1:-1:-1;;;;;;;24312:32:1;;;;24307:2;24292:18;;24285:60;-1:-1:-1;;;24376:3:1;24361:19;24354:35;24273:3;23415:980;-1:-1:-1;;;23415:980:1:o

Swarm Source

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