ETH Price: $3,904.49 (-0.25%)

Token

AI Arb ENGLISH (AIEN)

Overview

Max Total Supply

500,000,000,000,000 AIEN

Holders

24,660 ( -0.004%)

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$100,000.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,000,000,000 AIEN

Value
$0.20 ( ~5.12230751060358E-05 ETH) [0.0002%]
0xcf69832d84dc16a7d50223ee116e2ce05dada9b0
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

AIEnglish is the world's first language learning platform that combines artificial intelligence and Web3 technology, designed to help users from non-English speaking countries learn English more conveniently and integrate into the global community.

Market

Volume (24H):$0.00
Market Capitalization:$0.00
Circulating Supply:0.00 AIEN
Market Data Source: Coinmarketcap

Contract Source Code Verified (Exact Match)

Contract Name:
AIEN

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Arbiscan.io on 2023-04-23
*/

// SPDX-License-Identifier: MIT

 pragma solidity >=0.5.0;

interface ICamelotFactory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );
 
    function owner() external view returns (address);

    function feePercentOwner() external view returns (address);

    function setStableOwner() external view returns (address);

    function feeTo() external view returns (address);

    function ownerFeeShare() external view returns (uint256);

    function referrersFeeShare(address) external view returns (uint256);

    function getPair(
        address tokenA,
        address tokenB
    ) external view returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(
        address tokenA,
        address tokenB
    ) external returns (address pair);

    function setFeeTo(address) external;

    function feeInfo()
        external
        view
        returns (uint _ownerFeeShare, address _feeTo);
}

pragma solidity >=0.6.2;

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 quote(
        uint amountA,
        uint reserveA,
        uint reserveB
    ) external pure returns (uint amountB);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

// File: contracts/interfaces/ICamelotRouter.sol


pragma solidity >=0.6.2;

interface ICamelotRouter 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,
        address referrer,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        address referrer,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        address referrer,
        uint deadline
    ) external;

    function getAmountsOut(
        uint amountIn,
        address[] calldata path
    ) external view returns (uint[] memory amounts);
}

pragma solidity 0.8.15;

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

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

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}


contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping (address => uint256) internal _balances;

    mapping (address => mapping (address => uint256)) internal _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }


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

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(account, account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

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

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

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}

library Address{
    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");
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract AIEN is ERC20, Ownable{
    using Address for address payable;
    
    ICamelotRouter public router;
    address public pair; 
    
    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;

    ICamelotFactory private immutable factory =
        ICamelotFactory(0x6EcCab422D763aC031210895C81787E87B43A652);

    uint256 tsupply = 5e14 * 10 ** decimals();
    uint256 public swapThreshold = tsupply * 5/1000;
    uint256 public maxTxAmount = tsupply * 1/100;
    uint256 public maxWalletAmount = tsupply * 100/100; 
    
    address private devWallet;
    bool private initialized;

    
    struct Taxes {
        uint256 liquidity; 
        uint256 dev;
    }
    
    Taxes public taxes = Taxes(0,0);
    Taxes public sellTaxes = Taxes(20,5);
    uint256 public totalTax = 0;
    uint256 public totalSellTax = 25;
    
    mapping (address => bool) public excludedFromFees;

    mapping(address => bool) public blacklists;

    address private constant ZERO = 0x0000000000000000000000000000000000000000;
    
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
        
    constructor() ERC20("AI Arb ENGLISH", "AIEN") {
        devWallet = msg.sender;
        _mint(msg.sender, tsupply); 
        excludedFromFees[msg.sender] = true;

        ICamelotRouter _router = ICamelotRouter(0xc873fEcbd354f5A56E00E710B90EF4201db2448d);

        router = _router;
        excludedFromFees[address(this)] = true;
        excludedFromFees[devWallet] = true; 
    }

    function initializePair() external onlyOwner {
        require(!initialized, "Already initialized");
        pair = factory.createPair(address(0x82aF49447D8a07e3bd95BD0d56f35241523fBab1), address(this)); 
        initialized = true; 
    }

    
    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!blacklists[sender] && !blacklists[recipient], "Blacklisted");  
        
        if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){
            require(tradingEnabled, "Trading not active yet");
            require(amount <= maxTxAmount, "You are exceeding maxTxAmount");
            if(recipient != pair){
                require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount");
            }
        } 

        uint256 fee;
        
  
        if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0;
          
 
        else{
            if(recipient == pair) fee = amount * totalSellTax / 100;
            else fee = amount * totalTax / 100;
        }
         

        if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees();

        super._transfer(sender, recipient, amount - fee);
        if(fee > 0) super._transfer(sender, address(this) ,fee);

    }

     function swapForFees() private inSwap {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {

            uint256 denominator = totalSellTax * 2;
            uint256 tokensToAddLiquidityWith = contractBalance * sellTaxes.liquidity / denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;
            uint256 initialBalance = address(this).balance;
    
            swapTokensForETH(toSwap);
    
            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * sellTaxes.liquidity;
    
            if(ethToAddLiquidityWith > 0){
                // Add liquidity to Camelot
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }
            uint256 devAmt = unitBalance * 2 * sellTaxes.dev;
            if(devAmt > 0){
                payable(devWallet).sendValue(devAmt);
            }
        }
    }


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

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

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this),address(ZERO), block.timestamp);

    }

    function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

        // add the liquidity
        router.addLiquidityETH{value: bnbAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            devWallet,
            block.timestamp
        );
    }

    function setSwapEnabled(bool state) external onlyOwner {
        swapEnabled = state;
    }

    function setSwapThreshold(uint256 new_amount) external onlyOwner {
        swapThreshold = new_amount;
    }

    function enableTrading() external onlyOwner{
        require(!tradingEnabled, "Trading already active");
        tradingEnabled = true;
    }
    function setBuyTaxes(uint256 _liquidity, uint256 _dev) external onlyOwner{
        taxes = Taxes(_liquidity, _dev);
        totalTax = _liquidity + _dev;
    }

    function setSellTaxes(uint256 _liquidity, uint256 _dev) external onlyOwner{
        sellTaxes = Taxes(_liquidity, _dev);
        totalSellTax = _liquidity + _dev;
    }
    
    function updateDBTeamWallet(address newWallet) external onlyOwner{
        devWallet = newWallet;
    }

    function updateRouterAndPair(ICamelotRouter _router, address _pair) external onlyOwner{
        router = _router;
        pair = _pair;
    }
    
    function updateExcludedFromFees(address _address, bool state) external onlyOwner {
        excludedFromFees[_address] = state;
    }

    function blacklist(address _address, bool _isBlacklisting) external onlyOwner {
        blacklists[_address] = _isBlacklisting;
    }
    
    function updateMaxTxAmount(uint256 amount) external onlyOwner{
        maxTxAmount = amount * 10**decimals();
    }
    
    function updateMaxWalletAmount(uint256 amount) external onlyOwner{
        maxWalletAmount = amount * 10**decimals();
    }

    function rescueERC20(address tokenAddress, uint256 amount) external {
        IERC20(tokenAddress).transfer(devWallet, amount);
    }

    function rescueETH(uint256 weiAmount) external {
        payable(devWallet).sendValue(weiAmount);
    }

    function manualSwap(uint256 amount) external{
        require(msg.sender == devWallet);
        swapTokensForETH(amount);
        payable(devWallet).sendValue(address(this).balance);       
    }

    // fallbacks
    receive() external payable {}
    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initializePair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract ICamelotRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","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":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDBTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ICamelotRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052736eccab422d763ac031210895c81787e87b43a65273ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152506200005b620003ee60201b60201c565b600a620000699190620007c7565b6601c6bf526340006200007d919062000818565b6008556103e8600560085462000094919062000818565b620000a09190620008a8565b60095560646001600854620000b6919062000818565b620000c29190620008a8565b600a55606480600854620000d7919062000818565b620000e39190620008a8565b600b556040518060400160405280600081526020016000815250600d600082015181600001556020820151816001015550506040518060400160405280601481526020016005815250600f60008201518160000155602082015181600101555050600060115560196012553480156200015b57600080fd5b506040518060400160405280600e81526020017f41492041726220454e474c4953480000000000000000000000000000000000008152506040518060400160405280600481526020017f4149454e000000000000000000000000000000000000000000000000000000008152508160039081620001d9919062000b50565b508060049081620001eb919062000b50565b5050506200020e62000202620003f760201b60201c565b620003ff60201b60201c565b33600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200026333600854620004c560201b60201c565b6001601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600073c873fecbd354f5a56e00e710b90ef4201db2448d905080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160136000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505062000d45565b60006012905090565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000537576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200052e9062000c98565b60405180910390fd5b6200054a8283836200062860201b60201c565b80600260008282546200055e919062000cba565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620005b5919062000cba565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200061c919062000d28565b60405180910390a35050565b505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620006bb578086048111156200069357620006926200062d565b5b6001851615620006a35780820291505b8081029050620006b3856200065c565b945062000673565b94509492505050565b600082620006d65760019050620007a9565b81620006e65760009050620007a9565b8160018114620006ff57600281146200070a5762000740565b6001915050620007a9565b60ff8411156200071f576200071e6200062d565b5b8360020a9150848211156200073957620007386200062d565b5b50620007a9565b5060208310610133831016604e8410600b84101617156200077a5782820a9050838111156200077457620007736200062d565b5b620007a9565b62000789848484600162000669565b92509050818404811115620007a357620007a26200062d565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620007d482620007b0565b9150620007e183620007ba565b9250620008107fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620006c4565b905092915050565b60006200082582620007b0565b91506200083283620007b0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200086e576200086d6200062d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620008b582620007b0565b9150620008c283620007b0565b925082620008d557620008d462000879565b5b828204905092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200096257607f821691505b6020821081036200097857620009776200091a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620009a3565b620009ee8683620009a3565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000a3162000a2b62000a2584620007b0565b62000a06565b620007b0565b9050919050565b6000819050919050565b62000a4d8362000a10565b62000a6562000a5c8262000a38565b848454620009b0565b825550505050565b600090565b62000a7c62000a6d565b62000a8981848462000a42565b505050565b5b8181101562000ab15762000aa560008262000a72565b60018101905062000a8f565b5050565b601f82111562000b005762000aca816200097e565b62000ad58462000993565b8101602085101562000ae5578190505b62000afd62000af48562000993565b83018262000a8e565b50505b505050565b600082821c905092915050565b600062000b256000198460080262000b05565b1980831691505092915050565b600062000b40838362000b12565b9150826002028217905092915050565b62000b5b82620008e0565b67ffffffffffffffff81111562000b775762000b76620008eb565b5b62000b83825462000949565b62000b9082828562000ab5565b600060209050601f83116001811462000bc8576000841562000bb3578287015190505b62000bbf858262000b32565b86555062000c2f565b601f19841662000bd8866200097e565b60005b8281101562000c025784890151825560018201915060208501945060208101905062000bdb565b8683101562000c22578489015162000c1e601f89168262000b12565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000c80601f8362000c37565b915062000c8d8262000c48565b602082019050919050565b6000602082019050818103600083015262000cb38162000c71565b9050919050565b600062000cc782620007b0565b915062000cd483620007b0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d0c5762000d0b6200062d565b5b828201905092915050565b62000d2281620007b0565b82525050565b600060208201905062000d3f600083018462000d17565b92915050565b6080516142d062000d616000396000610f1101526142d06000f3fe6080604052600436106102555760003560e01c80638da5cb5b11610139578063aa4bde28116100b6578063e01af92c1161007a578063e01af92c146108be578063e545fd6d146108e7578063f2fde38b14610910578063f66895a314610939578063f887ea4014610965578063fe85b42b146109905761025c565b8063aa4bde28146107c7578063b70143c9146107f2578063c18bc1951461081b578063dbe66ca014610844578063dd62ed3e146108815761025c565b8063a457c2d7116100fd578063a457c2d7146106d0578063a7c7f0af1461070d578063a8aa1b3114610736578063a9059cbb14610761578063aa35822c1461079e5761025c565b80638da5cb5b146105ff57806395d89b411461062a5780639d0014b1146106555780639e252f001461067e578063a11a1682146106a75761025c565b806340b28c2f116101d257806370a082311161019657806370a0823114610514578063715018a614610551578063728f8eea146105685780638a8c523c146105945780638c0b5e22146105ab5780638cd4426d146105d65761025c565b806340b28c2f146104555780634ada218b1461047e5780634fab9e4c146104a95780636256d181146104c05780636ddd1713146104e95761025c565b80631bff7898116102195780631bff78981461035c57806323b872dd14610387578063313ce567146103c457806339509351146103ef578063404e51291461042c5761025c565b80630445b6671461026157806306fdde031461028c578063095ea7b3146102b757806316c02129146102f457806318160ddd146103315761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b506102766109bb565b6040516102839190612d48565b60405180910390f35b34801561029857600080fd5b506102a16109c1565b6040516102ae9190612dfc565b60405180910390f35b3480156102c357600080fd5b506102de60048036038101906102d99190612ead565b610a53565b6040516102eb9190612f08565b60405180910390f35b34801561030057600080fd5b5061031b60048036038101906103169190612f23565b610a71565b6040516103289190612f08565b60405180910390f35b34801561033d57600080fd5b50610346610a91565b6040516103539190612d48565b60405180910390f35b34801561036857600080fd5b50610371610a9b565b60405161037e9190612d48565b60405180910390f35b34801561039357600080fd5b506103ae60048036038101906103a99190612f50565b610aa1565b6040516103bb9190612f08565b60405180910390f35b3480156103d057600080fd5b506103d9610ba2565b6040516103e69190612fbf565b60405180910390f35b3480156103fb57600080fd5b5061041660048036038101906104119190612ead565b610bab565b6040516104239190612f08565b60405180910390f35b34801561043857600080fd5b50610453600480360381019061044e9190613006565b610c57565b005b34801561046157600080fd5b5061047c60048036038101906104779190613084565b610d2e565b005b34801561048a57600080fd5b50610493610e30565b6040516104a09190612f08565b60405180910390f35b3480156104b557600080fd5b506104be610e43565b005b3480156104cc57600080fd5b506104e760048036038101906104e291906130c4565b61101e565b005b3480156104f557600080fd5b506104fe6110c2565b60405161050b9190612f08565b60405180910390f35b34801561052057600080fd5b5061053b60048036038101906105369190612f23565b6110d5565b6040516105489190612d48565b60405180910390f35b34801561055d57600080fd5b5061056661111d565b005b34801561057457600080fd5b5061057d6111a5565b60405161058b9291906130f1565b60405180910390f35b3480156105a057600080fd5b506105a96111b7565b005b3480156105b757600080fd5b506105c06112a0565b6040516105cd9190612d48565b60405180910390f35b3480156105e257600080fd5b506105fd60048036038101906105f89190612ead565b6112a6565b005b34801561060b57600080fd5b5061061461134b565b6040516106219190613129565b60405180910390f35b34801561063657600080fd5b5061063f611375565b60405161064c9190612dfc565b60405180910390f35b34801561066157600080fd5b5061067c600480360381019061067791906130c4565b611407565b005b34801561068a57600080fd5b506106a560048036038101906106a091906130c4565b61148d565b005b3480156106b357600080fd5b506106ce60048036038101906106c99190613144565b6114db565b005b3480156106dc57600080fd5b506106f760048036038101906106f29190612ead565b61159b565b6040516107049190612f08565b60405180910390f35b34801561071957600080fd5b50610734600480360381019061072f9190612f23565b61168f565b005b34801561074257600080fd5b5061074b61174f565b6040516107589190613129565b60405180910390f35b34801561076d57600080fd5b5061078860048036038101906107839190612ead565b611775565b6040516107959190612f08565b60405180910390f35b3480156107aa57600080fd5b506107c560048036038101906107c09190613144565b611793565b005b3480156107d357600080fd5b506107dc611853565b6040516107e99190612d48565b60405180910390f35b3480156107fe57600080fd5b50610819600480360381019061081491906130c4565b611859565b005b34801561082757600080fd5b50610842600480360381019061083d91906130c4565b61190a565b005b34801561085057600080fd5b5061086b60048036038101906108669190612f23565b6119ae565b6040516108789190612f08565b60405180910390f35b34801561088d57600080fd5b506108a860048036038101906108a39190613184565b6119ce565b6040516108b59190612d48565b60405180910390f35b3480156108ca57600080fd5b506108e560048036038101906108e091906131c4565b611a55565b005b3480156108f357600080fd5b5061090e60048036038101906109099190613006565b611aee565b005b34801561091c57600080fd5b5061093760048036038101906109329190612f23565b611bc5565b005b34801561094557600080fd5b5061094e611cbc565b60405161095c9291906130f1565b60405180910390f35b34801561097157600080fd5b5061097a611cce565b6040516109879190613250565b60405180910390f35b34801561099c57600080fd5b506109a5611cf4565b6040516109b29190612d48565b60405180910390f35b60095481565b6060600380546109d09061329a565b80601f01602080910402602001604051908101604052809291908181526020018280546109fc9061329a565b8015610a495780601f10610a1e57610100808354040283529160200191610a49565b820191906000526020600020905b815481529060010190602001808311610a2c57829003601f168201915b5050505050905090565b6000610a67610a60611cfa565b8484611d02565b6001905092915050565b60146020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b60125481565b6000610aae848484611ecb565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610af9611cfa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b709061333d565b60405180910390fd5b610b9685610b85611cfa565b8584610b91919061338c565b611d02565b60019150509392505050565b60006012905090565b6000610c4d610bb8611cfa565b848460016000610bc6611cfa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c4891906133c0565b611d02565b6001905092915050565b610c5f611cfa565b73ffffffffffffffffffffffffffffffffffffffff16610c7d61134b565b73ffffffffffffffffffffffffffffffffffffffff1614610cd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cca90613462565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610d36611cfa565b73ffffffffffffffffffffffffffffffffffffffff16610d5461134b565b73ffffffffffffffffffffffffffffffffffffffff1614610daa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da190613462565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760169054906101000a900460ff1681565b610e4b611cfa565b73ffffffffffffffffffffffffffffffffffffffff16610e6961134b565b73ffffffffffffffffffffffffffffffffffffffff1614610ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb690613462565b60405180910390fd5b600c60149054906101000a900460ff1615610f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f06906134ce565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c9c653967382af49447d8a07e3bd95bd0d56f35241523fbab1306040518363ffffffff1660e01b8152600401610f7e9291906134ee565b6020604051808303816000875af1158015610f9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc1919061352c565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60146101000a81548160ff021916908315150217905550565b611026611cfa565b73ffffffffffffffffffffffffffffffffffffffff1661104461134b565b73ffffffffffffffffffffffffffffffffffffffff161461109a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109190613462565b60405180910390fd5b6110a2610ba2565b600a6110ae919061368c565b816110b991906136d7565b600a8190555050565b600760159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611125611cfa565b73ffffffffffffffffffffffffffffffffffffffff1661114361134b565b73ffffffffffffffffffffffffffffffffffffffff1614611199576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119090613462565b60405180910390fd5b6111a36000612420565b565b600d8060000154908060010154905082565b6111bf611cfa565b73ffffffffffffffffffffffffffffffffffffffff166111dd61134b565b73ffffffffffffffffffffffffffffffffffffffff1614611233576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122a90613462565b60405180910390fd5b600760169054906101000a900460ff1615611283576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127a9061377d565b60405180910390fd5b6001600760166101000a81548160ff021916908315150217905550565b600a5481565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161130392919061379d565b6020604051808303816000875af1158015611322573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134691906137db565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546113849061329a565b80601f01602080910402602001604051908101604052809291908181526020018280546113b09061329a565b80156113fd5780601f106113d2576101008083540402835291602001916113fd565b820191906000526020600020905b8154815290600101906020018083116113e057829003601f168201915b5050505050905090565b61140f611cfa565b73ffffffffffffffffffffffffffffffffffffffff1661142d61134b565b73ffffffffffffffffffffffffffffffffffffffff1614611483576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147a90613462565b60405180910390fd5b8060098190555050565b6114d881600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166124e690919063ffffffff16565b50565b6114e3611cfa565b73ffffffffffffffffffffffffffffffffffffffff1661150161134b565b73ffffffffffffffffffffffffffffffffffffffff1614611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e90613462565b60405180910390fd5b604051806040016040528083815260200182815250600f6000820151816000015560208201518160010155905050808261159191906133c0565b6012819055505050565b600080600160006115aa611cfa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165e9061387a565b60405180910390fd5b611684611672611cfa565b85858461167f919061338c565b611d02565b600191505092915050565b611697611cfa565b73ffffffffffffffffffffffffffffffffffffffff166116b561134b565b73ffffffffffffffffffffffffffffffffffffffff161461170b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170290613462565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611789611782611cfa565b8484611ecb565b6001905092915050565b61179b611cfa565b73ffffffffffffffffffffffffffffffffffffffff166117b961134b565b73ffffffffffffffffffffffffffffffffffffffff161461180f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180690613462565b60405180910390fd5b604051806040016040528083815260200182815250600d6000820151816000015560208201518160010155905050808261184991906133c0565b6011819055505050565b600b5481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118b357600080fd5b6118bc816125da565b61190747600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166124e690919063ffffffff16565b50565b611912611cfa565b73ffffffffffffffffffffffffffffffffffffffff1661193061134b565b73ffffffffffffffffffffffffffffffffffffffff1614611986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197d90613462565b60405180910390fd5b61198e610ba2565b600a61199a919061368c565b816119a591906136d7565b600b8190555050565b60136020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a5d611cfa565b73ffffffffffffffffffffffffffffffffffffffff16611a7b61134b565b73ffffffffffffffffffffffffffffffffffffffff1614611ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac890613462565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b611af6611cfa565b73ffffffffffffffffffffffffffffffffffffffff16611b1461134b565b73ffffffffffffffffffffffffffffffffffffffff1614611b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6190613462565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611bcd611cfa565b73ffffffffffffffffffffffffffffffffffffffff16611beb61134b565b73ffffffffffffffffffffffffffffffffffffffff1614611c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3890613462565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611cb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca79061390c565b60405180910390fd5b611cb981612420565b50565b600f8060000154908060010154905082565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d689061399e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611de0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd790613a30565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ebe9190612d48565b60405180910390a3505050565b60008111611f0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0590613ac2565b60405180910390fd5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fb25750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe890613b2e565b60405180910390fd5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120955750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120ae5750600760149054906101000a900460ff16155b156121f657600760169054906101000a900460ff16612102576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f990613b9a565b60405180910390fd5b600a54811115612147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213e90613c06565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146121f557600b54816121a9846110d5565b6121b391906133c0565b11156121f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121eb90613c98565b60405180910390fd5b5b5b6000600760149054906101000a900460ff168061225c5750601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806122b05750601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156122be5760009050612352565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123345760646012548361232391906136d7565b61232d9190613ce7565b9050612351565b60646011548361234491906136d7565b61234e9190613ce7565b90505b5b600760159054906101000a900460ff16801561237b5750600760149054906101000a900460ff16155b80156123d55750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156123e15750600081115b156123ef576123ee612820565b5b61240584848385612400919061338c565b6129ad565b600081111561241a576124198430836129ad565b5b50505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80471015612529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252090613d64565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161254f90613db5565b60006040518083038185875af1925050503d806000811461258c576040519150601f19603f3d011682016040523d82523d6000602084013e612591565b606091505b50509050806125d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125cc90613e3c565b60405180910390fd5b505050565b6000600267ffffffffffffffff8111156125f7576125f6613e5c565b5b6040519080825280602002602001820160405280156126255781602001602082028036833780820191505090505b509050308160008151811061263d5761263c613e8b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612708919061352c565b8160018151811061271c5761271b613e8b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061278330600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d02565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352aa4c2283600084306000426040518763ffffffff1660e01b81526004016127ea96959493929190613fb3565b600060405180830381600087803b15801561280457600080fd5b505af1158015612818573d6000803e3d6000fd5b505050505050565b600760149054906101000a900460ff166129ab576001600760146101000a81548160ff021916908315150217905550600061285a306110d5565b9050600954811061298e576000600260125461287691906136d7565b9050600081600f600001548461288c91906136d7565b6128969190613ce7565b9050600081846128a6919061338c565b905060004790506128b6826125da565b600081476128c4919061338c565b90506000600f60000154866128d9919061338c565b826128e49190613ce7565b90506000600f60000154826128f991906136d7565b9050600081111561290f5761290e8682612c2a565b5b6000600f6001015460028461292491906136d7565b61292e91906136d7565b905060008111156129855761298481600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166124e690919063ffffffff16565b5b50505050505050505b506000600760146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612a1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a139061408d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a829061411f565b60405180910390fd5b612a96838383612d2a565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b13906141b1565b60405180910390fd5b8181612b28919061338c565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612bb891906133c0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c1c9190612d48565b60405180910390a350505050565b612c5730600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d02565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612ce0969594939291906141d1565b60606040518083038185885af1158015612cfe573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612d239190614247565b5050505050565b505050565b6000819050919050565b612d4281612d2f565b82525050565b6000602082019050612d5d6000830184612d39565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d9d578082015181840152602081019050612d82565b83811115612dac576000848401525b50505050565b6000601f19601f8301169050919050565b6000612dce82612d63565b612dd88185612d6e565b9350612de8818560208601612d7f565b612df181612db2565b840191505092915050565b60006020820190508181036000830152612e168184612dc3565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e4e82612e23565b9050919050565b612e5e81612e43565b8114612e6957600080fd5b50565b600081359050612e7b81612e55565b92915050565b612e8a81612d2f565b8114612e9557600080fd5b50565b600081359050612ea781612e81565b92915050565b60008060408385031215612ec457612ec3612e1e565b5b6000612ed285828601612e6c565b9250506020612ee385828601612e98565b9150509250929050565b60008115159050919050565b612f0281612eed565b82525050565b6000602082019050612f1d6000830184612ef9565b92915050565b600060208284031215612f3957612f38612e1e565b5b6000612f4784828501612e6c565b91505092915050565b600080600060608486031215612f6957612f68612e1e565b5b6000612f7786828701612e6c565b9350506020612f8886828701612e6c565b9250506040612f9986828701612e98565b9150509250925092565b600060ff82169050919050565b612fb981612fa3565b82525050565b6000602082019050612fd46000830184612fb0565b92915050565b612fe381612eed565b8114612fee57600080fd5b50565b60008135905061300081612fda565b92915050565b6000806040838503121561301d5761301c612e1e565b5b600061302b85828601612e6c565b925050602061303c85828601612ff1565b9150509250929050565b600061305182612e43565b9050919050565b61306181613046565b811461306c57600080fd5b50565b60008135905061307e81613058565b92915050565b6000806040838503121561309b5761309a612e1e565b5b60006130a98582860161306f565b92505060206130ba85828601612e6c565b9150509250929050565b6000602082840312156130da576130d9612e1e565b5b60006130e884828501612e98565b91505092915050565b60006040820190506131066000830185612d39565b6131136020830184612d39565b9392505050565b61312381612e43565b82525050565b600060208201905061313e600083018461311a565b92915050565b6000806040838503121561315b5761315a612e1e565b5b600061316985828601612e98565b925050602061317a85828601612e98565b9150509250929050565b6000806040838503121561319b5761319a612e1e565b5b60006131a985828601612e6c565b92505060206131ba85828601612e6c565b9150509250929050565b6000602082840312156131da576131d9612e1e565b5b60006131e884828501612ff1565b91505092915050565b6000819050919050565b600061321661321161320c84612e23565b6131f1565b612e23565b9050919050565b6000613228826131fb565b9050919050565b600061323a8261321d565b9050919050565b61324a8161322f565b82525050565b60006020820190506132656000830184613241565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806132b257607f821691505b6020821081036132c5576132c461326b565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613327602883612d6e565b9150613332826132cb565b604082019050919050565b600060208201905081810360008301526133568161331a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061339782612d2f565b91506133a283612d2f565b9250828210156133b5576133b461335d565b5b828203905092915050565b60006133cb82612d2f565b91506133d683612d2f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561340b5761340a61335d565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061344c602083612d6e565b915061345782613416565b602082019050919050565b6000602082019050818103600083015261347b8161343f565b9050919050565b7f416c726561647920696e697469616c697a656400000000000000000000000000600082015250565b60006134b8601383612d6e565b91506134c382613482565b602082019050919050565b600060208201905081810360008301526134e7816134ab565b9050919050565b6000604082019050613503600083018561311a565b613510602083018461311a565b9392505050565b60008151905061352681612e55565b92915050565b60006020828403121561354257613541612e1e565b5b600061355084828501613517565b91505092915050565b60008160011c9050919050565b6000808291508390505b60018511156135b05780860481111561358c5761358b61335d565b5b600185161561359b5780820291505b80810290506135a985613559565b9450613570565b94509492505050565b6000826135c95760019050613685565b816135d75760009050613685565b81600181146135ed57600281146135f757613626565b6001915050613685565b60ff8411156136095761360861335d565b5b8360020a9150848211156136205761361f61335d565b5b50613685565b5060208310610133831016604e8410600b841016171561365b5782820a9050838111156136565761365561335d565b5b613685565b6136688484846001613566565b9250905081840481111561367f5761367e61335d565b5b81810290505b9392505050565b600061369782612d2f565b91506136a283612fa3565b92506136cf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846135b9565b905092915050565b60006136e282612d2f565b91506136ed83612d2f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156137265761372561335d565b5b828202905092915050565b7f54726164696e6720616c72656164792061637469766500000000000000000000600082015250565b6000613767601683612d6e565b915061377282613731565b602082019050919050565b600060208201905081810360008301526137968161375a565b9050919050565b60006040820190506137b2600083018561311a565b6137bf6020830184612d39565b9392505050565b6000815190506137d581612fda565b92915050565b6000602082840312156137f1576137f0612e1e565b5b60006137ff848285016137c6565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613864602583612d6e565b915061386f82613808565b604082019050919050565b6000602082019050818103600083015261389381613857565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138f6602683612d6e565b91506139018261389a565b604082019050919050565b60006020820190508181036000830152613925816138e9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613988602483612d6e565b91506139938261392c565b604082019050919050565b600060208201905081810360008301526139b78161397b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a1a602283612d6e565b9150613a25826139be565b604082019050919050565b60006020820190508181036000830152613a4981613a0d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613aac602983612d6e565b9150613ab782613a50565b604082019050919050565b60006020820190508181036000830152613adb81613a9f565b9050919050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000613b18600b83612d6e565b9150613b2382613ae2565b602082019050919050565b60006020820190508181036000830152613b4781613b0b565b9050919050565b7f54726164696e67206e6f74206163746976652079657400000000000000000000600082015250565b6000613b84601683612d6e565b9150613b8f82613b4e565b602082019050919050565b60006020820190508181036000830152613bb381613b77565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b6000613bf0601d83612d6e565b9150613bfb82613bba565b602082019050919050565b60006020820190508181036000830152613c1f81613be3565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c82602183612d6e565b9150613c8d82613c26565b604082019050919050565b60006020820190508181036000830152613cb181613c75565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613cf282612d2f565b9150613cfd83612d2f565b925082613d0d57613d0c613cb8565b5b828204905092915050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000613d4e601d83612d6e565b9150613d5982613d18565b602082019050919050565b60006020820190508181036000830152613d7d81613d41565b9050919050565b600081905092915050565b50565b6000613d9f600083613d84565b9150613daa82613d8f565b600082019050919050565b6000613dc082613d92565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000613e26603a83612d6e565b9150613e3182613dca565b604082019050919050565b60006020820190508181036000830152613e5581613e19565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613edf613eda613ed584613eba565b6131f1565b612d2f565b9050919050565b613eef81613ec4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f2a81612e43565b82525050565b6000613f3c8383613f21565b60208301905092915050565b6000602082019050919050565b6000613f6082613ef5565b613f6a8185613f00565b9350613f7583613f11565b8060005b83811015613fa6578151613f8d8882613f30565b9750613f9883613f48565b925050600181019050613f79565b5085935050505092915050565b600060c082019050613fc86000830189612d39565b613fd56020830188613ee6565b8181036040830152613fe78187613f55565b9050613ff6606083018661311a565b614003608083018561311a565b61401060a0830184612d39565b979650505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614077602583612d6e565b91506140828261401b565b604082019050919050565b600060208201905081810360008301526140a68161406a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614109602383612d6e565b9150614114826140ad565b604082019050919050565b60006020820190508181036000830152614138816140fc565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061419b602683612d6e565b91506141a68261413f565b604082019050919050565b600060208201905081810360008301526141ca8161418e565b9050919050565b600060c0820190506141e6600083018961311a565b6141f36020830188612d39565b6142006040830187613ee6565b61420d6060830186613ee6565b61421a608083018561311a565b61422760a0830184612d39565b979650505050505050565b60008151905061424181612e81565b92915050565b6000806000606084860312156142605761425f612e1e565b5b600061426e86828701614232565b935050602061427f86828701614232565b925050604061429086828701614232565b915050925092509256fea26469706673582212202a24bef2386ed3cb0bb151b77ea6a66b102de4f9273cf410e9e5061de080319764736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106102555760003560e01c80638da5cb5b11610139578063aa4bde28116100b6578063e01af92c1161007a578063e01af92c146108be578063e545fd6d146108e7578063f2fde38b14610910578063f66895a314610939578063f887ea4014610965578063fe85b42b146109905761025c565b8063aa4bde28146107c7578063b70143c9146107f2578063c18bc1951461081b578063dbe66ca014610844578063dd62ed3e146108815761025c565b8063a457c2d7116100fd578063a457c2d7146106d0578063a7c7f0af1461070d578063a8aa1b3114610736578063a9059cbb14610761578063aa35822c1461079e5761025c565b80638da5cb5b146105ff57806395d89b411461062a5780639d0014b1146106555780639e252f001461067e578063a11a1682146106a75761025c565b806340b28c2f116101d257806370a082311161019657806370a0823114610514578063715018a614610551578063728f8eea146105685780638a8c523c146105945780638c0b5e22146105ab5780638cd4426d146105d65761025c565b806340b28c2f146104555780634ada218b1461047e5780634fab9e4c146104a95780636256d181146104c05780636ddd1713146104e95761025c565b80631bff7898116102195780631bff78981461035c57806323b872dd14610387578063313ce567146103c457806339509351146103ef578063404e51291461042c5761025c565b80630445b6671461026157806306fdde031461028c578063095ea7b3146102b757806316c02129146102f457806318160ddd146103315761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b506102766109bb565b6040516102839190612d48565b60405180910390f35b34801561029857600080fd5b506102a16109c1565b6040516102ae9190612dfc565b60405180910390f35b3480156102c357600080fd5b506102de60048036038101906102d99190612ead565b610a53565b6040516102eb9190612f08565b60405180910390f35b34801561030057600080fd5b5061031b60048036038101906103169190612f23565b610a71565b6040516103289190612f08565b60405180910390f35b34801561033d57600080fd5b50610346610a91565b6040516103539190612d48565b60405180910390f35b34801561036857600080fd5b50610371610a9b565b60405161037e9190612d48565b60405180910390f35b34801561039357600080fd5b506103ae60048036038101906103a99190612f50565b610aa1565b6040516103bb9190612f08565b60405180910390f35b3480156103d057600080fd5b506103d9610ba2565b6040516103e69190612fbf565b60405180910390f35b3480156103fb57600080fd5b5061041660048036038101906104119190612ead565b610bab565b6040516104239190612f08565b60405180910390f35b34801561043857600080fd5b50610453600480360381019061044e9190613006565b610c57565b005b34801561046157600080fd5b5061047c60048036038101906104779190613084565b610d2e565b005b34801561048a57600080fd5b50610493610e30565b6040516104a09190612f08565b60405180910390f35b3480156104b557600080fd5b506104be610e43565b005b3480156104cc57600080fd5b506104e760048036038101906104e291906130c4565b61101e565b005b3480156104f557600080fd5b506104fe6110c2565b60405161050b9190612f08565b60405180910390f35b34801561052057600080fd5b5061053b60048036038101906105369190612f23565b6110d5565b6040516105489190612d48565b60405180910390f35b34801561055d57600080fd5b5061056661111d565b005b34801561057457600080fd5b5061057d6111a5565b60405161058b9291906130f1565b60405180910390f35b3480156105a057600080fd5b506105a96111b7565b005b3480156105b757600080fd5b506105c06112a0565b6040516105cd9190612d48565b60405180910390f35b3480156105e257600080fd5b506105fd60048036038101906105f89190612ead565b6112a6565b005b34801561060b57600080fd5b5061061461134b565b6040516106219190613129565b60405180910390f35b34801561063657600080fd5b5061063f611375565b60405161064c9190612dfc565b60405180910390f35b34801561066157600080fd5b5061067c600480360381019061067791906130c4565b611407565b005b34801561068a57600080fd5b506106a560048036038101906106a091906130c4565b61148d565b005b3480156106b357600080fd5b506106ce60048036038101906106c99190613144565b6114db565b005b3480156106dc57600080fd5b506106f760048036038101906106f29190612ead565b61159b565b6040516107049190612f08565b60405180910390f35b34801561071957600080fd5b50610734600480360381019061072f9190612f23565b61168f565b005b34801561074257600080fd5b5061074b61174f565b6040516107589190613129565b60405180910390f35b34801561076d57600080fd5b5061078860048036038101906107839190612ead565b611775565b6040516107959190612f08565b60405180910390f35b3480156107aa57600080fd5b506107c560048036038101906107c09190613144565b611793565b005b3480156107d357600080fd5b506107dc611853565b6040516107e99190612d48565b60405180910390f35b3480156107fe57600080fd5b50610819600480360381019061081491906130c4565b611859565b005b34801561082757600080fd5b50610842600480360381019061083d91906130c4565b61190a565b005b34801561085057600080fd5b5061086b60048036038101906108669190612f23565b6119ae565b6040516108789190612f08565b60405180910390f35b34801561088d57600080fd5b506108a860048036038101906108a39190613184565b6119ce565b6040516108b59190612d48565b60405180910390f35b3480156108ca57600080fd5b506108e560048036038101906108e091906131c4565b611a55565b005b3480156108f357600080fd5b5061090e60048036038101906109099190613006565b611aee565b005b34801561091c57600080fd5b5061093760048036038101906109329190612f23565b611bc5565b005b34801561094557600080fd5b5061094e611cbc565b60405161095c9291906130f1565b60405180910390f35b34801561097157600080fd5b5061097a611cce565b6040516109879190613250565b60405180910390f35b34801561099c57600080fd5b506109a5611cf4565b6040516109b29190612d48565b60405180910390f35b60095481565b6060600380546109d09061329a565b80601f01602080910402602001604051908101604052809291908181526020018280546109fc9061329a565b8015610a495780601f10610a1e57610100808354040283529160200191610a49565b820191906000526020600020905b815481529060010190602001808311610a2c57829003601f168201915b5050505050905090565b6000610a67610a60611cfa565b8484611d02565b6001905092915050565b60146020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b60125481565b6000610aae848484611ecb565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610af9611cfa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b709061333d565b60405180910390fd5b610b9685610b85611cfa565b8584610b91919061338c565b611d02565b60019150509392505050565b60006012905090565b6000610c4d610bb8611cfa565b848460016000610bc6611cfa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c4891906133c0565b611d02565b6001905092915050565b610c5f611cfa565b73ffffffffffffffffffffffffffffffffffffffff16610c7d61134b565b73ffffffffffffffffffffffffffffffffffffffff1614610cd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cca90613462565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610d36611cfa565b73ffffffffffffffffffffffffffffffffffffffff16610d5461134b565b73ffffffffffffffffffffffffffffffffffffffff1614610daa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da190613462565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760169054906101000a900460ff1681565b610e4b611cfa565b73ffffffffffffffffffffffffffffffffffffffff16610e6961134b565b73ffffffffffffffffffffffffffffffffffffffff1614610ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb690613462565b60405180910390fd5b600c60149054906101000a900460ff1615610f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f06906134ce565b60405180910390fd5b7f0000000000000000000000006eccab422d763ac031210895c81787e87b43a65273ffffffffffffffffffffffffffffffffffffffff1663c9c653967382af49447d8a07e3bd95bd0d56f35241523fbab1306040518363ffffffff1660e01b8152600401610f7e9291906134ee565b6020604051808303816000875af1158015610f9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc1919061352c565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60146101000a81548160ff021916908315150217905550565b611026611cfa565b73ffffffffffffffffffffffffffffffffffffffff1661104461134b565b73ffffffffffffffffffffffffffffffffffffffff161461109a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109190613462565b60405180910390fd5b6110a2610ba2565b600a6110ae919061368c565b816110b991906136d7565b600a8190555050565b600760159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611125611cfa565b73ffffffffffffffffffffffffffffffffffffffff1661114361134b565b73ffffffffffffffffffffffffffffffffffffffff1614611199576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119090613462565b60405180910390fd5b6111a36000612420565b565b600d8060000154908060010154905082565b6111bf611cfa565b73ffffffffffffffffffffffffffffffffffffffff166111dd61134b565b73ffffffffffffffffffffffffffffffffffffffff1614611233576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122a90613462565b60405180910390fd5b600760169054906101000a900460ff1615611283576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127a9061377d565b60405180910390fd5b6001600760166101000a81548160ff021916908315150217905550565b600a5481565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161130392919061379d565b6020604051808303816000875af1158015611322573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134691906137db565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546113849061329a565b80601f01602080910402602001604051908101604052809291908181526020018280546113b09061329a565b80156113fd5780601f106113d2576101008083540402835291602001916113fd565b820191906000526020600020905b8154815290600101906020018083116113e057829003601f168201915b5050505050905090565b61140f611cfa565b73ffffffffffffffffffffffffffffffffffffffff1661142d61134b565b73ffffffffffffffffffffffffffffffffffffffff1614611483576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147a90613462565b60405180910390fd5b8060098190555050565b6114d881600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166124e690919063ffffffff16565b50565b6114e3611cfa565b73ffffffffffffffffffffffffffffffffffffffff1661150161134b565b73ffffffffffffffffffffffffffffffffffffffff1614611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e90613462565b60405180910390fd5b604051806040016040528083815260200182815250600f6000820151816000015560208201518160010155905050808261159191906133c0565b6012819055505050565b600080600160006115aa611cfa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165e9061387a565b60405180910390fd5b611684611672611cfa565b85858461167f919061338c565b611d02565b600191505092915050565b611697611cfa565b73ffffffffffffffffffffffffffffffffffffffff166116b561134b565b73ffffffffffffffffffffffffffffffffffffffff161461170b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170290613462565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611789611782611cfa565b8484611ecb565b6001905092915050565b61179b611cfa565b73ffffffffffffffffffffffffffffffffffffffff166117b961134b565b73ffffffffffffffffffffffffffffffffffffffff161461180f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180690613462565b60405180910390fd5b604051806040016040528083815260200182815250600d6000820151816000015560208201518160010155905050808261184991906133c0565b6011819055505050565b600b5481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118b357600080fd5b6118bc816125da565b61190747600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166124e690919063ffffffff16565b50565b611912611cfa565b73ffffffffffffffffffffffffffffffffffffffff1661193061134b565b73ffffffffffffffffffffffffffffffffffffffff1614611986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197d90613462565b60405180910390fd5b61198e610ba2565b600a61199a919061368c565b816119a591906136d7565b600b8190555050565b60136020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a5d611cfa565b73ffffffffffffffffffffffffffffffffffffffff16611a7b61134b565b73ffffffffffffffffffffffffffffffffffffffff1614611ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac890613462565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b611af6611cfa565b73ffffffffffffffffffffffffffffffffffffffff16611b1461134b565b73ffffffffffffffffffffffffffffffffffffffff1614611b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6190613462565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611bcd611cfa565b73ffffffffffffffffffffffffffffffffffffffff16611beb61134b565b73ffffffffffffffffffffffffffffffffffffffff1614611c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3890613462565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611cb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca79061390c565b60405180910390fd5b611cb981612420565b50565b600f8060000154908060010154905082565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d689061399e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611de0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd790613a30565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ebe9190612d48565b60405180910390a3505050565b60008111611f0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0590613ac2565b60405180910390fd5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fb25750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe890613b2e565b60405180910390fd5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120955750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120ae5750600760149054906101000a900460ff16155b156121f657600760169054906101000a900460ff16612102576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f990613b9a565b60405180910390fd5b600a54811115612147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213e90613c06565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146121f557600b54816121a9846110d5565b6121b391906133c0565b11156121f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121eb90613c98565b60405180910390fd5b5b5b6000600760149054906101000a900460ff168061225c5750601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806122b05750601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156122be5760009050612352565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123345760646012548361232391906136d7565b61232d9190613ce7565b9050612351565b60646011548361234491906136d7565b61234e9190613ce7565b90505b5b600760159054906101000a900460ff16801561237b5750600760149054906101000a900460ff16155b80156123d55750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156123e15750600081115b156123ef576123ee612820565b5b61240584848385612400919061338c565b6129ad565b600081111561241a576124198430836129ad565b5b50505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80471015612529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252090613d64565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161254f90613db5565b60006040518083038185875af1925050503d806000811461258c576040519150601f19603f3d011682016040523d82523d6000602084013e612591565b606091505b50509050806125d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125cc90613e3c565b60405180910390fd5b505050565b6000600267ffffffffffffffff8111156125f7576125f6613e5c565b5b6040519080825280602002602001820160405280156126255781602001602082028036833780820191505090505b509050308160008151811061263d5761263c613e8b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612708919061352c565b8160018151811061271c5761271b613e8b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061278330600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d02565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166352aa4c2283600084306000426040518763ffffffff1660e01b81526004016127ea96959493929190613fb3565b600060405180830381600087803b15801561280457600080fd5b505af1158015612818573d6000803e3d6000fd5b505050505050565b600760149054906101000a900460ff166129ab576001600760146101000a81548160ff021916908315150217905550600061285a306110d5565b9050600954811061298e576000600260125461287691906136d7565b9050600081600f600001548461288c91906136d7565b6128969190613ce7565b9050600081846128a6919061338c565b905060004790506128b6826125da565b600081476128c4919061338c565b90506000600f60000154866128d9919061338c565b826128e49190613ce7565b90506000600f60000154826128f991906136d7565b9050600081111561290f5761290e8682612c2a565b5b6000600f6001015460028461292491906136d7565b61292e91906136d7565b905060008111156129855761298481600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166124e690919063ffffffff16565b5b50505050505050505b506000600760146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612a1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a139061408d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a829061411f565b60405180910390fd5b612a96838383612d2a565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b13906141b1565b60405180910390fd5b8181612b28919061338c565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612bb891906133c0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c1c9190612d48565b60405180910390a350505050565b612c5730600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d02565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612ce0969594939291906141d1565b60606040518083038185885af1158015612cfe573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612d239190614247565b5050505050565b505050565b6000819050919050565b612d4281612d2f565b82525050565b6000602082019050612d5d6000830184612d39565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d9d578082015181840152602081019050612d82565b83811115612dac576000848401525b50505050565b6000601f19601f8301169050919050565b6000612dce82612d63565b612dd88185612d6e565b9350612de8818560208601612d7f565b612df181612db2565b840191505092915050565b60006020820190508181036000830152612e168184612dc3565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e4e82612e23565b9050919050565b612e5e81612e43565b8114612e6957600080fd5b50565b600081359050612e7b81612e55565b92915050565b612e8a81612d2f565b8114612e9557600080fd5b50565b600081359050612ea781612e81565b92915050565b60008060408385031215612ec457612ec3612e1e565b5b6000612ed285828601612e6c565b9250506020612ee385828601612e98565b9150509250929050565b60008115159050919050565b612f0281612eed565b82525050565b6000602082019050612f1d6000830184612ef9565b92915050565b600060208284031215612f3957612f38612e1e565b5b6000612f4784828501612e6c565b91505092915050565b600080600060608486031215612f6957612f68612e1e565b5b6000612f7786828701612e6c565b9350506020612f8886828701612e6c565b9250506040612f9986828701612e98565b9150509250925092565b600060ff82169050919050565b612fb981612fa3565b82525050565b6000602082019050612fd46000830184612fb0565b92915050565b612fe381612eed565b8114612fee57600080fd5b50565b60008135905061300081612fda565b92915050565b6000806040838503121561301d5761301c612e1e565b5b600061302b85828601612e6c565b925050602061303c85828601612ff1565b9150509250929050565b600061305182612e43565b9050919050565b61306181613046565b811461306c57600080fd5b50565b60008135905061307e81613058565b92915050565b6000806040838503121561309b5761309a612e1e565b5b60006130a98582860161306f565b92505060206130ba85828601612e6c565b9150509250929050565b6000602082840312156130da576130d9612e1e565b5b60006130e884828501612e98565b91505092915050565b60006040820190506131066000830185612d39565b6131136020830184612d39565b9392505050565b61312381612e43565b82525050565b600060208201905061313e600083018461311a565b92915050565b6000806040838503121561315b5761315a612e1e565b5b600061316985828601612e98565b925050602061317a85828601612e98565b9150509250929050565b6000806040838503121561319b5761319a612e1e565b5b60006131a985828601612e6c565b92505060206131ba85828601612e6c565b9150509250929050565b6000602082840312156131da576131d9612e1e565b5b60006131e884828501612ff1565b91505092915050565b6000819050919050565b600061321661321161320c84612e23565b6131f1565b612e23565b9050919050565b6000613228826131fb565b9050919050565b600061323a8261321d565b9050919050565b61324a8161322f565b82525050565b60006020820190506132656000830184613241565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806132b257607f821691505b6020821081036132c5576132c461326b565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613327602883612d6e565b9150613332826132cb565b604082019050919050565b600060208201905081810360008301526133568161331a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061339782612d2f565b91506133a283612d2f565b9250828210156133b5576133b461335d565b5b828203905092915050565b60006133cb82612d2f565b91506133d683612d2f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561340b5761340a61335d565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061344c602083612d6e565b915061345782613416565b602082019050919050565b6000602082019050818103600083015261347b8161343f565b9050919050565b7f416c726561647920696e697469616c697a656400000000000000000000000000600082015250565b60006134b8601383612d6e565b91506134c382613482565b602082019050919050565b600060208201905081810360008301526134e7816134ab565b9050919050565b6000604082019050613503600083018561311a565b613510602083018461311a565b9392505050565b60008151905061352681612e55565b92915050565b60006020828403121561354257613541612e1e565b5b600061355084828501613517565b91505092915050565b60008160011c9050919050565b6000808291508390505b60018511156135b05780860481111561358c5761358b61335d565b5b600185161561359b5780820291505b80810290506135a985613559565b9450613570565b94509492505050565b6000826135c95760019050613685565b816135d75760009050613685565b81600181146135ed57600281146135f757613626565b6001915050613685565b60ff8411156136095761360861335d565b5b8360020a9150848211156136205761361f61335d565b5b50613685565b5060208310610133831016604e8410600b841016171561365b5782820a9050838111156136565761365561335d565b5b613685565b6136688484846001613566565b9250905081840481111561367f5761367e61335d565b5b81810290505b9392505050565b600061369782612d2f565b91506136a283612fa3565b92506136cf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846135b9565b905092915050565b60006136e282612d2f565b91506136ed83612d2f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156137265761372561335d565b5b828202905092915050565b7f54726164696e6720616c72656164792061637469766500000000000000000000600082015250565b6000613767601683612d6e565b915061377282613731565b602082019050919050565b600060208201905081810360008301526137968161375a565b9050919050565b60006040820190506137b2600083018561311a565b6137bf6020830184612d39565b9392505050565b6000815190506137d581612fda565b92915050565b6000602082840312156137f1576137f0612e1e565b5b60006137ff848285016137c6565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613864602583612d6e565b915061386f82613808565b604082019050919050565b6000602082019050818103600083015261389381613857565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138f6602683612d6e565b91506139018261389a565b604082019050919050565b60006020820190508181036000830152613925816138e9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613988602483612d6e565b91506139938261392c565b604082019050919050565b600060208201905081810360008301526139b78161397b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a1a602283612d6e565b9150613a25826139be565b604082019050919050565b60006020820190508181036000830152613a4981613a0d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613aac602983612d6e565b9150613ab782613a50565b604082019050919050565b60006020820190508181036000830152613adb81613a9f565b9050919050565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000613b18600b83612d6e565b9150613b2382613ae2565b602082019050919050565b60006020820190508181036000830152613b4781613b0b565b9050919050565b7f54726164696e67206e6f74206163746976652079657400000000000000000000600082015250565b6000613b84601683612d6e565b9150613b8f82613b4e565b602082019050919050565b60006020820190508181036000830152613bb381613b77565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b6000613bf0601d83612d6e565b9150613bfb82613bba565b602082019050919050565b60006020820190508181036000830152613c1f81613be3565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c82602183612d6e565b9150613c8d82613c26565b604082019050919050565b60006020820190508181036000830152613cb181613c75565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613cf282612d2f565b9150613cfd83612d2f565b925082613d0d57613d0c613cb8565b5b828204905092915050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000613d4e601d83612d6e565b9150613d5982613d18565b602082019050919050565b60006020820190508181036000830152613d7d81613d41565b9050919050565b600081905092915050565b50565b6000613d9f600083613d84565b9150613daa82613d8f565b600082019050919050565b6000613dc082613d92565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000613e26603a83612d6e565b9150613e3182613dca565b604082019050919050565b60006020820190508181036000830152613e5581613e19565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613edf613eda613ed584613eba565b6131f1565b612d2f565b9050919050565b613eef81613ec4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f2a81612e43565b82525050565b6000613f3c8383613f21565b60208301905092915050565b6000602082019050919050565b6000613f6082613ef5565b613f6a8185613f00565b9350613f7583613f11565b8060005b83811015613fa6578151613f8d8882613f30565b9750613f9883613f48565b925050600181019050613f79565b5085935050505092915050565b600060c082019050613fc86000830189612d39565b613fd56020830188613ee6565b8181036040830152613fe78187613f55565b9050613ff6606083018661311a565b614003608083018561311a565b61401060a0830184612d39565b979650505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614077602583612d6e565b91506140828261401b565b604082019050919050565b600060208201905081810360008301526140a68161406a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614109602383612d6e565b9150614114826140ad565b604082019050919050565b60006020820190508181036000830152614138816140fc565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061419b602683612d6e565b91506141a68261413f565b604082019050919050565b600060208201905081810360008301526141ca8161418e565b9050919050565b600060c0820190506141e6600083018961311a565b6141f36020830188612d39565b6142006040830187613ee6565b61420d6060830186613ee6565b61421a608083018561311a565b61422760a0830184612d39565b979650505050505050565b60008151905061424181612e81565b92915050565b6000806000606084860312156142605761425f612e1e565b5b600061426e86828701614232565b935050602061427f86828701614232565b925050604061429086828701614232565b915050925092509256fea26469706673582212202a24bef2386ed3cb0bb151b77ea6a66b102de4f9273cf410e9e5061de080319764736f6c634300080f0033

Deployed Bytecode Sourcemap

12304:7207:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12718:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6983:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7897:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13260:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7304:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13157:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8074:422;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7203:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8504:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18583:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18285:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12514:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13953:243;;;;;;;;;;;;;:::i;:::-;;18730:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12484:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7420:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11822:94;;;;;;;;;;;;;:::i;:::-;;13042:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;17669:144;;;;;;;;;;;;;:::i;:::-;;12772:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18992:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11599:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7091:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17551:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19135:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17989:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8727:377;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18172:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12423:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7555:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17819:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12823:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19248:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18859:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13202:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7738:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17450:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18441:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11924:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13080:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;12388:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13123:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12718:47;;;;:::o;6983:100::-;7037:13;7070:5;7063:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6983:100;:::o;7897:169::-;7980:4;7997:39;8006:12;:10;:12::i;:::-;8020:7;8029:6;7997:8;:39::i;:::-;8054:4;8047:11;;7897:169;;;;:::o;13260:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;7304:108::-;7365:7;7392:12;;7385:19;;7304:108;:::o;13157:32::-;;;;:::o;8074:422::-;8180:4;8197:36;8207:6;8215:9;8226:6;8197:9;:36::i;:::-;8246:24;8273:11;:19;8285:6;8273:19;;;;;;;;;;;;;;;:33;8293:12;:10;:12::i;:::-;8273:33;;;;;;;;;;;;;;;;8246:60;;8345:6;8325:16;:26;;8317:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8407:57;8416:6;8424:12;:10;:12::i;:::-;8457:6;8438:16;:25;;;;:::i;:::-;8407:8;:57::i;:::-;8484:4;8477:11;;;8074:422;;;;;:::o;7203:93::-;7261:5;7286:2;7279:9;;7203:93;:::o;8504:215::-;8592:4;8609:80;8618:12;:10;:12::i;:::-;8632:7;8678:10;8641:11;:25;8653:12;:10;:12::i;:::-;8641:25;;;;;;;;;;;;;;;:34;8667:7;8641:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;8609:8;:80::i;:::-;8707:4;8700:11;;8504:215;;;;:::o;18583:135::-;11745:12;:10;:12::i;:::-;11734:23;;:7;:5;:7::i;:::-;:23;;;11726:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18695:15:::1;18672:10;:20;18683:8;18672:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;18583:135:::0;;:::o;18285:144::-;11745:12;:10;:12::i;:::-;11734:23;;:7;:5;:7::i;:::-;:23;;;11726:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18391:7:::1;18382:6;;:16;;;;;;;;;;;;;;;;;;18416:5;18409:4;;:12;;;;;;;;;;;;;;;;;;18285:144:::0;;:::o;12514:26::-;;;;;;;;;;;;;:::o;13953:243::-;11745:12;:10;:12::i;:::-;11734:23;;:7;:5;:7::i;:::-;:23;;;11726:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14018:11:::1;;;;;;;;;;;14017:12;14009:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;14071:7;:18;;;14098:42;14151:4;14071:86;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14064:4;;:93;;;;;;;;;;;;;;;;;;14183:4;14169:11;;:18;;;;;;;;;;;;;;;;;;13953:243::o:0;18730:117::-;11745:12;:10;:12::i;:::-;11734:23;;:7;:5;:7::i;:::-;:23;;;11726:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18829:10:::1;:8;:10::i;:::-;18825:2;:14;;;;:::i;:::-;18816:6;:23;;;;:::i;:::-;18802:11;:37;;;;18730:117:::0;:::o;12484:23::-;;;;;;;;;;;;;:::o;7420:127::-;7494:7;7521:9;:18;7531:7;7521:18;;;;;;;;;;;;;;;;7514:25;;7420:127;;;:::o;11822:94::-;11745:12;:10;:12::i;:::-;11734:23;;:7;:5;:7::i;:::-;:23;;;11726:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11887:21:::1;11905:1;11887:9;:21::i;:::-;11822:94::o:0;13042:31::-;;;;;;;;;;;;;;:::o;17669:144::-;11745:12;:10;:12::i;:::-;11734:23;;:7;:5;:7::i;:::-;:23;;;11726:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17732:14:::1;;;;;;;;;;;17731:15;17723:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;17801:4;17784:14;;:21;;;;;;;;;;;;;;;;;;17669:144::o:0;12772:44::-;;;;:::o;18992:135::-;19078:12;19071:29;;;19101:9;;;;;;;;;;;19112:6;19071:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18992:135;;:::o;11599:87::-;11645:7;11672:6;;;;;;;;;;;11665:13;;11599:87;:::o;7091:104::-;7147:13;7180:7;7173:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7091:104;:::o;17551:110::-;11745:12;:10;:12::i;:::-;11734:23;;:7;:5;:7::i;:::-;:23;;;11726:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17643:10:::1;17627:13;:26;;;;17551:110:::0;:::o;19135:105::-;19193:39;19222:9;19201;;;;;;;;;;;19193:28;;;;:39;;;;:::i;:::-;19135:105;:::o;17989:171::-;11745:12;:10;:12::i;:::-;11734:23;;:7;:5;:7::i;:::-;:23;;;11726:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18086:23:::1;;;;;;;;18092:10;18086:23;;;;18104:4;18086:23;;::::0;18074:9:::1;:35;;;;;;;;;;;;;;;;;;;18148:4;18135:10;:17;;;;:::i;:::-;18120:12;:32;;;;17989:171:::0;;:::o;8727:377::-;8820:4;8837:24;8864:11;:25;8876:12;:10;:12::i;:::-;8864:25;;;;;;;;;;;;;;;:34;8890:7;8864:34;;;;;;;;;;;;;;;;8837:61;;8937:15;8917:16;:35;;8909:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;9005:67;9014:12;:10;:12::i;:::-;9028:7;9056:15;9037:16;:34;;;;:::i;:::-;9005:8;:67::i;:::-;9092:4;9085:11;;;8727:377;;;;:::o;18172:105::-;11745:12;:10;:12::i;:::-;11734:23;;:7;:5;:7::i;:::-;:23;;;11726:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18260:9:::1;18248;;:21;;;;;;;;;;;;;;;;;;18172:105:::0;:::o;12423:19::-;;;;;;;;;;;;;:::o;7555:175::-;7641:4;7658:42;7668:12;:10;:12::i;:::-;7682:9;7693:6;7658:9;:42::i;:::-;7718:4;7711:11;;7555:175;;;;:::o;17819:162::-;11745:12;:10;:12::i;:::-;11734:23;;:7;:5;:7::i;:::-;:23;;;11726:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17911:23:::1;;;;;;;;17917:10;17911:23;;;;17929:4;17911:23;;::::0;17903:5:::1;:31;;;;;;;;;;;;;;;;;;;17969:4;17956:10;:17;;;;:::i;:::-;17945:8;:28;;;;17819:162:::0;;:::o;12823:50::-;;;;:::o;19248:199::-;19325:9;;;;;;;;;;;19311:23;;:10;:23;;;19303:32;;;;;;19346:24;19363:6;19346:16;:24::i;:::-;19381:51;19410:21;19389:9;;;;;;;;;;;19381:28;;;;:51;;;;:::i;:::-;19248:199;:::o;18859:125::-;11745:12;:10;:12::i;:::-;11734:23;;:7;:5;:7::i;:::-;:23;;;11726:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18966:10:::1;:8;:10::i;:::-;18962:2;:14;;;;:::i;:::-;18953:6;:23;;;;:::i;:::-;18935:15;:41;;;;18859:125:::0;:::o;13202:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;7738:151::-;7827:7;7854:11;:18;7866:5;7854:18;;;;;;;;;;;;;;;:27;7873:7;7854:27;;;;;;;;;;;;;;;;7847:34;;7738:151;;;;:::o;17450:93::-;11745:12;:10;:12::i;:::-;11734:23;;:7;:5;:7::i;:::-;:23;;;11726:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17530:5:::1;17516:11;;:19;;;;;;;;;;;;;;;;;;17450:93:::0;:::o;18441:134::-;11745:12;:10;:12::i;:::-;11734:23;;:7;:5;:7::i;:::-;:23;;;11726:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18562:5:::1;18533:16;:26;18550:8;18533:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;18441:134:::0;;:::o;11924:192::-;11745:12;:10;:12::i;:::-;11734:23;;:7;:5;:7::i;:::-;:23;;;11726:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12033:1:::1;12013:22;;:8;:22;;::::0;12005:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12089:19;12099:8;12089:9;:19::i;:::-;11924:192:::0;:::o;13080:36::-;;;;;;;;;;;;;;:::o;12388:28::-;;;;;;;;;;;;;:::o;13123:27::-;;;;:::o;5383:98::-;5436:7;5463:10;5456:17;;5383:98;:::o;10569:346::-;10688:1;10671:19;;:5;:19;;;10663:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10769:1;10750:21;;:7;:21;;;10742:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10853:6;10823:11;:18;10835:5;10823:18;;;;;;;;;;;;;;;:27;10842:7;10823:27;;;;;;;;;;;;;;;:36;;;;10891:7;10875:32;;10884:5;10875:32;;;10900:6;10875:32;;;;;;:::i;:::-;;;;;;;;10569:346;;;:::o;14210:1180::-;14326:1;14317:6;:10;14309:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14393:10;:18;14404:6;14393:18;;;;;;;;;;;;;;;;;;;;;;;;;14392:19;:45;;;;;14416:10;:21;14427:9;14416:21;;;;;;;;;;;;;;;;;;;;;;;;;14415:22;14392:45;14384:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;14480:16;:24;14497:6;14480:24;;;;;;;;;;;;;;;;;;;;;;;;;14479:25;:57;;;;;14509:16;:27;14526:9;14509:27;;;;;;;;;;;;;;;;;;;;;;;;;14508:28;14479:57;:70;;;;;14541:8;;;;;;;;;;;14540:9;14479:70;14476:392;;;14573:14;;;;;;;;;;;14565:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;14647:11;;14637:6;:21;;14629:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;14723:4;;;;;;;;;;;14710:17;;:9;:17;;;14707:150;;14788:15;;14778:6;14755:20;14765:9;14755;:20::i;:::-;:29;;;;:::i;:::-;:48;;14747:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;14707:150;14476:392;14881:11;14921:8;;;;;;;;;;;:36;;;;14933:16;:24;14950:6;14933:24;;;;;;;;;;;;;;;;;;;;;;;;;14921:36;:67;;;;14961:16;:27;14978:9;14961:27;;;;;;;;;;;;;;;;;;;;;;;;;14921:67;14917:241;;;14996:1;14990:7;;14917:241;;;15058:4;;;;;;;;;;;15045:17;;:9;:17;;;15042:104;;15094:3;15079:12;;15070:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;15064:33;;15042:104;;;15143:3;15132:8;;15123:6;:17;;;;:::i;:::-;:23;;;;:::i;:::-;15117:29;;15042:104;14917:241;15185:11;;;;;;;;;;;:24;;;;;15201:8;;;;;;;;;;;15200:9;15185:24;:42;;;;;15223:4;;;;;;;;;;;15213:14;;:6;:14;;;;15185:42;:53;;;;;15237:1;15231:3;:7;15185:53;15181:72;;;15240:13;:11;:13::i;:::-;15181:72;15266:48;15282:6;15290:9;15310:3;15301:6;:12;;;;:::i;:::-;15266:15;:48::i;:::-;15334:1;15328:3;:7;15325:55;;;15337:43;15353:6;15369:4;15376:3;15337:15;:43::i;:::-;15325:55;14298:1092;14210:1180;;;:::o;12124:173::-;12180:16;12199:6;;;;;;;;;;;12180:25;;12225:8;12216:6;;:17;;;;;;;;;;;;;;;;;;12280:8;12249:40;;12270:8;12249:40;;;;;;;;;;;;12169:128;12124:173;:::o;11044:317::-;11159:6;11134:21;:31;;11126:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11213:12;11231:9;:14;;11253:6;11231:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11212:52;;;11283:7;11275:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11115:246;11044:317;;:::o;16512:425::-;16578:21;16616:1;16602:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16578:40;;16647:4;16629;16634:1;16629:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16673:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16663:4;16668:1;16663:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16710:53;16727:4;16742:6;;;;;;;;;;;16751:11;16710:8;:53::i;:::-;16802:6;;;;;;;;;;;:57;;;16860:11;16873:1;16876:4;16890;13343:42;16911:15;16802:125;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16567:370;16512:425;:::o;15399:1103::-;13432:8;;;;;;;;;;;13427:104;;13468:4;13457:8;;:15;;;;;;;;;;;;;;;;;;15448:23:::1;15474:24;15492:4;15474:9;:24::i;:::-;15448:50;;15532:13;;15513:15;:32;15509:986;;15564:19;15601:1;15586:12;;:16;;;;:::i;:::-;15564:38;;15617:32;15692:11;15670:9;:19;;;15652:15;:37;;;;:::i;:::-;:51;;;;:::i;:::-;15617:86;;15718:14;15753:24;15735:15;:42;;;;:::i;:::-;15718:59;;15792:22;15817:21;15792:46;;15859:24;15876:6;15859:16;:24::i;:::-;15904:20;15951:14;15927:21;:38;;;;:::i;:::-;15904:61;;15980:19;16031:9;:19;;;16017:11;:33;;;;:::i;:::-;16001:12;:50;;;;:::i;:::-;15980:71;;16066:29;16112:9;:19;;;16098:11;:33;;;;:::i;:::-;16066:65;;16179:1;16155:21;:25;16152:170;;;16245:61;16258:24;16284:21;16245:12;:61::i;:::-;16152:170;16336:14;16371:9;:13;;;16367:1;16353:11;:15;;;;:::i;:::-;:31;;;;:::i;:::-;16336:48;;16411:1;16402:6;:10;16399:85;;;16432:36;16461:6;16440:9;;;;;;;;;;;16432:28;;;;:36;;;;:::i;:::-;16399:85;15547:948;;;;;;;;15509:986;15437:1065;13514:5:::0;13503:8;;:16;;;;;;;;;;;;;;;;;;13427:104;15399:1103::o;9112:604::-;9236:1;9218:20;;:6;:20;;;9210:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9320:1;9299:23;;:9;:23;;;9291:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9375:47;9396:6;9404:9;9415:6;9375:20;:47::i;:::-;9435:21;9459:9;:17;9469:6;9459:17;;;;;;;;;;;;;;;;9435:41;;9512:6;9495:13;:23;;9487:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9608:6;9592:13;:22;;;;:::i;:::-;9572:9;:17;9582:6;9572:17;;;;;;;;;;;;;;;:42;;;;9649:6;9625:9;:20;9635:9;9625:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;9690:9;9673:35;;9682:6;9673:35;;;9701:6;9673:35;;;;;;:::i;:::-;;;;;;;;9199:517;9112:604;;;:::o;16945:497::-;17093:53;17110:4;17125:6;;;;;;;;;;;17134:11;17093:8;:53::i;:::-;17189:6;;;;;;;;;;;:22;;;17219:9;17252:4;17272:11;17298:1;17341;17384:9;;;;;;;;;;;17408:15;17189:245;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16945:497;;:::o;10923:92::-;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1913:117::-;2022:1;2019;2012:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:329::-;3905:6;3954:2;3942:9;3933:7;3929:23;3925:32;3922:119;;;3960:79;;:::i;:::-;3922:119;4080:1;4105:53;4150:7;4141:6;4130:9;4126:22;4105:53;:::i;:::-;4095:63;;4051:117;3846:329;;;;:::o;4181:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:116::-;5306:21;5321:5;5306:21;:::i;:::-;5299:5;5296:32;5286:60;;5342:1;5339;5332:12;5286:60;5236:116;:::o;5358:133::-;5401:5;5439:6;5426:20;5417:29;;5455:30;5479:5;5455:30;:::i;:::-;5358:133;;;;:::o;5497:468::-;5562:6;5570;5619:2;5607:9;5598:7;5594:23;5590:32;5587:119;;;5625:79;;:::i;:::-;5587:119;5745:1;5770:53;5815:7;5806:6;5795:9;5791:22;5770:53;:::i;:::-;5760:63;;5716:117;5872:2;5898:50;5940:7;5931:6;5920:9;5916:22;5898:50;:::i;:::-;5888:60;;5843:115;5497:468;;;;;:::o;5971:118::-;6030:7;6059:24;6077:5;6059:24;:::i;:::-;6048:35;;5971:118;;;:::o;6095:166::-;6190:46;6230:5;6190:46;:::i;:::-;6183:5;6180:57;6170:85;;6251:1;6248;6241:12;6170:85;6095:166;:::o;6267:183::-;6335:5;6373:6;6360:20;6351:29;;6389:55;6438:5;6389:55;:::i;:::-;6267:183;;;;:::o;6456:518::-;6546:6;6554;6603:2;6591:9;6582:7;6578:23;6574:32;6571:119;;;6609:79;;:::i;:::-;6571:119;6729:1;6754:75;6821:7;6812:6;6801:9;6797:22;6754:75;:::i;:::-;6744:85;;6700:139;6878:2;6904:53;6949:7;6940:6;6929:9;6925:22;6904:53;:::i;:::-;6894:63;;6849:118;6456:518;;;;;:::o;6980:329::-;7039:6;7088:2;7076:9;7067:7;7063:23;7059:32;7056:119;;;7094:79;;:::i;:::-;7056:119;7214:1;7239:53;7284:7;7275:6;7264:9;7260:22;7239:53;:::i;:::-;7229:63;;7185:117;6980:329;;;;:::o;7315:332::-;7436:4;7474:2;7463:9;7459:18;7451:26;;7487:71;7555:1;7544:9;7540:17;7531:6;7487:71;:::i;:::-;7568:72;7636:2;7625:9;7621:18;7612:6;7568:72;:::i;:::-;7315:332;;;;;:::o;7653:118::-;7740:24;7758:5;7740:24;:::i;:::-;7735:3;7728:37;7653:118;;:::o;7777:222::-;7870:4;7908:2;7897:9;7893:18;7885:26;;7921:71;7989:1;7978:9;7974:17;7965:6;7921:71;:::i;:::-;7777:222;;;;:::o;8005:474::-;8073:6;8081;8130:2;8118:9;8109:7;8105:23;8101:32;8098:119;;;8136:79;;:::i;:::-;8098:119;8256:1;8281:53;8326:7;8317:6;8306:9;8302:22;8281:53;:::i;:::-;8271:63;;8227:117;8383:2;8409:53;8454:7;8445:6;8434:9;8430:22;8409:53;:::i;:::-;8399:63;;8354:118;8005:474;;;;;:::o;8485:::-;8553:6;8561;8610:2;8598:9;8589:7;8585:23;8581:32;8578:119;;;8616:79;;:::i;:::-;8578:119;8736:1;8761:53;8806:7;8797:6;8786:9;8782:22;8761:53;:::i;:::-;8751:63;;8707:117;8863:2;8889:53;8934:7;8925:6;8914:9;8910:22;8889:53;:::i;:::-;8879:63;;8834:118;8485:474;;;;;:::o;8965:323::-;9021:6;9070:2;9058:9;9049:7;9045:23;9041:32;9038:119;;;9076:79;;:::i;:::-;9038:119;9196:1;9221:50;9263:7;9254:6;9243:9;9239:22;9221:50;:::i;:::-;9211:60;;9167:114;8965:323;;;;:::o;9294:60::-;9322:3;9343:5;9336:12;;9294:60;;;:::o;9360:142::-;9410:9;9443:53;9461:34;9470:24;9488:5;9470:24;:::i;:::-;9461:34;:::i;:::-;9443:53;:::i;:::-;9430:66;;9360:142;;;:::o;9508:126::-;9558:9;9591:37;9622:5;9591:37;:::i;:::-;9578:50;;9508:126;;;:::o;9640:148::-;9712:9;9745:37;9776:5;9745:37;:::i;:::-;9732:50;;9640:148;;;:::o;9794:175::-;9903:59;9956:5;9903:59;:::i;:::-;9898:3;9891:72;9794:175;;:::o;9975:266::-;10090:4;10128:2;10117:9;10113:18;10105:26;;10141:93;10231:1;10220:9;10216:17;10207:6;10141:93;:::i;:::-;9975:266;;;;:::o;10247:180::-;10295:77;10292:1;10285:88;10392:4;10389:1;10382:15;10416:4;10413:1;10406:15;10433:320;10477:6;10514:1;10508:4;10504:12;10494:22;;10561:1;10555:4;10551:12;10582:18;10572:81;;10638:4;10630:6;10626:17;10616:27;;10572:81;10700:2;10692:6;10689:14;10669:18;10666:38;10663:84;;10719:18;;:::i;:::-;10663:84;10484:269;10433:320;;;:::o;10759:227::-;10899:34;10895:1;10887:6;10883:14;10876:58;10968:10;10963:2;10955:6;10951:15;10944:35;10759:227;:::o;10992:366::-;11134:3;11155:67;11219:2;11214:3;11155:67;:::i;:::-;11148:74;;11231:93;11320:3;11231:93;:::i;:::-;11349:2;11344:3;11340:12;11333:19;;10992:366;;;:::o;11364:419::-;11530:4;11568:2;11557:9;11553:18;11545:26;;11617:9;11611:4;11607:20;11603:1;11592:9;11588:17;11581:47;11645:131;11771:4;11645:131;:::i;:::-;11637:139;;11364:419;;;:::o;11789:180::-;11837:77;11834:1;11827:88;11934:4;11931:1;11924:15;11958:4;11955:1;11948:15;11975:191;12015:4;12035:20;12053:1;12035:20;:::i;:::-;12030:25;;12069:20;12087:1;12069:20;:::i;:::-;12064:25;;12108:1;12105;12102:8;12099:34;;;12113:18;;:::i;:::-;12099:34;12158:1;12155;12151:9;12143:17;;11975:191;;;;:::o;12172:305::-;12212:3;12231:20;12249:1;12231:20;:::i;:::-;12226:25;;12265:20;12283:1;12265:20;:::i;:::-;12260:25;;12419:1;12351:66;12347:74;12344:1;12341:81;12338:107;;;12425:18;;:::i;:::-;12338:107;12469:1;12466;12462:9;12455:16;;12172:305;;;;:::o;12483:182::-;12623:34;12619:1;12611:6;12607:14;12600:58;12483:182;:::o;12671:366::-;12813:3;12834:67;12898:2;12893:3;12834:67;:::i;:::-;12827:74;;12910:93;12999:3;12910:93;:::i;:::-;13028:2;13023:3;13019:12;13012:19;;12671:366;;;:::o;13043:419::-;13209:4;13247:2;13236:9;13232:18;13224:26;;13296:9;13290:4;13286:20;13282:1;13271:9;13267:17;13260:47;13324:131;13450:4;13324:131;:::i;:::-;13316:139;;13043:419;;;:::o;13468:169::-;13608:21;13604:1;13596:6;13592:14;13585:45;13468:169;:::o;13643:366::-;13785:3;13806:67;13870:2;13865:3;13806:67;:::i;:::-;13799:74;;13882:93;13971:3;13882:93;:::i;:::-;14000:2;13995:3;13991:12;13984:19;;13643:366;;;:::o;14015:419::-;14181:4;14219:2;14208:9;14204:18;14196:26;;14268:9;14262:4;14258:20;14254:1;14243:9;14239:17;14232:47;14296:131;14422:4;14296:131;:::i;:::-;14288:139;;14015:419;;;:::o;14440:332::-;14561:4;14599:2;14588:9;14584:18;14576:26;;14612:71;14680:1;14669:9;14665:17;14656:6;14612:71;:::i;:::-;14693:72;14761:2;14750:9;14746:18;14737:6;14693:72;:::i;:::-;14440:332;;;;;:::o;14778:143::-;14835:5;14866:6;14860:13;14851:22;;14882:33;14909:5;14882:33;:::i;:::-;14778:143;;;;:::o;14927:351::-;14997:6;15046:2;15034:9;15025:7;15021:23;15017:32;15014:119;;;15052:79;;:::i;:::-;15014:119;15172:1;15197:64;15253:7;15244:6;15233:9;15229:22;15197:64;:::i;:::-;15187:74;;15143:128;14927:351;;;;:::o;15284:102::-;15326:8;15373:5;15370:1;15366:13;15345:34;;15284:102;;;:::o;15392:848::-;15453:5;15460:4;15484:6;15475:15;;15508:5;15499:14;;15522:712;15543:1;15533:8;15530:15;15522:712;;;15638:4;15633:3;15629:14;15623:4;15620:24;15617:50;;;15647:18;;:::i;:::-;15617:50;15697:1;15687:8;15683:16;15680:451;;;16112:4;16105:5;16101:16;16092:25;;15680:451;16162:4;16156;16152:15;16144:23;;16192:32;16215:8;16192:32;:::i;:::-;16180:44;;15522:712;;;15392:848;;;;;;;:::o;16246:1073::-;16300:5;16491:8;16481:40;;16512:1;16503:10;;16514:5;;16481:40;16540:4;16530:36;;16557:1;16548:10;;16559:5;;16530:36;16626:4;16674:1;16669:27;;;;16710:1;16705:191;;;;16619:277;;16669:27;16687:1;16678:10;;16689:5;;;16705:191;16750:3;16740:8;16737:17;16734:43;;;16757:18;;:::i;:::-;16734:43;16806:8;16803:1;16799:16;16790:25;;16841:3;16834:5;16831:14;16828:40;;;16848:18;;:::i;:::-;16828:40;16881:5;;;16619:277;;17005:2;16995:8;16992:16;16986:3;16980:4;16977:13;16973:36;16955:2;16945:8;16942:16;16937:2;16931:4;16928:12;16924:35;16908:111;16905:246;;;17061:8;17055:4;17051:19;17042:28;;17096:3;17089:5;17086:14;17083:40;;;17103:18;;:::i;:::-;17083:40;17136:5;;16905:246;17176:42;17214:3;17204:8;17198:4;17195:1;17176:42;:::i;:::-;17161:57;;;;17250:4;17245:3;17241:14;17234:5;17231:25;17228:51;;;17259:18;;:::i;:::-;17228:51;17308:4;17301:5;17297:16;17288:25;;16246:1073;;;;;;:::o;17325:281::-;17383:5;17407:23;17425:4;17407:23;:::i;:::-;17399:31;;17451:25;17467:8;17451:25;:::i;:::-;17439:37;;17495:104;17532:66;17522:8;17516:4;17495:104;:::i;:::-;17486:113;;17325:281;;;;:::o;17612:348::-;17652:7;17675:20;17693:1;17675:20;:::i;:::-;17670:25;;17709:20;17727:1;17709:20;:::i;:::-;17704:25;;17897:1;17829:66;17825:74;17822:1;17819:81;17814:1;17807:9;17800:17;17796:105;17793:131;;;17904:18;;:::i;:::-;17793:131;17952:1;17949;17945:9;17934:20;;17612:348;;;;:::o;17966:172::-;18106:24;18102:1;18094:6;18090:14;18083:48;17966:172;:::o;18144:366::-;18286:3;18307:67;18371:2;18366:3;18307:67;:::i;:::-;18300:74;;18383:93;18472:3;18383:93;:::i;:::-;18501:2;18496:3;18492:12;18485:19;;18144:366;;;:::o;18516:419::-;18682:4;18720:2;18709:9;18705:18;18697:26;;18769:9;18763:4;18759:20;18755:1;18744:9;18740:17;18733:47;18797:131;18923:4;18797:131;:::i;:::-;18789:139;;18516:419;;;:::o;18941:332::-;19062:4;19100:2;19089:9;19085:18;19077:26;;19113:71;19181:1;19170:9;19166:17;19157:6;19113:71;:::i;:::-;19194:72;19262:2;19251:9;19247:18;19238:6;19194:72;:::i;:::-;18941:332;;;;;:::o;19279:137::-;19333:5;19364:6;19358:13;19349:22;;19380:30;19404:5;19380:30;:::i;:::-;19279:137;;;;:::o;19422:345::-;19489:6;19538:2;19526:9;19517:7;19513:23;19509:32;19506:119;;;19544:79;;:::i;:::-;19506:119;19664:1;19689:61;19742:7;19733:6;19722:9;19718:22;19689:61;:::i;:::-;19679:71;;19635:125;19422:345;;;;:::o;19773:224::-;19913:34;19909:1;19901:6;19897:14;19890:58;19982:7;19977:2;19969:6;19965:15;19958:32;19773:224;:::o;20003:366::-;20145:3;20166:67;20230:2;20225:3;20166:67;:::i;:::-;20159:74;;20242:93;20331:3;20242:93;:::i;:::-;20360:2;20355:3;20351:12;20344:19;;20003:366;;;:::o;20375:419::-;20541:4;20579:2;20568:9;20564:18;20556:26;;20628:9;20622:4;20618:20;20614:1;20603:9;20599:17;20592:47;20656:131;20782:4;20656:131;:::i;:::-;20648:139;;20375:419;;;:::o;20800:225::-;20940:34;20936:1;20928:6;20924:14;20917:58;21009:8;21004:2;20996:6;20992:15;20985:33;20800:225;:::o;21031:366::-;21173:3;21194:67;21258:2;21253:3;21194:67;:::i;:::-;21187:74;;21270:93;21359:3;21270:93;:::i;:::-;21388:2;21383:3;21379:12;21372:19;;21031:366;;;:::o;21403:419::-;21569:4;21607:2;21596:9;21592:18;21584:26;;21656:9;21650:4;21646:20;21642:1;21631:9;21627:17;21620:47;21684:131;21810:4;21684:131;:::i;:::-;21676:139;;21403:419;;;:::o;21828:223::-;21968:34;21964:1;21956:6;21952:14;21945:58;22037:6;22032:2;22024:6;22020:15;22013:31;21828:223;:::o;22057:366::-;22199:3;22220:67;22284:2;22279:3;22220:67;:::i;:::-;22213:74;;22296:93;22385:3;22296:93;:::i;:::-;22414:2;22409:3;22405:12;22398:19;;22057:366;;;:::o;22429:419::-;22595:4;22633:2;22622:9;22618:18;22610:26;;22682:9;22676:4;22672:20;22668:1;22657:9;22653:17;22646:47;22710:131;22836:4;22710:131;:::i;:::-;22702:139;;22429:419;;;:::o;22854:221::-;22994:34;22990:1;22982:6;22978:14;22971:58;23063:4;23058:2;23050:6;23046:15;23039:29;22854:221;:::o;23081:366::-;23223:3;23244:67;23308:2;23303:3;23244:67;:::i;:::-;23237:74;;23320:93;23409:3;23320:93;:::i;:::-;23438:2;23433:3;23429:12;23422:19;;23081:366;;;:::o;23453:419::-;23619:4;23657:2;23646:9;23642:18;23634:26;;23706:9;23700:4;23696:20;23692:1;23681:9;23677:17;23670:47;23734:131;23860:4;23734:131;:::i;:::-;23726:139;;23453:419;;;:::o;23878:228::-;24018:34;24014:1;24006:6;24002:14;23995:58;24087:11;24082:2;24074:6;24070:15;24063:36;23878:228;:::o;24112:366::-;24254:3;24275:67;24339:2;24334:3;24275:67;:::i;:::-;24268:74;;24351:93;24440:3;24351:93;:::i;:::-;24469:2;24464:3;24460:12;24453:19;;24112:366;;;:::o;24484:419::-;24650:4;24688:2;24677:9;24673:18;24665:26;;24737:9;24731:4;24727:20;24723:1;24712:9;24708:17;24701:47;24765:131;24891:4;24765:131;:::i;:::-;24757:139;;24484:419;;;:::o;24909:161::-;25049:13;25045:1;25037:6;25033:14;25026:37;24909:161;:::o;25076:366::-;25218:3;25239:67;25303:2;25298:3;25239:67;:::i;:::-;25232:74;;25315:93;25404:3;25315:93;:::i;:::-;25433:2;25428:3;25424:12;25417:19;;25076:366;;;:::o;25448:419::-;25614:4;25652:2;25641:9;25637:18;25629:26;;25701:9;25695:4;25691:20;25687:1;25676:9;25672:17;25665:47;25729:131;25855:4;25729:131;:::i;:::-;25721:139;;25448:419;;;:::o;25873:172::-;26013:24;26009:1;26001:6;25997:14;25990:48;25873:172;:::o;26051:366::-;26193:3;26214:67;26278:2;26273:3;26214:67;:::i;:::-;26207:74;;26290:93;26379:3;26290:93;:::i;:::-;26408:2;26403:3;26399:12;26392:19;;26051:366;;;:::o;26423:419::-;26589:4;26627:2;26616:9;26612:18;26604:26;;26676:9;26670:4;26666:20;26662:1;26651:9;26647:17;26640:47;26704:131;26830:4;26704:131;:::i;:::-;26696:139;;26423:419;;;:::o;26848:179::-;26988:31;26984:1;26976:6;26972:14;26965:55;26848:179;:::o;27033:366::-;27175:3;27196:67;27260:2;27255:3;27196:67;:::i;:::-;27189:74;;27272:93;27361:3;27272:93;:::i;:::-;27390:2;27385:3;27381:12;27374:19;;27033:366;;;:::o;27405:419::-;27571:4;27609:2;27598:9;27594:18;27586:26;;27658:9;27652:4;27648:20;27644:1;27633:9;27629:17;27622:47;27686:131;27812:4;27686:131;:::i;:::-;27678:139;;27405:419;;;:::o;27830:220::-;27970:34;27966:1;27958:6;27954:14;27947:58;28039:3;28034:2;28026:6;28022:15;28015:28;27830:220;:::o;28056:366::-;28198:3;28219:67;28283:2;28278:3;28219:67;:::i;:::-;28212:74;;28295:93;28384:3;28295:93;:::i;:::-;28413:2;28408:3;28404:12;28397:19;;28056:366;;;:::o;28428:419::-;28594:4;28632:2;28621:9;28617:18;28609:26;;28681:9;28675:4;28671:20;28667:1;28656:9;28652:17;28645:47;28709:131;28835:4;28709:131;:::i;:::-;28701:139;;28428:419;;;:::o;28853:180::-;28901:77;28898:1;28891:88;28998:4;28995:1;28988:15;29022:4;29019:1;29012:15;29039:185;29079:1;29096:20;29114:1;29096:20;:::i;:::-;29091:25;;29130:20;29148:1;29130:20;:::i;:::-;29125:25;;29169:1;29159:35;;29174:18;;:::i;:::-;29159:35;29216:1;29213;29209:9;29204:14;;29039:185;;;;:::o;29230:179::-;29370:31;29366:1;29358:6;29354:14;29347:55;29230:179;:::o;29415:366::-;29557:3;29578:67;29642:2;29637:3;29578:67;:::i;:::-;29571:74;;29654:93;29743:3;29654:93;:::i;:::-;29772:2;29767:3;29763:12;29756:19;;29415:366;;;:::o;29787:419::-;29953:4;29991:2;29980:9;29976:18;29968:26;;30040:9;30034:4;30030:20;30026:1;30015:9;30011:17;30004:47;30068:131;30194:4;30068:131;:::i;:::-;30060:139;;29787:419;;;:::o;30212:147::-;30313:11;30350:3;30335:18;;30212:147;;;;:::o;30365:114::-;;:::o;30485:398::-;30644:3;30665:83;30746:1;30741:3;30665:83;:::i;:::-;30658:90;;30757:93;30846:3;30757:93;:::i;:::-;30875:1;30870:3;30866:11;30859:18;;30485:398;;;:::o;30889:379::-;31073:3;31095:147;31238:3;31095:147;:::i;:::-;31088:154;;31259:3;31252:10;;30889:379;;;:::o;31274:245::-;31414:34;31410:1;31402:6;31398:14;31391:58;31483:28;31478:2;31470:6;31466:15;31459:53;31274:245;:::o;31525:366::-;31667:3;31688:67;31752:2;31747:3;31688:67;:::i;:::-;31681:74;;31764:93;31853:3;31764:93;:::i;:::-;31882:2;31877:3;31873:12;31866:19;;31525:366;;;:::o;31897:419::-;32063:4;32101:2;32090:9;32086:18;32078:26;;32150:9;32144:4;32140:20;32136:1;32125:9;32121:17;32114:47;32178:131;32304:4;32178:131;:::i;:::-;32170:139;;31897:419;;;:::o;32322:180::-;32370:77;32367:1;32360:88;32467:4;32464:1;32457:15;32491:4;32488:1;32481:15;32508:180;32556:77;32553:1;32546:88;32653:4;32650:1;32643:15;32677:4;32674:1;32667:15;32694:85;32739:7;32768:5;32757:16;;32694:85;;;:::o;32785:158::-;32843:9;32876:61;32894:42;32903:32;32929:5;32903:32;:::i;:::-;32894:42;:::i;:::-;32876:61;:::i;:::-;32863:74;;32785:158;;;:::o;32949:147::-;33044:45;33083:5;33044:45;:::i;:::-;33039:3;33032:58;32949:147;;:::o;33102:114::-;33169:6;33203:5;33197:12;33187:22;;33102:114;;;:::o;33222:184::-;33321:11;33355:6;33350:3;33343:19;33395:4;33390:3;33386:14;33371:29;;33222:184;;;;:::o;33412:132::-;33479:4;33502:3;33494:11;;33532:4;33527:3;33523:14;33515:22;;33412:132;;;:::o;33550:108::-;33627:24;33645:5;33627:24;:::i;:::-;33622:3;33615:37;33550:108;;:::o;33664:179::-;33733:10;33754:46;33796:3;33788:6;33754:46;:::i;:::-;33832:4;33827:3;33823:14;33809:28;;33664:179;;;;:::o;33849:113::-;33919:4;33951;33946:3;33942:14;33934:22;;33849:113;;;:::o;33998:732::-;34117:3;34146:54;34194:5;34146:54;:::i;:::-;34216:86;34295:6;34290:3;34216:86;:::i;:::-;34209:93;;34326:56;34376:5;34326:56;:::i;:::-;34405:7;34436:1;34421:284;34446:6;34443:1;34440:13;34421:284;;;34522:6;34516:13;34549:63;34608:3;34593:13;34549:63;:::i;:::-;34542:70;;34635:60;34688:6;34635:60;:::i;:::-;34625:70;;34481:224;34468:1;34465;34461:9;34456:14;;34421:284;;;34425:14;34721:3;34714:10;;34122:608;;;33998:732;;;;:::o;34736:942::-;35027:4;35065:3;35054:9;35050:19;35042:27;;35079:71;35147:1;35136:9;35132:17;35123:6;35079:71;:::i;:::-;35160:80;35236:2;35225:9;35221:18;35212:6;35160:80;:::i;:::-;35287:9;35281:4;35277:20;35272:2;35261:9;35257:18;35250:48;35315:108;35418:4;35409:6;35315:108;:::i;:::-;35307:116;;35433:72;35501:2;35490:9;35486:18;35477:6;35433:72;:::i;:::-;35515:73;35583:3;35572:9;35568:19;35559:6;35515:73;:::i;:::-;35598;35666:3;35655:9;35651:19;35642:6;35598:73;:::i;:::-;34736:942;;;;;;;;;:::o;35684:224::-;35824:34;35820:1;35812:6;35808:14;35801:58;35893:7;35888:2;35880:6;35876:15;35869:32;35684:224;:::o;35914:366::-;36056:3;36077:67;36141:2;36136:3;36077:67;:::i;:::-;36070:74;;36153:93;36242:3;36153:93;:::i;:::-;36271:2;36266:3;36262:12;36255:19;;35914:366;;;:::o;36286:419::-;36452:4;36490:2;36479:9;36475:18;36467:26;;36539:9;36533:4;36529:20;36525:1;36514:9;36510:17;36503:47;36567:131;36693:4;36567:131;:::i;:::-;36559:139;;36286:419;;;:::o;36711:222::-;36851:34;36847:1;36839:6;36835:14;36828:58;36920:5;36915:2;36907:6;36903:15;36896:30;36711:222;:::o;36939:366::-;37081:3;37102:67;37166:2;37161:3;37102:67;:::i;:::-;37095:74;;37178:93;37267:3;37178:93;:::i;:::-;37296:2;37291:3;37287:12;37280:19;;36939:366;;;:::o;37311:419::-;37477:4;37515:2;37504:9;37500:18;37492:26;;37564:9;37558:4;37554:20;37550:1;37539:9;37535:17;37528:47;37592:131;37718:4;37592:131;:::i;:::-;37584:139;;37311:419;;;:::o;37736:225::-;37876:34;37872:1;37864:6;37860:14;37853:58;37945:8;37940:2;37932:6;37928:15;37921:33;37736:225;:::o;37967:366::-;38109:3;38130:67;38194:2;38189:3;38130:67;:::i;:::-;38123:74;;38206:93;38295:3;38206:93;:::i;:::-;38324:2;38319:3;38315:12;38308:19;;37967:366;;;:::o;38339:419::-;38505:4;38543:2;38532:9;38528:18;38520:26;;38592:9;38586:4;38582:20;38578:1;38567:9;38563:17;38556:47;38620:131;38746:4;38620:131;:::i;:::-;38612:139;;38339:419;;;:::o;38764:807::-;39013:4;39051:3;39040:9;39036:19;39028:27;;39065:71;39133:1;39122:9;39118:17;39109:6;39065:71;:::i;:::-;39146:72;39214:2;39203:9;39199:18;39190:6;39146:72;:::i;:::-;39228:80;39304:2;39293:9;39289:18;39280:6;39228:80;:::i;:::-;39318;39394:2;39383:9;39379:18;39370:6;39318:80;:::i;:::-;39408:73;39476:3;39465:9;39461:19;39452:6;39408:73;:::i;:::-;39491;39559:3;39548:9;39544:19;39535:6;39491:73;:::i;:::-;38764:807;;;;;;;;;:::o;39577:143::-;39634:5;39665:6;39659:13;39650:22;;39681:33;39708:5;39681:33;:::i;:::-;39577:143;;;;:::o;39726:663::-;39814:6;39822;39830;39879:2;39867:9;39858:7;39854:23;39850:32;39847:119;;;39885:79;;:::i;:::-;39847:119;40005:1;40030:64;40086:7;40077:6;40066:9;40062:22;40030:64;:::i;:::-;40020:74;;39976:128;40143:2;40169:64;40225:7;40216:6;40205:9;40201:22;40169:64;:::i;:::-;40159:74;;40114:129;40282:2;40308:64;40364:7;40355:6;40344:9;40340:22;40308:64;:::i;:::-;40298:74;;40253:129;39726:663;;;;;:::o

Swarm Source

ipfs://2a24bef2386ed3cb0bb151b77ea6a66b102de4f9273cf410e9e5061de0803197
[ 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.