ETH Price: $3,536.34 (+4.41%)

Token

LUFFY DAO (LDAO)
 

Overview

Max Total Supply

7,000,000,000,000 LDAO

Holders

93

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
616,065,264.522269624 LDAO

Value
$0.00
0x00c094aab4e7f5eded9c895ae4bf71c4c349c902
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
LuffyDAO

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-05
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.9;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
 
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 decimals() external view returns (uint256);

    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
    );
}
 
contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
 
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    function owner() public view returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
}
 
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
 
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
 
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
 
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
 
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
 
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
 
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
 
    function factory() external pure returns (address);
 
    function WETH() external pure returns (address);
 
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
 
interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

contract LuffyDAO is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "LUFFY DAO";
    string private constant _symbol = "LDAO";
    uint8 private constant _decimals = 9;
 
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 7000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 2;
    uint256 private _taxFeeOnBuy = 0;
    uint256 private _redisFeeOnSell = 2;  
    uint256 private _taxFeeOnSell = 0;
 
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; 
    address payable private _developmentAddress = payable(0x6FF6bBF862Ac2daa2c8f6E1e54dE995d33ee8F04); 
    address payable private _donationAddress = payable(0x3eB99677656bBBE01d68deFAF3B0cAE8d0c80A3C);
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxTxAmount = 7000000000000 * 10**9; 
    uint256 public _maxWalletSize = 7000000000000 * 10**9; 
    uint256 public _swapTokensAtAmount = 7000000000000 * 10**9; 
 
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_donationAddress] = true;
 
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    function name() public pure returns (string memory) {
        return _name;
    }
 
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
 
    function decimals() public pure returns (uint256) {
        return _decimals;
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
 
    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }
 
    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }
 
    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
 
    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
 
        if (from != owner() && to != owner()) {
 
            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }
 
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee(uint256 amount) private {
        _donationAddress.transfer(amount);
    }
 
    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }
 
    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _donationAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _donationAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
 
    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function fuckBot(address bots_) public onlyOwner {
        bots[bots_] = true;
    }
 
    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
 
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
 
    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }
 
    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }
 
    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }
 
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
 
    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        require(redisFeeOnBuy >= 0 && redisFeeOnBuy <= 4, "Buy rewards must be between 0% and 2%");
        require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 14, "Buy tax must be between 0% and 14%");
        require(redisFeeOnSell >= 0 && redisFeeOnSell <= 4, "Sell rewards must be between 0% and 2%");
        require(taxFeeOnSell >= 0 && taxFeeOnSell <= 14, "Sell tax must be between 0% and 14%");

        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;

    }
 
    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
 
    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
      if (maxTxAmount > 5000000000 * 10**9) {
           _maxTxAmount = maxTxAmount;
        }
    }
 
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }
 
    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"bots_","type":"address"}],"name":"fuckBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405269017b7883c069166000006000196200001e91906200071c565b6000196200002d919062000783565b600655600260085560006009556002600a556000600b55600a54600c55600b54600d55600c54600e55600d54600f55736ff6bbf862ac2daa2c8f6e1e54de995d33ee8f04601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733eb99677656bbbe01d68defaf3b0cae8d0c80a3c601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555069017b7883c0691660000060165569017b7883c0691660000060175569017b7883c069166000006018553480156200017257600080fd5b50600062000185620006b260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200023a620006b260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200031e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000344919062000828565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d2919062000828565b6040518363ffffffff1660e01b8152600401620003f19291906200086b565b6020604051808303816000875af115801562000411573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000437919062000828565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560006200048d620006ba60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200063a620006b260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69017b7883c06916600000604051620006a39190620008a9565b60405180910390a350620008c6565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200072982620006e3565b91506200073683620006e3565b925082620007495762000748620006ed565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200079082620006e3565b91506200079d83620006e3565b925082821015620007b357620007b262000754565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007f082620007c3565b9050919050565b6200080281620007e3565b81146200080e57600080fd5b50565b6000815190506200082281620007f7565b92915050565b600060208284031215620008415762000840620007be565b5b6000620008518482850162000811565b91505092915050565b6200086581620007e3565b82525050565b60006040820190506200088260008301856200085a565b6200089160208301846200085a565b9392505050565b620008a381620006e3565b82525050565b6000602082019050620008c0600083018462000898565b92915050565b61425980620008d66000396000f3fe6080604052600436106101db5760003560e01c806374010ece11610102578063a2a957bb11610095578063c492f04611610064578063c492f04614610690578063dd62ed3e146106b9578063ea1644d5146106f6578063f2fde38b1461071f576101e2565b8063a2a957bb146105d6578063a9059cbb146105ff578063bfd792841461063c578063c3c8cd8014610679576101e2565b80638f70ccf7116100d15780638f70ccf71461052e5780638f9a55c01461055757806395d89b411461058257806398a5c315146105ad576101e2565b806374010ece146104725780637d1db4a51461049b5780637f2feddc146104c65780638da5cb5b14610503576101e2565b8063313ce5671161017a5780636d8aa8f8116101495780636d8aa8f8146103de5780636fc3eaec1461040757806370a082311461041e578063715018a61461045b576101e2565b8063313ce5671461033657806331aaaeda1461036157806349bd5a5e1461038a5780636b999053146103b5576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632fd689e31461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e60048036038101906102099190612fd5565b610748565b005b34801561021c57600080fd5b50610225610872565b60405161023291906130a6565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d91906130fe565b6108af565b60405161026f9190613159565b60405180910390f35b34801561028457600080fd5b5061028d6108cd565b60405161029a91906131d3565b60405180910390f35b3480156102af57600080fd5b506102b86108f3565b6040516102c591906131fd565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f09190613218565b610905565b6040516103029190613159565b60405180910390f35b34801561031757600080fd5b506103206109de565b60405161032d91906131fd565b60405180910390f35b34801561034257600080fd5b5061034b6109e4565b60405161035891906131fd565b60405180910390f35b34801561036d57600080fd5b506103886004803603810190610383919061326b565b6109f0565b005b34801561039657600080fd5b5061039f610ae0565b6040516103ac91906132a7565b60405180910390f35b3480156103c157600080fd5b506103dc60048036038101906103d7919061326b565b610b06565b005b3480156103ea57600080fd5b50610405600480360381019061040091906132ee565b610bf6565b005b34801561041357600080fd5b5061041c610ca8565b005b34801561042a57600080fd5b506104456004803603810190610440919061326b565b610d79565b60405161045291906131fd565b60405180910390f35b34801561046757600080fd5b50610470610dca565b005b34801561047e57600080fd5b506104996004803603810190610494919061331b565b610f1d565b005b3480156104a757600080fd5b506104b0610fcd565b6040516104bd91906131fd565b60405180910390f35b3480156104d257600080fd5b506104ed60048036038101906104e8919061326b565b610fd3565b6040516104fa91906131fd565b60405180910390f35b34801561050f57600080fd5b50610518610feb565b60405161052591906132a7565b60405180910390f35b34801561053a57600080fd5b50610555600480360381019061055091906132ee565b611014565b005b34801561056357600080fd5b5061056c6110c6565b60405161057991906131fd565b60405180910390f35b34801561058e57600080fd5b506105976110cc565b6040516105a491906130a6565b60405180910390f35b3480156105b957600080fd5b506105d460048036038101906105cf919061331b565b611109565b005b3480156105e257600080fd5b506105fd60048036038101906105f89190613348565b6111a8565b005b34801561060b57600080fd5b50610626600480360381019061062191906130fe565b6113a3565b6040516106339190613159565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e919061326b565b6113c1565b6040516106709190613159565b60405180910390f35b34801561068557600080fd5b5061068e6113e1565b005b34801561069c57600080fd5b506106b760048036038101906106b2919061340a565b6114ba565b005b3480156106c557600080fd5b506106e060048036038101906106db919061346a565b6115f4565b6040516106ed91906131fd565b60405180910390f35b34801561070257600080fd5b5061071d6004803603810190610718919061331b565b61167b565b005b34801561072b57600080fd5b506107466004803603810190610741919061326b565b61171a565b005b6107506118db565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d4906134f6565b60405180910390fd5b60005b815181101561086e5760016010600084848151811061080257610801613516565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061086690613574565b9150506107e0565b5050565b60606040518060400160405280600981526020017f4c554646592044414f0000000000000000000000000000000000000000000000815250905090565b60006108c36108bc6118db565b84846118e3565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600069017b7883c06916600000905090565b6000610912848484611aac565b6109d38461091e6118db565b6109ce856040518060600160405280602881526020016141fc60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109846118db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232f9092919063ffffffff16565b6118e3565b600190509392505050565b60185481565b6000600960ff16905090565b6109f86118db565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7c906134f6565b60405180910390fd5b6001601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b0e6118db565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b92906134f6565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610bfe6118db565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c82906134f6565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ce96118db565b73ffffffffffffffffffffffffffffffffffffffff161480610d5f5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d476118db565b73ffffffffffffffffffffffffffffffffffffffff16145b610d6857600080fd5b6000479050610d7681612393565b50565b6000610dc3600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123ff565b9050919050565b610dd26118db565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e56906134f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f256118db565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa9906134f6565b60405180910390fd5b674563918244f40000811115610fca57806016819055505b50565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61101c6118db565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a0906134f6565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600481526020017f4c44414f00000000000000000000000000000000000000000000000000000000815250905090565b6111116118db565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611195906134f6565b60405180910390fd5b8060188190555050565b6111b06118db565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461123d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611234906134f6565b60405180910390fd5b6000841015801561124f575060048411155b61128e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112859061362e565b60405180910390fd5b600082101580156112a05750600e8211155b6112df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d6906136c0565b60405180910390fd5b600083101580156112f1575060048311155b611330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132790613752565b60405180910390fd5b600081101580156113425750600e8111155b611381576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611378906137e4565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b60006113b76113b06118db565b8484611aac565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114226118db565b73ffffffffffffffffffffffffffffffffffffffff1614806114985750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114806118db565b73ffffffffffffffffffffffffffffffffffffffff16145b6114a157600080fd5b60006114ac30610d79565b90506114b78161246d565b50565b6114c26118db565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461154f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611546906134f6565b60405180910390fd5b60005b838390508110156115ee57816005600086868581811061157557611574613516565b5b905060200201602081019061158a919061326b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806115e690613574565b915050611552565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116836118db565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611710576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611707906134f6565b60405180910390fd5b8060178190555050565b6117226118db565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a6906134f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361181e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181590613876565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611952576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194990613908565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b89061399a565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a9f91906131fd565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1290613a2c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8190613abe565b60405180910390fd5b60008111611bcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc490613b50565b60405180910390fd5b611bd5610feb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c435750611c13610feb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561202e57601560149054906101000a900460ff16611cd257611c64610feb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc890613be2565b60405180910390fd5b5b601654811115611d17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0e90613c4e565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611dbb5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df190613ce0565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611ea75760175481611e5c84610d79565b611e669190613d00565b10611ea6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9d90613dc8565b60405180910390fd5b5b6000611eb230610d79565b9050600060185482101590506016548210611ecd5760165491505b808015611ee5575060158054906101000a900460ff16155b8015611f3f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f575750601560169054906101000a900460ff165b8015611fad5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120035750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561202b576120118261246d565b600047905060008111156120295761202847612393565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120d55750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121885750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156121875750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15612196576000905061231d565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122415750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561225957600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123045750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561231c57600a54600c81905550600b54600d819055505b5b612329848484846126e4565b50505050565b6000838311158290612377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236e91906130a6565b60405180910390fd5b50600083856123869190613de8565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156123fb573d6000803e3d6000fd5b5050565b6000600654821115612446576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243d90613e8e565b60405180910390fd5b6000612450612711565b9050612465818461273c90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156124a4576124a3612e34565b5b6040519080825280602002602001820160405280156124d25781602001602082028036833780820191505090505b50905030816000815181106124ea576124e9613516565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612591573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125b59190613ec3565b816001815181106125c9576125c8613516565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061263030601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118e3565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612694959493929190613fe9565b600060405180830381600087803b1580156126ae57600080fd5b505af11580156126c2573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806126f2576126f1612786565b5b6126fd8484846127c3565b8061270b5761270a61298e565b5b50505050565b600080600061271e6129a2565b91509150612735818361273c90919063ffffffff16565b9250505090565b600061277e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a07565b905092915050565b6000600c5414801561279a57506000600d54145b6127c157600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806127d587612a6a565b95509550955095509550955061283386600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ad290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128c885600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061291481612b7a565b61291e8483612c37565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161297b91906131fd565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600069017b7883c0691660000090506129da69017b7883c0691660000060065461273c90919063ffffffff16565b8210156129fa5760065469017b7883c06916600000935093505050612a03565b81819350935050505b9091565b60008083118290612a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4591906130a6565b60405180910390fd5b5060008385612a5d9190614072565b9050809150509392505050565b6000806000806000806000806000612a878a600c54600d54612c71565b9250925092506000612a97612711565b90506000806000612aaa8e878787612d07565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612b1483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061232f565b905092915050565b6000808284612b2b9190613d00565b905083811015612b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b67906140ef565b60405180910390fd5b8091505092915050565b6000612b84612711565b90506000612b9b8284612d9090919063ffffffff16565b9050612bef81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612c4c82600654612ad290919063ffffffff16565b600681905550612c6781600754612b1c90919063ffffffff16565b6007819055505050565b600080600080612c9d6064612c8f888a612d9090919063ffffffff16565b61273c90919063ffffffff16565b90506000612cc76064612cb9888b612d9090919063ffffffff16565b61273c90919063ffffffff16565b90506000612cf082612ce2858c612ad290919063ffffffff16565b612ad290919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612d208589612d9090919063ffffffff16565b90506000612d378689612d9090919063ffffffff16565b90506000612d4e8789612d9090919063ffffffff16565b90506000612d7782612d698587612ad290919063ffffffff16565b612ad290919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612da25760009050612e04565b60008284612db0919061410f565b9050828482612dbf9190614072565b14612dff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612df6906141db565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612e6c82612e23565b810181811067ffffffffffffffff82111715612e8b57612e8a612e34565b5b80604052505050565b6000612e9e612e0a565b9050612eaa8282612e63565b919050565b600067ffffffffffffffff821115612eca57612ec9612e34565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f0b82612ee0565b9050919050565b612f1b81612f00565b8114612f2657600080fd5b50565b600081359050612f3881612f12565b92915050565b6000612f51612f4c84612eaf565b612e94565b90508083825260208201905060208402830185811115612f7457612f73612edb565b5b835b81811015612f9d5780612f898882612f29565b845260208401935050602081019050612f76565b5050509392505050565b600082601f830112612fbc57612fbb612e1e565b5b8135612fcc848260208601612f3e565b91505092915050565b600060208284031215612feb57612fea612e14565b5b600082013567ffffffffffffffff81111561300957613008612e19565b5b61301584828501612fa7565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561305857808201518184015260208101905061303d565b83811115613067576000848401525b50505050565b60006130788261301e565b6130828185613029565b935061309281856020860161303a565b61309b81612e23565b840191505092915050565b600060208201905081810360008301526130c0818461306d565b905092915050565b6000819050919050565b6130db816130c8565b81146130e657600080fd5b50565b6000813590506130f8816130d2565b92915050565b6000806040838503121561311557613114612e14565b5b600061312385828601612f29565b9250506020613134858286016130e9565b9150509250929050565b60008115159050919050565b6131538161313e565b82525050565b600060208201905061316e600083018461314a565b92915050565b6000819050919050565b600061319961319461318f84612ee0565b613174565b612ee0565b9050919050565b60006131ab8261317e565b9050919050565b60006131bd826131a0565b9050919050565b6131cd816131b2565b82525050565b60006020820190506131e860008301846131c4565b92915050565b6131f7816130c8565b82525050565b600060208201905061321260008301846131ee565b92915050565b60008060006060848603121561323157613230612e14565b5b600061323f86828701612f29565b935050602061325086828701612f29565b9250506040613261868287016130e9565b9150509250925092565b60006020828403121561328157613280612e14565b5b600061328f84828501612f29565b91505092915050565b6132a181612f00565b82525050565b60006020820190506132bc6000830184613298565b92915050565b6132cb8161313e565b81146132d657600080fd5b50565b6000813590506132e8816132c2565b92915050565b60006020828403121561330457613303612e14565b5b6000613312848285016132d9565b91505092915050565b60006020828403121561333157613330612e14565b5b600061333f848285016130e9565b91505092915050565b6000806000806080858703121561336257613361612e14565b5b6000613370878288016130e9565b9450506020613381878288016130e9565b9350506040613392878288016130e9565b92505060606133a3878288016130e9565b91505092959194509250565b600080fd5b60008083601f8401126133ca576133c9612e1e565b5b8235905067ffffffffffffffff8111156133e7576133e66133af565b5b60208301915083602082028301111561340357613402612edb565b5b9250929050565b60008060006040848603121561342357613422612e14565b5b600084013567ffffffffffffffff81111561344157613440612e19565b5b61344d868287016133b4565b93509350506020613460868287016132d9565b9150509250925092565b6000806040838503121561348157613480612e14565b5b600061348f85828601612f29565b92505060206134a085828601612f29565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134e0602083613029565b91506134eb826134aa565b602082019050919050565b6000602082019050818103600083015261350f816134d3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061357f826130c8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036135b1576135b0613545565b5b600182019050919050565b7f4275792072657761726473206d757374206265206265747765656e203025206160008201527f6e64203225000000000000000000000000000000000000000000000000000000602082015250565b6000613618602583613029565b9150613623826135bc565b604082019050919050565b600060208201905081810360008301526136478161360b565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203160008201527f3425000000000000000000000000000000000000000000000000000000000000602082015250565b60006136aa602283613029565b91506136b58261364e565b604082019050919050565b600060208201905081810360008301526136d98161369d565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e2030252060008201527f616e642032250000000000000000000000000000000000000000000000000000602082015250565b600061373c602683613029565b9150613747826136e0565b604082019050919050565b6000602082019050818103600083015261376b8161372f565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3134250000000000000000000000000000000000000000000000000000000000602082015250565b60006137ce602383613029565b91506137d982613772565b604082019050919050565b600060208201905081810360008301526137fd816137c1565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613860602683613029565b915061386b82613804565b604082019050919050565b6000602082019050818103600083015261388f81613853565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006138f2602483613029565b91506138fd82613896565b604082019050919050565b60006020820190508181036000830152613921816138e5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613984602283613029565b915061398f82613928565b604082019050919050565b600060208201905081810360008301526139b381613977565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a16602583613029565b9150613a21826139ba565b604082019050919050565b60006020820190508181036000830152613a4581613a09565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613aa8602383613029565b9150613ab382613a4c565b604082019050919050565b60006020820190508181036000830152613ad781613a9b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613b3a602983613029565b9150613b4582613ade565b604082019050919050565b60006020820190508181036000830152613b6981613b2d565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613bcc603f83613029565b9150613bd782613b70565b604082019050919050565b60006020820190508181036000830152613bfb81613bbf565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613c38601c83613029565b9150613c4382613c02565b602082019050919050565b60006020820190508181036000830152613c6781613c2b565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613cca602383613029565b9150613cd582613c6e565b604082019050919050565b60006020820190508181036000830152613cf981613cbd565b9050919050565b6000613d0b826130c8565b9150613d16836130c8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613d4b57613d4a613545565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613db2602383613029565b9150613dbd82613d56565b604082019050919050565b60006020820190508181036000830152613de181613da5565b9050919050565b6000613df3826130c8565b9150613dfe836130c8565b925082821015613e1157613e10613545565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613e78602a83613029565b9150613e8382613e1c565b604082019050919050565b60006020820190508181036000830152613ea781613e6b565b9050919050565b600081519050613ebd81612f12565b92915050565b600060208284031215613ed957613ed8612e14565b5b6000613ee784828501613eae565b91505092915050565b6000819050919050565b6000613f15613f10613f0b84613ef0565b613174565b6130c8565b9050919050565b613f2581613efa565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f6081612f00565b82525050565b6000613f728383613f57565b60208301905092915050565b6000602082019050919050565b6000613f9682613f2b565b613fa08185613f36565b9350613fab83613f47565b8060005b83811015613fdc578151613fc38882613f66565b9750613fce83613f7e565b925050600181019050613faf565b5085935050505092915050565b600060a082019050613ffe60008301886131ee565b61400b6020830187613f1c565b818103604083015261401d8186613f8b565b905061402c6060830185613298565b61403960808301846131ee565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061407d826130c8565b9150614088836130c8565b92508261409857614097614043565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006140d9601b83613029565b91506140e4826140a3565b602082019050919050565b60006020820190508181036000830152614108816140cc565b9050919050565b600061411a826130c8565b9150614125836130c8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561415e5761415d613545565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006141c5602183613029565b91506141d082614169565b604082019050919050565b600060208201905081810360008301526141f4816141b8565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122065a6c3cdc1fbf46e30a3e64014076545b3fd73f5ba38867f2f8a8506918dfdda64736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106101db5760003560e01c806374010ece11610102578063a2a957bb11610095578063c492f04611610064578063c492f04614610690578063dd62ed3e146106b9578063ea1644d5146106f6578063f2fde38b1461071f576101e2565b8063a2a957bb146105d6578063a9059cbb146105ff578063bfd792841461063c578063c3c8cd8014610679576101e2565b80638f70ccf7116100d15780638f70ccf71461052e5780638f9a55c01461055757806395d89b411461058257806398a5c315146105ad576101e2565b806374010ece146104725780637d1db4a51461049b5780637f2feddc146104c65780638da5cb5b14610503576101e2565b8063313ce5671161017a5780636d8aa8f8116101495780636d8aa8f8146103de5780636fc3eaec1461040757806370a082311461041e578063715018a61461045b576101e2565b8063313ce5671461033657806331aaaeda1461036157806349bd5a5e1461038a5780636b999053146103b5576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632fd689e31461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e60048036038101906102099190612fd5565b610748565b005b34801561021c57600080fd5b50610225610872565b60405161023291906130a6565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d91906130fe565b6108af565b60405161026f9190613159565b60405180910390f35b34801561028457600080fd5b5061028d6108cd565b60405161029a91906131d3565b60405180910390f35b3480156102af57600080fd5b506102b86108f3565b6040516102c591906131fd565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f09190613218565b610905565b6040516103029190613159565b60405180910390f35b34801561031757600080fd5b506103206109de565b60405161032d91906131fd565b60405180910390f35b34801561034257600080fd5b5061034b6109e4565b60405161035891906131fd565b60405180910390f35b34801561036d57600080fd5b506103886004803603810190610383919061326b565b6109f0565b005b34801561039657600080fd5b5061039f610ae0565b6040516103ac91906132a7565b60405180910390f35b3480156103c157600080fd5b506103dc60048036038101906103d7919061326b565b610b06565b005b3480156103ea57600080fd5b50610405600480360381019061040091906132ee565b610bf6565b005b34801561041357600080fd5b5061041c610ca8565b005b34801561042a57600080fd5b506104456004803603810190610440919061326b565b610d79565b60405161045291906131fd565b60405180910390f35b34801561046757600080fd5b50610470610dca565b005b34801561047e57600080fd5b506104996004803603810190610494919061331b565b610f1d565b005b3480156104a757600080fd5b506104b0610fcd565b6040516104bd91906131fd565b60405180910390f35b3480156104d257600080fd5b506104ed60048036038101906104e8919061326b565b610fd3565b6040516104fa91906131fd565b60405180910390f35b34801561050f57600080fd5b50610518610feb565b60405161052591906132a7565b60405180910390f35b34801561053a57600080fd5b50610555600480360381019061055091906132ee565b611014565b005b34801561056357600080fd5b5061056c6110c6565b60405161057991906131fd565b60405180910390f35b34801561058e57600080fd5b506105976110cc565b6040516105a491906130a6565b60405180910390f35b3480156105b957600080fd5b506105d460048036038101906105cf919061331b565b611109565b005b3480156105e257600080fd5b506105fd60048036038101906105f89190613348565b6111a8565b005b34801561060b57600080fd5b50610626600480360381019061062191906130fe565b6113a3565b6040516106339190613159565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e919061326b565b6113c1565b6040516106709190613159565b60405180910390f35b34801561068557600080fd5b5061068e6113e1565b005b34801561069c57600080fd5b506106b760048036038101906106b2919061340a565b6114ba565b005b3480156106c557600080fd5b506106e060048036038101906106db919061346a565b6115f4565b6040516106ed91906131fd565b60405180910390f35b34801561070257600080fd5b5061071d6004803603810190610718919061331b565b61167b565b005b34801561072b57600080fd5b506107466004803603810190610741919061326b565b61171a565b005b6107506118db565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d4906134f6565b60405180910390fd5b60005b815181101561086e5760016010600084848151811061080257610801613516565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061086690613574565b9150506107e0565b5050565b60606040518060400160405280600981526020017f4c554646592044414f0000000000000000000000000000000000000000000000815250905090565b60006108c36108bc6118db565b84846118e3565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600069017b7883c06916600000905090565b6000610912848484611aac565b6109d38461091e6118db565b6109ce856040518060600160405280602881526020016141fc60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109846118db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232f9092919063ffffffff16565b6118e3565b600190509392505050565b60185481565b6000600960ff16905090565b6109f86118db565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7c906134f6565b60405180910390fd5b6001601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b0e6118db565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b92906134f6565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610bfe6118db565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c82906134f6565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ce96118db565b73ffffffffffffffffffffffffffffffffffffffff161480610d5f5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d476118db565b73ffffffffffffffffffffffffffffffffffffffff16145b610d6857600080fd5b6000479050610d7681612393565b50565b6000610dc3600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123ff565b9050919050565b610dd26118db565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e56906134f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f256118db565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa9906134f6565b60405180910390fd5b674563918244f40000811115610fca57806016819055505b50565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61101c6118db565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a0906134f6565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600481526020017f4c44414f00000000000000000000000000000000000000000000000000000000815250905090565b6111116118db565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611195906134f6565b60405180910390fd5b8060188190555050565b6111b06118db565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461123d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611234906134f6565b60405180910390fd5b6000841015801561124f575060048411155b61128e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112859061362e565b60405180910390fd5b600082101580156112a05750600e8211155b6112df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d6906136c0565b60405180910390fd5b600083101580156112f1575060048311155b611330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132790613752565b60405180910390fd5b600081101580156113425750600e8111155b611381576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611378906137e4565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b60006113b76113b06118db565b8484611aac565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114226118db565b73ffffffffffffffffffffffffffffffffffffffff1614806114985750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114806118db565b73ffffffffffffffffffffffffffffffffffffffff16145b6114a157600080fd5b60006114ac30610d79565b90506114b78161246d565b50565b6114c26118db565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461154f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611546906134f6565b60405180910390fd5b60005b838390508110156115ee57816005600086868581811061157557611574613516565b5b905060200201602081019061158a919061326b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806115e690613574565b915050611552565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116836118db565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611710576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611707906134f6565b60405180910390fd5b8060178190555050565b6117226118db565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a6906134f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361181e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181590613876565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611952576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194990613908565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b89061399a565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a9f91906131fd565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1290613a2c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8190613abe565b60405180910390fd5b60008111611bcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc490613b50565b60405180910390fd5b611bd5610feb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c435750611c13610feb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561202e57601560149054906101000a900460ff16611cd257611c64610feb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc890613be2565b60405180910390fd5b5b601654811115611d17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0e90613c4e565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611dbb5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df190613ce0565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611ea75760175481611e5c84610d79565b611e669190613d00565b10611ea6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9d90613dc8565b60405180910390fd5b5b6000611eb230610d79565b9050600060185482101590506016548210611ecd5760165491505b808015611ee5575060158054906101000a900460ff16155b8015611f3f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f575750601560169054906101000a900460ff165b8015611fad5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120035750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561202b576120118261246d565b600047905060008111156120295761202847612393565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120d55750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121885750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156121875750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15612196576000905061231d565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122415750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561225957600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123045750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561231c57600a54600c81905550600b54600d819055505b5b612329848484846126e4565b50505050565b6000838311158290612377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236e91906130a6565b60405180910390fd5b50600083856123869190613de8565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156123fb573d6000803e3d6000fd5b5050565b6000600654821115612446576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243d90613e8e565b60405180910390fd5b6000612450612711565b9050612465818461273c90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156124a4576124a3612e34565b5b6040519080825280602002602001820160405280156124d25781602001602082028036833780820191505090505b50905030816000815181106124ea576124e9613516565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612591573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125b59190613ec3565b816001815181106125c9576125c8613516565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061263030601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118e3565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612694959493929190613fe9565b600060405180830381600087803b1580156126ae57600080fd5b505af11580156126c2573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806126f2576126f1612786565b5b6126fd8484846127c3565b8061270b5761270a61298e565b5b50505050565b600080600061271e6129a2565b91509150612735818361273c90919063ffffffff16565b9250505090565b600061277e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a07565b905092915050565b6000600c5414801561279a57506000600d54145b6127c157600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806127d587612a6a565b95509550955095509550955061283386600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ad290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128c885600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061291481612b7a565b61291e8483612c37565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161297b91906131fd565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600069017b7883c0691660000090506129da69017b7883c0691660000060065461273c90919063ffffffff16565b8210156129fa5760065469017b7883c06916600000935093505050612a03565b81819350935050505b9091565b60008083118290612a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4591906130a6565b60405180910390fd5b5060008385612a5d9190614072565b9050809150509392505050565b6000806000806000806000806000612a878a600c54600d54612c71565b9250925092506000612a97612711565b90506000806000612aaa8e878787612d07565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612b1483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061232f565b905092915050565b6000808284612b2b9190613d00565b905083811015612b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b67906140ef565b60405180910390fd5b8091505092915050565b6000612b84612711565b90506000612b9b8284612d9090919063ffffffff16565b9050612bef81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612c4c82600654612ad290919063ffffffff16565b600681905550612c6781600754612b1c90919063ffffffff16565b6007819055505050565b600080600080612c9d6064612c8f888a612d9090919063ffffffff16565b61273c90919063ffffffff16565b90506000612cc76064612cb9888b612d9090919063ffffffff16565b61273c90919063ffffffff16565b90506000612cf082612ce2858c612ad290919063ffffffff16565b612ad290919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612d208589612d9090919063ffffffff16565b90506000612d378689612d9090919063ffffffff16565b90506000612d4e8789612d9090919063ffffffff16565b90506000612d7782612d698587612ad290919063ffffffff16565b612ad290919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612da25760009050612e04565b60008284612db0919061410f565b9050828482612dbf9190614072565b14612dff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612df6906141db565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612e6c82612e23565b810181811067ffffffffffffffff82111715612e8b57612e8a612e34565b5b80604052505050565b6000612e9e612e0a565b9050612eaa8282612e63565b919050565b600067ffffffffffffffff821115612eca57612ec9612e34565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f0b82612ee0565b9050919050565b612f1b81612f00565b8114612f2657600080fd5b50565b600081359050612f3881612f12565b92915050565b6000612f51612f4c84612eaf565b612e94565b90508083825260208201905060208402830185811115612f7457612f73612edb565b5b835b81811015612f9d5780612f898882612f29565b845260208401935050602081019050612f76565b5050509392505050565b600082601f830112612fbc57612fbb612e1e565b5b8135612fcc848260208601612f3e565b91505092915050565b600060208284031215612feb57612fea612e14565b5b600082013567ffffffffffffffff81111561300957613008612e19565b5b61301584828501612fa7565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561305857808201518184015260208101905061303d565b83811115613067576000848401525b50505050565b60006130788261301e565b6130828185613029565b935061309281856020860161303a565b61309b81612e23565b840191505092915050565b600060208201905081810360008301526130c0818461306d565b905092915050565b6000819050919050565b6130db816130c8565b81146130e657600080fd5b50565b6000813590506130f8816130d2565b92915050565b6000806040838503121561311557613114612e14565b5b600061312385828601612f29565b9250506020613134858286016130e9565b9150509250929050565b60008115159050919050565b6131538161313e565b82525050565b600060208201905061316e600083018461314a565b92915050565b6000819050919050565b600061319961319461318f84612ee0565b613174565b612ee0565b9050919050565b60006131ab8261317e565b9050919050565b60006131bd826131a0565b9050919050565b6131cd816131b2565b82525050565b60006020820190506131e860008301846131c4565b92915050565b6131f7816130c8565b82525050565b600060208201905061321260008301846131ee565b92915050565b60008060006060848603121561323157613230612e14565b5b600061323f86828701612f29565b935050602061325086828701612f29565b9250506040613261868287016130e9565b9150509250925092565b60006020828403121561328157613280612e14565b5b600061328f84828501612f29565b91505092915050565b6132a181612f00565b82525050565b60006020820190506132bc6000830184613298565b92915050565b6132cb8161313e565b81146132d657600080fd5b50565b6000813590506132e8816132c2565b92915050565b60006020828403121561330457613303612e14565b5b6000613312848285016132d9565b91505092915050565b60006020828403121561333157613330612e14565b5b600061333f848285016130e9565b91505092915050565b6000806000806080858703121561336257613361612e14565b5b6000613370878288016130e9565b9450506020613381878288016130e9565b9350506040613392878288016130e9565b92505060606133a3878288016130e9565b91505092959194509250565b600080fd5b60008083601f8401126133ca576133c9612e1e565b5b8235905067ffffffffffffffff8111156133e7576133e66133af565b5b60208301915083602082028301111561340357613402612edb565b5b9250929050565b60008060006040848603121561342357613422612e14565b5b600084013567ffffffffffffffff81111561344157613440612e19565b5b61344d868287016133b4565b93509350506020613460868287016132d9565b9150509250925092565b6000806040838503121561348157613480612e14565b5b600061348f85828601612f29565b92505060206134a085828601612f29565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134e0602083613029565b91506134eb826134aa565b602082019050919050565b6000602082019050818103600083015261350f816134d3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061357f826130c8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036135b1576135b0613545565b5b600182019050919050565b7f4275792072657761726473206d757374206265206265747765656e203025206160008201527f6e64203225000000000000000000000000000000000000000000000000000000602082015250565b6000613618602583613029565b9150613623826135bc565b604082019050919050565b600060208201905081810360008301526136478161360b565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203160008201527f3425000000000000000000000000000000000000000000000000000000000000602082015250565b60006136aa602283613029565b91506136b58261364e565b604082019050919050565b600060208201905081810360008301526136d98161369d565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e2030252060008201527f616e642032250000000000000000000000000000000000000000000000000000602082015250565b600061373c602683613029565b9150613747826136e0565b604082019050919050565b6000602082019050818103600083015261376b8161372f565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3134250000000000000000000000000000000000000000000000000000000000602082015250565b60006137ce602383613029565b91506137d982613772565b604082019050919050565b600060208201905081810360008301526137fd816137c1565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613860602683613029565b915061386b82613804565b604082019050919050565b6000602082019050818103600083015261388f81613853565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006138f2602483613029565b91506138fd82613896565b604082019050919050565b60006020820190508181036000830152613921816138e5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613984602283613029565b915061398f82613928565b604082019050919050565b600060208201905081810360008301526139b381613977565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a16602583613029565b9150613a21826139ba565b604082019050919050565b60006020820190508181036000830152613a4581613a09565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613aa8602383613029565b9150613ab382613a4c565b604082019050919050565b60006020820190508181036000830152613ad781613a9b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613b3a602983613029565b9150613b4582613ade565b604082019050919050565b60006020820190508181036000830152613b6981613b2d565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613bcc603f83613029565b9150613bd782613b70565b604082019050919050565b60006020820190508181036000830152613bfb81613bbf565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613c38601c83613029565b9150613c4382613c02565b602082019050919050565b60006020820190508181036000830152613c6781613c2b565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613cca602383613029565b9150613cd582613c6e565b604082019050919050565b60006020820190508181036000830152613cf981613cbd565b9050919050565b6000613d0b826130c8565b9150613d16836130c8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613d4b57613d4a613545565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613db2602383613029565b9150613dbd82613d56565b604082019050919050565b60006020820190508181036000830152613de181613da5565b9050919050565b6000613df3826130c8565b9150613dfe836130c8565b925082821015613e1157613e10613545565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613e78602a83613029565b9150613e8382613e1c565b604082019050919050565b60006020820190508181036000830152613ea781613e6b565b9050919050565b600081519050613ebd81612f12565b92915050565b600060208284031215613ed957613ed8612e14565b5b6000613ee784828501613eae565b91505092915050565b6000819050919050565b6000613f15613f10613f0b84613ef0565b613174565b6130c8565b9050919050565b613f2581613efa565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f6081612f00565b82525050565b6000613f728383613f57565b60208301905092915050565b6000602082019050919050565b6000613f9682613f2b565b613fa08185613f36565b9350613fab83613f47565b8060005b83811015613fdc578151613fc38882613f66565b9750613fce83613f7e565b925050600181019050613faf565b5085935050505092915050565b600060a082019050613ffe60008301886131ee565b61400b6020830187613f1c565b818103604083015261401d8186613f8b565b905061402c6060830185613298565b61403960808301846131ee565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061407d826130c8565b9150614088836130c8565b92508261409857614097614043565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006140d9601b83613029565b91506140e4826140a3565b602082019050919050565b60006020820190508181036000830152614108816140cc565b9050919050565b600061411a826130c8565b9150614125836130c8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561415e5761415d613545565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006141c5602183613029565b91506141d082614169565b604082019050919050565b600060208201905081810360008301526141f4816141b8565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122065a6c3cdc1fbf46e30a3e64014076545b3fd73f5ba38867f2f8a8506918dfdda64736f6c634300080d0033

Deployed Bytecode Sourcemap

6604:14140:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15343:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9138:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10072:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7959:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9420:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10274:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8271:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9326:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15520:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8007:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15615:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20062:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15100:234;;;;;;;;;;;;;:::i;:::-;;9524:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1627:148;;;;;;;;;;;;;:::i;:::-;;20203:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8151:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7699:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1411:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14746:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8210:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9230:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19870:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19124:693;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9671:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7661:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14856:235;;;;;;;;;;;;;:::i;:::-;;20505:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9879:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20381:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1784:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15343:169;1549:12;:10;:12::i;:::-;1539:22;;:6;;;;;;;;;;:22;;;1531:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15419:9:::1;15414:91;15438:5;:12;15434:1;:16;15414:91;;;15489:4;15472;:14;15477:5;15483:1;15477:8;;;;;;;;:::i;:::-;;;;;;;;15472:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;15452:3;;;;;:::i;:::-;;;;15414:91;;;;15343:169:::0;:::o;9138:83::-;9175:13;9208:5;;;;;;;;;;;;;;;;;9201:12;;9138:83;:::o;10072:193::-;10174:4;10196:39;10205:12;:10;:12::i;:::-;10219:7;10228:6;10196:8;:39::i;:::-;10253:4;10246:11;;10072:193;;;;:::o;7959:41::-;;;;;;;;;;;;;:::o;9420:95::-;9473:7;7155:21;9493:14;;9420:95;:::o;10274:446::-;10406:4;10423:36;10433:6;10441:9;10452:6;10423:9;:36::i;:::-;10470:220;10493:6;10514:12;:10;:12::i;:::-;10541:138;10597:6;10541:138;;;;;;;;;;;;;;;;;:11;:19;10553:6;10541:19;;;;;;;;;;;;;;;:33;10561:12;:10;:12::i;:::-;10541:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;10470:8;:220::i;:::-;10708:4;10701:11;;10274:446;;;;;:::o;8271:58::-;;;;:::o;9326:85::-;9367:7;6828:1;9387:16;;;;9326:85;:::o;15520:86::-;1549:12;:10;:12::i;:::-;1539:22;;:6;;;;;;;;;;:22;;;1531:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15594:4:::1;15580;:11;15585:5;15580:11;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;;;;;;;15520:86:::0;:::o;8007:28::-;;;;;;;;;;;;;:::o;15615:92::-;1549:12;:10;:12::i;:::-;1539:22;;:6;;;;;;;;;;:22;;;1531:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15694:5:::1;15679:4;:12;15684:6;15679:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;15615:92:::0;:::o;20062:101::-;1549:12;:10;:12::i;:::-;1539:22;;:6;;;;;;;;;;:22;;;1531:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20143:12:::1;20129:11;;:26;;;;;;;;;;;;;;;;;;20062:101:::0;:::o;15100:234::-;15166:19;;;;;;;;;;;15150:35;;:12;:10;:12::i;:::-;:35;;;:71;;;;15205:16;;;;;;;;;;;15189:32;;:12;:10;:12::i;:::-;:32;;;15150:71;15142:80;;;;;;15233:26;15262:21;15233:50;;15294:32;15307:18;15294:12;:32::i;:::-;15131:203;15100:234::o;9524:138::-;9590:7;9617:37;9637:7;:16;9645:7;9637:16;;;;;;;;;;;;;;;;9617:19;:37::i;:::-;9610:44;;9524:138;;;:::o;1627:148::-;1549:12;:10;:12::i;:::-;1539:22;;:6;;;;;;;;;;:22;;;1531:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1734:1:::1;1697:40;;1718:6;::::0;::::1;;;;;;;;1697:40;;;;;;;;;;;;1765:1;1748:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1627:148::o:0;20203:169::-;1549:12;:10;:12::i;:::-;1539:22;;:6;;;;;;;;;;:22;;;1531:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20293:18:::1;20279:11;:32;20275:90;;;20342:11;20327:12;:26;;;;20275:90;20203:169:::0;:::o;8151:51::-;;;;:::o;7699:43::-;;;;;;;;;;;;;;;;;:::o;1411:79::-;1449:7;1476:6;;;;;;;;;;;1469:13;;1411:79;:::o;14746:101::-;1549:12;:10;:12::i;:::-;1539:22;;:6;;;;;;;;;;:22;;;1531:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14827:12:::1;14813:11;;:26;;;;;;;;;;;;;;;;;;14746:101:::0;:::o;8210:53::-;;;;:::o;9230:87::-;9269:13;9302:7;;;;;;;;;;;;;;;;;9295:14;;9230:87;:::o;19870:139::-;1549:12;:10;:12::i;:::-;1539:22;;:6;;;;;;;;;;:22;;;1531:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19983:18:::1;19961:19;:40;;;;19870:139:::0;:::o;19124:693::-;1549:12;:10;:12::i;:::-;1539:22;;:6;;;;;;;;;;:22;;;1531:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19283:1:::1;19266:13;:18;;:40;;;;;19305:1;19288:13;:18;;19266:40;19258:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;19382:1;19367:11;:16;;:37;;;;;19402:2;19387:11;:17;;19367:37;19359:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;19480:1;19462:14;:19;;:42;;;;;19503:1;19485:14;:19;;19462:42;19454:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;19582:1;19566:12;:17;;:39;;;;;19603:2;19587:12;:18;;19566:39;19558:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19675:13;19658:14;:30;;;;19717:14;19699:15;:32;;;;19757:11;19742:12;:26;;;;19795:12;19779:13;:28;;;;19124:693:::0;;;;:::o;9671:199::-;9776:4;9798:42;9808:12;:10;:12::i;:::-;9822:9;9833:6;9798:9;:42::i;:::-;9858:4;9851:11;;9671:199;;;;:::o;7661:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;14856:235::-;14922:19;;;;;;;;;;;14906:35;;:12;:10;:12::i;:::-;:35;;;:71;;;;14961:16;;;;;;;;;;;14945:32;;:12;:10;:12::i;:::-;:32;;;14906:71;14898:80;;;;;;14989:23;15015:24;15033:4;15015:9;:24::i;:::-;14989:50;;15050:33;15067:15;15050:16;:33::i;:::-;14887:204;14856:235::o;20505:234::-;1549:12;:10;:12::i;:::-;1539:22;;:6;;;;;;;;;;:22;;;1531:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20622:9:::1;20618:114;20641:8;;:15;;20637:1;:19;20618:114;;;20712:8;20678:18;:31;20697:8;;20706:1;20697:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;20678:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;20658:3;;;;;:::i;:::-;;;;20618:114;;;;20505:234:::0;;;:::o;9879:184::-;9996:7;10028:11;:18;10040:5;10028:18;;;;;;;;;;;;;;;:27;10047:7;10028:27;;;;;;;;;;;;;;;;10021:34;;9879:184;;;;:::o;20381:115::-;1549:12;:10;:12::i;:::-;1539:22;;:6;;;;;;;;;;:22;;;1531:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20475:13:::1;20458:14;:30;;;;20381:115:::0;:::o;1784:244::-;1549:12;:10;:12::i;:::-;1539:22;;:6;;;;;;;;;;:22;;;1531:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1893:1:::1;1873:22;;:8;:22;;::::0;1865:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1983:8;1954:38;;1975:6;::::0;::::1;;;;;;;;1954:38;;;;;;;;;;;;2012:8;2003:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1784:244:::0;:::o;101:98::-;154:7;181:10;174:17;;101:98;:::o;11417:369::-;11561:1;11544:19;;:5;:19;;;11536:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11642:1;11623:21;;:7;:21;;;11615:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11724:6;11694:11;:18;11706:5;11694:18;;;;;;;;;;;;;;;:27;11713:7;11694:27;;;;;;;;;;;;;;;:36;;;;11762:7;11746:32;;11755:5;11746:32;;;11771:6;11746:32;;;;;;:::i;:::-;;;;;;;;11417:369;;;:::o;11795:2343::-;11933:1;11917:18;;:4;:18;;;11909:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12010:1;11996:16;;:2;:16;;;11988:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12080:1;12071:6;:10;12063:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12153:7;:5;:7::i;:::-;12145:15;;:4;:15;;;;:32;;;;;12170:7;:5;:7::i;:::-;12164:13;;:2;:13;;;;12145:32;12141:1265;;;12235:11;;;;;;;;;;;12230:144;;12283:7;:5;:7::i;:::-;12275:15;;:4;:15;;;12267:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;12230:144;12409:12;;12399:6;:22;;12391:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;12478:4;:10;12483:4;12478:10;;;;;;;;;;;;;;;;;;;;;;;;;12477:11;:24;;;;;12493:4;:8;12498:2;12493:8;;;;;;;;;;;;;;;;;;;;;;;;;12492:9;12477:24;12469:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12568:13;;;;;;;;;;;12562:19;;:2;:19;;;12559:146;;12635:14;;12626:6;12610:13;12620:2;12610:9;:13::i;:::-;:22;;;;:::i;:::-;:39;12602:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;12559:146;12722:28;12753:24;12771:4;12753:9;:24::i;:::-;12722:55;;12792:12;12831:19;;12807:20;:43;;12792:58;;12895:12;;12871:20;:36;12868:124;;12964:12;;12941:35;;12868:124;13013:7;:18;;;;;13025:6;;;;;;;;;;13024:7;13013:18;:43;;;;;13043:13;;;;;;;;;;;13035:21;;:4;:21;;;;13013:43;:58;;;;;13060:11;;;;;;;;;;;13013:58;:87;;;;;13076:18;:24;13095:4;13076:24;;;;;;;;;;;;;;;;;;;;;;;;;13075:25;13013:87;:114;;;;;13105:18;:22;13124:2;13105:22;;;;;;;;;;;;;;;;;;;;;;;;;13104:23;13013:114;13009:386;;;13148:38;13165:20;13148:16;:38::i;:::-;13205:26;13234:21;13205:50;;13299:1;13278:18;:22;13274:106;;;13325:35;13338:21;13325:12;:35::i;:::-;13274:106;13129:266;13009:386;12179:1227;;12141:1265;13419:12;13434:4;13419:19;;13484:18;:24;13503:4;13484:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;13512:18;:22;13531:2;13512:22;;;;;;;;;;;;;;;;;;;;;;;;;13484:50;13483:102;;;;13548:13;;;;;;;;;;;13540:21;;:4;:21;;;;:44;;;;;13571:13;;;;;;;;;;;13565:19;;:2;:19;;;;13540:44;13483:102;13479:597;;;13612:5;13602:15;;13479:597;;;13696:13;;;;;;;;;;;13688:21;;:4;:21;;;:55;;;;;13727:15;;;;;;;;;;;13713:30;;:2;:30;;;;13688:55;13685:162;;;13776:14;;13764:9;:26;;;;13819:12;;13809:7;:22;;;;13685:162;13907:13;;;;;;;;;;;13901:19;;:2;:19;;;:55;;;;;13940:15;;;;;;;;;;;13924:32;;:4;:32;;;;13901:55;13897:165;;;13989:15;;13977:9;:27;;;;14033:13;;14023:7;:23;;;;13897:165;13479:597;14089:41;14104:4;14110:2;14114:6;14122:7;14089:14;:41::i;:::-;11898:2240;11795:2343;;;:::o;2396:224::-;2516:7;2549:1;2544;:6;;2552:12;2536:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2576:9;2592:1;2588;:5;;;;:::i;:::-;2576:17;;2611:1;2604:8;;;2396:224;;;;;:::o;14639:98::-;14696:16;;;;;;;;;;;:25;;:33;14722:6;14696:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14639:98;:::o;10729:323::-;10824:7;10882;;10871;:18;;10849:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;10970:19;10992:10;:8;:10::i;:::-;10970:32;;11020:24;11032:11;11020:7;:11;;:24;;;;:::i;:::-;11013:31;;;10729:323;;;:::o;14147:483::-;8434:4;8425:6;;:13;;;;;;;;;;;;;;;;;;14225:21:::1;14263:1;14249:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14225:40;;14294:4;14276;14281:1;14276:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;14320:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14310:4;14315:1;14310:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;14353:62;14370:4;14385:15;;;;;;;;;;;14403:11;14353:8;:62::i;:::-;14426:15;;;;;;;;;;;:66;;;14507:11;14533:1;14549:4;14576;14596:15;14426:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14214:416;8470:5:::0;8461:6;;:14;;;;;;;;;;;;;;;;;;14147:483;:::o;15716:282::-;15872:7;15867:28;;15881:14;:12;:14::i;:::-;15867:28;15906:44;15924:6;15932:9;15943:6;15906:17;:44::i;:::-;15966:7;15961:29;;15975:15;:13;:15::i;:::-;15961:29;15716:282;;;;:::o;18685:164::-;18727:7;18748:15;18765;18784:19;:17;:19::i;:::-;18747:56;;;;18821:20;18833:7;18821;:11;;:20;;;;:::i;:::-;18814:27;;;;18685:164;:::o;2884:132::-;2942:7;2969:39;2973:1;2976;2969:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2962:46;;2884:132;;;;:::o;11061:221::-;11121:1;11108:9;;:14;:30;;;;;11137:1;11126:7;;:12;11108:30;11140:7;11104:43;11180:9;;11160:17;:29;;;;11218:7;;11200:15;:25;;;;11251:1;11239:9;:13;;;;11273:1;11263:7;:11;;;;11061:221;:::o;16007:610::-;16154:15;16184:23;16222:12;16249:23;16287:12;16314:13;16341:19;16352:7;16341:10;:19::i;:::-;16139:221;;;;;;;;;;;;16389:28;16409:7;16389;:15;16397:6;16389:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;16371:7;:15;16379:6;16371:15;;;;;;;;;;;;;;;:46;;;;16449:39;16472:15;16449:7;:18;16457:9;16449:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;16428:7;:18;16436:9;16428:18;;;;;;;;;;;;;;;:60;;;;16499:16;16509:5;16499:9;:16::i;:::-;16526:23;16538:4;16544;16526:11;:23::i;:::-;16582:9;16565:44;;16574:6;16565:44;;;16593:15;16565:44;;;;;;:::i;:::-;;;;;;;;16128:489;;;;;;16007:610;;;:::o;11291:117::-;11347:17;;11335:9;:29;;;;11385:15;;11375:7;:25;;;;11291:117::o;18858:257::-;18909:7;18918;18938:15;18956:7;;18938:25;;18974:15;7155:21;18974:25;;19024:20;7155:21;19024:7;;:11;;:20;;;;:::i;:::-;19014:7;:30;19010:61;;;19054:7;;7155:21;19046:25;;;;;;;;19010:61;19090:7;19099;19082:25;;;;;;18858:257;;;:::o;3025:223::-;3145:7;3177:1;3173;:5;3180:12;3165:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3204:9;3220:1;3216;:5;;;;:::i;:::-;3204:17;;3239:1;3232:8;;;3025:223;;;;;:::o;17040:615::-;17140:7;17162;17184;17206;17228;17250;17286:23;17311:12;17325:13;17355:40;17367:7;17376:9;;17387:7;;17355:11;:40::i;:::-;17285:110;;;;;;17406:19;17428:10;:8;:10::i;:::-;17406:32;;17450:15;17467:23;17492:12;17521:46;17533:7;17542:4;17548:5;17555:11;17521;:46::i;:::-;17449:118;;;;;;17586:7;17595:15;17612:4;17618:15;17635:4;17641:5;17578:69;;;;;;;;;;;;;;;;;;;17040:615;;;;;;;:::o;2251:136::-;2309:7;2336:43;2340:1;2343;2336:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2329:50;;2251:136;;;;:::o;2063:179::-;2121:7;2141:9;2157:1;2153;:5;;;;:::i;:::-;2141:17;;2182:1;2177;:6;;2169:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2233:1;2226:8;;;2063:179;;;;:::o;16626:211::-;16679:19;16701:10;:8;:10::i;:::-;16679:32;;16722:13;16738:22;16748:11;16738:5;:9;;:22;;;;:::i;:::-;16722:38;;16796:33;16823:5;16796:7;:22;16812:4;16796:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;16771:7;:22;16787:4;16771:22;;;;;;;;;;;;;;;:58;;;;16668:169;;16626:211;:::o;16846:147::-;16924:17;16936:4;16924:7;;:11;;:17;;;;:::i;:::-;16914:7;:27;;;;16965:20;16980:4;16965:10;;:14;;:20;;;;:::i;:::-;16952:10;:33;;;;16846:147;;:::o;17664:469::-;17833:7;17855;17877;17912:12;17927:30;17953:3;17927:21;17939:8;17927:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;17912:45;;17968:13;17984:28;18008:3;17984:19;17996:6;17984:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;17968:44;;18023:23;18049:28;18071:5;18049:17;18061:4;18049:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;18023:54;;18096:15;18113:4;18119:5;18088:37;;;;;;;;;17664:469;;;;;;;:::o;18142:534::-;18336:7;18358;18380;18415:15;18433:24;18445:11;18433:7;:11;;:24;;;;:::i;:::-;18415:42;;18468:12;18483:21;18492:11;18483:4;:8;;:21;;;;:::i;:::-;18468:36;;18515:13;18531:22;18541:11;18531:5;:9;;:22;;;;:::i;:::-;18515:38;;18564:23;18590:28;18612:5;18590:17;18602:4;18590:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;18564:54;;18637:7;18646:15;18663:4;18629:39;;;;;;;;;;18142:534;;;;;;;;:::o;2629:246::-;2687:7;2716:1;2711;:6;2707:47;;2741:1;2734:8;;;;2707:47;2764:9;2780:1;2776;:5;;;;:::i;:::-;2764:17;;2809:1;2804;2800;:5;;;;:::i;:::-;:10;2792:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2866:1;2859:8;;;2629:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:307::-;4139:1;4149:113;4163:6;4160:1;4157:13;4149:113;;;4248:1;4243:3;4239:11;4233:18;4229:1;4224:3;4220:11;4213:39;4185:2;4182:1;4178:10;4173:15;;4149:113;;;4280:6;4277:1;4274:13;4271:101;;;4360:1;4351:6;4346:3;4342:16;4335:27;4271:101;4120:258;4071:307;;;:::o;4384:364::-;4472:3;4500:39;4533:5;4500:39;:::i;:::-;4555:71;4619:6;4614:3;4555:71;:::i;:::-;4548:78;;4635:52;4680:6;4675:3;4668:4;4661:5;4657:16;4635:52;:::i;:::-;4712:29;4734:6;4712:29;:::i;:::-;4707:3;4703:39;4696:46;;4476:272;4384:364;;;;:::o;4754:313::-;4867:4;4905:2;4894:9;4890:18;4882:26;;4954:9;4948:4;4944:20;4940:1;4929:9;4925:17;4918:47;4982:78;5055:4;5046:6;4982:78;:::i;:::-;4974:86;;4754:313;;;;:::o;5073:77::-;5110:7;5139:5;5128:16;;5073:77;;;:::o;5156:122::-;5229:24;5247:5;5229:24;:::i;:::-;5222:5;5219:35;5209:63;;5268:1;5265;5258:12;5209:63;5156:122;:::o;5284:139::-;5330:5;5368:6;5355:20;5346:29;;5384:33;5411:5;5384:33;:::i;:::-;5284:139;;;;:::o;5429:474::-;5497:6;5505;5554:2;5542:9;5533:7;5529:23;5525:32;5522:119;;;5560:79;;:::i;:::-;5522:119;5680:1;5705:53;5750:7;5741:6;5730:9;5726:22;5705:53;:::i;:::-;5695:63;;5651:117;5807:2;5833:53;5878:7;5869:6;5858:9;5854:22;5833:53;:::i;:::-;5823:63;;5778:118;5429:474;;;;;:::o;5909:90::-;5943:7;5986:5;5979:13;5972:21;5961:32;;5909:90;;;:::o;6005:109::-;6086:21;6101:5;6086:21;:::i;:::-;6081:3;6074:34;6005:109;;:::o;6120:210::-;6207:4;6245:2;6234:9;6230:18;6222:26;;6258:65;6320:1;6309:9;6305:17;6296:6;6258:65;:::i;:::-;6120:210;;;;:::o;6336:60::-;6364:3;6385:5;6378:12;;6336:60;;;:::o;6402:142::-;6452:9;6485:53;6503:34;6512:24;6530:5;6512:24;:::i;:::-;6503:34;:::i;:::-;6485:53;:::i;:::-;6472:66;;6402:142;;;:::o;6550:126::-;6600:9;6633:37;6664:5;6633:37;:::i;:::-;6620:50;;6550:126;;;:::o;6682:152::-;6758:9;6791:37;6822:5;6791:37;:::i;:::-;6778:50;;6682:152;;;:::o;6840:183::-;6953:63;7010:5;6953:63;:::i;:::-;6948:3;6941:76;6840:183;;:::o;7029:274::-;7148:4;7186:2;7175:9;7171:18;7163:26;;7199:97;7293:1;7282:9;7278:17;7269:6;7199:97;:::i;:::-;7029:274;;;;:::o;7309:118::-;7396:24;7414:5;7396:24;:::i;:::-;7391:3;7384:37;7309:118;;:::o;7433:222::-;7526:4;7564:2;7553:9;7549:18;7541:26;;7577:71;7645:1;7634:9;7630:17;7621:6;7577:71;:::i;:::-;7433:222;;;;:::o;7661:619::-;7738:6;7746;7754;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;8056:2;8082:53;8127:7;8118:6;8107:9;8103:22;8082:53;:::i;:::-;8072:63;;8027:118;8184:2;8210:53;8255:7;8246:6;8235:9;8231:22;8210:53;:::i;:::-;8200:63;;8155:118;7661:619;;;;;:::o;8286:329::-;8345:6;8394:2;8382:9;8373:7;8369:23;8365:32;8362:119;;;8400:79;;:::i;:::-;8362:119;8520:1;8545:53;8590:7;8581:6;8570:9;8566:22;8545:53;:::i;:::-;8535:63;;8491:117;8286:329;;;;:::o;8621:118::-;8708:24;8726:5;8708:24;:::i;:::-;8703:3;8696:37;8621:118;;:::o;8745:222::-;8838:4;8876:2;8865:9;8861:18;8853:26;;8889:71;8957:1;8946:9;8942:17;8933:6;8889:71;:::i;:::-;8745:222;;;;:::o;8973:116::-;9043:21;9058:5;9043:21;:::i;:::-;9036:5;9033:32;9023:60;;9079:1;9076;9069:12;9023:60;8973:116;:::o;9095:133::-;9138:5;9176:6;9163:20;9154:29;;9192:30;9216:5;9192:30;:::i;:::-;9095:133;;;;:::o;9234:323::-;9290:6;9339:2;9327:9;9318:7;9314:23;9310:32;9307:119;;;9345:79;;:::i;:::-;9307:119;9465:1;9490:50;9532:7;9523:6;9512:9;9508:22;9490:50;:::i;:::-;9480:60;;9436:114;9234:323;;;;:::o;9563:329::-;9622:6;9671:2;9659:9;9650:7;9646:23;9642:32;9639:119;;;9677:79;;:::i;:::-;9639:119;9797:1;9822:53;9867:7;9858:6;9847:9;9843:22;9822:53;:::i;:::-;9812:63;;9768:117;9563:329;;;;:::o;9898:765::-;9984:6;9992;10000;10008;10057:3;10045:9;10036:7;10032:23;10028:33;10025:120;;;10064:79;;:::i;:::-;10025:120;10184:1;10209:53;10254:7;10245:6;10234:9;10230:22;10209:53;:::i;:::-;10199:63;;10155:117;10311:2;10337:53;10382:7;10373:6;10362:9;10358:22;10337:53;:::i;:::-;10327:63;;10282:118;10439:2;10465:53;10510:7;10501:6;10490:9;10486:22;10465:53;:::i;:::-;10455:63;;10410:118;10567:2;10593:53;10638:7;10629:6;10618:9;10614:22;10593:53;:::i;:::-;10583:63;;10538:118;9898:765;;;;;;;:::o;10669:117::-;10778:1;10775;10768:12;10809:568;10882:8;10892:6;10942:3;10935:4;10927:6;10923:17;10919:27;10909:122;;10950:79;;:::i;:::-;10909:122;11063:6;11050:20;11040:30;;11093:18;11085:6;11082:30;11079:117;;;11115:79;;:::i;:::-;11079:117;11229:4;11221:6;11217:17;11205:29;;11283:3;11275:4;11267:6;11263:17;11253:8;11249:32;11246:41;11243:128;;;11290:79;;:::i;:::-;11243:128;10809:568;;;;;:::o;11383:698::-;11475:6;11483;11491;11540:2;11528:9;11519:7;11515:23;11511:32;11508:119;;;11546:79;;:::i;:::-;11508:119;11694:1;11683:9;11679:17;11666:31;11724:18;11716:6;11713:30;11710:117;;;11746:79;;:::i;:::-;11710:117;11859:80;11931:7;11922:6;11911:9;11907:22;11859:80;:::i;:::-;11841:98;;;;11637:312;11988:2;12014:50;12056:7;12047:6;12036:9;12032:22;12014:50;:::i;:::-;12004:60;;11959:115;11383:698;;;;;:::o;12087:474::-;12155:6;12163;12212:2;12200:9;12191:7;12187:23;12183:32;12180:119;;;12218:79;;:::i;:::-;12180:119;12338:1;12363:53;12408:7;12399:6;12388:9;12384:22;12363:53;:::i;:::-;12353:63;;12309:117;12465:2;12491:53;12536:7;12527:6;12516:9;12512:22;12491:53;:::i;:::-;12481:63;;12436:118;12087:474;;;;;:::o;12567:182::-;12707:34;12703:1;12695:6;12691:14;12684:58;12567:182;:::o;12755:366::-;12897:3;12918:67;12982:2;12977:3;12918:67;:::i;:::-;12911:74;;12994:93;13083:3;12994:93;:::i;:::-;13112:2;13107:3;13103:12;13096:19;;12755:366;;;:::o;13127:419::-;13293:4;13331:2;13320:9;13316:18;13308:26;;13380:9;13374:4;13370:20;13366:1;13355:9;13351:17;13344:47;13408:131;13534:4;13408:131;:::i;:::-;13400:139;;13127:419;;;:::o;13552:180::-;13600:77;13597:1;13590:88;13697:4;13694:1;13687:15;13721:4;13718:1;13711:15;13738:180;13786:77;13783:1;13776:88;13883:4;13880:1;13873:15;13907:4;13904:1;13897:15;13924:233;13963:3;13986:24;14004:5;13986:24;:::i;:::-;13977:33;;14032:66;14025:5;14022:77;14019:103;;14102:18;;:::i;:::-;14019:103;14149:1;14142:5;14138:13;14131:20;;13924:233;;;:::o;14163:224::-;14303:34;14299:1;14291:6;14287:14;14280:58;14372:7;14367:2;14359:6;14355:15;14348:32;14163:224;:::o;14393:366::-;14535:3;14556:67;14620:2;14615:3;14556:67;:::i;:::-;14549:74;;14632:93;14721:3;14632:93;:::i;:::-;14750:2;14745:3;14741:12;14734:19;;14393:366;;;:::o;14765:419::-;14931:4;14969:2;14958:9;14954:18;14946:26;;15018:9;15012:4;15008:20;15004:1;14993:9;14989:17;14982:47;15046:131;15172:4;15046:131;:::i;:::-;15038:139;;14765:419;;;:::o;15190:221::-;15330:34;15326:1;15318:6;15314:14;15307:58;15399:4;15394:2;15386:6;15382:15;15375:29;15190:221;:::o;15417:366::-;15559:3;15580:67;15644:2;15639:3;15580:67;:::i;:::-;15573:74;;15656:93;15745:3;15656:93;:::i;:::-;15774:2;15769:3;15765:12;15758:19;;15417:366;;;:::o;15789:419::-;15955:4;15993:2;15982:9;15978:18;15970:26;;16042:9;16036:4;16032:20;16028:1;16017:9;16013:17;16006:47;16070:131;16196:4;16070:131;:::i;:::-;16062:139;;15789:419;;;:::o;16214:225::-;16354:34;16350:1;16342:6;16338:14;16331:58;16423:8;16418:2;16410:6;16406:15;16399:33;16214:225;:::o;16445:366::-;16587:3;16608:67;16672:2;16667:3;16608:67;:::i;:::-;16601:74;;16684:93;16773:3;16684:93;:::i;:::-;16802:2;16797:3;16793:12;16786:19;;16445:366;;;:::o;16817:419::-;16983:4;17021:2;17010:9;17006:18;16998:26;;17070:9;17064:4;17060:20;17056:1;17045:9;17041:17;17034:47;17098:131;17224:4;17098:131;:::i;:::-;17090:139;;16817:419;;;:::o;17242:222::-;17382:34;17378:1;17370:6;17366:14;17359:58;17451:5;17446:2;17438:6;17434:15;17427:30;17242:222;:::o;17470:366::-;17612:3;17633:67;17697:2;17692:3;17633:67;:::i;:::-;17626:74;;17709:93;17798:3;17709:93;:::i;:::-;17827:2;17822:3;17818:12;17811:19;;17470:366;;;:::o;17842:419::-;18008:4;18046:2;18035:9;18031:18;18023:26;;18095:9;18089:4;18085:20;18081:1;18070:9;18066:17;18059:47;18123:131;18249:4;18123:131;:::i;:::-;18115:139;;17842:419;;;:::o;18267:225::-;18407:34;18403:1;18395:6;18391:14;18384:58;18476:8;18471:2;18463:6;18459:15;18452:33;18267:225;:::o;18498:366::-;18640:3;18661:67;18725:2;18720:3;18661:67;:::i;:::-;18654:74;;18737:93;18826:3;18737:93;:::i;:::-;18855:2;18850:3;18846:12;18839:19;;18498:366;;;:::o;18870:419::-;19036:4;19074:2;19063:9;19059:18;19051:26;;19123:9;19117:4;19113:20;19109:1;19098:9;19094:17;19087:47;19151:131;19277:4;19151:131;:::i;:::-;19143:139;;18870:419;;;:::o;19295:223::-;19435:34;19431:1;19423:6;19419:14;19412:58;19504:6;19499:2;19491:6;19487:15;19480:31;19295:223;:::o;19524:366::-;19666:3;19687:67;19751:2;19746:3;19687:67;:::i;:::-;19680:74;;19763:93;19852:3;19763:93;:::i;:::-;19881:2;19876:3;19872:12;19865:19;;19524:366;;;:::o;19896:419::-;20062:4;20100:2;20089:9;20085:18;20077:26;;20149:9;20143:4;20139:20;20135:1;20124:9;20120:17;20113:47;20177:131;20303:4;20177:131;:::i;:::-;20169:139;;19896:419;;;:::o;20321:221::-;20461:34;20457:1;20449:6;20445:14;20438:58;20530:4;20525:2;20517:6;20513:15;20506:29;20321:221;:::o;20548:366::-;20690:3;20711:67;20775:2;20770:3;20711:67;:::i;:::-;20704:74;;20787:93;20876:3;20787:93;:::i;:::-;20905:2;20900:3;20896:12;20889:19;;20548:366;;;:::o;20920:419::-;21086:4;21124:2;21113:9;21109:18;21101:26;;21173:9;21167:4;21163:20;21159:1;21148:9;21144:17;21137:47;21201:131;21327:4;21201:131;:::i;:::-;21193:139;;20920:419;;;:::o;21345:224::-;21485:34;21481:1;21473:6;21469:14;21462:58;21554:7;21549:2;21541:6;21537:15;21530:32;21345:224;:::o;21575:366::-;21717:3;21738:67;21802:2;21797:3;21738:67;:::i;:::-;21731:74;;21814:93;21903:3;21814:93;:::i;:::-;21932:2;21927:3;21923:12;21916:19;;21575:366;;;:::o;21947:419::-;22113:4;22151:2;22140:9;22136:18;22128:26;;22200:9;22194:4;22190:20;22186:1;22175:9;22171:17;22164:47;22228:131;22354:4;22228:131;:::i;:::-;22220:139;;21947:419;;;:::o;22372:222::-;22512:34;22508:1;22500:6;22496:14;22489:58;22581:5;22576:2;22568:6;22564:15;22557:30;22372:222;:::o;22600:366::-;22742:3;22763:67;22827:2;22822:3;22763:67;:::i;:::-;22756:74;;22839:93;22928:3;22839:93;:::i;:::-;22957:2;22952:3;22948:12;22941:19;;22600:366;;;:::o;22972:419::-;23138:4;23176:2;23165:9;23161:18;23153:26;;23225:9;23219:4;23215:20;23211:1;23200:9;23196:17;23189:47;23253:131;23379:4;23253:131;:::i;:::-;23245:139;;22972:419;;;:::o;23397:228::-;23537:34;23533:1;23525:6;23521:14;23514:58;23606:11;23601:2;23593:6;23589:15;23582:36;23397:228;:::o;23631:366::-;23773:3;23794:67;23858:2;23853:3;23794:67;:::i;:::-;23787:74;;23870:93;23959:3;23870:93;:::i;:::-;23988:2;23983:3;23979:12;23972:19;;23631:366;;;:::o;24003:419::-;24169:4;24207:2;24196:9;24192:18;24184:26;;24256:9;24250:4;24246:20;24242:1;24231:9;24227:17;24220:47;24284:131;24410:4;24284:131;:::i;:::-;24276:139;;24003:419;;;:::o;24428:250::-;24568:34;24564:1;24556:6;24552:14;24545:58;24637:33;24632:2;24624:6;24620:15;24613:58;24428:250;:::o;24684:366::-;24826:3;24847:67;24911:2;24906:3;24847:67;:::i;:::-;24840:74;;24923:93;25012:3;24923:93;:::i;:::-;25041:2;25036:3;25032:12;25025:19;;24684:366;;;:::o;25056:419::-;25222:4;25260:2;25249:9;25245:18;25237:26;;25309:9;25303:4;25299:20;25295:1;25284:9;25280:17;25273:47;25337:131;25463:4;25337:131;:::i;:::-;25329:139;;25056:419;;;:::o;25481:178::-;25621:30;25617:1;25609:6;25605:14;25598:54;25481:178;:::o;25665:366::-;25807:3;25828:67;25892:2;25887:3;25828:67;:::i;:::-;25821:74;;25904:93;25993:3;25904:93;:::i;:::-;26022:2;26017:3;26013:12;26006:19;;25665:366;;;:::o;26037:419::-;26203:4;26241:2;26230:9;26226:18;26218:26;;26290:9;26284:4;26280:20;26276:1;26265:9;26261:17;26254:47;26318:131;26444:4;26318:131;:::i;:::-;26310:139;;26037:419;;;:::o;26462:222::-;26602:34;26598:1;26590:6;26586:14;26579:58;26671:5;26666:2;26658:6;26654:15;26647:30;26462:222;:::o;26690:366::-;26832:3;26853:67;26917:2;26912:3;26853:67;:::i;:::-;26846:74;;26929:93;27018:3;26929:93;:::i;:::-;27047:2;27042:3;27038:12;27031:19;;26690:366;;;:::o;27062:419::-;27228:4;27266:2;27255:9;27251:18;27243:26;;27315:9;27309:4;27305:20;27301:1;27290:9;27286:17;27279:47;27343:131;27469:4;27343:131;:::i;:::-;27335:139;;27062:419;;;:::o;27487:305::-;27527:3;27546:20;27564:1;27546:20;:::i;:::-;27541:25;;27580:20;27598:1;27580:20;:::i;:::-;27575:25;;27734:1;27666:66;27662:74;27659:1;27656:81;27653:107;;;27740:18;;:::i;:::-;27653:107;27784:1;27781;27777:9;27770:16;;27487:305;;;;:::o;27798:222::-;27938:34;27934:1;27926:6;27922:14;27915:58;28007:5;28002:2;27994:6;27990:15;27983:30;27798:222;:::o;28026:366::-;28168:3;28189:67;28253:2;28248:3;28189:67;:::i;:::-;28182:74;;28265:93;28354:3;28265:93;:::i;:::-;28383:2;28378:3;28374:12;28367:19;;28026:366;;;:::o;28398:419::-;28564:4;28602:2;28591:9;28587:18;28579:26;;28651:9;28645:4;28641:20;28637:1;28626:9;28622:17;28615:47;28679:131;28805:4;28679:131;:::i;:::-;28671:139;;28398:419;;;:::o;28823:191::-;28863:4;28883:20;28901:1;28883:20;:::i;:::-;28878:25;;28917:20;28935:1;28917:20;:::i;:::-;28912:25;;28956:1;28953;28950:8;28947:34;;;28961:18;;:::i;:::-;28947:34;29006:1;29003;28999:9;28991:17;;28823:191;;;;:::o;29020:229::-;29160:34;29156:1;29148:6;29144:14;29137:58;29229:12;29224:2;29216:6;29212:15;29205:37;29020:229;:::o;29255:366::-;29397:3;29418:67;29482:2;29477:3;29418:67;:::i;:::-;29411:74;;29494:93;29583:3;29494:93;:::i;:::-;29612:2;29607:3;29603:12;29596:19;;29255:366;;;:::o;29627:419::-;29793:4;29831:2;29820:9;29816:18;29808:26;;29880:9;29874:4;29870:20;29866:1;29855:9;29851:17;29844:47;29908:131;30034:4;29908:131;:::i;:::-;29900:139;;29627:419;;;:::o;30052:143::-;30109:5;30140:6;30134:13;30125:22;;30156:33;30183:5;30156:33;:::i;:::-;30052:143;;;;:::o;30201:351::-;30271:6;30320:2;30308:9;30299:7;30295:23;30291:32;30288:119;;;30326:79;;:::i;:::-;30288:119;30446:1;30471:64;30527:7;30518:6;30507:9;30503:22;30471:64;:::i;:::-;30461:74;;30417:128;30201:351;;;;:::o;30558:85::-;30603:7;30632:5;30621:16;;30558:85;;;:::o;30649:158::-;30707:9;30740:61;30758:42;30767:32;30793:5;30767:32;:::i;:::-;30758:42;:::i;:::-;30740:61;:::i;:::-;30727:74;;30649:158;;;:::o;30813:147::-;30908:45;30947:5;30908:45;:::i;:::-;30903:3;30896:58;30813:147;;:::o;30966:114::-;31033:6;31067:5;31061:12;31051:22;;30966:114;;;:::o;31086:184::-;31185:11;31219:6;31214:3;31207:19;31259:4;31254:3;31250:14;31235:29;;31086:184;;;;:::o;31276:132::-;31343:4;31366:3;31358:11;;31396:4;31391:3;31387:14;31379:22;;31276:132;;;:::o;31414:108::-;31491:24;31509:5;31491:24;:::i;:::-;31486:3;31479:37;31414:108;;:::o;31528:179::-;31597:10;31618:46;31660:3;31652:6;31618:46;:::i;:::-;31696:4;31691:3;31687:14;31673:28;;31528:179;;;;:::o;31713:113::-;31783:4;31815;31810:3;31806:14;31798:22;;31713:113;;;:::o;31862:732::-;31981:3;32010:54;32058:5;32010:54;:::i;:::-;32080:86;32159:6;32154:3;32080:86;:::i;:::-;32073:93;;32190:56;32240:5;32190:56;:::i;:::-;32269:7;32300:1;32285:284;32310:6;32307:1;32304:13;32285:284;;;32386:6;32380:13;32413:63;32472:3;32457:13;32413:63;:::i;:::-;32406:70;;32499:60;32552:6;32499:60;:::i;:::-;32489:70;;32345:224;32332:1;32329;32325:9;32320:14;;32285:284;;;32289:14;32585:3;32578:10;;31986:608;;;31862:732;;;;:::o;32600:831::-;32863:4;32901:3;32890:9;32886:19;32878:27;;32915:71;32983:1;32972:9;32968:17;32959:6;32915:71;:::i;:::-;32996:80;33072:2;33061:9;33057:18;33048:6;32996:80;:::i;:::-;33123:9;33117:4;33113:20;33108:2;33097:9;33093:18;33086:48;33151:108;33254:4;33245:6;33151:108;:::i;:::-;33143:116;;33269:72;33337:2;33326:9;33322:18;33313:6;33269:72;:::i;:::-;33351:73;33419:3;33408:9;33404:19;33395:6;33351:73;:::i;:::-;32600:831;;;;;;;;:::o;33437:180::-;33485:77;33482:1;33475:88;33582:4;33579:1;33572:15;33606:4;33603:1;33596:15;33623:185;33663:1;33680:20;33698:1;33680:20;:::i;:::-;33675:25;;33714:20;33732:1;33714:20;:::i;:::-;33709:25;;33753:1;33743:35;;33758:18;;:::i;:::-;33743:35;33800:1;33797;33793:9;33788:14;;33623:185;;;;:::o;33814:177::-;33954:29;33950:1;33942:6;33938:14;33931:53;33814:177;:::o;33997:366::-;34139:3;34160:67;34224:2;34219:3;34160:67;:::i;:::-;34153:74;;34236:93;34325:3;34236:93;:::i;:::-;34354:2;34349:3;34345:12;34338:19;;33997:366;;;:::o;34369:419::-;34535:4;34573:2;34562:9;34558:18;34550:26;;34622:9;34616:4;34612:20;34608:1;34597:9;34593:17;34586:47;34650:131;34776:4;34650:131;:::i;:::-;34642:139;;34369:419;;;:::o;34794:348::-;34834:7;34857:20;34875:1;34857:20;:::i;:::-;34852:25;;34891:20;34909:1;34891:20;:::i;:::-;34886:25;;35079:1;35011:66;35007:74;35004:1;35001:81;34996:1;34989:9;34982:17;34978:105;34975:131;;;35086:18;;:::i;:::-;34975:131;35134:1;35131;35127:9;35116:20;;34794:348;;;;:::o;35148:220::-;35288:34;35284:1;35276:6;35272:14;35265:58;35357:3;35352:2;35344:6;35340:15;35333:28;35148:220;:::o;35374:366::-;35516:3;35537:67;35601:2;35596:3;35537:67;:::i;:::-;35530:74;;35613:93;35702:3;35613:93;:::i;:::-;35731:2;35726:3;35722:12;35715:19;;35374:366;;;:::o;35746:419::-;35912:4;35950:2;35939:9;35935:18;35927:26;;35999:9;35993:4;35989:20;35985:1;35974:9;35970:17;35963:47;36027:131;36153:4;36027:131;:::i;:::-;36019:139;;35746:419;;;:::o

Swarm Source

ipfs://65a6c3cdc1fbf46e30a3e64014076545b3fd73f5ba38867f2f8a8506918dfdda
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.