ETH Price: $3,455.08 (+6.41%)
Gas: 6 Gwei

Token

Cult of Grok (CLOG)
 

Overview

Max Total Supply

1,000,000,000 CLOG

Holders

61

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,980,813.486505076 CLOG

Value
$0.00
0xdab89c75d1a272da08ce164f0ba24b97db9c8410
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:
CLOG

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-15
*/

/*

Twitter: https://x.com/cultofgroketh 

Website: https://www.cultofgrok.com/

Portal: https://t.me/CultOfGrok

*/

//* SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.9;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

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

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

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

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

}

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

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

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

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract CLOG is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = unicode"Cult of Grok";
    string private constant _symbol = unicode"CLOG";
    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 = 1000000000 * 10**9;

    uint256 private _taxLastBlock;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 20;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 20;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap;
    address payable public _developmentAddress = payable(msg.sender);
    address payable private _marketingAddress = payable(msg.sender);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

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

    uint256 public _maxTxAmount =  2 * (_tTotal/100);
    uint256 public _maxWalletSize = 2 * (_tTotal/100);
    uint256 public _swapTokensAtAmount = 5 *(_tTotal/1000);

    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;

        _taxLastBlock=block.number;

        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(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenBalance = balanceOf(address(this));

            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(antiCaEmpty && block.number==_taxLastBlock)
                canSwap=false; //dont allow ca to sell 2 times in a block

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                    _taxLastBlock=block.number;
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }

        }

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

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

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

    function 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 blockSingleBot(address thebot) public onlyOwner {
        bots[thebot] = 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;
    }

    //Avoid the newest bots that empty ca tokens.
    function toggleantiCaEmpty(bool _value) public onlyOwner {
        antiCaEmpty = _value;
    }

    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

}

Contract Security Audit

Contract ABI

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

6080604052670de0b6b3a76400006000196200001c91906200077c565b6000196200002b9190620007e3565b60075560006009556014600a556000600b556014600c55600b54600d55600c54600e55600d54600f55600e5460105533601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660146101000a81548160ff0219169083151502179055506000601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff0219169083151502179055506001601660176101000a81548160ff0219169083151502179055506064670de0b6b3a76400006200015e91906200081e565b60026200016c919062000856565b6017556064670de0b6b3a76400006200018691906200081e565b600262000194919062000856565b6018556103e8670de0b6b3a7640000620001af91906200081e565b6005620001bd919062000856565b601955348015620001cd57600080fd5b506000620001e06200071260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060075460026000620002956200071260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000379573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039f91906200090b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000407573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042d91906200090b565b6040518363ffffffff1660e01b81526004016200044c9291906200094e565b6020604051808303816000875af11580156200046c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200049291906200090b565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004e86200071a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550436006819055506200069c6200071260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200070391906200098c565b60405180910390a350620009a9565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007898262000743565b9150620007968362000743565b925082620007a957620007a86200074d565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007f08262000743565b9150620007fd8362000743565b9250828203905081811115620008185762000817620007b4565b5b92915050565b60006200082b8262000743565b9150620008388362000743565b9250826200084b576200084a6200074d565b5b828204905092915050565b6000620008638262000743565b9150620008708362000743565b9250828202620008808162000743565b915082820484148315176200089a5762000899620007b4565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008d382620008a6565b9050919050565b620008e581620008c6565b8114620008f157600080fd5b50565b6000815190506200090581620008da565b92915050565b600060208284031215620009245762000923620008a1565b5b60006200093484828501620008f4565b91505092915050565b6200094881620008c6565b82525050565b60006040820190506200096560008301856200093d565b6200097460208301846200093d565b9392505050565b620009868162000743565b82525050565b6000602082019050620009a360008301846200097b565b92915050565b61405280620009b96000396000f3fe6080604052600436106101f15760003560e01c80637d1db4a51161010d578063a9059cbb116100a0578063c3c8cd801161006f578063c3c8cd80146106e3578063c492f046146106fa578063dd62ed3e14610723578063ea1644d514610760578063f2fde38b14610789576101f8565b8063a9059cbb14610617578063aff0598314610654578063be1aa3cd1461067d578063bfd79284146106a6576101f8565b80638f9a55c0116100dc5780638f9a55c01461056f57806395d89b411461059a57806398a5c315146105c5578063a2a957bb146105ee576101f8565b80637d1db4a5146104b35780637f2feddc146104de5780638da5cb5b1461051b5780638f70ccf714610546576101f8565b80633d6a9afe116101855780636fc3eaec116101545780636fc3eaec1461041f57806370a0823114610436578063715018a61461047357806374010ece1461048a576101f8565b80633d6a9afe1461037757806349bd5a5e146103a25780636b999053146103cd5780636d8aa8f8146103f6576101f8565b806318160ddd116101c157806318160ddd146102b957806323b872dd146102e45780632fd689e314610321578063313ce5671461034c576101f8565b8062b8cf2a146101fd57806306fdde0314610226578063095ea7b3146102515780631694505e1461028e576101f8565b366101f857005b600080fd5b34801561020957600080fd5b50610224600480360381019061021f9190612fe6565b6107b2565b005b34801561023257600080fd5b5061023b6108dc565b60405161024891906130ae565b60405180910390f35b34801561025d57600080fd5b5061027860048036038101906102739190613106565b610919565b6040516102859190613161565b60405180910390f35b34801561029a57600080fd5b506102a3610937565b6040516102b091906131db565b60405180910390f35b3480156102c557600080fd5b506102ce61095d565b6040516102db9190613205565b60405180910390f35b3480156102f057600080fd5b5061030b60048036038101906103069190613220565b61096d565b6040516103189190613161565b60405180910390f35b34801561032d57600080fd5b50610336610a46565b6040516103439190613205565b60405180910390f35b34801561035857600080fd5b50610361610a4c565b60405161036e919061328f565b60405180910390f35b34801561038357600080fd5b5061038c610a55565b60405161039991906132cb565b60405180910390f35b3480156103ae57600080fd5b506103b7610a7b565b6040516103c491906132f5565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef9190613310565b610aa1565b005b34801561040257600080fd5b5061041d60048036038101906104189190613369565b610b91565b005b34801561042b57600080fd5b50610434610c42565b005b34801561044257600080fd5b5061045d60048036038101906104589190613310565b610d13565b60405161046a9190613205565b60405180910390f35b34801561047f57600080fd5b50610488610d64565b005b34801561049657600080fd5b506104b160048036038101906104ac9190613396565b610eb7565b005b3480156104bf57600080fd5b506104c8610f56565b6040516104d59190613205565b60405180910390f35b3480156104ea57600080fd5b5061050560048036038101906105009190613310565b610f5c565b6040516105129190613205565b60405180910390f35b34801561052757600080fd5b50610530610f74565b60405161053d91906132f5565b60405180910390f35b34801561055257600080fd5b5061056d60048036038101906105689190613369565b610f9d565b005b34801561057b57600080fd5b5061058461104f565b6040516105919190613205565b60405180910390f35b3480156105a657600080fd5b506105af611055565b6040516105bc91906130ae565b60405180910390f35b3480156105d157600080fd5b506105ec60048036038101906105e79190613396565b611092565b005b3480156105fa57600080fd5b50610615600480360381019061061091906133c3565b611131565b005b34801561062357600080fd5b5061063e60048036038101906106399190613106565b6111e8565b60405161064b9190613161565b60405180910390f35b34801561066057600080fd5b5061067b60048036038101906106769190613369565b611206565b005b34801561068957600080fd5b506106a4600480360381019061069f9190613310565b6112b8565b005b3480156106b257600080fd5b506106cd60048036038101906106c89190613310565b6113a8565b6040516106da9190613161565b60405180910390f35b3480156106ef57600080fd5b506106f86113c8565b005b34801561070657600080fd5b50610721600480360381019061071c9190613485565b6114a1565b005b34801561072f57600080fd5b5061074a600480360381019061074591906134e5565b6115db565b6040516107579190613205565b60405180910390f35b34801561076c57600080fd5b5061078760048036038101906107829190613396565b611662565b005b34801561079557600080fd5b506107b060048036038101906107ab9190613310565b611701565b005b6107ba6118c2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083e90613571565b60405180910390fd5b60005b81518110156108d85760016011600084848151811061086c5761086b613591565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108d0906135ef565b91505061084a565b5050565b60606040518060400160405280600c81526020017f43756c74206f662047726f6b0000000000000000000000000000000000000000815250905090565b600061092d6109266118c2565b84846118ca565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b600061097a848484611a93565b610a3b846109866118c2565b610a3685604051806060016040528060288152602001613ff560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109ec6118c2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123449092919063ffffffff16565b6118ca565b600190509392505050565b60195481565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610aa96118c2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2d90613571565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b996118c2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1d90613571565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c836118c2565b73ffffffffffffffffffffffffffffffffffffffff161480610cf95750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ce16118c2565b73ffffffffffffffffffffffffffffffffffffffff16145b610d0257600080fd5b6000479050610d10816123a8565b50565b6000610d5d600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612414565b9050919050565b610d6c6118c2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df090613571565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ebf6118c2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4390613571565b60405180910390fd5b8060178190555050565b60175481565b60126020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610fa56118c2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611032576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102990613571565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b60185481565b60606040518060400160405280600481526020017f434c4f4700000000000000000000000000000000000000000000000000000000815250905090565b61109a6118c2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111e90613571565b60405180910390fd5b8060198190555050565b6111396118c2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bd90613571565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b60006111fc6111f56118c2565b8484611a93565b6001905092915050565b61120e6118c2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461129b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129290613571565b60405180910390fd5b80601660176101000a81548160ff02191690831515021790555050565b6112c06118c2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461134d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134490613571565b60405180910390fd5b6001601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60116020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114096118c2565b73ffffffffffffffffffffffffffffffffffffffff16148061147f5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114676118c2565b73ffffffffffffffffffffffffffffffffffffffff16145b61148857600080fd5b600061149330610d13565b905061149e81612482565b50565b6114a96118c2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152d90613571565b60405180910390fd5b60005b838390508110156115d557816005600086868581811061155c5761155b613591565b5b90506020020160208101906115719190613310565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806115cd906135ef565b915050611539565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61166a6118c2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ee90613571565b60405180910390fd5b8060188190555050565b6117096118c2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178d90613571565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fc906136a9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611939576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119309061373b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199f906137cd565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a869190613205565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af99061385f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b68906138f1565b60405180910390fd5b60008111611bb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bab90613983565b60405180910390fd5b611bbc610f74565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c2a5750611bfa610f74565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561204357601660149054906101000a900460ff16611cb957611c4b610f74565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caf90613a15565b60405180910390fd5b5b601754811115611cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf590613a81565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611da25750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd890613b13565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611e8e5760185481611e4384610d13565b611e4d9190613b33565b10611e8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8490613bd9565b60405180910390fd5b5b6000611e9930610d13565b905060006019548210159050601660179054906101000a900460ff168015611ec2575060065443145b15611ecc57600090505b6017548210611edb5760175491505b808015611ef55750601660159054906101000a900460ff16155b8015611f4f5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f65575060168054906101000a900460ff165b8015611fbb5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120115750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120405761201f82612482565b6000479050600081111561203e57612036476123a8565b436006819055505b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120ea5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061219d5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561219c5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156121ab5760009050612332565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122565750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561226e57600954600d81905550600a54600e819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123195750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561233157600b54600d81905550600c54600e819055505b5b61233e848484846126fb565b50505050565b600083831115829061238c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238391906130ae565b60405180910390fd5b506000838561239b9190613bf9565b9050809150509392505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612410573d6000803e3d6000fd5b5050565b600060075482111561245b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245290613c9f565b60405180910390fd5b6000612465612728565b905061247a818461275390919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156124ba576124b9612e45565b5b6040519080825280602002602001820160405280156124e85781602001602082028036833780820191505090505b5090503081600081518110612500576124ff613591565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125cb9190613cd4565b816001815181106125df576125de613591565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061264630601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118ca565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016126aa959493929190613dfa565b600060405180830381600087803b1580156126c457600080fd5b505af11580156126d8573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b806127095761270861279d565b5b6127148484846127da565b80612722576127216129a5565b5b50505050565b60008060006127356129b9565b9150915061274c818361275390919063ffffffff16565b9250505090565b600061279583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a18565b905092915050565b6000600d541480156127b157506000600e54145b6127d857600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b6000806000806000806127ec87612a7b565b95509550955095509550955061284a86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ae390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128df85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b2d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061292b81612b8b565b6129358483612c48565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129929190613205565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b600080600060075490506000670de0b6b3a764000090506129ed670de0b6b3a764000060075461275390919063ffffffff16565b821015612a0b57600754670de0b6b3a7640000935093505050612a14565b81819350935050505b9091565b60008083118290612a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5691906130ae565b60405180910390fd5b5060008385612a6e9190613e83565b9050809150509392505050565b6000806000806000806000806000612a988a600d54600e54612c82565b9250925092506000612aa8612728565b90506000806000612abb8e878787612d18565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612b2583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612344565b905092915050565b6000808284612b3c9190613b33565b905083811015612b81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7890613f00565b60405180910390fd5b8091505092915050565b6000612b95612728565b90506000612bac8284612da190919063ffffffff16565b9050612c0081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b2d90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612c5d82600754612ae390919063ffffffff16565b600781905550612c7881600854612b2d90919063ffffffff16565b6008819055505050565b600080600080612cae6064612ca0888a612da190919063ffffffff16565b61275390919063ffffffff16565b90506000612cd86064612cca888b612da190919063ffffffff16565b61275390919063ffffffff16565b90506000612d0182612cf3858c612ae390919063ffffffff16565b612ae390919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612d318589612da190919063ffffffff16565b90506000612d488689612da190919063ffffffff16565b90506000612d5f8789612da190919063ffffffff16565b90506000612d8882612d7a8587612ae390919063ffffffff16565b612ae390919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612db35760009050612e15565b60008284612dc19190613f20565b9050828482612dd09190613e83565b14612e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e0790613fd4565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612e7d82612e34565b810181811067ffffffffffffffff82111715612e9c57612e9b612e45565b5b80604052505050565b6000612eaf612e1b565b9050612ebb8282612e74565b919050565b600067ffffffffffffffff821115612edb57612eda612e45565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f1c82612ef1565b9050919050565b612f2c81612f11565b8114612f3757600080fd5b50565b600081359050612f4981612f23565b92915050565b6000612f62612f5d84612ec0565b612ea5565b90508083825260208201905060208402830185811115612f8557612f84612eec565b5b835b81811015612fae5780612f9a8882612f3a565b845260208401935050602081019050612f87565b5050509392505050565b600082601f830112612fcd57612fcc612e2f565b5b8135612fdd848260208601612f4f565b91505092915050565b600060208284031215612ffc57612ffb612e25565b5b600082013567ffffffffffffffff81111561301a57613019612e2a565b5b61302684828501612fb8565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561306957808201518184015260208101905061304e565b60008484015250505050565b60006130808261302f565b61308a818561303a565b935061309a81856020860161304b565b6130a381612e34565b840191505092915050565b600060208201905081810360008301526130c88184613075565b905092915050565b6000819050919050565b6130e3816130d0565b81146130ee57600080fd5b50565b600081359050613100816130da565b92915050565b6000806040838503121561311d5761311c612e25565b5b600061312b85828601612f3a565b925050602061313c858286016130f1565b9150509250929050565b60008115159050919050565b61315b81613146565b82525050565b60006020820190506131766000830184613152565b92915050565b6000819050919050565b60006131a161319c61319784612ef1565b61317c565b612ef1565b9050919050565b60006131b382613186565b9050919050565b60006131c5826131a8565b9050919050565b6131d5816131ba565b82525050565b60006020820190506131f060008301846131cc565b92915050565b6131ff816130d0565b82525050565b600060208201905061321a60008301846131f6565b92915050565b60008060006060848603121561323957613238612e25565b5b600061324786828701612f3a565b935050602061325886828701612f3a565b9250506040613269868287016130f1565b9150509250925092565b600060ff82169050919050565b61328981613273565b82525050565b60006020820190506132a46000830184613280565b92915050565b60006132b582612ef1565b9050919050565b6132c5816132aa565b82525050565b60006020820190506132e060008301846132bc565b92915050565b6132ef81612f11565b82525050565b600060208201905061330a60008301846132e6565b92915050565b60006020828403121561332657613325612e25565b5b600061333484828501612f3a565b91505092915050565b61334681613146565b811461335157600080fd5b50565b6000813590506133638161333d565b92915050565b60006020828403121561337f5761337e612e25565b5b600061338d84828501613354565b91505092915050565b6000602082840312156133ac576133ab612e25565b5b60006133ba848285016130f1565b91505092915050565b600080600080608085870312156133dd576133dc612e25565b5b60006133eb878288016130f1565b94505060206133fc878288016130f1565b935050604061340d878288016130f1565b925050606061341e878288016130f1565b91505092959194509250565b600080fd5b60008083601f84011261344557613444612e2f565b5b8235905067ffffffffffffffff8111156134625761346161342a565b5b60208301915083602082028301111561347e5761347d612eec565b5b9250929050565b60008060006040848603121561349e5761349d612e25565b5b600084013567ffffffffffffffff8111156134bc576134bb612e2a565b5b6134c88682870161342f565b935093505060206134db86828701613354565b9150509250925092565b600080604083850312156134fc576134fb612e25565b5b600061350a85828601612f3a565b925050602061351b85828601612f3a565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061355b60208361303a565b915061356682613525565b602082019050919050565b6000602082019050818103600083015261358a8161354e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135fa826130d0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361362c5761362b6135c0565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061369360268361303a565b915061369e82613637565b604082019050919050565b600060208201905081810360008301526136c281613686565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061372560248361303a565b9150613730826136c9565b604082019050919050565b6000602082019050818103600083015261375481613718565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006137b760228361303a565b91506137c28261375b565b604082019050919050565b600060208201905081810360008301526137e6816137aa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061384960258361303a565b9150613854826137ed565b604082019050919050565b600060208201905081810360008301526138788161383c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006138db60238361303a565b91506138e68261387f565b604082019050919050565b6000602082019050818103600083015261390a816138ce565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061396d60298361303a565b915061397882613911565b604082019050919050565b6000602082019050818103600083015261399c81613960565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006139ff603f8361303a565b9150613a0a826139a3565b604082019050919050565b60006020820190508181036000830152613a2e816139f2565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613a6b601c8361303a565b9150613a7682613a35565b602082019050919050565b60006020820190508181036000830152613a9a81613a5e565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613afd60238361303a565b9150613b0882613aa1565b604082019050919050565b60006020820190508181036000830152613b2c81613af0565b9050919050565b6000613b3e826130d0565b9150613b49836130d0565b9250828201905080821115613b6157613b606135c0565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613bc360238361303a565b9150613bce82613b67565b604082019050919050565b60006020820190508181036000830152613bf281613bb6565b9050919050565b6000613c04826130d0565b9150613c0f836130d0565b9250828203905081811115613c2757613c266135c0565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613c89602a8361303a565b9150613c9482613c2d565b604082019050919050565b60006020820190508181036000830152613cb881613c7c565b9050919050565b600081519050613cce81612f23565b92915050565b600060208284031215613cea57613ce9612e25565b5b6000613cf884828501613cbf565b91505092915050565b6000819050919050565b6000613d26613d21613d1c84613d01565b61317c565b6130d0565b9050919050565b613d3681613d0b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613d7181612f11565b82525050565b6000613d838383613d68565b60208301905092915050565b6000602082019050919050565b6000613da782613d3c565b613db18185613d47565b9350613dbc83613d58565b8060005b83811015613ded578151613dd48882613d77565b9750613ddf83613d8f565b925050600181019050613dc0565b5085935050505092915050565b600060a082019050613e0f60008301886131f6565b613e1c6020830187613d2d565b8181036040830152613e2e8186613d9c565b9050613e3d60608301856132e6565b613e4a60808301846131f6565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e8e826130d0565b9150613e99836130d0565b925082613ea957613ea8613e54565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613eea601b8361303a565b9150613ef582613eb4565b602082019050919050565b60006020820190508181036000830152613f1981613edd565b9050919050565b6000613f2b826130d0565b9150613f36836130d0565b9250828202613f44816130d0565b91508282048414831517613f5b57613f5a6135c0565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fbe60218361303a565b9150613fc982613f62565b604082019050919050565b60006020820190508181036000830152613fed81613fb1565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ebe68901c3af69edba83bc1ca64c1a918385f4d53c8f58054ecdd5a962739cab64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101f15760003560e01c80637d1db4a51161010d578063a9059cbb116100a0578063c3c8cd801161006f578063c3c8cd80146106e3578063c492f046146106fa578063dd62ed3e14610723578063ea1644d514610760578063f2fde38b14610789576101f8565b8063a9059cbb14610617578063aff0598314610654578063be1aa3cd1461067d578063bfd79284146106a6576101f8565b80638f9a55c0116100dc5780638f9a55c01461056f57806395d89b411461059a57806398a5c315146105c5578063a2a957bb146105ee576101f8565b80637d1db4a5146104b35780637f2feddc146104de5780638da5cb5b1461051b5780638f70ccf714610546576101f8565b80633d6a9afe116101855780636fc3eaec116101545780636fc3eaec1461041f57806370a0823114610436578063715018a61461047357806374010ece1461048a576101f8565b80633d6a9afe1461037757806349bd5a5e146103a25780636b999053146103cd5780636d8aa8f8146103f6576101f8565b806318160ddd116101c157806318160ddd146102b957806323b872dd146102e45780632fd689e314610321578063313ce5671461034c576101f8565b8062b8cf2a146101fd57806306fdde0314610226578063095ea7b3146102515780631694505e1461028e576101f8565b366101f857005b600080fd5b34801561020957600080fd5b50610224600480360381019061021f9190612fe6565b6107b2565b005b34801561023257600080fd5b5061023b6108dc565b60405161024891906130ae565b60405180910390f35b34801561025d57600080fd5b5061027860048036038101906102739190613106565b610919565b6040516102859190613161565b60405180910390f35b34801561029a57600080fd5b506102a3610937565b6040516102b091906131db565b60405180910390f35b3480156102c557600080fd5b506102ce61095d565b6040516102db9190613205565b60405180910390f35b3480156102f057600080fd5b5061030b60048036038101906103069190613220565b61096d565b6040516103189190613161565b60405180910390f35b34801561032d57600080fd5b50610336610a46565b6040516103439190613205565b60405180910390f35b34801561035857600080fd5b50610361610a4c565b60405161036e919061328f565b60405180910390f35b34801561038357600080fd5b5061038c610a55565b60405161039991906132cb565b60405180910390f35b3480156103ae57600080fd5b506103b7610a7b565b6040516103c491906132f5565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef9190613310565b610aa1565b005b34801561040257600080fd5b5061041d60048036038101906104189190613369565b610b91565b005b34801561042b57600080fd5b50610434610c42565b005b34801561044257600080fd5b5061045d60048036038101906104589190613310565b610d13565b60405161046a9190613205565b60405180910390f35b34801561047f57600080fd5b50610488610d64565b005b34801561049657600080fd5b506104b160048036038101906104ac9190613396565b610eb7565b005b3480156104bf57600080fd5b506104c8610f56565b6040516104d59190613205565b60405180910390f35b3480156104ea57600080fd5b5061050560048036038101906105009190613310565b610f5c565b6040516105129190613205565b60405180910390f35b34801561052757600080fd5b50610530610f74565b60405161053d91906132f5565b60405180910390f35b34801561055257600080fd5b5061056d60048036038101906105689190613369565b610f9d565b005b34801561057b57600080fd5b5061058461104f565b6040516105919190613205565b60405180910390f35b3480156105a657600080fd5b506105af611055565b6040516105bc91906130ae565b60405180910390f35b3480156105d157600080fd5b506105ec60048036038101906105e79190613396565b611092565b005b3480156105fa57600080fd5b50610615600480360381019061061091906133c3565b611131565b005b34801561062357600080fd5b5061063e60048036038101906106399190613106565b6111e8565b60405161064b9190613161565b60405180910390f35b34801561066057600080fd5b5061067b60048036038101906106769190613369565b611206565b005b34801561068957600080fd5b506106a4600480360381019061069f9190613310565b6112b8565b005b3480156106b257600080fd5b506106cd60048036038101906106c89190613310565b6113a8565b6040516106da9190613161565b60405180910390f35b3480156106ef57600080fd5b506106f86113c8565b005b34801561070657600080fd5b50610721600480360381019061071c9190613485565b6114a1565b005b34801561072f57600080fd5b5061074a600480360381019061074591906134e5565b6115db565b6040516107579190613205565b60405180910390f35b34801561076c57600080fd5b5061078760048036038101906107829190613396565b611662565b005b34801561079557600080fd5b506107b060048036038101906107ab9190613310565b611701565b005b6107ba6118c2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083e90613571565b60405180910390fd5b60005b81518110156108d85760016011600084848151811061086c5761086b613591565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108d0906135ef565b91505061084a565b5050565b60606040518060400160405280600c81526020017f43756c74206f662047726f6b0000000000000000000000000000000000000000815250905090565b600061092d6109266118c2565b84846118ca565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b600061097a848484611a93565b610a3b846109866118c2565b610a3685604051806060016040528060288152602001613ff560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109ec6118c2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123449092919063ffffffff16565b6118ca565b600190509392505050565b60195481565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610aa96118c2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2d90613571565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b996118c2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1d90613571565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c836118c2565b73ffffffffffffffffffffffffffffffffffffffff161480610cf95750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ce16118c2565b73ffffffffffffffffffffffffffffffffffffffff16145b610d0257600080fd5b6000479050610d10816123a8565b50565b6000610d5d600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612414565b9050919050565b610d6c6118c2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df090613571565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ebf6118c2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4390613571565b60405180910390fd5b8060178190555050565b60175481565b60126020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610fa56118c2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611032576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102990613571565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b60185481565b60606040518060400160405280600481526020017f434c4f4700000000000000000000000000000000000000000000000000000000815250905090565b61109a6118c2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111e90613571565b60405180910390fd5b8060198190555050565b6111396118c2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bd90613571565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b60006111fc6111f56118c2565b8484611a93565b6001905092915050565b61120e6118c2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461129b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129290613571565b60405180910390fd5b80601660176101000a81548160ff02191690831515021790555050565b6112c06118c2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461134d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134490613571565b60405180910390fd5b6001601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60116020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114096118c2565b73ffffffffffffffffffffffffffffffffffffffff16148061147f5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114676118c2565b73ffffffffffffffffffffffffffffffffffffffff16145b61148857600080fd5b600061149330610d13565b905061149e81612482565b50565b6114a96118c2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152d90613571565b60405180910390fd5b60005b838390508110156115d557816005600086868581811061155c5761155b613591565b5b90506020020160208101906115719190613310565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806115cd906135ef565b915050611539565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61166a6118c2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ee90613571565b60405180910390fd5b8060188190555050565b6117096118c2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178d90613571565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fc906136a9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611939576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119309061373b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199f906137cd565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a869190613205565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af99061385f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b68906138f1565b60405180910390fd5b60008111611bb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bab90613983565b60405180910390fd5b611bbc610f74565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c2a5750611bfa610f74565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561204357601660149054906101000a900460ff16611cb957611c4b610f74565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caf90613a15565b60405180910390fd5b5b601754811115611cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf590613a81565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611da25750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd890613b13565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611e8e5760185481611e4384610d13565b611e4d9190613b33565b10611e8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8490613bd9565b60405180910390fd5b5b6000611e9930610d13565b905060006019548210159050601660179054906101000a900460ff168015611ec2575060065443145b15611ecc57600090505b6017548210611edb5760175491505b808015611ef55750601660159054906101000a900460ff16155b8015611f4f5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f65575060168054906101000a900460ff165b8015611fbb5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120115750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120405761201f82612482565b6000479050600081111561203e57612036476123a8565b436006819055505b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120ea5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061219d5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561219c5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156121ab5760009050612332565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122565750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561226e57600954600d81905550600a54600e819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123195750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561233157600b54600d81905550600c54600e819055505b5b61233e848484846126fb565b50505050565b600083831115829061238c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238391906130ae565b60405180910390fd5b506000838561239b9190613bf9565b9050809150509392505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612410573d6000803e3d6000fd5b5050565b600060075482111561245b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245290613c9f565b60405180910390fd5b6000612465612728565b905061247a818461275390919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156124ba576124b9612e45565b5b6040519080825280602002602001820160405280156124e85781602001602082028036833780820191505090505b5090503081600081518110612500576124ff613591565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125cb9190613cd4565b816001815181106125df576125de613591565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061264630601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118ca565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016126aa959493929190613dfa565b600060405180830381600087803b1580156126c457600080fd5b505af11580156126d8573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b806127095761270861279d565b5b6127148484846127da565b80612722576127216129a5565b5b50505050565b60008060006127356129b9565b9150915061274c818361275390919063ffffffff16565b9250505090565b600061279583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a18565b905092915050565b6000600d541480156127b157506000600e54145b6127d857600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b6000806000806000806127ec87612a7b565b95509550955095509550955061284a86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ae390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128df85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b2d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061292b81612b8b565b6129358483612c48565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129929190613205565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b600080600060075490506000670de0b6b3a764000090506129ed670de0b6b3a764000060075461275390919063ffffffff16565b821015612a0b57600754670de0b6b3a7640000935093505050612a14565b81819350935050505b9091565b60008083118290612a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5691906130ae565b60405180910390fd5b5060008385612a6e9190613e83565b9050809150509392505050565b6000806000806000806000806000612a988a600d54600e54612c82565b9250925092506000612aa8612728565b90506000806000612abb8e878787612d18565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612b2583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612344565b905092915050565b6000808284612b3c9190613b33565b905083811015612b81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7890613f00565b60405180910390fd5b8091505092915050565b6000612b95612728565b90506000612bac8284612da190919063ffffffff16565b9050612c0081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b2d90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612c5d82600754612ae390919063ffffffff16565b600781905550612c7881600854612b2d90919063ffffffff16565b6008819055505050565b600080600080612cae6064612ca0888a612da190919063ffffffff16565b61275390919063ffffffff16565b90506000612cd86064612cca888b612da190919063ffffffff16565b61275390919063ffffffff16565b90506000612d0182612cf3858c612ae390919063ffffffff16565b612ae390919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612d318589612da190919063ffffffff16565b90506000612d488689612da190919063ffffffff16565b90506000612d5f8789612da190919063ffffffff16565b90506000612d8882612d7a8587612ae390919063ffffffff16565b612ae390919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612db35760009050612e15565b60008284612dc19190613f20565b9050828482612dd09190613e83565b14612e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e0790613fd4565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612e7d82612e34565b810181811067ffffffffffffffff82111715612e9c57612e9b612e45565b5b80604052505050565b6000612eaf612e1b565b9050612ebb8282612e74565b919050565b600067ffffffffffffffff821115612edb57612eda612e45565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612f1c82612ef1565b9050919050565b612f2c81612f11565b8114612f3757600080fd5b50565b600081359050612f4981612f23565b92915050565b6000612f62612f5d84612ec0565b612ea5565b90508083825260208201905060208402830185811115612f8557612f84612eec565b5b835b81811015612fae5780612f9a8882612f3a565b845260208401935050602081019050612f87565b5050509392505050565b600082601f830112612fcd57612fcc612e2f565b5b8135612fdd848260208601612f4f565b91505092915050565b600060208284031215612ffc57612ffb612e25565b5b600082013567ffffffffffffffff81111561301a57613019612e2a565b5b61302684828501612fb8565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561306957808201518184015260208101905061304e565b60008484015250505050565b60006130808261302f565b61308a818561303a565b935061309a81856020860161304b565b6130a381612e34565b840191505092915050565b600060208201905081810360008301526130c88184613075565b905092915050565b6000819050919050565b6130e3816130d0565b81146130ee57600080fd5b50565b600081359050613100816130da565b92915050565b6000806040838503121561311d5761311c612e25565b5b600061312b85828601612f3a565b925050602061313c858286016130f1565b9150509250929050565b60008115159050919050565b61315b81613146565b82525050565b60006020820190506131766000830184613152565b92915050565b6000819050919050565b60006131a161319c61319784612ef1565b61317c565b612ef1565b9050919050565b60006131b382613186565b9050919050565b60006131c5826131a8565b9050919050565b6131d5816131ba565b82525050565b60006020820190506131f060008301846131cc565b92915050565b6131ff816130d0565b82525050565b600060208201905061321a60008301846131f6565b92915050565b60008060006060848603121561323957613238612e25565b5b600061324786828701612f3a565b935050602061325886828701612f3a565b9250506040613269868287016130f1565b9150509250925092565b600060ff82169050919050565b61328981613273565b82525050565b60006020820190506132a46000830184613280565b92915050565b60006132b582612ef1565b9050919050565b6132c5816132aa565b82525050565b60006020820190506132e060008301846132bc565b92915050565b6132ef81612f11565b82525050565b600060208201905061330a60008301846132e6565b92915050565b60006020828403121561332657613325612e25565b5b600061333484828501612f3a565b91505092915050565b61334681613146565b811461335157600080fd5b50565b6000813590506133638161333d565b92915050565b60006020828403121561337f5761337e612e25565b5b600061338d84828501613354565b91505092915050565b6000602082840312156133ac576133ab612e25565b5b60006133ba848285016130f1565b91505092915050565b600080600080608085870312156133dd576133dc612e25565b5b60006133eb878288016130f1565b94505060206133fc878288016130f1565b935050604061340d878288016130f1565b925050606061341e878288016130f1565b91505092959194509250565b600080fd5b60008083601f84011261344557613444612e2f565b5b8235905067ffffffffffffffff8111156134625761346161342a565b5b60208301915083602082028301111561347e5761347d612eec565b5b9250929050565b60008060006040848603121561349e5761349d612e25565b5b600084013567ffffffffffffffff8111156134bc576134bb612e2a565b5b6134c88682870161342f565b935093505060206134db86828701613354565b9150509250925092565b600080604083850312156134fc576134fb612e25565b5b600061350a85828601612f3a565b925050602061351b85828601612f3a565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061355b60208361303a565b915061356682613525565b602082019050919050565b6000602082019050818103600083015261358a8161354e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135fa826130d0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361362c5761362b6135c0565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061369360268361303a565b915061369e82613637565b604082019050919050565b600060208201905081810360008301526136c281613686565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061372560248361303a565b9150613730826136c9565b604082019050919050565b6000602082019050818103600083015261375481613718565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006137b760228361303a565b91506137c28261375b565b604082019050919050565b600060208201905081810360008301526137e6816137aa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061384960258361303a565b9150613854826137ed565b604082019050919050565b600060208201905081810360008301526138788161383c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006138db60238361303a565b91506138e68261387f565b604082019050919050565b6000602082019050818103600083015261390a816138ce565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061396d60298361303a565b915061397882613911565b604082019050919050565b6000602082019050818103600083015261399c81613960565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006139ff603f8361303a565b9150613a0a826139a3565b604082019050919050565b60006020820190508181036000830152613a2e816139f2565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613a6b601c8361303a565b9150613a7682613a35565b602082019050919050565b60006020820190508181036000830152613a9a81613a5e565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613afd60238361303a565b9150613b0882613aa1565b604082019050919050565b60006020820190508181036000830152613b2c81613af0565b9050919050565b6000613b3e826130d0565b9150613b49836130d0565b9250828201905080821115613b6157613b606135c0565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613bc360238361303a565b9150613bce82613b67565b604082019050919050565b60006020820190508181036000830152613bf281613bb6565b9050919050565b6000613c04826130d0565b9150613c0f836130d0565b9250828203905081811115613c2757613c266135c0565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613c89602a8361303a565b9150613c9482613c2d565b604082019050919050565b60006020820190508181036000830152613cb881613c7c565b9050919050565b600081519050613cce81612f23565b92915050565b600060208284031215613cea57613ce9612e25565b5b6000613cf884828501613cbf565b91505092915050565b6000819050919050565b6000613d26613d21613d1c84613d01565b61317c565b6130d0565b9050919050565b613d3681613d0b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613d7181612f11565b82525050565b6000613d838383613d68565b60208301905092915050565b6000602082019050919050565b6000613da782613d3c565b613db18185613d47565b9350613dbc83613d58565b8060005b83811015613ded578151613dd48882613d77565b9750613ddf83613d8f565b925050600181019050613dc0565b5085935050505092915050565b600060a082019050613e0f60008301886131f6565b613e1c6020830187613d2d565b8181036040830152613e2e8186613d9c565b9050613e3d60608301856132e6565b613e4a60808301846131f6565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e8e826130d0565b9150613e99836130d0565b925082613ea957613ea8613e54565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613eea601b8361303a565b9150613ef582613eb4565b602082019050919050565b60006020820190508181036000830152613f1981613edd565b9050919050565b6000613f2b826130d0565b9150613f36836130d0565b9250828202613f44816130d0565b91508282048414831517613f5b57613f5a6135c0565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fbe60218361303a565b9150613fc982613f62565b604082019050919050565b60006020820190508181036000830152613fed81613fb1565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ebe68901c3af69edba83bc1ca64c1a918385f4d53c8f58054ecdd5a962739cab64736f6c63430008130033

Deployed Bytecode Sourcemap

4189:14017:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13121:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6761:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7686:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5519:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7038:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7887:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5866:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6947:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5376:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5567:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13401:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17433:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12878:235;;;;;;;;;;;;;:::i;:::-;;7141:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1676:148;;;;;;;;;;;;;:::i;:::-;;17728:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5755:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5326:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1462:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12525:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5810:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6852:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17242:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16899:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7287:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17593:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13298:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5288:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12634:236;;;;;;;;;;;;;:::i;:::-;;17967:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7494:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17844:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1832:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13121:169;1599:12;:10;:12::i;:::-;1589:22;;:6;;;;;;;;;;:22;;;1581:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13197:9:::1;13192:91;13216:5;:12;13212:1;:16;13192:91;;;13267:4;13250;:14;13255:5;13261:1;13255:8;;;;;;;;:::i;:::-;;;;;;;;13250:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13230:3;;;;;:::i;:::-;;;;13192:91;;;;13121:169:::0;:::o;6761:83::-;6798:13;6831:5;;;;;;;;;;;;;;;;;6824:12;;6761:83;:::o;7686:193::-;7788:4;7810:39;7819:12;:10;:12::i;:::-;7833:7;7842:6;7810:8;:39::i;:::-;7867:4;7860:11;;7686:193;;;;:::o;5519:41::-;;;;;;;;;;;;;:::o;7038:95::-;7091:7;4750:18;7111:14;;7038:95;:::o;7887:446::-;8019:4;8036:36;8046:6;8054:9;8065:6;8036:9;:36::i;:::-;8083:220;8106:6;8127:12;:10;:12::i;:::-;8154:138;8210:6;8154:138;;;;;;;;;;;;;;;;;:11;:19;8166:6;8154:19;;;;;;;;;;;;;;;:33;8174:12;:10;:12::i;:::-;8154:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8083:8;:220::i;:::-;8321:4;8314:11;;7887:446;;;;;:::o;5866:54::-;;;;:::o;6947:83::-;6988:5;4424:1;7006:16;;6947:83;:::o;5376:64::-;;;;;;;;;;;;;:::o;5567:28::-;;;;;;;;;;;;;:::o;13401:92::-;1599:12;:10;:12::i;:::-;1589:22;;:6;;;;;;;;;;:22;;;1581:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13480:5:::1;13465:4;:12;13470:6;13465:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13401:92:::0;:::o;17433:101::-;1599:12;:10;:12::i;:::-;1589:22;;:6;;;;;;;;;;:22;;;1581:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17514:12:::1;17500:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;17433:101:::0;:::o;12878:235::-;12944:19;;;;;;;;;;;12928:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12983:17;;;;;;;;;;;12967:33;;:12;:10;:12::i;:::-;:33;;;12928:72;12920:81;;;;;;13012:26;13041:21;13012:50;;13073:32;13086:18;13073:12;:32::i;:::-;12909:204;12878:235::o;7141:138::-;7207:7;7234:37;7254:7;:16;7262:7;7254:16;;;;;;;;;;;;;;;;7234:19;:37::i;:::-;7227:44;;7141:138;;;:::o;1676:148::-;1599:12;:10;:12::i;:::-;1589:22;;:6;;;;;;;;;;:22;;;1581:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1783:1:::1;1746:40;;1767:6;::::0;::::1;;;;;;;;1746:40;;;;;;;;;;;;1814:1;1797:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1676:148::o:0;17728:108::-;1599:12;:10;:12::i;:::-;1589:22;;:6;;;;;;;;;;:22;;;1581:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17817:11:::1;17802:12;:26;;;;17728:108:::0;:::o;5755:48::-;;;;:::o;5326:43::-;;;;;;;;;;;;;;;;;:::o;1462:79::-;1500:7;1527:6;;;;;;;;;;;1520:13;;1462:79;:::o;12525:101::-;1599:12;:10;:12::i;:::-;1589:22;;:6;;;;;;;;;;:22;;;1581:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12606:12:::1;12592:11;;:26;;;;;;;;;;;;;;;;;;12525:101:::0;:::o;5810:49::-;;;;:::o;6852:87::-;6891:13;6924:7;;;;;;;;;;;;;;;;;6917:14;;6852:87;:::o;17242:139::-;1599:12;:10;:12::i;:::-;1589:22;;:6;;;;;;;;;;:22;;;1581:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17355:18:::1;17333:19;:40;;;;17242:139:::0;:::o;16899:291::-;1599:12;:10;:12::i;:::-;1589:22;;:6;;;;;;;;;;:22;;;1581:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17050:13:::1;17033:14;:30;;;;17092:14;17074:15;:32;;;;17132:11;17117:12;:26;;;;17170:12;17154:13;:28;;;;16899:291:::0;;;;:::o;7287:199::-;7392:4;7414:42;7424:12;:10;:12::i;:::-;7438:9;7449:6;7414:9;:42::i;:::-;7474:4;7467:11;;7287:199;;;;:::o;17593:96::-;1599:12;:10;:12::i;:::-;1589:22;;:6;;;;;;;;;;:22;;;1581:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17675:6:::1;17661:11;;:20;;;;;;;;;;;;;;;;;;17593:96:::0;:::o;13298:95::-;1599:12;:10;:12::i;:::-;1589:22;;:6;;;;;;;;;;:22;;;1581:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13381:4:::1;13366;:12;13371:6;13366:12;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;13298:95:::0;:::o;5288:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12634:236::-;12700:19;;;;;;;;;;;12684:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12739:17;;;;;;;;;;;12723:33;;:12;:10;:12::i;:::-;:33;;;12684:72;12676:81;;;;;;12768:23;12794:24;12812:4;12794:9;:24::i;:::-;12768:50;;12829:33;12846:15;12829:16;:33::i;:::-;12665:205;12634:236::o;17967:234::-;1599:12;:10;:12::i;:::-;1589:22;;:6;;;;;;;;;;:22;;;1581:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18084:9:::1;18080:114;18103:8;;:15;;18099:1;:19;18080:114;;;18174:8;18140:18;:31;18159:8;;18168:1;18159:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18140:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18120:3;;;;;:::i;:::-;;;;18080:114;;;;17967:234:::0;;;:::o;7494:184::-;7611:7;7643:11;:18;7655:5;7643:18;;;;;;;;;;;;;;;:27;7662:7;7643:27;;;;;;;;;;;;;;;;7636:34;;7494:184;;;;:::o;17844:115::-;1599:12;:10;:12::i;:::-;1589:22;;:6;;;;;;;;;;:22;;;1581:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17938:13:::1;17921:14;:30;;;;17844:115:::0;:::o;1832:244::-;1599:12;:10;:12::i;:::-;1589:22;;:6;;;;;;;;;;:22;;;1581:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1941:1:::1;1921:22;;:8;:22;;::::0;1913:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2031:8;2002:38;;2023:6;::::0;::::1;;;;;;;;2002:38;;;;;;;;;;;;2060:8;2051:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1832:244:::0;:::o;231:98::-;284:7;311:10;304:17;;231:98;:::o;9024:369::-;9168:1;9151:19;;:5;:19;;;9143:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9249:1;9230:21;;:7;:21;;;9222:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9331:6;9301:11;:18;9313:5;9301:18;;;;;;;;;;;;;;;:27;9320:7;9301:27;;;;;;;;;;;;;;;:36;;;;9369:7;9353:32;;9362:5;9353:32;;;9378:6;9353:32;;;;;;:::i;:::-;;;;;;;;9024:369;;;:::o;9401:2518::-;9539:1;9523:18;;:4;:18;;;9515:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9616:1;9602:16;;:2;:16;;;9594:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9686:1;9677:6;:10;9669:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9758:7;:5;:7::i;:::-;9750:15;;:4;:15;;;;:32;;;;;9775:7;:5;:7::i;:::-;9769:13;;:2;:13;;;;9750:32;9746:1447;;;9839:11;;;;;;;;;;;9834:144;;9887:7;:5;:7::i;:::-;9879:15;;:4;:15;;;9871:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9834:144;10012:12;;10002:6;:22;;9994:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10081:4;:10;10086:4;10081:10;;;;;;;;;;;;;;;;;;;;;;;;;10080:11;:24;;;;;10096:4;:8;10101:2;10096:8;;;;;;;;;;;;;;;;;;;;;;;;;10095:9;10080:24;10072:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10170:13;;;;;;;;;;;10164:19;;:2;:19;;;10161:146;;10237:14;;10228:6;10212:13;10222:2;10212:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10204:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10161:146;10323:28;10354:24;10372:4;10354:9;:24::i;:::-;10323:55;;10395:12;10434:19;;10410:20;:43;;10395:58;;10473:11;;;;;;;;;;;:42;;;;;10502:13;;10488:12;:27;10473:42;10470:77;;;10542:5;10534:13;;10470:77;10634:12;;10610:20;:36;10607:124;;10703:12;;10680:35;;10607:124;10751:7;:18;;;;;10763:6;;;;;;;;;;;10762:7;10751:18;:43;;;;;10781:13;;;;;;;;;;;10773:21;;:4;:21;;;;10751:43;:58;;;;;10798:11;;;;;;;;;;10751:58;:87;;;;;10814:18;:24;10833:4;10814:24;;;;;;;;;;;;;;;;;;;;;;;;;10813:25;10751:87;:114;;;;;10843:18;:22;10862:2;10843:22;;;;;;;;;;;;;;;;;;;;;;;;;10842:23;10751:114;10747:435;;;10886:38;10903:20;10886:16;:38::i;:::-;10943:26;10972:21;10943:50;;11037:1;11016:18;:22;11012:155;;;11063:35;11076:21;11063:12;:35::i;:::-;11135:12;11121:13;:26;;;;11012:155;10867:315;10747:435;9784:1409;;9746:1447;11205:12;11220:4;11205:19;;11269:18;:24;11288:4;11269:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11297:18;:22;11316:2;11297:22;;;;;;;;;;;;;;;;;;;;;;;;;11269:50;11268:102;;;;11333:13;;;;;;;;;;;11325:21;;:4;:21;;;;:44;;;;;11356:13;;;;;;;;;;;11350:19;;:2;:19;;;;11325:44;11268:102;11264:594;;;11397:5;11387:15;;11264:594;;;11480:13;;;;;;;;;;;11472:21;;:4;:21;;;:55;;;;;11511:15;;;;;;;;;;;11497:30;;:2;:30;;;;11472:55;11469:162;;;11560:14;;11548:9;:26;;;;11603:12;;11593:7;:22;;;;11469:162;11690:13;;;;;;;;;;;11684:19;;:2;:19;;;:55;;;;;11723:15;;;;;;;;;;;11707:32;;:4;:32;;;;11684:55;11680:165;;;11772:15;;11760:9;:27;;;;11816:13;;11806:7;:23;;;;11680:165;11264:594;11870:41;11885:4;11891:2;11895:6;11903:7;11870:14;:41::i;:::-;9504:2415;9401:2518;;;:::o;2440:224::-;2560:7;2593:1;2588;:6;;2596:12;2580:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2620:9;2636:1;2632;:5;;;;:::i;:::-;2620:17;;2655:1;2648:8;;;2440:224;;;;;:::o;12418:99::-;12475:17;;;;;;;;;;;:26;;:34;12502:6;12475:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12418:99;:::o;8341:323::-;8436:7;8494;;8483;:18;;8461:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8582:19;8604:10;:8;:10::i;:::-;8582:32;;8632:24;8644:11;8632:7;:11;;:24;;;;:::i;:::-;8625:31;;;8341:323;;;:::o;11927:483::-;6023:4;6014:6;;:13;;;;;;;;;;;;;;;;;;12005:21:::1;12043:1;12029:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12005:40;;12074:4;12056;12061:1;12056:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12100:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12090:4;12095:1;12090:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12133:62;12150:4;12165:15;;;;;;;;;;;12183:11;12133:8;:62::i;:::-;12206:15;;;;;;;;;;;:66;;;12287:11;12313:1;12329:4;12356;12376:15;12206:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11994:416;6059:5:::0;6050:6;;:14;;;;;;;;;;;;;;;;;;11927:483;:::o;13501:282::-;13657:7;13652:28;;13666:14;:12;:14::i;:::-;13652:28;13691:44;13709:6;13717:9;13728:6;13691:17;:44::i;:::-;13751:7;13746:29;;13760:15;:13;:15::i;:::-;13746:29;13501:282;;;;:::o;16462:164::-;16504:7;16525:15;16542;16561:19;:17;:19::i;:::-;16524:56;;;;16598:20;16610:7;16598;:11;;:20;;;;:::i;:::-;16591:27;;;;16462:164;:::o;2926:132::-;2984:7;3011:39;3015:1;3018;3011:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3004:46;;2926:132;;;;:::o;8672:219::-;8732:1;8719:9;;:14;:30;;;;;8748:1;8737:7;;:12;8719:30;8751:7;8715:43;8790:9;;8770:17;:29;;;;8828:7;;8810:15;:25;;;;8860:1;8848:9;:13;;;;8882:1;8872:7;:11;;;;8672:219;:::o;13791:610::-;13938:15;13968:23;14006:12;14033:23;14071:12;14098:13;14125:19;14136:7;14125:10;:19::i;:::-;13923:221;;;;;;;;;;;;14173:28;14193:7;14173;:15;14181:6;14173:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14155:7;:15;14163:6;14155:15;;;;;;;;;;;;;;;:46;;;;14233:39;14256:15;14233:7;:18;14241:9;14233:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14212:7;:18;14220:9;14212:18;;;;;;;;;;;;;;;:60;;;;14283:16;14293:5;14283:9;:16::i;:::-;14310:23;14322:4;14328;14310:11;:23::i;:::-;14366:9;14349:44;;14358:6;14349:44;;;14377:15;14349:44;;;;;;:::i;:::-;;;;;;;;13912:489;;;;;;13791:610;;;:::o;8899:117::-;8955:17;;8943:9;:29;;;;8993:15;;8983:7;:25;;;;8899:117::o;16634:257::-;16685:7;16694;16714:15;16732:7;;16714:25;;16750:15;4750:18;16750:25;;16800:20;4750:18;16800:7;;:11;;:20;;;;:::i;:::-;16790:7;:30;16786:61;;;16830:7;;4750:18;16822:25;;;;;;;;16786:61;16866:7;16875;16858:25;;;;;;16634:257;;;:::o;3066:223::-;3186:7;3218:1;3214;:5;3221:12;3206:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3245:9;3261:1;3257;:5;;;;:::i;:::-;3245:17;;3280:1;3273:8;;;3066:223;;;;;:::o;14820:615::-;14920:7;14942;14964;14986;15008;15030;15066:23;15091:12;15105:13;15135:40;15147:7;15156:9;;15167:7;;15135:11;:40::i;:::-;15065:110;;;;;;15186:19;15208:10;:8;:10::i;:::-;15186:32;;15230:15;15247:23;15272:12;15301:46;15313:7;15322:4;15328:5;15335:11;15301;:46::i;:::-;15229:118;;;;;;15366:7;15375:15;15392:4;15398:15;15415:4;15421:5;15358:69;;;;;;;;;;;;;;;;;;;14820:615;;;;;;;:::o;2296:136::-;2354:7;2381:43;2385:1;2388;2381:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2374:50;;2296:136;;;;:::o;2109:179::-;2167:7;2187:9;2203:1;2199;:5;;;;:::i;:::-;2187:17;;2228:1;2223;:6;;2215:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2279:1;2272:8;;;2109:179;;;;:::o;14409:211::-;14462:19;14484:10;:8;:10::i;:::-;14462:32;;14505:13;14521:22;14531:11;14521:5;:9;;:22;;;;:::i;:::-;14505:38;;14579:33;14606:5;14579:7;:22;14595:4;14579:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14554:7;:22;14570:4;14554:22;;;;;;;;;;;;;;;:58;;;;14451:169;;14409:211;:::o;14628:147::-;14706:17;14718:4;14706:7;;:11;;:17;;;;:::i;:::-;14696:7;:27;;;;14747:20;14762:4;14747:10;;:14;;:20;;;;:::i;:::-;14734:10;:33;;;;14628:147;;:::o;15443:469::-;15612:7;15634;15656;15691:12;15706:30;15732:3;15706:21;15718:8;15706:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15691:45;;15747:13;15763:28;15787:3;15763:19;15775:6;15763:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15747:44;;15802:23;15828:28;15850:5;15828:17;15840:4;15828:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15802:54;;15875:15;15892:4;15898:5;15867:37;;;;;;;;;15443:469;;;;;;;:::o;15920:534::-;16114:7;16136;16158;16193:15;16211:24;16223:11;16211:7;:11;;:24;;;;:::i;:::-;16193:42;;16246:12;16261:21;16270:11;16261:4;:8;;:21;;;;:::i;:::-;16246:36;;16293:13;16309:22;16319:11;16309:5;:9;;:22;;;;:::i;:::-;16293:38;;16342:23;16368:28;16390:5;16368:17;16380:4;16368:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16342:54;;16415:7;16424:15;16441:4;16407:39;;;;;;;;;;15920:534;;;;;;;;:::o;2672:246::-;2730:7;2759:1;2754;:6;2750:47;;2784:1;2777:8;;;;2750:47;2807:9;2823:1;2819;:5;;;;:::i;:::-;2807:17;;2852:1;2847;2843;:5;;;;:::i;:::-;:10;2835:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2909:1;2902:8;;;2672:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:246::-;4152:1;4162:113;4176:6;4173:1;4170:13;4162:113;;;4261:1;4256:3;4252:11;4246:18;4242:1;4237:3;4233:11;4226:39;4198:2;4195:1;4191:10;4186:15;;4162:113;;;4309:1;4300:6;4295:3;4291:16;4284:27;4133:184;4071:246;;;:::o;4323:377::-;4411:3;4439:39;4472:5;4439:39;:::i;:::-;4494:71;4558:6;4553:3;4494:71;:::i;:::-;4487:78;;4574:65;4632:6;4627:3;4620:4;4613:5;4609:16;4574:65;:::i;:::-;4664:29;4686:6;4664:29;:::i;:::-;4659:3;4655:39;4648:46;;4415:285;4323:377;;;;:::o;4706:313::-;4819:4;4857:2;4846:9;4842:18;4834:26;;4906:9;4900:4;4896:20;4892:1;4881:9;4877:17;4870:47;4934:78;5007:4;4998:6;4934:78;:::i;:::-;4926:86;;4706:313;;;;:::o;5025:77::-;5062:7;5091:5;5080:16;;5025:77;;;:::o;5108:122::-;5181:24;5199:5;5181:24;:::i;:::-;5174:5;5171:35;5161:63;;5220:1;5217;5210:12;5161:63;5108:122;:::o;5236:139::-;5282:5;5320:6;5307:20;5298:29;;5336:33;5363:5;5336:33;:::i;:::-;5236:139;;;;:::o;5381:474::-;5449:6;5457;5506:2;5494:9;5485:7;5481:23;5477:32;5474:119;;;5512:79;;:::i;:::-;5474:119;5632:1;5657:53;5702:7;5693:6;5682:9;5678:22;5657:53;:::i;:::-;5647:63;;5603:117;5759:2;5785:53;5830:7;5821:6;5810:9;5806:22;5785:53;:::i;:::-;5775:63;;5730:118;5381:474;;;;;:::o;5861:90::-;5895:7;5938:5;5931:13;5924:21;5913:32;;5861:90;;;:::o;5957:109::-;6038:21;6053:5;6038:21;:::i;:::-;6033:3;6026:34;5957:109;;:::o;6072:210::-;6159:4;6197:2;6186:9;6182:18;6174:26;;6210:65;6272:1;6261:9;6257:17;6248:6;6210:65;:::i;:::-;6072:210;;;;:::o;6288:60::-;6316:3;6337:5;6330:12;;6288:60;;;:::o;6354:142::-;6404:9;6437:53;6455:34;6464:24;6482:5;6464:24;:::i;:::-;6455:34;:::i;:::-;6437:53;:::i;:::-;6424:66;;6354:142;;;:::o;6502:126::-;6552:9;6585:37;6616:5;6585:37;:::i;:::-;6572:50;;6502:126;;;:::o;6634:152::-;6710:9;6743:37;6774:5;6743:37;:::i;:::-;6730:50;;6634:152;;;:::o;6792:183::-;6905:63;6962:5;6905:63;:::i;:::-;6900:3;6893:76;6792:183;;:::o;6981:274::-;7100:4;7138:2;7127:9;7123:18;7115:26;;7151:97;7245:1;7234:9;7230:17;7221:6;7151:97;:::i;:::-;6981:274;;;;:::o;7261:118::-;7348:24;7366:5;7348:24;:::i;:::-;7343:3;7336:37;7261:118;;:::o;7385:222::-;7478:4;7516:2;7505:9;7501:18;7493:26;;7529:71;7597:1;7586:9;7582:17;7573:6;7529:71;:::i;:::-;7385:222;;;;:::o;7613:619::-;7690:6;7698;7706;7755:2;7743:9;7734:7;7730:23;7726:32;7723:119;;;7761:79;;:::i;:::-;7723:119;7881:1;7906:53;7951:7;7942:6;7931:9;7927:22;7906:53;:::i;:::-;7896:63;;7852:117;8008:2;8034:53;8079:7;8070:6;8059:9;8055:22;8034:53;:::i;:::-;8024:63;;7979:118;8136:2;8162:53;8207:7;8198:6;8187:9;8183:22;8162:53;:::i;:::-;8152:63;;8107:118;7613:619;;;;;:::o;8238:86::-;8273:7;8313:4;8306:5;8302:16;8291:27;;8238:86;;;:::o;8330:112::-;8413:22;8429:5;8413:22;:::i;:::-;8408:3;8401:35;8330:112;;:::o;8448:214::-;8537:4;8575:2;8564:9;8560:18;8552:26;;8588:67;8652:1;8641:9;8637:17;8628:6;8588:67;:::i;:::-;8448:214;;;;:::o;8668:104::-;8713:7;8742:24;8760:5;8742:24;:::i;:::-;8731:35;;8668:104;;;:::o;8778:142::-;8881:32;8907:5;8881:32;:::i;:::-;8876:3;8869:45;8778:142;;:::o;8926:254::-;9035:4;9073:2;9062:9;9058:18;9050:26;;9086:87;9170:1;9159:9;9155:17;9146:6;9086:87;:::i;:::-;8926:254;;;;:::o;9186:118::-;9273:24;9291:5;9273:24;:::i;:::-;9268:3;9261:37;9186:118;;:::o;9310:222::-;9403:4;9441:2;9430:9;9426:18;9418:26;;9454:71;9522:1;9511:9;9507:17;9498:6;9454:71;:::i;:::-;9310:222;;;;:::o;9538:329::-;9597:6;9646:2;9634:9;9625:7;9621:23;9617:32;9614:119;;;9652:79;;:::i;:::-;9614:119;9772:1;9797:53;9842:7;9833:6;9822:9;9818:22;9797:53;:::i;:::-;9787:63;;9743:117;9538:329;;;;:::o;9873:116::-;9943:21;9958:5;9943:21;:::i;:::-;9936:5;9933:32;9923:60;;9979:1;9976;9969:12;9923:60;9873:116;:::o;9995:133::-;10038:5;10076:6;10063:20;10054:29;;10092:30;10116:5;10092:30;:::i;:::-;9995:133;;;;:::o;10134:323::-;10190:6;10239:2;10227:9;10218:7;10214:23;10210:32;10207:119;;;10245:79;;:::i;:::-;10207:119;10365:1;10390:50;10432:7;10423:6;10412:9;10408:22;10390:50;:::i;:::-;10380:60;;10336:114;10134:323;;;;:::o;10463:329::-;10522:6;10571:2;10559:9;10550:7;10546:23;10542:32;10539:119;;;10577:79;;:::i;:::-;10539:119;10697:1;10722:53;10767:7;10758:6;10747:9;10743:22;10722:53;:::i;:::-;10712:63;;10668:117;10463:329;;;;:::o;10798:765::-;10884:6;10892;10900;10908;10957:3;10945:9;10936:7;10932:23;10928:33;10925:120;;;10964:79;;:::i;:::-;10925:120;11084:1;11109:53;11154:7;11145:6;11134:9;11130:22;11109:53;:::i;:::-;11099:63;;11055:117;11211:2;11237:53;11282:7;11273:6;11262:9;11258:22;11237:53;:::i;:::-;11227:63;;11182:118;11339:2;11365:53;11410:7;11401:6;11390:9;11386:22;11365:53;:::i;:::-;11355:63;;11310:118;11467:2;11493:53;11538:7;11529:6;11518:9;11514:22;11493:53;:::i;:::-;11483:63;;11438:118;10798:765;;;;;;;:::o;11569:117::-;11678:1;11675;11668:12;11709:568;11782:8;11792:6;11842:3;11835:4;11827:6;11823:17;11819:27;11809:122;;11850:79;;:::i;:::-;11809:122;11963:6;11950:20;11940:30;;11993:18;11985:6;11982:30;11979:117;;;12015:79;;:::i;:::-;11979:117;12129:4;12121:6;12117:17;12105:29;;12183:3;12175:4;12167:6;12163:17;12153:8;12149:32;12146:41;12143:128;;;12190:79;;:::i;:::-;12143:128;11709:568;;;;;:::o;12283:698::-;12375:6;12383;12391;12440:2;12428:9;12419:7;12415:23;12411:32;12408:119;;;12446:79;;:::i;:::-;12408:119;12594:1;12583:9;12579:17;12566:31;12624:18;12616:6;12613:30;12610:117;;;12646:79;;:::i;:::-;12610:117;12759:80;12831:7;12822:6;12811:9;12807:22;12759:80;:::i;:::-;12741:98;;;;12537:312;12888:2;12914:50;12956:7;12947:6;12936:9;12932:22;12914:50;:::i;:::-;12904:60;;12859:115;12283:698;;;;;:::o;12987:474::-;13055:6;13063;13112:2;13100:9;13091:7;13087:23;13083:32;13080:119;;;13118:79;;:::i;:::-;13080:119;13238:1;13263:53;13308:7;13299:6;13288:9;13284:22;13263:53;:::i;:::-;13253:63;;13209:117;13365:2;13391:53;13436:7;13427:6;13416:9;13412:22;13391:53;:::i;:::-;13381:63;;13336:118;12987:474;;;;;:::o;13467:182::-;13607:34;13603:1;13595:6;13591:14;13584:58;13467:182;:::o;13655:366::-;13797:3;13818:67;13882:2;13877:3;13818:67;:::i;:::-;13811:74;;13894:93;13983:3;13894:93;:::i;:::-;14012:2;14007:3;14003:12;13996:19;;13655:366;;;:::o;14027:419::-;14193:4;14231:2;14220:9;14216:18;14208:26;;14280:9;14274:4;14270:20;14266:1;14255:9;14251:17;14244:47;14308:131;14434:4;14308:131;:::i;:::-;14300:139;;14027:419;;;:::o;14452:180::-;14500:77;14497:1;14490:88;14597:4;14594:1;14587:15;14621:4;14618:1;14611:15;14638:180;14686:77;14683:1;14676:88;14783:4;14780:1;14773:15;14807:4;14804:1;14797:15;14824:233;14863:3;14886:24;14904:5;14886:24;:::i;:::-;14877:33;;14932:66;14925:5;14922:77;14919:103;;15002:18;;:::i;:::-;14919:103;15049:1;15042:5;15038:13;15031:20;;14824:233;;;:::o;15063:225::-;15203:34;15199:1;15191:6;15187:14;15180:58;15272:8;15267:2;15259:6;15255:15;15248:33;15063:225;:::o;15294:366::-;15436:3;15457:67;15521:2;15516:3;15457:67;:::i;:::-;15450:74;;15533:93;15622:3;15533:93;:::i;:::-;15651:2;15646:3;15642:12;15635:19;;15294:366;;;:::o;15666:419::-;15832:4;15870:2;15859:9;15855:18;15847:26;;15919:9;15913:4;15909:20;15905:1;15894:9;15890:17;15883:47;15947:131;16073:4;15947:131;:::i;:::-;15939:139;;15666:419;;;:::o;16091:223::-;16231:34;16227:1;16219:6;16215:14;16208:58;16300:6;16295:2;16287:6;16283:15;16276:31;16091:223;:::o;16320:366::-;16462:3;16483:67;16547:2;16542:3;16483:67;:::i;:::-;16476:74;;16559:93;16648:3;16559:93;:::i;:::-;16677:2;16672:3;16668:12;16661:19;;16320:366;;;:::o;16692:419::-;16858:4;16896:2;16885:9;16881:18;16873:26;;16945:9;16939:4;16935:20;16931:1;16920:9;16916:17;16909:47;16973:131;17099:4;16973:131;:::i;:::-;16965:139;;16692:419;;;:::o;17117:221::-;17257:34;17253:1;17245:6;17241:14;17234:58;17326:4;17321:2;17313:6;17309:15;17302:29;17117:221;:::o;17344:366::-;17486:3;17507:67;17571:2;17566:3;17507:67;:::i;:::-;17500:74;;17583:93;17672:3;17583:93;:::i;:::-;17701:2;17696:3;17692:12;17685:19;;17344:366;;;:::o;17716:419::-;17882:4;17920:2;17909:9;17905:18;17897:26;;17969:9;17963:4;17959:20;17955:1;17944:9;17940:17;17933:47;17997:131;18123:4;17997:131;:::i;:::-;17989:139;;17716:419;;;:::o;18141:224::-;18281:34;18277:1;18269:6;18265:14;18258:58;18350:7;18345:2;18337:6;18333:15;18326:32;18141:224;:::o;18371:366::-;18513:3;18534:67;18598:2;18593:3;18534:67;:::i;:::-;18527:74;;18610:93;18699:3;18610:93;:::i;:::-;18728:2;18723:3;18719:12;18712:19;;18371:366;;;:::o;18743:419::-;18909:4;18947:2;18936:9;18932:18;18924:26;;18996:9;18990:4;18986:20;18982:1;18971:9;18967:17;18960:47;19024:131;19150:4;19024:131;:::i;:::-;19016:139;;18743:419;;;:::o;19168:222::-;19308:34;19304:1;19296:6;19292:14;19285:58;19377:5;19372:2;19364:6;19360:15;19353:30;19168:222;:::o;19396:366::-;19538:3;19559:67;19623:2;19618:3;19559:67;:::i;:::-;19552:74;;19635:93;19724:3;19635:93;:::i;:::-;19753:2;19748:3;19744:12;19737:19;;19396:366;;;:::o;19768:419::-;19934:4;19972:2;19961:9;19957:18;19949:26;;20021:9;20015:4;20011:20;20007:1;19996:9;19992:17;19985:47;20049:131;20175:4;20049:131;:::i;:::-;20041:139;;19768:419;;;:::o;20193:228::-;20333:34;20329:1;20321:6;20317:14;20310:58;20402:11;20397:2;20389:6;20385:15;20378:36;20193:228;:::o;20427:366::-;20569:3;20590:67;20654:2;20649:3;20590:67;:::i;:::-;20583:74;;20666:93;20755:3;20666:93;:::i;:::-;20784:2;20779:3;20775:12;20768:19;;20427:366;;;:::o;20799:419::-;20965:4;21003:2;20992:9;20988:18;20980:26;;21052:9;21046:4;21042:20;21038:1;21027:9;21023:17;21016:47;21080:131;21206:4;21080:131;:::i;:::-;21072:139;;20799:419;;;:::o;21224:250::-;21364:34;21360:1;21352:6;21348:14;21341:58;21433:33;21428:2;21420:6;21416:15;21409:58;21224:250;:::o;21480:366::-;21622:3;21643:67;21707:2;21702:3;21643:67;:::i;:::-;21636:74;;21719:93;21808:3;21719:93;:::i;:::-;21837:2;21832:3;21828:12;21821:19;;21480:366;;;:::o;21852:419::-;22018:4;22056:2;22045:9;22041:18;22033:26;;22105:9;22099:4;22095:20;22091:1;22080:9;22076:17;22069:47;22133:131;22259:4;22133:131;:::i;:::-;22125:139;;21852:419;;;:::o;22277:178::-;22417:30;22413:1;22405:6;22401:14;22394:54;22277:178;:::o;22461:366::-;22603:3;22624:67;22688:2;22683:3;22624:67;:::i;:::-;22617:74;;22700:93;22789:3;22700:93;:::i;:::-;22818:2;22813:3;22809:12;22802:19;;22461:366;;;:::o;22833:419::-;22999:4;23037:2;23026:9;23022:18;23014:26;;23086:9;23080:4;23076:20;23072:1;23061:9;23057:17;23050:47;23114:131;23240:4;23114:131;:::i;:::-;23106:139;;22833:419;;;:::o;23258:222::-;23398:34;23394:1;23386:6;23382:14;23375:58;23467:5;23462:2;23454:6;23450:15;23443:30;23258:222;:::o;23486:366::-;23628:3;23649:67;23713:2;23708:3;23649:67;:::i;:::-;23642:74;;23725:93;23814:3;23725:93;:::i;:::-;23843:2;23838:3;23834:12;23827:19;;23486:366;;;:::o;23858:419::-;24024:4;24062:2;24051:9;24047:18;24039:26;;24111:9;24105:4;24101:20;24097:1;24086:9;24082:17;24075:47;24139:131;24265:4;24139:131;:::i;:::-;24131:139;;23858:419;;;:::o;24283:191::-;24323:3;24342:20;24360:1;24342:20;:::i;:::-;24337:25;;24376:20;24394:1;24376:20;:::i;:::-;24371:25;;24419:1;24416;24412:9;24405:16;;24440:3;24437:1;24434:10;24431:36;;;24447:18;;:::i;:::-;24431:36;24283:191;;;;:::o;24480:222::-;24620:34;24616:1;24608:6;24604:14;24597:58;24689:5;24684:2;24676:6;24672:15;24665:30;24480:222;:::o;24708:366::-;24850:3;24871:67;24935:2;24930:3;24871:67;:::i;:::-;24864:74;;24947:93;25036:3;24947:93;:::i;:::-;25065:2;25060:3;25056:12;25049:19;;24708:366;;;:::o;25080:419::-;25246:4;25284:2;25273:9;25269:18;25261:26;;25333:9;25327:4;25323:20;25319:1;25308:9;25304:17;25297:47;25361:131;25487:4;25361:131;:::i;:::-;25353:139;;25080:419;;;:::o;25505:194::-;25545:4;25565:20;25583:1;25565:20;:::i;:::-;25560:25;;25599:20;25617:1;25599:20;:::i;:::-;25594:25;;25643:1;25640;25636:9;25628:17;;25667:1;25661:4;25658:11;25655:37;;;25672:18;;:::i;:::-;25655:37;25505:194;;;;:::o;25705:229::-;25845:34;25841:1;25833:6;25829:14;25822:58;25914:12;25909:2;25901:6;25897:15;25890:37;25705:229;:::o;25940:366::-;26082:3;26103:67;26167:2;26162:3;26103:67;:::i;:::-;26096:74;;26179:93;26268:3;26179:93;:::i;:::-;26297:2;26292:3;26288:12;26281:19;;25940:366;;;:::o;26312:419::-;26478:4;26516:2;26505:9;26501:18;26493:26;;26565:9;26559:4;26555:20;26551:1;26540:9;26536:17;26529:47;26593:131;26719:4;26593:131;:::i;:::-;26585:139;;26312:419;;;:::o;26737:143::-;26794:5;26825:6;26819:13;26810:22;;26841:33;26868:5;26841:33;:::i;:::-;26737:143;;;;:::o;26886:351::-;26956:6;27005:2;26993:9;26984:7;26980:23;26976:32;26973:119;;;27011:79;;:::i;:::-;26973:119;27131:1;27156:64;27212:7;27203:6;27192:9;27188:22;27156:64;:::i;:::-;27146:74;;27102:128;26886:351;;;;:::o;27243:85::-;27288:7;27317:5;27306:16;;27243:85;;;:::o;27334:158::-;27392:9;27425:61;27443:42;27452:32;27478:5;27452:32;:::i;:::-;27443:42;:::i;:::-;27425:61;:::i;:::-;27412:74;;27334:158;;;:::o;27498:147::-;27593:45;27632:5;27593:45;:::i;:::-;27588:3;27581:58;27498:147;;:::o;27651:114::-;27718:6;27752:5;27746:12;27736:22;;27651:114;;;:::o;27771:184::-;27870:11;27904:6;27899:3;27892:19;27944:4;27939:3;27935:14;27920:29;;27771:184;;;;:::o;27961:132::-;28028:4;28051:3;28043:11;;28081:4;28076:3;28072:14;28064:22;;27961:132;;;:::o;28099:108::-;28176:24;28194:5;28176:24;:::i;:::-;28171:3;28164:37;28099:108;;:::o;28213:179::-;28282:10;28303:46;28345:3;28337:6;28303:46;:::i;:::-;28381:4;28376:3;28372:14;28358:28;;28213:179;;;;:::o;28398:113::-;28468:4;28500;28495:3;28491:14;28483:22;;28398:113;;;:::o;28547:732::-;28666:3;28695:54;28743:5;28695:54;:::i;:::-;28765:86;28844:6;28839:3;28765:86;:::i;:::-;28758:93;;28875:56;28925:5;28875:56;:::i;:::-;28954:7;28985:1;28970:284;28995:6;28992:1;28989:13;28970:284;;;29071:6;29065:13;29098:63;29157:3;29142:13;29098:63;:::i;:::-;29091:70;;29184:60;29237:6;29184:60;:::i;:::-;29174:70;;29030:224;29017:1;29014;29010:9;29005:14;;28970:284;;;28974:14;29270:3;29263:10;;28671:608;;;28547:732;;;;:::o;29285:831::-;29548:4;29586:3;29575:9;29571:19;29563:27;;29600:71;29668:1;29657:9;29653:17;29644:6;29600:71;:::i;:::-;29681:80;29757:2;29746:9;29742:18;29733:6;29681:80;:::i;:::-;29808:9;29802:4;29798:20;29793:2;29782:9;29778:18;29771:48;29836:108;29939:4;29930:6;29836:108;:::i;:::-;29828:116;;29954:72;30022:2;30011:9;30007:18;29998:6;29954:72;:::i;:::-;30036:73;30104:3;30093:9;30089:19;30080:6;30036:73;:::i;:::-;29285:831;;;;;;;;:::o;30122:180::-;30170:77;30167:1;30160:88;30267:4;30264:1;30257:15;30291:4;30288:1;30281:15;30308:185;30348:1;30365:20;30383:1;30365:20;:::i;:::-;30360:25;;30399:20;30417:1;30399:20;:::i;:::-;30394:25;;30438:1;30428:35;;30443:18;;:::i;:::-;30428:35;30485:1;30482;30478:9;30473:14;;30308:185;;;;:::o;30499:177::-;30639:29;30635:1;30627:6;30623:14;30616:53;30499:177;:::o;30682:366::-;30824:3;30845:67;30909:2;30904:3;30845:67;:::i;:::-;30838:74;;30921:93;31010:3;30921:93;:::i;:::-;31039:2;31034:3;31030:12;31023:19;;30682:366;;;:::o;31054:419::-;31220:4;31258:2;31247:9;31243:18;31235:26;;31307:9;31301:4;31297:20;31293:1;31282:9;31278:17;31271:47;31335:131;31461:4;31335:131;:::i;:::-;31327:139;;31054:419;;;:::o;31479:410::-;31519:7;31542:20;31560:1;31542:20;:::i;:::-;31537:25;;31576:20;31594:1;31576:20;:::i;:::-;31571:25;;31631:1;31628;31624:9;31653:30;31671:11;31653:30;:::i;:::-;31642:41;;31832:1;31823:7;31819:15;31816:1;31813:22;31793:1;31786:9;31766:83;31743:139;;31862:18;;:::i;:::-;31743:139;31527:362;31479:410;;;;:::o;31895:220::-;32035:34;32031:1;32023:6;32019:14;32012:58;32104:3;32099:2;32091:6;32087:15;32080:28;31895:220;:::o;32121:366::-;32263:3;32284:67;32348:2;32343:3;32284:67;:::i;:::-;32277:74;;32360:93;32449:3;32360:93;:::i;:::-;32478:2;32473:3;32469:12;32462:19;;32121:366;;;:::o;32493:419::-;32659:4;32697:2;32686:9;32682:18;32674:26;;32746:9;32740:4;32736:20;32732:1;32721:9;32717:17;32710:47;32774:131;32900:4;32774:131;:::i;:::-;32766:139;;32493:419;;;:::o

Swarm Source

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