ETH Price: $2,872.48 (-5.94%)
Gas: 5 Gwei

Token

Alexandria Ocasio Cortez (AOC)
 

Overview

Max Total Supply

100,000,000 AOC

Holders

53

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
159,286.516406205 AOC

Value
$0.00
0x6896a89c599e62efcec31d5e22848a680daa5b78
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:
AOC

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

//Stealth Launch - $AOC Token

//Launching with a 0% tax on buys and 25% tax on sell for the first 30 minutes.

//After 30 minutes the contract will be 0% tax buy/sell.

//All proceeds from the 25% sell tax will be used to buyback and burn. 

//Liquidity locked for 100 years, and contract will be renounced.

//As a hotline operator you get a lot of complaints from both the right and left- simultaneously at times!

//So here is the $8 Community Fund to ensure that our beloved $AOC can afford her pumpkin spice latte and her Twitter Blue Subscription. 

//I’m expecting you, the community, to make this the most successful project on the blockchain! Create a website, Twitter, TG, and lead this movement. I’ll be watching!

//Yours truly,

//Chief $AOC Twit

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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 _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

     /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }


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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

contract AOC is Context, IERC20, Ownable {
    
    using SafeMath for uint256;

    string private constant _name = "Alexandria Ocasio Cortez";
    string private constant _symbol = "AOC";
    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 = 100000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    //Buy Fee
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 0;
    
    //Sell Fee
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 25;
    
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
    
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
    
    mapping(address => bool) public bots;
    mapping (address => bool) public preTrader;
    mapping(address => uint256) private cooldown;
    
    address payable private _developmentAddress = payable(0x8ED80B3d727893f7Ee045308a3f9ef9fd447372d);
    address payable private _marketingAddress = payable(0x8ED80B3d727893f7Ee045308a3f9ef9fd447372d);
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    
    uint256 public _maxTxAmount = 2500000 * 10**9; //2.5%
    uint256 public _maxWalletSize = 2500000 * 10**9; //2.5%
    uint256 public _swapTokensAtAmount = 10000 * 10**9; //0.01%

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        
        _rOwned[_msgSender()] = _rTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        
        preTrader[owner()] = 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 (_redisFee == 0 && _taxFee == 0) return;
    
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
        
        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (from != owner() && to != owner()) {
            
            //Trade start check
            if (!tradingOpen) {
                require(preTrader[from], "TOKEN: This account cannot send tokens until trading is enabled");
            }
              
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
            
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
            
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        
        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
            
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
    
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
            
        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function sendETHToFee(uint256 amount) private {
        _developmentAddress.transfer(amount.div(2));
        _marketingAddress.transfer(amount.div(2));
    }

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

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

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

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

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);

        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);

        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();

        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
    
        return (rSupply, tSupply);
    }
    
    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
    
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
    
    //Set MAx transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }
    
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }
 
    function allowPreTrading(address account, bool allowed) public onlyOwner {
        require(preTrader[account] != allowed, "TOKEN: Already enabled.");
        preTrader[account] = allowed;
    }
}

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":"account","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"allowPreTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"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":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405267016345785d8a00006000196200001c919062000894565b6000196200002b91906200081b565b600655600060085560006009556000600a556019600b55600a54600c55600b54600d55600c54600e55600d54600f55738ed80b3d727893f7ee045308a3f9ef9fd447372d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738ed80b3d727893f7ee045308a3f9ef9fd447372d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff0219169083151502179055506608e1bc9bf040006017556608e1bc9bf040006018556509184e72a0006019553480156200016657600080fd5b506000620001796200073b60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200022e6200073b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200030d57600080fd5b505afa15801562000322573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000348919062000783565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003ab57600080fd5b505afa158015620003c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e6919062000783565b6040518363ffffffff1660e01b815260040162000405929190620007d1565b602060405180830381600087803b1580156200042057600080fd5b505af115801562000435573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045b919062000783565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004b16200074360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000620006646200074360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006c56200073b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a00006040516200072c9190620007fe565b60405180910390a35062000944565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200077d816200092a565b92915050565b6000602082840312156200079657600080fd5b6000620007a6848285016200076c565b91505092915050565b620007ba8162000856565b82525050565b620007cb816200088a565b82525050565b6000604082019050620007e86000830185620007af565b620007f76020830184620007af565b9392505050565b6000602082019050620008156000830184620007c0565b92915050565b600062000828826200088a565b915062000835836200088a565b9250828210156200084b576200084a620008cc565b5b828203905092915050565b600062000863826200086a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620008a1826200088a565b9150620008ae836200088a565b925082620008c157620008c0620008fb565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b620009358162000856565b81146200094157600080fd5b50565b613dff80620009546000396000f3fe6080604052600436106101d05760003560e01c806374010ece116100f7578063a2a957bb11610095578063c3c8cd8011610064578063c3c8cd801461066e578063dd62ed3e14610685578063ea1644d5146106c2578063f2fde38b146106eb576101d7565b8063a2a957bb1461058e578063a9059cbb146105b7578063bdd795ef146105f4578063bfd7928414610631576101d7565b80638f70ccf7116100d15780638f70ccf7146104e65780638f9a55c01461050f57806395d89b411461053a57806398a5c31514610565576101d7565b806374010ece146104675780637d1db4a5146104905780638da5cb5b146104bb576101d7565b80632fd689e31161016f5780636d8aa8f81161013e5780636d8aa8f8146103d35780636fc3eaec146103fc57806370a0823114610413578063715018a614610450576101d7565b80632fd689e314610329578063313ce5671461035457806349bd5a5e1461037f5780636b999053146103aa576101d7565b80631694505e116101ab5780631694505e1461026d57806318160ddd1461029857806323b872dd146102c35780632f9c456914610300576101d7565b8062b8cf2a146101dc57806306fdde0314610205578063095ea7b314610230576101d7565b366101d757005b600080fd5b3480156101e857600080fd5b5061020360048036038101906101fe9190612ec4565b610714565b005b34801561021157600080fd5b5061021a610864565b6040516102279190613330565b60405180910390f35b34801561023c57600080fd5b5061025760048036038101906102529190612e88565b6108a1565b60405161026491906132fa565b60405180910390f35b34801561027957600080fd5b506102826108bf565b60405161028f9190613315565b60405180910390f35b3480156102a457600080fd5b506102ad6108e5565b6040516102ba9190613532565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e59190612dfd565b6108f5565b6040516102f791906132fa565b60405180910390f35b34801561030c57600080fd5b5061032760048036038101906103229190612e4c565b6109ce565b005b34801561033557600080fd5b5061033e610b51565b60405161034b9190613532565b60405180910390f35b34801561036057600080fd5b50610369610b57565b60405161037691906135a7565b60405180910390f35b34801561038b57600080fd5b50610394610b60565b6040516103a191906132df565b60405180910390f35b3480156103b657600080fd5b506103d160048036038101906103cc9190612d6f565b610b86565b005b3480156103df57600080fd5b506103fa60048036038101906103f59190612f05565b610c76565b005b34801561040857600080fd5b50610411610d27565b005b34801561041f57600080fd5b5061043a60048036038101906104359190612d6f565b610df8565b6040516104479190613532565b60405180910390f35b34801561045c57600080fd5b50610465610e49565b005b34801561047357600080fd5b5061048e60048036038101906104899190612f2e565b610f9c565b005b34801561049c57600080fd5b506104a561103b565b6040516104b29190613532565b60405180910390f35b3480156104c757600080fd5b506104d0611041565b6040516104dd91906132df565b60405180910390f35b3480156104f257600080fd5b5061050d60048036038101906105089190612f05565b61106a565b005b34801561051b57600080fd5b5061052461111c565b6040516105319190613532565b60405180910390f35b34801561054657600080fd5b5061054f611122565b60405161055c9190613330565b60405180910390f35b34801561057157600080fd5b5061058c60048036038101906105879190612f2e565b61115f565b005b34801561059a57600080fd5b506105b560048036038101906105b09190612f57565b6111fe565b005b3480156105c357600080fd5b506105de60048036038101906105d99190612e88565b6112b5565b6040516105eb91906132fa565b60405180910390f35b34801561060057600080fd5b5061061b60048036038101906106169190612d6f565b6112d3565b60405161062891906132fa565b60405180910390f35b34801561063d57600080fd5b5061065860048036038101906106539190612d6f565b6112f3565b60405161066591906132fa565b60405180910390f35b34801561067a57600080fd5b50610683611313565b005b34801561069157600080fd5b506106ac60048036038101906106a79190612dc1565b6113ec565b6040516106b99190613532565b60405180910390f35b3480156106ce57600080fd5b506106e960048036038101906106e49190612f2e565b611473565b005b3480156106f757600080fd5b50610712600480360381019061070d9190612d6f565b611512565b005b61071c6116d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a090613492565b60405180910390fd5b60005b8151811015610860576001601060008484815181106107f4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108589061386c565b9150506107ac565b5050565b60606040518060400160405280601881526020017f416c6578616e64726961204f636173696f20436f7274657a0000000000000000815250905090565b60006108b56108ae6116d4565b84846116dc565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b60006109028484846118a7565b6109c38461090e6116d4565b6109be85604051806060016040528060288152602001613da260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109746116d4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120979092919063ffffffff16565b6116dc565b600190509392505050565b6109d66116d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5a90613492565b60405180910390fd5b801515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610af6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aed90613452565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b8e6116d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1290613492565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c7e6116d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0290613492565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d686116d4565b73ffffffffffffffffffffffffffffffffffffffff161480610dde5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dc66116d4565b73ffffffffffffffffffffffffffffffffffffffff16145b610de757600080fd5b6000479050610df5816120fb565b50565b6000610e42600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121f6565b9050919050565b610e516116d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ede576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed590613492565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610fa46116d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102890613492565b60405180910390fd5b8060178190555050565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110726116d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f690613492565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b60185481565b60606040518060400160405280600381526020017f414f430000000000000000000000000000000000000000000000000000000000815250905090565b6111676116d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111eb90613492565b60405180910390fd5b8060198190555050565b6112066116d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128a90613492565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b60006112c96112c26116d4565b84846118a7565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113546116d4565b73ffffffffffffffffffffffffffffffffffffffff1614806113ca5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113b26116d4565b73ffffffffffffffffffffffffffffffffffffffff16145b6113d357600080fd5b60006113de30610df8565b90506113e981612264565b50565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61147b6116d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ff90613492565b60405180910390fd5b8060188190555050565b61151a6116d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159e90613492565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160e906133d2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561174c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174390613512565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b3906133f2565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161189a9190613532565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611917576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190e906134d2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611987576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197e90613352565b60405180910390fd5b600081116119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c1906134b2565b60405180910390fd5b6119d2611041565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a405750611a10611041565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d9657601660149054906101000a900460ff16611ae657601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adc90613372565b60405180910390fd5b5b601754811115611b2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b22906133b2565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bcf5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0590613412565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611cbb5760185481611c7084610df8565b611c7a9190613668565b10611cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb1906134f2565b60405180910390fd5b5b6000611cc630610df8565b9050600060195482101590506017548210611ce15760175491505b808015611cfb5750601660159054906101000a900460ff16155b8015611d555750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611d6b575060168054906101000a900460ff165b15611d9357611d7982612264565b60004790506000811115611d9157611d90476120fb565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e3d5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611ef05750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611eef5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611efe5760009050612085565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fa95750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fc157600854600c81905550600954600d819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561206c5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561208457600a54600c81905550600b54600d819055505b5b6120918484848461255e565b50505050565b60008383111582906120df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d69190613330565b60405180910390fd5b50600083856120ee9190613749565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61214b60028461258b90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612176573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6121c760028461258b90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156121f2573d6000803e3d6000fd5b5050565b600060065482111561223d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223490613392565b60405180910390fd5b60006122476125d5565b905061225c818461258b90919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156122c2577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156122f05781602001602082028036833780820191505090505b509050308160008151811061232e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156123d057600080fd5b505afa1580156123e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124089190612d98565b81600181518110612442577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124a930601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116dc565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161250d95949392919061354d565b600060405180830381600087803b15801561252757600080fd5b505af115801561253b573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b8061256c5761256b612600565b5b612577848484612643565b806125855761258461280e565b5b50505050565b60006125cd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612822565b905092915050565b60008060006125e2612885565b915091506125f9818361258b90919063ffffffff16565b9250505090565b6000600c5414801561261457506000600d54145b1561261e57612641565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612655876128e4565b9550955095509550955095506126b386600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294c90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061274885600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461299690919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612794816129f4565b61279e8483612ab1565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127fb9190613532565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008083118290612869576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128609190613330565b60405180910390fd5b506000838561287891906136be565b9050809150509392505050565b60008060006006549050600067016345785d8a000090506128b967016345785d8a000060065461258b90919063ffffffff16565b8210156128d75760065467016345785d8a00009350935050506128e0565b81819350935050505b9091565b60008060008060008060008060006129018a600c54600d54612aeb565b92509250925060006129116125d5565b905060008060006129248e878787612b81565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061298e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612097565b905092915050565b60008082846129a59190613668565b9050838110156129ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e190613432565b60405180910390fd5b8091505092915050565b60006129fe6125d5565b90506000612a158284612c0a90919063ffffffff16565b9050612a6981600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461299690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612ac68260065461294c90919063ffffffff16565b600681905550612ae18160075461299690919063ffffffff16565b6007819055505050565b600080600080612b176064612b09888a612c0a90919063ffffffff16565b61258b90919063ffffffff16565b90506000612b416064612b33888b612c0a90919063ffffffff16565b61258b90919063ffffffff16565b90506000612b6a82612b5c858c61294c90919063ffffffff16565b61294c90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612b9a8589612c0a90919063ffffffff16565b90506000612bb18689612c0a90919063ffffffff16565b90506000612bc88789612c0a90919063ffffffff16565b90506000612bf182612be3858761294c90919063ffffffff16565b61294c90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612c1d5760009050612c7f565b60008284612c2b91906136ef565b9050828482612c3a91906136be565b14612c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7190613472565b60405180910390fd5b809150505b92915050565b6000612c98612c93846135e7565b6135c2565b90508083825260208201905082856020860282011115612cb757600080fd5b60005b85811015612ce75781612ccd8882612cf1565b845260208401935060208301925050600181019050612cba565b5050509392505050565b600081359050612d0081613d5c565b92915050565b600081519050612d1581613d5c565b92915050565b600082601f830112612d2c57600080fd5b8135612d3c848260208601612c85565b91505092915050565b600081359050612d5481613d73565b92915050565b600081359050612d6981613d8a565b92915050565b600060208284031215612d8157600080fd5b6000612d8f84828501612cf1565b91505092915050565b600060208284031215612daa57600080fd5b6000612db884828501612d06565b91505092915050565b60008060408385031215612dd457600080fd5b6000612de285828601612cf1565b9250506020612df385828601612cf1565b9150509250929050565b600080600060608486031215612e1257600080fd5b6000612e2086828701612cf1565b9350506020612e3186828701612cf1565b9250506040612e4286828701612d5a565b9150509250925092565b60008060408385031215612e5f57600080fd5b6000612e6d85828601612cf1565b9250506020612e7e85828601612d45565b9150509250929050565b60008060408385031215612e9b57600080fd5b6000612ea985828601612cf1565b9250506020612eba85828601612d5a565b9150509250929050565b600060208284031215612ed657600080fd5b600082013567ffffffffffffffff811115612ef057600080fd5b612efc84828501612d1b565b91505092915050565b600060208284031215612f1757600080fd5b6000612f2584828501612d45565b91505092915050565b600060208284031215612f4057600080fd5b6000612f4e84828501612d5a565b91505092915050565b60008060008060808587031215612f6d57600080fd5b6000612f7b87828801612d5a565b9450506020612f8c87828801612d5a565b9350506040612f9d87828801612d5a565b9250506060612fae87828801612d5a565b91505092959194509250565b6000612fc68383612fd2565b60208301905092915050565b612fdb8161377d565b82525050565b612fea8161377d565b82525050565b6000612ffb82613623565b6130058185613646565b935061301083613613565b8060005b838110156130415781516130288882612fba565b975061303383613639565b925050600181019050613014565b5085935050505092915050565b6130578161378f565b82525050565b613066816137d2565b82525050565b613075816137f6565b82525050565b60006130868261362e565b6130908185613657565b93506130a0818560208601613808565b6130a981613942565b840191505092915050565b60006130c1602383613657565b91506130cc82613953565b604082019050919050565b60006130e4603f83613657565b91506130ef826139a2565b604082019050919050565b6000613107602a83613657565b9150613112826139f1565b604082019050919050565b600061312a601c83613657565b915061313582613a40565b602082019050919050565b600061314d602683613657565b915061315882613a69565b604082019050919050565b6000613170602283613657565b915061317b82613ab8565b604082019050919050565b6000613193602383613657565b915061319e82613b07565b604082019050919050565b60006131b6601b83613657565b91506131c182613b56565b602082019050919050565b60006131d9601783613657565b91506131e482613b7f565b602082019050919050565b60006131fc602183613657565b915061320782613ba8565b604082019050919050565b600061321f602083613657565b915061322a82613bf7565b602082019050919050565b6000613242602983613657565b915061324d82613c20565b604082019050919050565b6000613265602583613657565b915061327082613c6f565b604082019050919050565b6000613288602383613657565b915061329382613cbe565b604082019050919050565b60006132ab602483613657565b91506132b682613d0d565b604082019050919050565b6132ca816137bb565b82525050565b6132d9816137c5565b82525050565b60006020820190506132f46000830184612fe1565b92915050565b600060208201905061330f600083018461304e565b92915050565b600060208201905061332a600083018461305d565b92915050565b6000602082019050818103600083015261334a818461307b565b905092915050565b6000602082019050818103600083015261336b816130b4565b9050919050565b6000602082019050818103600083015261338b816130d7565b9050919050565b600060208201905081810360008301526133ab816130fa565b9050919050565b600060208201905081810360008301526133cb8161311d565b9050919050565b600060208201905081810360008301526133eb81613140565b9050919050565b6000602082019050818103600083015261340b81613163565b9050919050565b6000602082019050818103600083015261342b81613186565b9050919050565b6000602082019050818103600083015261344b816131a9565b9050919050565b6000602082019050818103600083015261346b816131cc565b9050919050565b6000602082019050818103600083015261348b816131ef565b9050919050565b600060208201905081810360008301526134ab81613212565b9050919050565b600060208201905081810360008301526134cb81613235565b9050919050565b600060208201905081810360008301526134eb81613258565b9050919050565b6000602082019050818103600083015261350b8161327b565b9050919050565b6000602082019050818103600083015261352b8161329e565b9050919050565b600060208201905061354760008301846132c1565b92915050565b600060a08201905061356260008301886132c1565b61356f602083018761306c565b81810360408301526135818186612ff0565b90506135906060830185612fe1565b61359d60808301846132c1565b9695505050505050565b60006020820190506135bc60008301846132d0565b92915050565b60006135cc6135dd565b90506135d8828261383b565b919050565b6000604051905090565b600067ffffffffffffffff82111561360257613601613913565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613673826137bb565b915061367e836137bb565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156136b3576136b26138b5565b5b828201905092915050565b60006136c9826137bb565b91506136d4836137bb565b9250826136e4576136e36138e4565b5b828204905092915050565b60006136fa826137bb565b9150613705836137bb565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561373e5761373d6138b5565b5b828202905092915050565b6000613754826137bb565b915061375f836137bb565b925082821015613772576137716138b5565b5b828203905092915050565b60006137888261379b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006137dd826137e4565b9050919050565b60006137ef8261379b565b9050919050565b6000613801826137bb565b9050919050565b60005b8381101561382657808201518184015260208101905061380b565b83811115613835576000848401525b50505050565b61384482613942565b810181811067ffffffffffffffff8211171561386357613862613913565b5b80604052505050565b6000613877826137bb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156138aa576138a96138b5565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b613d658161377d565b8114613d7057600080fd5b50565b613d7c8161378f565b8114613d8757600080fd5b50565b613d93816137bb565b8114613d9e57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122083865273948f033cda80dd431be25f7015087cc63b2456e8527e192c80078ed964736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101d05760003560e01c806374010ece116100f7578063a2a957bb11610095578063c3c8cd8011610064578063c3c8cd801461066e578063dd62ed3e14610685578063ea1644d5146106c2578063f2fde38b146106eb576101d7565b8063a2a957bb1461058e578063a9059cbb146105b7578063bdd795ef146105f4578063bfd7928414610631576101d7565b80638f70ccf7116100d15780638f70ccf7146104e65780638f9a55c01461050f57806395d89b411461053a57806398a5c31514610565576101d7565b806374010ece146104675780637d1db4a5146104905780638da5cb5b146104bb576101d7565b80632fd689e31161016f5780636d8aa8f81161013e5780636d8aa8f8146103d35780636fc3eaec146103fc57806370a0823114610413578063715018a614610450576101d7565b80632fd689e314610329578063313ce5671461035457806349bd5a5e1461037f5780636b999053146103aa576101d7565b80631694505e116101ab5780631694505e1461026d57806318160ddd1461029857806323b872dd146102c35780632f9c456914610300576101d7565b8062b8cf2a146101dc57806306fdde0314610205578063095ea7b314610230576101d7565b366101d757005b600080fd5b3480156101e857600080fd5b5061020360048036038101906101fe9190612ec4565b610714565b005b34801561021157600080fd5b5061021a610864565b6040516102279190613330565b60405180910390f35b34801561023c57600080fd5b5061025760048036038101906102529190612e88565b6108a1565b60405161026491906132fa565b60405180910390f35b34801561027957600080fd5b506102826108bf565b60405161028f9190613315565b60405180910390f35b3480156102a457600080fd5b506102ad6108e5565b6040516102ba9190613532565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e59190612dfd565b6108f5565b6040516102f791906132fa565b60405180910390f35b34801561030c57600080fd5b5061032760048036038101906103229190612e4c565b6109ce565b005b34801561033557600080fd5b5061033e610b51565b60405161034b9190613532565b60405180910390f35b34801561036057600080fd5b50610369610b57565b60405161037691906135a7565b60405180910390f35b34801561038b57600080fd5b50610394610b60565b6040516103a191906132df565b60405180910390f35b3480156103b657600080fd5b506103d160048036038101906103cc9190612d6f565b610b86565b005b3480156103df57600080fd5b506103fa60048036038101906103f59190612f05565b610c76565b005b34801561040857600080fd5b50610411610d27565b005b34801561041f57600080fd5b5061043a60048036038101906104359190612d6f565b610df8565b6040516104479190613532565b60405180910390f35b34801561045c57600080fd5b50610465610e49565b005b34801561047357600080fd5b5061048e60048036038101906104899190612f2e565b610f9c565b005b34801561049c57600080fd5b506104a561103b565b6040516104b29190613532565b60405180910390f35b3480156104c757600080fd5b506104d0611041565b6040516104dd91906132df565b60405180910390f35b3480156104f257600080fd5b5061050d60048036038101906105089190612f05565b61106a565b005b34801561051b57600080fd5b5061052461111c565b6040516105319190613532565b60405180910390f35b34801561054657600080fd5b5061054f611122565b60405161055c9190613330565b60405180910390f35b34801561057157600080fd5b5061058c60048036038101906105879190612f2e565b61115f565b005b34801561059a57600080fd5b506105b560048036038101906105b09190612f57565b6111fe565b005b3480156105c357600080fd5b506105de60048036038101906105d99190612e88565b6112b5565b6040516105eb91906132fa565b60405180910390f35b34801561060057600080fd5b5061061b60048036038101906106169190612d6f565b6112d3565b60405161062891906132fa565b60405180910390f35b34801561063d57600080fd5b5061065860048036038101906106539190612d6f565b6112f3565b60405161066591906132fa565b60405180910390f35b34801561067a57600080fd5b50610683611313565b005b34801561069157600080fd5b506106ac60048036038101906106a79190612dc1565b6113ec565b6040516106b99190613532565b60405180910390f35b3480156106ce57600080fd5b506106e960048036038101906106e49190612f2e565b611473565b005b3480156106f757600080fd5b50610712600480360381019061070d9190612d6f565b611512565b005b61071c6116d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a090613492565b60405180910390fd5b60005b8151811015610860576001601060008484815181106107f4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108589061386c565b9150506107ac565b5050565b60606040518060400160405280601881526020017f416c6578616e64726961204f636173696f20436f7274657a0000000000000000815250905090565b60006108b56108ae6116d4565b84846116dc565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b60006109028484846118a7565b6109c38461090e6116d4565b6109be85604051806060016040528060288152602001613da260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109746116d4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120979092919063ffffffff16565b6116dc565b600190509392505050565b6109d66116d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5a90613492565b60405180910390fd5b801515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610af6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aed90613452565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b8e6116d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1290613492565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c7e6116d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0290613492565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d686116d4565b73ffffffffffffffffffffffffffffffffffffffff161480610dde5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dc66116d4565b73ffffffffffffffffffffffffffffffffffffffff16145b610de757600080fd5b6000479050610df5816120fb565b50565b6000610e42600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121f6565b9050919050565b610e516116d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ede576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed590613492565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610fa46116d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102890613492565b60405180910390fd5b8060178190555050565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110726116d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f690613492565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b60185481565b60606040518060400160405280600381526020017f414f430000000000000000000000000000000000000000000000000000000000815250905090565b6111676116d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111eb90613492565b60405180910390fd5b8060198190555050565b6112066116d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128a90613492565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b60006112c96112c26116d4565b84846118a7565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113546116d4565b73ffffffffffffffffffffffffffffffffffffffff1614806113ca5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113b26116d4565b73ffffffffffffffffffffffffffffffffffffffff16145b6113d357600080fd5b60006113de30610df8565b90506113e981612264565b50565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61147b6116d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ff90613492565b60405180910390fd5b8060188190555050565b61151a6116d4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159e90613492565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160e906133d2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561174c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174390613512565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b3906133f2565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161189a9190613532565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611917576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190e906134d2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611987576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197e90613352565b60405180910390fd5b600081116119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c1906134b2565b60405180910390fd5b6119d2611041565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a405750611a10611041565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d9657601660149054906101000a900460ff16611ae657601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adc90613372565b60405180910390fd5b5b601754811115611b2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b22906133b2565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bcf5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0590613412565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611cbb5760185481611c7084610df8565b611c7a9190613668565b10611cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb1906134f2565b60405180910390fd5b5b6000611cc630610df8565b9050600060195482101590506017548210611ce15760175491505b808015611cfb5750601660159054906101000a900460ff16155b8015611d555750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611d6b575060168054906101000a900460ff165b15611d9357611d7982612264565b60004790506000811115611d9157611d90476120fb565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e3d5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611ef05750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611eef5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611efe5760009050612085565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fa95750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fc157600854600c81905550600954600d819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561206c5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561208457600a54600c81905550600b54600d819055505b5b6120918484848461255e565b50505050565b60008383111582906120df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d69190613330565b60405180910390fd5b50600083856120ee9190613749565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61214b60028461258b90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612176573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6121c760028461258b90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156121f2573d6000803e3d6000fd5b5050565b600060065482111561223d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223490613392565b60405180910390fd5b60006122476125d5565b905061225c818461258b90919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156122c2577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156122f05781602001602082028036833780820191505090505b509050308160008151811061232e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156123d057600080fd5b505afa1580156123e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124089190612d98565b81600181518110612442577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124a930601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116dc565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161250d95949392919061354d565b600060405180830381600087803b15801561252757600080fd5b505af115801561253b573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b8061256c5761256b612600565b5b612577848484612643565b806125855761258461280e565b5b50505050565b60006125cd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612822565b905092915050565b60008060006125e2612885565b915091506125f9818361258b90919063ffffffff16565b9250505090565b6000600c5414801561261457506000600d54145b1561261e57612641565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612655876128e4565b9550955095509550955095506126b386600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294c90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061274885600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461299690919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612794816129f4565b61279e8483612ab1565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127fb9190613532565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008083118290612869576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128609190613330565b60405180910390fd5b506000838561287891906136be565b9050809150509392505050565b60008060006006549050600067016345785d8a000090506128b967016345785d8a000060065461258b90919063ffffffff16565b8210156128d75760065467016345785d8a00009350935050506128e0565b81819350935050505b9091565b60008060008060008060008060006129018a600c54600d54612aeb565b92509250925060006129116125d5565b905060008060006129248e878787612b81565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061298e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612097565b905092915050565b60008082846129a59190613668565b9050838110156129ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e190613432565b60405180910390fd5b8091505092915050565b60006129fe6125d5565b90506000612a158284612c0a90919063ffffffff16565b9050612a6981600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461299690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612ac68260065461294c90919063ffffffff16565b600681905550612ae18160075461299690919063ffffffff16565b6007819055505050565b600080600080612b176064612b09888a612c0a90919063ffffffff16565b61258b90919063ffffffff16565b90506000612b416064612b33888b612c0a90919063ffffffff16565b61258b90919063ffffffff16565b90506000612b6a82612b5c858c61294c90919063ffffffff16565b61294c90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612b9a8589612c0a90919063ffffffff16565b90506000612bb18689612c0a90919063ffffffff16565b90506000612bc88789612c0a90919063ffffffff16565b90506000612bf182612be3858761294c90919063ffffffff16565b61294c90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612c1d5760009050612c7f565b60008284612c2b91906136ef565b9050828482612c3a91906136be565b14612c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7190613472565b60405180910390fd5b809150505b92915050565b6000612c98612c93846135e7565b6135c2565b90508083825260208201905082856020860282011115612cb757600080fd5b60005b85811015612ce75781612ccd8882612cf1565b845260208401935060208301925050600181019050612cba565b5050509392505050565b600081359050612d0081613d5c565b92915050565b600081519050612d1581613d5c565b92915050565b600082601f830112612d2c57600080fd5b8135612d3c848260208601612c85565b91505092915050565b600081359050612d5481613d73565b92915050565b600081359050612d6981613d8a565b92915050565b600060208284031215612d8157600080fd5b6000612d8f84828501612cf1565b91505092915050565b600060208284031215612daa57600080fd5b6000612db884828501612d06565b91505092915050565b60008060408385031215612dd457600080fd5b6000612de285828601612cf1565b9250506020612df385828601612cf1565b9150509250929050565b600080600060608486031215612e1257600080fd5b6000612e2086828701612cf1565b9350506020612e3186828701612cf1565b9250506040612e4286828701612d5a565b9150509250925092565b60008060408385031215612e5f57600080fd5b6000612e6d85828601612cf1565b9250506020612e7e85828601612d45565b9150509250929050565b60008060408385031215612e9b57600080fd5b6000612ea985828601612cf1565b9250506020612eba85828601612d5a565b9150509250929050565b600060208284031215612ed657600080fd5b600082013567ffffffffffffffff811115612ef057600080fd5b612efc84828501612d1b565b91505092915050565b600060208284031215612f1757600080fd5b6000612f2584828501612d45565b91505092915050565b600060208284031215612f4057600080fd5b6000612f4e84828501612d5a565b91505092915050565b60008060008060808587031215612f6d57600080fd5b6000612f7b87828801612d5a565b9450506020612f8c87828801612d5a565b9350506040612f9d87828801612d5a565b9250506060612fae87828801612d5a565b91505092959194509250565b6000612fc68383612fd2565b60208301905092915050565b612fdb8161377d565b82525050565b612fea8161377d565b82525050565b6000612ffb82613623565b6130058185613646565b935061301083613613565b8060005b838110156130415781516130288882612fba565b975061303383613639565b925050600181019050613014565b5085935050505092915050565b6130578161378f565b82525050565b613066816137d2565b82525050565b613075816137f6565b82525050565b60006130868261362e565b6130908185613657565b93506130a0818560208601613808565b6130a981613942565b840191505092915050565b60006130c1602383613657565b91506130cc82613953565b604082019050919050565b60006130e4603f83613657565b91506130ef826139a2565b604082019050919050565b6000613107602a83613657565b9150613112826139f1565b604082019050919050565b600061312a601c83613657565b915061313582613a40565b602082019050919050565b600061314d602683613657565b915061315882613a69565b604082019050919050565b6000613170602283613657565b915061317b82613ab8565b604082019050919050565b6000613193602383613657565b915061319e82613b07565b604082019050919050565b60006131b6601b83613657565b91506131c182613b56565b602082019050919050565b60006131d9601783613657565b91506131e482613b7f565b602082019050919050565b60006131fc602183613657565b915061320782613ba8565b604082019050919050565b600061321f602083613657565b915061322a82613bf7565b602082019050919050565b6000613242602983613657565b915061324d82613c20565b604082019050919050565b6000613265602583613657565b915061327082613c6f565b604082019050919050565b6000613288602383613657565b915061329382613cbe565b604082019050919050565b60006132ab602483613657565b91506132b682613d0d565b604082019050919050565b6132ca816137bb565b82525050565b6132d9816137c5565b82525050565b60006020820190506132f46000830184612fe1565b92915050565b600060208201905061330f600083018461304e565b92915050565b600060208201905061332a600083018461305d565b92915050565b6000602082019050818103600083015261334a818461307b565b905092915050565b6000602082019050818103600083015261336b816130b4565b9050919050565b6000602082019050818103600083015261338b816130d7565b9050919050565b600060208201905081810360008301526133ab816130fa565b9050919050565b600060208201905081810360008301526133cb8161311d565b9050919050565b600060208201905081810360008301526133eb81613140565b9050919050565b6000602082019050818103600083015261340b81613163565b9050919050565b6000602082019050818103600083015261342b81613186565b9050919050565b6000602082019050818103600083015261344b816131a9565b9050919050565b6000602082019050818103600083015261346b816131cc565b9050919050565b6000602082019050818103600083015261348b816131ef565b9050919050565b600060208201905081810360008301526134ab81613212565b9050919050565b600060208201905081810360008301526134cb81613235565b9050919050565b600060208201905081810360008301526134eb81613258565b9050919050565b6000602082019050818103600083015261350b8161327b565b9050919050565b6000602082019050818103600083015261352b8161329e565b9050919050565b600060208201905061354760008301846132c1565b92915050565b600060a08201905061356260008301886132c1565b61356f602083018761306c565b81810360408301526135818186612ff0565b90506135906060830185612fe1565b61359d60808301846132c1565b9695505050505050565b60006020820190506135bc60008301846132d0565b92915050565b60006135cc6135dd565b90506135d8828261383b565b919050565b6000604051905090565b600067ffffffffffffffff82111561360257613601613913565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613673826137bb565b915061367e836137bb565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156136b3576136b26138b5565b5b828201905092915050565b60006136c9826137bb565b91506136d4836137bb565b9250826136e4576136e36138e4565b5b828204905092915050565b60006136fa826137bb565b9150613705836137bb565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561373e5761373d6138b5565b5b828202905092915050565b6000613754826137bb565b915061375f836137bb565b925082821015613772576137716138b5565b5b828203905092915050565b60006137888261379b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006137dd826137e4565b9050919050565b60006137ef8261379b565b9050919050565b6000613801826137bb565b9050919050565b60005b8381101561382657808201518184015260208101905061380b565b83811115613835576000848401525b50505050565b61384482613942565b810181811067ffffffffffffffff8211171561386357613862613913565b5b80604052505050565b6000613877826137bb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156138aa576138a96138b5565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b613d658161377d565b8114613d7057600080fd5b50565b613d7c8161378f565b8114613d8757600080fd5b50565b613d93816137bb565b8114613d9e57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122083865273948f033cda80dd431be25f7015087cc63b2456e8527e192c80078ed964736f6c63430008040033

Deployed Bytecode Sourcemap

5004:13842:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14014:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7727:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8652:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6479:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8004:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8853:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18647:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6797:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7913:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6527:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14191:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18263:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13771:235;;;;;;;;;;;;;:::i;:::-;;8107:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2745:148;;;;;;;;;;;;;:::i;:::-;;18403:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6677:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2531:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13418:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6736:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7818:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18068:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17715:301;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8253:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6161:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6118:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13527:236;;;;;;;;;;;;;:::i;:::-;;8460:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18523:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2277:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14014:169;2668:12;:10;:12::i;:::-;2658:22;;:6;;;;;;;;;;:22;;;2650:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14090:9:::1;14085:91;14109:5;:12;14105:1;:16;14085:91;;;14160:4;14143;:14;14148:5;14154:1;14148:8;;;;;;;;;;;;;;;;;;;;;;14143:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14123:3;;;;;:::i;:::-;;;;14085:91;;;;14014:169:::0;:::o;7727:83::-;7764:13;7797:5;;;;;;;;;;;;;;;;;7790:12;;7727:83;:::o;8652:193::-;8754:4;8776:39;8785:12;:10;:12::i;:::-;8799:7;8808:6;8776:8;:39::i;:::-;8833:4;8826:11;;8652:193;;;;:::o;6479:41::-;;;;;;;;;;;;;:::o;8004:95::-;8057:7;5565:17;8077:14;;8004:95;:::o;8853:446::-;8985:4;9002:36;9012:6;9020:9;9031:6;9002:9;:36::i;:::-;9049:220;9072:6;9093:12;:10;:12::i;:::-;9120:138;9176:6;9120:138;;;;;;;;;;;;;;;;;:11;:19;9132:6;9120:19;;;;;;;;;;;;;;;:33;9140:12;:10;:12::i;:::-;9120:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;9049:8;:220::i;:::-;9287:4;9280:11;;8853:446;;;;;:::o;18647:196::-;2668:12;:10;:12::i;:::-;2658:22;;:6;;;;;;;;;;:22;;;2650:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18761:7:::1;18739:29;;:9;:18;18749:7;18739:18;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;18731:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;18828:7;18807:9;:18;18817:7;18807:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;18647:196:::0;;:::o;6797:50::-;;;;:::o;7913:83::-;7954:5;5239:1;7972:16;;7913:83;:::o;6527:28::-;;;;;;;;;;;;;:::o;14191:92::-;2668:12;:10;:12::i;:::-;2658:22;;:6;;;;;;;;;;:22;;;2650:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14270:5:::1;14255:4;:12;14260:6;14255:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14191:92:::0;:::o;18263:101::-;2668:12;:10;:12::i;:::-;2658:22;;:6;;;;;;;;;;:22;;;2650:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18344:12:::1;18330:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;18263:101:::0;:::o;13771:235::-;13837:19;;;;;;;;;;;13821:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13876:17;;;;;;;;;;;13860:33;;:12;:10;:12::i;:::-;:33;;;13821:72;13813:81;;;;;;13905:26;13934:21;13905:50;;13966:32;13979:18;13966:12;:32::i;:::-;13771:235;:::o;8107:138::-;8173:7;8200:37;8220:7;:16;8228:7;8220:16;;;;;;;;;;;;;;;;8200:19;:37::i;:::-;8193:44;;8107:138;;;:::o;2745:148::-;2668:12;:10;:12::i;:::-;2658:22;;:6;;;;;;;;;;:22;;;2650:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2852:1:::1;2815:40;;2836:6;::::0;::::1;;;;;;;;2815:40;;;;;;;;;;;;2883:1;2866:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2745:148::o:0;18403:108::-;2668:12;:10;:12::i;:::-;2658:22;;:6;;;;;;;;;;:22;;;2650:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18492:11:::1;18477:12;:26;;;;18403:108:::0;:::o;6677:45::-;;;;:::o;2531:79::-;2569:7;2596:6;;;;;;;;;;;2589:13;;2531:79;:::o;13418:101::-;2668:12;:10;:12::i;:::-;2658:22;;:6;;;;;;;;;;:22;;;2650:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13499:12:::1;13485:11;;:26;;;;;;;;;;;;;;;;;;13418:101:::0;:::o;6736:47::-;;;;:::o;7818:87::-;7857:13;7890:7;;;;;;;;;;;;;;;;;7883:14;;7818:87;:::o;18068:139::-;2668:12;:10;:12::i;:::-;2658:22;;:6;;;;;;;;;;:22;;;2650:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18181:18:::1;18159:19;:40;;;;18068:139:::0;:::o;17715:301::-;2668:12;:10;:12::i;:::-;2658:22;;:6;;;;;;;;;;:22;;;2650:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17866:13:::1;17849:14;:30;;;;17908:14;17890:15;:32;;;;17958:11;17943:12;:26;;;;17996:12;17980:13;:28;;;;17715:301:::0;;;;:::o;8253:199::-;8358:4;8380:42;8390:12;:10;:12::i;:::-;8404:9;8415:6;8380:9;:42::i;:::-;8440:4;8433:11;;8253:199;;;;:::o;6161:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;6118:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;13527:236::-;13593:19;;;;;;;;;;;13577:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13632:17;;;;;;;;;;;13616:33;;:12;:10;:12::i;:::-;:33;;;13577:72;13569:81;;;;;;13661:23;13687:24;13705:4;13687:9;:24::i;:::-;13661:50;;13722:33;13739:15;13722:16;:33::i;:::-;13527:236;:::o;8460:184::-;8577:7;8609:11;:18;8621:5;8609:18;;;;;;;;;;;;;;;:27;8628:7;8609:27;;;;;;;;;;;;;;;;8602:34;;8460:184;;;;:::o;18523:115::-;2668:12;:10;:12::i;:::-;2658:22;;:6;;;;;;;;;;:22;;;2650:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18617:13:::1;18600:14;:30;;;;18523:115:::0;:::o;2277:244::-;2668:12;:10;:12::i;:::-;2658:22;;:6;;;;;;;;;;:22;;;2650:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2386:1:::1;2366:22;;:8;:22;;;;2358:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2476:8;2447:38;;2468:6;::::0;::::1;;;;;;;;2447:38;;;;;;;;;;;;2505:8;2496:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2277:244:::0;:::o;888:98::-;941:7;968:10;961:17;;888:98;:::o;10002:369::-;10146:1;10129:19;;:5;:19;;;;10121:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10227:1;10208:21;;:7;:21;;;;10200:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10309:6;10279:11;:18;10291:5;10279:18;;;;;;;;;;;;;;;:27;10298:7;10279:27;;;;;;;;;;;;;;;:36;;;;10347:7;10331:32;;10340:5;10331:32;;;10356:6;10331:32;;;;;;:::i;:::-;;;;;;;;10002:369;;;:::o;10379:2372::-;10517:1;10501:18;;:4;:18;;;;10493:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10594:1;10580:16;;:2;:16;;;;10572:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10664:1;10655:6;:10;10647:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10736:7;:5;:7::i;:::-;10728:15;;:4;:15;;;;:32;;;;;10753:7;:5;:7::i;:::-;10747:13;;:2;:13;;;;10728:32;10724:1265;;;10829:11;;;;;;;;;;;10824:144;;10869:9;:15;10879:4;10869:15;;;;;;;;;;;;;;;;;;;;;;;;;10861:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10824:144;11016:12;;11006:6;:22;;10998:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;11085:4;:10;11090:4;11085:10;;;;;;;;;;;;;;;;;;;;;;;;;11084:11;:24;;;;;11100:4;:8;11105:2;11100:8;;;;;;;;;;;;;;;;;;;;;;;;;11099:9;11084:24;11076:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;11186:13;;;;;;;;;;;11180:19;;:2;:19;;;11177:146;;11253:14;;11244:6;11228:13;11238:2;11228:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11220:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;11177:146;11351:28;11382:24;11400:4;11382:9;:24::i;:::-;11351:55;;11421:12;11460:19;;11436:20;:43;;11421:58;;11523:12;;11499:20;:36;11496:124;;11592:12;;11569:35;;11496:124;11652:7;:18;;;;;11664:6;;;;;;;;;;;11663:7;11652:18;:43;;;;;11682:13;;;;;;;;;;;11674:21;;:4;:21;;;;11652:43;:58;;;;;11699:11;;;;;;;;;;11652:58;11648:330;;;11731:38;11748:20;11731:16;:38::i;:::-;11788:26;11817:21;11788:50;;11882:1;11861:18;:22;11857:106;;;11908:35;11921:21;11908:12;:35::i;:::-;11857:106;11648:330;;10724:1265;;;12009:12;12024:4;12009:19;;12073:18;:24;12092:4;12073:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12101:18;:22;12120:2;12101:22;;;;;;;;;;;;;;;;;;;;;;;;;12073:50;12072:102;;;;12137:13;;;;;;;;;;;12129:21;;:4;:21;;;;:44;;;;;12160:13;;;;;;;;;;;12154:19;;:2;:19;;;;12129:44;12072:102;12068:622;;;12201:5;12191:15;;12068:622;;;12296:13;;;;;;;;;;;12288:21;;:4;:21;;;:55;;;;;12327:15;;;;;;;;;;;12313:30;;:2;:30;;;;12288:55;12285:162;;;12376:14;;12364:9;:26;;;;12419:12;;12409:7;:22;;;;12285:162;12510:13;;;;;;;;;;;12504:19;;:2;:19;;;:55;;;;;12543:15;;;;;;;;;;;12527:32;;:4;:32;;;;12504:55;12500:165;;;12592:15;;12580:9;:27;;;;12636:13;;12626:7;:23;;;;12500:165;12068:622;12702:41;12717:4;12723:2;12727:6;12735:7;12702:14;:41::i;:::-;10379:2372;;;;:::o;3255:224::-;3375:7;3408:1;3403;:6;;3411:12;3395:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3435:9;3451:1;3447;:5;;;;:::i;:::-;3435:17;;3470:1;3463:8;;;3255:224;;;;;:::o;13250:160::-;13307:19;;;;;;;;;;;:28;;:43;13336:13;13347:1;13336:6;:10;;:13;;;;:::i;:::-;13307:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13361:17;;;;;;;;;;;:26;;:41;13388:13;13399:1;13388:6;:10;;:13;;;;:::i;:::-;13361:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13250:160;:::o;9307:323::-;9402:7;9460;;9449;:18;;9427:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;9548:19;9570:10;:8;:10::i;:::-;9548:32;;9598:24;9610:11;9598:7;:11;;:24;;;;:::i;:::-;9591:31;;;9307:323;;;:::o;12759:483::-;6958:4;6949:6;;:13;;;;;;;;;;;;;;;;;;12837:21:::1;12875:1;12861:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12837:40;;12906:4;12888;12893:1;12888:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;12932:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12922:4;12927:1;12922:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;12965:62;12982:4;12997:15;;;;;;;;;;;13015:11;12965:8;:62::i;:::-;13038:15;;;;;;;;;;;:66;;;13119:11;13145:1;13161:4;13188;13208:15;13038:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6973:1;6994:5:::0;6985:6;;:14;;;;;;;;;;;;;;;;;;12759:483;:::o;14291:282::-;14447:7;14442:28;;14456:14;:12;:14::i;:::-;14442:28;14481:44;14499:6;14507:9;14518:6;14481:17;:44::i;:::-;14541:7;14536:29;;14550:15;:13;:15::i;:::-;14536:29;14291:282;;;;:::o;3741:132::-;3799:7;3826:39;3830:1;3833;3826:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3819:46;;3741:132;;;;:::o;17266:166::-;17308:7;17329:15;17346;17365:19;:17;:19::i;:::-;17328:56;;;;17404:20;17416:7;17404;:11;;:20;;;;:::i;:::-;17397:27;;;;17266:166;:::o;9638:231::-;9698:1;9685:9;;:14;:30;;;;;9714:1;9703:7;;:12;9685:30;9681:43;;;9717:7;;9681:43;9760:9;;9740:17;:29;;;;9798:7;;9780:15;:25;;;;9838:1;9826:9;:13;;;;9860:1;9850:7;:11;;;;9638:231;:::o;14581:610::-;14728:15;14758:23;14796:12;14823:23;14861:12;14888:13;14915:19;14926:7;14915:10;:19::i;:::-;14713:221;;;;;;;;;;;;14963:28;14983:7;14963;:15;14971:6;14963:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14945:7;:15;14953:6;14945:15;;;;;;;;;;;;;;;:46;;;;15023:39;15046:15;15023:7;:18;15031:9;15023:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15002:7;:18;15010:9;15002:18;;;;;;;;;;;;;;;:60;;;;15073:16;15083:5;15073:9;:16::i;:::-;15100:23;15112:4;15118;15100:11;:23::i;:::-;15156:9;15139:44;;15148:6;15139:44;;;15167:15;15139:44;;;;;;:::i;:::-;;;;;;;;14581:610;;;;;;;;;:::o;9877:117::-;9933:17;;9921:9;:29;;;;9971:15;;9961:7;:25;;;;9877:117::o;3881:223::-;4001:7;4033:1;4029;:5;4036:12;4021:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4060:9;4076:1;4072;:5;;;;:::i;:::-;4060:17;;4095:1;4088:8;;;3881:223;;;;;:::o;17440:263::-;17491:7;17500;17520:15;17538:7;;17520:25;;17556:15;5565:17;17556:25;;17606:20;5565:17;17606:7;;:11;;:20;;;;:::i;:::-;17596:7;:30;17592:61;;;17636:7;;5565:17;17628:25;;;;;;;;17592:61;17678:7;17687;17670:25;;;;;;17440:263;;;:::o;15610:625::-;15710:7;15732;15754;15776;15798;15820;15856:23;15881:12;15895:13;15925:40;15937:7;15946:9;;15957:7;;15925:11;:40::i;:::-;15855:110;;;;;;15976:19;15998:10;:8;:10::i;:::-;15976:32;;16020:15;16037:23;16062:12;16091:46;16103:7;16112:4;16118:5;16125:11;16091;:46::i;:::-;16019:118;;;;;;16166:7;16175:15;16192:4;16198:15;16215:4;16221:5;16158:69;;;;;;;;;;;;;;;;;;;15610:625;;;;;;;:::o;3111:136::-;3169:7;3196:43;3200:1;3203;3196:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3189:50;;3111:136;;;;:::o;2924:179::-;2982:7;3002:9;3018:1;3014;:5;;;;:::i;:::-;3002:17;;3043:1;3038;:6;;3030:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3094:1;3087:8;;;2924:179;;;;:::o;15199:211::-;15252:19;15274:10;:8;:10::i;:::-;15252:32;;15295:13;15311:22;15321:11;15311:5;:9;;:22;;;;:::i;:::-;15295:38;;15369:33;15396:5;15369:7;:22;15385:4;15369:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15344:7;:22;15360:4;15344:22;;;;;;;;;;;;;;;:58;;;;15199:211;;;:::o;15418:147::-;15496:17;15508:4;15496:7;;:11;;:17;;;;:::i;:::-;15486:7;:27;;;;15537:20;15552:4;15537:10;;:14;;:20;;;;:::i;:::-;15524:10;:33;;;;15418:147;;:::o;16243:471::-;16412:7;16434;16456;16491:12;16506:30;16532:3;16506:21;16518:8;16506:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16491:45;;16547:13;16563:28;16587:3;16563:19;16575:6;16563:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16547:44;;16602:23;16628:28;16650:5;16628:17;16640:4;16628:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16602:54;;16677:15;16694:4;16700:5;16669:37;;;;;;;;;16243:471;;;;;;;:::o;16722:536::-;16916:7;16938;16960;16995:15;17013:24;17025:11;17013:7;:11;;:24;;;;:::i;:::-;16995:42;;17048:12;17063:21;17072:11;17063:4;:8;;:21;;;;:::i;:::-;17048:36;;17095:13;17111:22;17121:11;17111:5;:9;;:22;;;;:::i;:::-;17095:38;;17144:23;17170:28;17192:5;17170:17;17182:4;17170:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17144:54;;17219:7;17228:15;17245:4;17211:39;;;;;;;;;;16722:536;;;;;;;;:::o;3487:246::-;3545:7;3574:1;3569;:6;3565:47;;;3599:1;3592:8;;;;3565:47;3622:9;3638:1;3634;:5;;;;:::i;:::-;3622:17;;3667:1;3662;3658;:5;;;;:::i;:::-;:10;3650:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3724:1;3717:8;;;3487:246;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;996:303::-;1067:5;1116:3;1109:4;1101:6;1097:17;1093:27;1083:2;;1134:1;1131;1124:12;1083:2;1174:6;1161:20;1199:94;1289:3;1281:6;1274:4;1266:6;1262:17;1199:94;:::i;:::-;1190:103;;1073:226;;;;;:::o;1305:133::-;1348:5;1386:6;1373:20;1364:29;;1402:30;1426:5;1402:30;:::i;:::-;1354:84;;;;:::o;1444:139::-;1490:5;1528:6;1515:20;1506:29;;1544:33;1571:5;1544:33;:::i;:::-;1496:87;;;;:::o;1589:262::-;1648:6;1697:2;1685:9;1676:7;1672:23;1668:32;1665:2;;;1713:1;1710;1703:12;1665:2;1756:1;1781:53;1826:7;1817:6;1806:9;1802:22;1781:53;:::i;:::-;1771:63;;1727:117;1655:196;;;;:::o;1857:284::-;1927:6;1976:2;1964:9;1955:7;1951:23;1947:32;1944:2;;;1992:1;1989;1982:12;1944:2;2035:1;2060:64;2116:7;2107:6;2096:9;2092:22;2060:64;:::i;:::-;2050:74;;2006:128;1934:207;;;;:::o;2147:407::-;2215:6;2223;2272:2;2260:9;2251:7;2247:23;2243:32;2240:2;;;2288:1;2285;2278:12;2240:2;2331:1;2356:53;2401:7;2392:6;2381:9;2377:22;2356:53;:::i;:::-;2346:63;;2302:117;2458:2;2484:53;2529:7;2520:6;2509:9;2505:22;2484:53;:::i;:::-;2474:63;;2429:118;2230:324;;;;;:::o;2560:552::-;2637:6;2645;2653;2702:2;2690:9;2681:7;2677:23;2673:32;2670:2;;;2718:1;2715;2708:12;2670:2;2761:1;2786:53;2831:7;2822:6;2811:9;2807:22;2786:53;:::i;:::-;2776:63;;2732:117;2888:2;2914:53;2959:7;2950:6;2939:9;2935:22;2914:53;:::i;:::-;2904:63;;2859:118;3016:2;3042:53;3087:7;3078:6;3067:9;3063:22;3042:53;:::i;:::-;3032:63;;2987:118;2660:452;;;;;:::o;3118:401::-;3183:6;3191;3240:2;3228:9;3219:7;3215:23;3211:32;3208:2;;;3256:1;3253;3246:12;3208:2;3299:1;3324:53;3369:7;3360:6;3349:9;3345:22;3324:53;:::i;:::-;3314:63;;3270:117;3426:2;3452:50;3494:7;3485:6;3474:9;3470:22;3452:50;:::i;:::-;3442:60;;3397:115;3198:321;;;;;:::o;3525:407::-;3593:6;3601;3650:2;3638:9;3629:7;3625:23;3621:32;3618:2;;;3666:1;3663;3656:12;3618:2;3709:1;3734:53;3779:7;3770:6;3759:9;3755:22;3734:53;:::i;:::-;3724:63;;3680:117;3836:2;3862:53;3907:7;3898:6;3887:9;3883:22;3862:53;:::i;:::-;3852:63;;3807:118;3608:324;;;;;:::o;3938:405::-;4022:6;4071:2;4059:9;4050:7;4046:23;4042:32;4039:2;;;4087:1;4084;4077:12;4039:2;4158:1;4147:9;4143:17;4130:31;4188:18;4180:6;4177:30;4174:2;;;4220:1;4217;4210:12;4174:2;4248:78;4318:7;4309:6;4298:9;4294:22;4248:78;:::i;:::-;4238:88;;4101:235;4029:314;;;;:::o;4349:256::-;4405:6;4454:2;4442:9;4433:7;4429:23;4425:32;4422:2;;;4470:1;4467;4460:12;4422:2;4513:1;4538:50;4580:7;4571:6;4560:9;4556:22;4538:50;:::i;:::-;4528:60;;4484:114;4412:193;;;;:::o;4611:262::-;4670:6;4719:2;4707:9;4698:7;4694:23;4690:32;4687:2;;;4735:1;4732;4725:12;4687:2;4778:1;4803:53;4848:7;4839:6;4828:9;4824:22;4803:53;:::i;:::-;4793:63;;4749:117;4677:196;;;;:::o;4879:698::-;4965:6;4973;4981;4989;5038:3;5026:9;5017:7;5013:23;5009:33;5006:2;;;5055:1;5052;5045:12;5006:2;5098:1;5123:53;5168:7;5159:6;5148:9;5144:22;5123:53;:::i;:::-;5113:63;;5069:117;5225:2;5251:53;5296:7;5287:6;5276:9;5272:22;5251:53;:::i;:::-;5241:63;;5196:118;5353:2;5379:53;5424:7;5415:6;5404:9;5400:22;5379:53;:::i;:::-;5369:63;;5324:118;5481:2;5507:53;5552:7;5543:6;5532:9;5528:22;5507:53;:::i;:::-;5497:63;;5452:118;4996:581;;;;;;;:::o;5583:179::-;5652:10;5673:46;5715:3;5707:6;5673:46;:::i;:::-;5751:4;5746:3;5742:14;5728:28;;5663:99;;;;:::o;5768:108::-;5845:24;5863:5;5845:24;:::i;:::-;5840:3;5833:37;5823:53;;:::o;5882:118::-;5969:24;5987:5;5969:24;:::i;:::-;5964:3;5957:37;5947:53;;:::o;6036:732::-;6155:3;6184:54;6232:5;6184:54;:::i;:::-;6254:86;6333:6;6328:3;6254:86;:::i;:::-;6247:93;;6364:56;6414:5;6364:56;:::i;:::-;6443:7;6474:1;6459:284;6484:6;6481:1;6478:13;6459:284;;;6560:6;6554:13;6587:63;6646:3;6631:13;6587:63;:::i;:::-;6580:70;;6673:60;6726:6;6673:60;:::i;:::-;6663:70;;6519:224;6506:1;6503;6499:9;6494:14;;6459:284;;;6463:14;6759:3;6752:10;;6160:608;;;;;;;:::o;6774:109::-;6855:21;6870:5;6855:21;:::i;:::-;6850:3;6843:34;6833:50;;:::o;6889:183::-;7002:63;7059:5;7002:63;:::i;:::-;6997:3;6990:76;6980:92;;:::o;7078:147::-;7173:45;7212:5;7173:45;:::i;:::-;7168:3;7161:58;7151:74;;:::o;7231:364::-;7319:3;7347:39;7380:5;7347:39;:::i;:::-;7402:71;7466:6;7461:3;7402:71;:::i;:::-;7395:78;;7482:52;7527:6;7522:3;7515:4;7508:5;7504:16;7482:52;:::i;:::-;7559:29;7581:6;7559:29;:::i;:::-;7554:3;7550:39;7543:46;;7323:272;;;;;:::o;7601:366::-;7743:3;7764:67;7828:2;7823:3;7764:67;:::i;:::-;7757:74;;7840:93;7929:3;7840:93;:::i;:::-;7958:2;7953:3;7949:12;7942:19;;7747:220;;;:::o;7973:366::-;8115:3;8136:67;8200:2;8195:3;8136:67;:::i;:::-;8129:74;;8212:93;8301:3;8212:93;:::i;:::-;8330:2;8325:3;8321:12;8314:19;;8119:220;;;:::o;8345:366::-;8487:3;8508:67;8572:2;8567:3;8508:67;:::i;:::-;8501:74;;8584:93;8673:3;8584:93;:::i;:::-;8702:2;8697:3;8693:12;8686:19;;8491:220;;;:::o;8717:366::-;8859:3;8880:67;8944:2;8939:3;8880:67;:::i;:::-;8873:74;;8956:93;9045:3;8956:93;:::i;:::-;9074:2;9069:3;9065:12;9058:19;;8863:220;;;:::o;9089:366::-;9231:3;9252:67;9316:2;9311:3;9252:67;:::i;:::-;9245:74;;9328:93;9417:3;9328:93;:::i;:::-;9446:2;9441:3;9437:12;9430:19;;9235:220;;;:::o;9461:366::-;9603:3;9624:67;9688:2;9683:3;9624:67;:::i;:::-;9617:74;;9700:93;9789:3;9700:93;:::i;:::-;9818:2;9813:3;9809:12;9802:19;;9607:220;;;:::o;9833:366::-;9975:3;9996:67;10060:2;10055:3;9996:67;:::i;:::-;9989:74;;10072:93;10161:3;10072:93;:::i;:::-;10190:2;10185:3;10181:12;10174:19;;9979:220;;;:::o;10205:366::-;10347:3;10368:67;10432:2;10427:3;10368:67;:::i;:::-;10361:74;;10444:93;10533:3;10444:93;:::i;:::-;10562:2;10557:3;10553:12;10546:19;;10351:220;;;:::o;10577:366::-;10719:3;10740:67;10804:2;10799:3;10740:67;:::i;:::-;10733:74;;10816:93;10905:3;10816:93;:::i;:::-;10934:2;10929:3;10925:12;10918:19;;10723:220;;;:::o;10949:366::-;11091:3;11112:67;11176:2;11171:3;11112:67;:::i;:::-;11105:74;;11188:93;11277:3;11188:93;:::i;:::-;11306:2;11301:3;11297:12;11290:19;;11095:220;;;:::o;11321:366::-;11463:3;11484:67;11548:2;11543:3;11484:67;:::i;:::-;11477:74;;11560:93;11649:3;11560:93;:::i;:::-;11678:2;11673:3;11669:12;11662:19;;11467:220;;;:::o;11693:366::-;11835:3;11856:67;11920:2;11915:3;11856:67;:::i;:::-;11849:74;;11932:93;12021:3;11932:93;:::i;:::-;12050:2;12045:3;12041:12;12034:19;;11839:220;;;:::o;12065:366::-;12207:3;12228:67;12292:2;12287:3;12228:67;:::i;:::-;12221:74;;12304:93;12393:3;12304:93;:::i;:::-;12422:2;12417:3;12413:12;12406:19;;12211:220;;;:::o;12437:366::-;12579:3;12600:67;12664:2;12659:3;12600:67;:::i;:::-;12593:74;;12676:93;12765:3;12676:93;:::i;:::-;12794:2;12789:3;12785:12;12778:19;;12583:220;;;:::o;12809:366::-;12951:3;12972:67;13036:2;13031:3;12972:67;:::i;:::-;12965:74;;13048:93;13137:3;13048:93;:::i;:::-;13166:2;13161:3;13157:12;13150:19;;12955:220;;;:::o;13181:118::-;13268:24;13286:5;13268:24;:::i;:::-;13263:3;13256:37;13246:53;;:::o;13305:112::-;13388:22;13404:5;13388:22;:::i;:::-;13383:3;13376:35;13366:51;;:::o;13423:222::-;13516:4;13554:2;13543:9;13539:18;13531:26;;13567:71;13635:1;13624:9;13620:17;13611:6;13567:71;:::i;:::-;13521:124;;;;:::o;13651:210::-;13738:4;13776:2;13765:9;13761:18;13753:26;;13789:65;13851:1;13840:9;13836:17;13827:6;13789:65;:::i;:::-;13743:118;;;;:::o;13867:274::-;13986:4;14024:2;14013:9;14009:18;14001:26;;14037:97;14131:1;14120:9;14116:17;14107:6;14037:97;:::i;:::-;13991:150;;;;:::o;14147:313::-;14260:4;14298:2;14287:9;14283:18;14275:26;;14347:9;14341:4;14337:20;14333:1;14322:9;14318:17;14311:47;14375:78;14448:4;14439:6;14375:78;:::i;:::-;14367:86;;14265:195;;;;:::o;14466:419::-;14632:4;14670:2;14659:9;14655:18;14647:26;;14719:9;14713:4;14709:20;14705:1;14694:9;14690:17;14683:47;14747:131;14873:4;14747:131;:::i;:::-;14739:139;;14637:248;;;:::o;14891:419::-;15057:4;15095:2;15084:9;15080:18;15072:26;;15144:9;15138:4;15134:20;15130:1;15119:9;15115:17;15108:47;15172:131;15298:4;15172:131;:::i;:::-;15164:139;;15062:248;;;:::o;15316:419::-;15482:4;15520:2;15509:9;15505:18;15497:26;;15569:9;15563:4;15559:20;15555:1;15544:9;15540:17;15533:47;15597:131;15723:4;15597:131;:::i;:::-;15589:139;;15487:248;;;:::o;15741:419::-;15907:4;15945:2;15934:9;15930:18;15922:26;;15994:9;15988:4;15984:20;15980:1;15969:9;15965:17;15958:47;16022:131;16148:4;16022:131;:::i;:::-;16014:139;;15912:248;;;:::o;16166:419::-;16332:4;16370:2;16359:9;16355:18;16347:26;;16419:9;16413:4;16409:20;16405:1;16394:9;16390:17;16383:47;16447:131;16573:4;16447:131;:::i;:::-;16439:139;;16337:248;;;:::o;16591:419::-;16757:4;16795:2;16784:9;16780:18;16772:26;;16844:9;16838:4;16834:20;16830:1;16819:9;16815:17;16808:47;16872:131;16998:4;16872:131;:::i;:::-;16864:139;;16762:248;;;:::o;17016:419::-;17182:4;17220:2;17209:9;17205:18;17197:26;;17269:9;17263:4;17259:20;17255:1;17244:9;17240:17;17233:47;17297:131;17423:4;17297:131;:::i;:::-;17289:139;;17187:248;;;:::o;17441:419::-;17607:4;17645:2;17634:9;17630:18;17622:26;;17694:9;17688:4;17684:20;17680:1;17669:9;17665:17;17658:47;17722:131;17848:4;17722:131;:::i;:::-;17714:139;;17612:248;;;:::o;17866:419::-;18032:4;18070:2;18059:9;18055:18;18047:26;;18119:9;18113:4;18109:20;18105:1;18094:9;18090:17;18083:47;18147:131;18273:4;18147:131;:::i;:::-;18139:139;;18037:248;;;:::o;18291:419::-;18457:4;18495:2;18484:9;18480:18;18472:26;;18544:9;18538:4;18534:20;18530:1;18519:9;18515:17;18508:47;18572:131;18698:4;18572:131;:::i;:::-;18564:139;;18462:248;;;:::o;18716:419::-;18882:4;18920:2;18909:9;18905:18;18897:26;;18969:9;18963:4;18959:20;18955:1;18944:9;18940:17;18933:47;18997:131;19123:4;18997:131;:::i;:::-;18989:139;;18887:248;;;:::o;19141:419::-;19307:4;19345:2;19334:9;19330:18;19322:26;;19394:9;19388:4;19384:20;19380:1;19369:9;19365:17;19358:47;19422:131;19548:4;19422:131;:::i;:::-;19414:139;;19312:248;;;:::o;19566:419::-;19732:4;19770:2;19759:9;19755:18;19747:26;;19819:9;19813:4;19809:20;19805:1;19794:9;19790:17;19783:47;19847:131;19973:4;19847:131;:::i;:::-;19839:139;;19737:248;;;:::o;19991:419::-;20157:4;20195:2;20184:9;20180:18;20172:26;;20244:9;20238:4;20234:20;20230:1;20219:9;20215:17;20208:47;20272:131;20398:4;20272:131;:::i;:::-;20264:139;;20162:248;;;:::o;20416:419::-;20582:4;20620:2;20609:9;20605:18;20597:26;;20669:9;20663:4;20659:20;20655:1;20644:9;20640:17;20633:47;20697:131;20823:4;20697:131;:::i;:::-;20689:139;;20587:248;;;:::o;20841:222::-;20934:4;20972:2;20961:9;20957:18;20949:26;;20985:71;21053:1;21042:9;21038:17;21029:6;20985:71;:::i;:::-;20939:124;;;;:::o;21069:831::-;21332:4;21370:3;21359:9;21355:19;21347:27;;21384:71;21452:1;21441:9;21437:17;21428:6;21384:71;:::i;:::-;21465:80;21541:2;21530:9;21526:18;21517:6;21465:80;:::i;:::-;21592:9;21586:4;21582:20;21577:2;21566:9;21562:18;21555:48;21620:108;21723:4;21714:6;21620:108;:::i;:::-;21612:116;;21738:72;21806:2;21795:9;21791:18;21782:6;21738:72;:::i;:::-;21820:73;21888:3;21877:9;21873:19;21864:6;21820:73;:::i;:::-;21337:563;;;;;;;;:::o;21906:214::-;21995:4;22033:2;22022:9;22018:18;22010:26;;22046:67;22110:1;22099:9;22095:17;22086:6;22046:67;:::i;:::-;22000:120;;;;:::o;22126:129::-;22160:6;22187:20;;:::i;:::-;22177:30;;22216:33;22244:4;22236:6;22216:33;:::i;:::-;22167:88;;;:::o;22261:75::-;22294:6;22327:2;22321:9;22311:19;;22301:35;:::o;22342:311::-;22419:4;22509:18;22501:6;22498:30;22495:2;;;22531:18;;:::i;:::-;22495:2;22581:4;22573:6;22569:17;22561:25;;22641:4;22635;22631:15;22623:23;;22424:229;;;:::o;22659:132::-;22726:4;22749:3;22741:11;;22779:4;22774:3;22770:14;22762:22;;22731:60;;;:::o;22797:114::-;22864:6;22898:5;22892:12;22882:22;;22871:40;;;:::o;22917:99::-;22969:6;23003:5;22997:12;22987:22;;22976:40;;;:::o;23022:113::-;23092:4;23124;23119:3;23115:14;23107:22;;23097:38;;;:::o;23141:184::-;23240:11;23274:6;23269:3;23262:19;23314:4;23309:3;23305:14;23290:29;;23252:73;;;;:::o;23331:169::-;23415:11;23449:6;23444:3;23437:19;23489:4;23484:3;23480:14;23465:29;;23427:73;;;;:::o;23506:305::-;23546:3;23565:20;23583:1;23565:20;:::i;:::-;23560:25;;23599:20;23617:1;23599:20;:::i;:::-;23594:25;;23753:1;23685:66;23681:74;23678:1;23675:81;23672:2;;;23759:18;;:::i;:::-;23672:2;23803:1;23800;23796:9;23789:16;;23550:261;;;;:::o;23817:185::-;23857:1;23874:20;23892:1;23874:20;:::i;:::-;23869:25;;23908:20;23926:1;23908:20;:::i;:::-;23903:25;;23947:1;23937:2;;23952:18;;:::i;:::-;23937:2;23994:1;23991;23987:9;23982:14;;23859:143;;;;:::o;24008:348::-;24048:7;24071:20;24089:1;24071:20;:::i;:::-;24066:25;;24105:20;24123:1;24105:20;:::i;:::-;24100:25;;24293:1;24225:66;24221:74;24218:1;24215:81;24210:1;24203:9;24196:17;24192:105;24189:2;;;24300:18;;:::i;:::-;24189:2;24348:1;24345;24341:9;24330:20;;24056:300;;;;:::o;24362:191::-;24402:4;24422:20;24440:1;24422:20;:::i;:::-;24417:25;;24456:20;24474:1;24456:20;:::i;:::-;24451:25;;24495:1;24492;24489:8;24486:2;;;24500:18;;:::i;:::-;24486:2;24545:1;24542;24538:9;24530:17;;24407:146;;;;:::o;24559:96::-;24596:7;24625:24;24643:5;24625:24;:::i;:::-;24614:35;;24604:51;;;:::o;24661:90::-;24695:7;24738:5;24731:13;24724:21;24713:32;;24703:48;;;:::o;24757:126::-;24794:7;24834:42;24827:5;24823:54;24812:65;;24802:81;;;:::o;24889:77::-;24926:7;24955:5;24944:16;;24934:32;;;:::o;24972:86::-;25007:7;25047:4;25040:5;25036:16;25025:27;;25015:43;;;:::o;25064:178::-;25140:9;25173:63;25230:5;25173:63;:::i;:::-;25160:76;;25150:92;;;:::o;25248:139::-;25324:9;25357:24;25375:5;25357:24;:::i;:::-;25344:37;;25334:53;;;:::o;25393:121::-;25451:9;25484:24;25502:5;25484:24;:::i;:::-;25471:37;;25461:53;;;:::o;25520:307::-;25588:1;25598:113;25612:6;25609:1;25606:13;25598:113;;;25697:1;25692:3;25688:11;25682:18;25678:1;25673:3;25669:11;25662:39;25634:2;25631:1;25627:10;25622:15;;25598:113;;;25729:6;25726:1;25723:13;25720:2;;;25809:1;25800:6;25795:3;25791:16;25784:27;25720:2;25569:258;;;;:::o;25833:281::-;25916:27;25938:4;25916:27;:::i;:::-;25908:6;25904:40;26046:6;26034:10;26031:22;26010:18;25998:10;25995:34;25992:62;25989:2;;;26057:18;;:::i;:::-;25989:2;26097:10;26093:2;26086:22;25876:238;;;:::o;26120:233::-;26159:3;26182:24;26200:5;26182:24;:::i;:::-;26173:33;;26228:66;26221:5;26218:77;26215:2;;;26298:18;;:::i;:::-;26215:2;26345:1;26338:5;26334:13;26327:20;;26163:190;;;:::o;26359:180::-;26407:77;26404:1;26397:88;26504:4;26501:1;26494:15;26528:4;26525:1;26518:15;26545:180;26593:77;26590:1;26583:88;26690:4;26687:1;26680:15;26714:4;26711:1;26704:15;26731:180;26779:77;26776:1;26769:88;26876:4;26873:1;26866:15;26900:4;26897:1;26890:15;26917:102;26958:6;27009:2;27005:7;27000:2;26993:5;26989:14;26985:28;26975:38;;26965:54;;;:::o;27025:222::-;27165:34;27161:1;27153:6;27149:14;27142:58;27234:5;27229:2;27221:6;27217:15;27210:30;27131:116;:::o;27253:250::-;27393:34;27389:1;27381:6;27377:14;27370:58;27462:33;27457:2;27449:6;27445:15;27438:58;27359:144;:::o;27509:229::-;27649:34;27645:1;27637:6;27633:14;27626:58;27718:12;27713:2;27705:6;27701:15;27694:37;27615:123;:::o;27744:178::-;27884:30;27880:1;27872:6;27868:14;27861:54;27850:72;:::o;27928:225::-;28068:34;28064:1;28056:6;28052:14;28045:58;28137:8;28132:2;28124:6;28120:15;28113:33;28034:119;:::o;28159:221::-;28299:34;28295:1;28287:6;28283:14;28276:58;28368:4;28363:2;28355:6;28351:15;28344:29;28265:115;:::o;28386:222::-;28526:34;28522:1;28514:6;28510:14;28503:58;28595:5;28590:2;28582:6;28578:15;28571:30;28492:116;:::o;28614:177::-;28754:29;28750:1;28742:6;28738:14;28731:53;28720:71;:::o;28797:173::-;28937:25;28933:1;28925:6;28921:14;28914:49;28903:67;:::o;28976:220::-;29116:34;29112:1;29104:6;29100:14;29093:58;29185:3;29180:2;29172:6;29168:15;29161:28;29082:114;:::o;29202:182::-;29342:34;29338:1;29330:6;29326:14;29319:58;29308:76;:::o;29390:228::-;29530:34;29526:1;29518:6;29514:14;29507:58;29599:11;29594:2;29586:6;29582:15;29575:36;29496:122;:::o;29624:224::-;29764:34;29760:1;29752:6;29748:14;29741:58;29833:7;29828:2;29820:6;29816:15;29809:32;29730:118;:::o;29854:222::-;29994:34;29990:1;29982:6;29978:14;29971:58;30063:5;30058:2;30050:6;30046:15;30039:30;29960:116;:::o;30082:223::-;30222:34;30218:1;30210:6;30206:14;30199:58;30291:6;30286:2;30278:6;30274:15;30267:31;30188:117;:::o;30311:122::-;30384:24;30402:5;30384:24;:::i;:::-;30377:5;30374:35;30364:2;;30423:1;30420;30413:12;30364:2;30354:79;:::o;30439:116::-;30509:21;30524:5;30509:21;:::i;:::-;30502:5;30499:32;30489:2;;30545:1;30542;30535:12;30489:2;30479:76;:::o;30561:122::-;30634:24;30652:5;30634:24;:::i;:::-;30627:5;30624:35;30614:2;;30673:1;30670;30663:12;30614:2;30604:79;:::o

Swarm Source

ipfs://83865273948f033cda80dd431be25f7015087cc63b2456e8527e192c80078ed9
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.