ETH Price: $3,250.72 (-0.25%)
Gas: 1 Gwei

Token

Wavey Token (Wavey)
 

Overview

Max Total Supply

150,000,000 Wavey

Holders

50

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
283,949.119993105349738525 Wavey

Value
$0.00
0xef7a993146f083def38b81b1aa8dea0d098c421c
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:
WaveyToken

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-21
*/

// Twitter  : https://x.com/waveyprotocol
// Telegram : https://t.me/waveyportal
// Website  : https://waveytoken.online/
// Medium   : https://medium.com/@waveyprotocol

// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

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

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

contract Ownable is Context {
    address private _owner;
    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);
    }
}

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 WaveyToken is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    address payable private _taxesWallet;
    address private uniswapV2Pair;
    IUniswapV2Router02 private uniswapV2Router;

    uint256 private constant _initialBuyTax = 25;
    uint256 private constant _initialSellTax = 25;
    uint256 private constant _reduceBuyTaxAt = 35;
    uint256 private constant _reduceSellTaxAt = 50;
    uint256 private constant _preventSwapBefore = 40;
    uint256 private _finalBuyTax = 10;
    uint256 private _finalSellTax = 20;
    uint256 private _buyCount = 0;
    uint256 private _countTax = 0;

    string private constant _name = unicode"Wavey Token";
    string private constant _symbol = unicode"Wavey";
    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 150000000 * 10**_decimals;
    uint256 public constant _countTrigger = 20000 * 10**_decimals;
    uint256 public constant _taxSwapThreshold = 300000 * 10**_decimals;
    uint256 public _maxTaxSwap = 1500000 * 10**_decimals;
    uint256 public _maxTxs = 1500000 * 10**_decimals;
    uint256 public _maxWalletHold = 1500000 * 10**_decimals;

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

    event FinalTax(uint256 _newTaxBuy, uint256 _newTaxSell, bool _shelid);
    event tradingActivated(bool _tradingOpen, bool _swapEnabled);
    event maxAmount(uint256 _value);

    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor(address taxWallet) {
        _taxesWallet = payable(taxWallet);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[_taxesWallet] = true;
        _isExcludedFromFee[address(this)] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[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 _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(
            owner != address(0) && spender != address(0),
            "ERC20: approve 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) && to != address(0),
            "ERC20: transfer the zero address"
        );
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;

        if (from != owner() && to != owner()) {
            if (!tradingOpen) {
                require(
                    _isExcludedFromFee[to] || _isExcludedFromFee[from],
                    "trading not yet open"
                );
            }

            if (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                !_isExcludedFromFee[to]
            ) {
                require(amount <= _maxTxs, "Exceeds the _maxTxs.");
                require(
                    balanceOf(to) + amount <= _maxWalletHold,
                    "Exceeds the maxWalletSize."
                );
                _buyCount++;
            }

            if (to == uniswapV2Pair && from != address(this)) {
                taxAmount = amount
                    .mul(
                        (_buyCount > _reduceSellTaxAt)
                            ? _finalSellTax
                            : _initialSellTax
                    )
                    .div(100);
            } else if (from == uniswapV2Pair && to != address(this)) {
                taxAmount = amount
                    .mul(
                        (_buyCount > _reduceBuyTaxAt)
                            ? _finalBuyTax
                            : _initialBuyTax
                    )
                    .div(100);
            }

            _countTax += taxAmount;
            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
                to == uniswapV2Pair &&
                swapEnabled &&
                contractTokenBalance > _taxSwapThreshold &&
                _buyCount > _preventSwapBefore &&
                _countTax > _countTrigger
            ) {
                uint256 getMin = (contractTokenBalance > _maxTaxSwap)
                    ? _maxTaxSwap
                    : contractTokenBalance;
                swapTokensForEth((amount > getMin) ? getMin : amount);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                _countTax = 0;
            }
        }

        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

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

    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 createPair() external onlyOwner {
        require(!tradingOpen, "init already called");
        uint256 tokenAmount = balanceOf(address(this)).sub(
            _tTotal.mul(_initialBuyTax).div(100)
        );
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            tokenAmount,
            0,
            0,
            _msgSender(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(
            address(uniswapV2Router),
            type(uint256).max
        );
    }

    function enableTrading() external onlyOwner {
        require(!tradingOpen, "trading already open");
        swapEnabled = true;
        tradingOpen = true;
        emit tradingActivated(tradingOpen, swapEnabled);
    }

    function manualSwap() external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        require(contractBalance > 0, "Not enough tokens");
        swapTokensForEth(contractBalance);
    }

    function rmLimits() external onlyOwner {
        _maxTxs = _tTotal;
        _maxWalletHold = _tTotal;
        emit maxAmount(_tTotal);
    }

    function clearStuckETH() external onlyOwner {
        uint256 ethBalance = address(this).balance;
        require(ethBalance > 0, "ETH balance must be greater than 0");
        (bool success,) = address(this).call{value: ethBalance}("");
        require(success, "Failed to clear ETH balance");
    }

    function reduceFee(uint256 _newTaxBuy, uint256 _newTaxSell) external onlyOwner {
        require( _newTaxBuy <= 30 && _newTaxSell <= 30 && tradingOpen,
            "Exceeds value"
        );
        _finalBuyTax = _newTaxBuy;
        _finalSellTax = _newTaxSell;
        uint256 clogSheild = _finalSellTax > 5 ? _maxTaxSwap = (5 *_tTotal).div(1000)  : (1 *_tTotal).div(100);
        emit FinalTax(_newTaxBuy, _newTaxSell, (clogSheild == (5 *_tTotal).div(1000)));
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"taxWallet","type":"address"}],"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":"_newTaxBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_newTaxSell","type":"uint256"},{"indexed":false,"internalType":"bool","name":"_shelid","type":"bool"}],"name":"FinalTax","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"maxAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_tradingOpen","type":"bool"},{"indexed":false,"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"tradingActivated","type":"event"},{"inputs":[],"name":"_countTrigger","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletHold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","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":[],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newTaxBuy","type":"uint256"},{"internalType":"uint256","name":"_newTaxSell","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rmLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]

6080604052600a60075560146008555f6009555f600a556012600a620000269190620005e8565b6216e36062000036919062000638565b600b556012600a620000499190620005e8565b6216e36062000059919062000638565b600c556012600a6200006c9190620005e8565b6216e3606200007c919062000638565b600d555f600e5f6101000a81548160ff0219169083151502179055505f600e60016101000a81548160ff0219169083151502179055505f600e60026101000a81548160ff021916908315150217905550348015620000d8575f80fd5b5060405162003de338038062003de38339818101604052810190620000fe9190620006e7565b5f6200010f6200042860201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620001fb9190620005e8565b6308f0d1806200020c919062000638565b60015f6200021f6200042860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002716200042f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200039b6200042860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620003f99190620005e8565b6308f0d1806200040a919062000638565b60405162000419919062000728565b60405180910390a35062000743565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620004e057808604811115620004b857620004b762000456565b5b6001851615620004c85780820291505b8081029050620004d88562000483565b945062000498565b94509492505050565b5f82620004fa5760019050620005cc565b8162000509575f9050620005cc565b81600181146200052257600281146200052d5762000563565b6001915050620005cc565b60ff84111562000542576200054162000456565b5b8360020a9150848211156200055c576200055b62000456565b5b50620005cc565b5060208310610133831016604e8410600b84101617156200059d5782820a90508381111562000597576200059662000456565b5b620005cc565b620005ac84848460016200048f565b92509050818404811115620005c657620005c562000456565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620005f482620005d3565b91506200060183620005dc565b9250620006307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004e9565b905092915050565b5f6200064482620005d3565b91506200065183620005d3565b92508282026200066181620005d3565b915082820484148315176200067b576200067a62000456565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620006b18262000686565b9050919050565b620006c381620006a5565b8114620006ce575f80fd5b50565b5f81519050620006e181620006b8565b92915050565b5f60208284031215620006ff57620006fe62000682565b5b5f6200070e84828501620006d1565b91505092915050565b6200072281620005d3565b82525050565b5f6020820190506200073d5f83018462000717565b92915050565b61369280620007515f395ff3fe608060405260043610610138575f3560e01c8063715018a6116100aa5780639e78fb4f1161006e5780639e78fb4f146103db578063a9059cbb146103f1578063bf474bed1461042d578063dd62ed3e14610457578063e8920d6214610493578063f88de0c3146104a95761013f565b8063715018a61461033357806372333356146103495780638a8c523c146103715780638da5cb5b1461038757806395d89b41146103b15761013f565b806318160ddd116100fc57806318160ddd1461022757806323b872dd146102515780632b8939ce1461028d578063313ce567146102b757806351bc3c85146102e157806370a08231146102f75761013f565b806306efade21461014357806306fdde031461016d578063095ea7b3146101975780630b7640b8146101d35780630faee56f146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104bf565b60405161016491906125bd565b60405180910390f35b348015610178575f80fd5b506101816104c5565b60405161018e9190612660565b60405180910390f35b3480156101a2575f80fd5b506101bd60048036038101906101b89190612708565b610502565b6040516101ca9190612760565b60405180910390f35b3480156101de575f80fd5b506101e761051f565b6040516101f491906125bd565b60405180910390f35b348015610208575f80fd5b5061021161053d565b60405161021e91906125bd565b60405180910390f35b348015610232575f80fd5b5061023b610543565b60405161024891906125bd565b60405180910390f35b34801561025c575f80fd5b5061027760048036038101906102729190612779565b610566565b6040516102849190612760565b60405180910390f35b348015610298575f80fd5b506102a161063a565b6040516102ae91906125bd565b60405180910390f35b3480156102c2575f80fd5b506102cb610640565b6040516102d891906127e4565b60405180910390f35b3480156102ec575f80fd5b506102f5610648565b005b348015610302575f80fd5b5061031d600480360381019061031891906127fd565b610736565b60405161032a91906125bd565b60405180910390f35b34801561033e575f80fd5b5061034761077c565b005b348015610354575f80fd5b5061036f600480360381019061036a9190612828565b6108ca565b005b34801561037c575f80fd5b50610385610ae3565b005b348015610392575f80fd5b5061039b610c53565b6040516103a89190612875565b60405180910390f35b3480156103bc575f80fd5b506103c5610c7a565b6040516103d29190612660565b60405180910390f35b3480156103e6575f80fd5b506103ef610cb7565b005b3480156103fc575f80fd5b5061041760048036038101906104129190612708565b6111fb565b6040516104249190612760565b60405180910390f35b348015610438575f80fd5b50610441611218565b60405161044e91906125bd565b60405180910390f35b348015610462575f80fd5b5061047d6004803603810190610478919061288e565b611237565b60405161048a91906125bd565b60405180910390f35b34801561049e575f80fd5b506104a76112b9565b005b3480156104b4575f80fd5b506104bd6113e8565b005b600d5481565b60606040518060400160405280600b81526020017f576176657920546f6b656e000000000000000000000000000000000000000000815250905090565b5f61051561050e61156e565b8484611575565b6001905092915050565b6012600a61052d9190612a28565b614e2061053a9190612a72565b81565b600b5481565b5f6012600a6105529190612a28565b6308f0d1806105619190612a72565b905090565b5f610572848484611703565b61062f8461057e61156e565b61062a856040518060600160405280602881526020016136356028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105e161156e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120a99092919063ffffffff16565b611575565b600190509392505050565b600c5481565b5f6012905090565b61065061156e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d390612afd565b60405180910390fd5b5f6106e630610736565b90505f811161072a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072190612b65565b60405180910390fd5b6107338161210b565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61078461156e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080790612afd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108d261156e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461095e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095590612afd565b60405180910390fd5b601e82111580156109705750601e8111155b80156109875750600e5f9054906101000a900460ff165b6109c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bd90612bcd565b60405180910390fd5b81600781905550806008819055505f600560085411610a2057610a1b60646012600a6109f29190612a28565b6308f0d180610a019190612a72565b6001610a0d9190612a72565b61237690919063ffffffff16565b610a63565b610a5d6103e86012600a610a349190612a28565b6308f0d180610a439190612a72565b6005610a4f9190612a72565b61237690919063ffffffff16565b600b8190555b90507f29ddd482d71f6b4ad9a6b3978c21b2aa56a029d1de02646578471e24a465cb458383610ac56103e86012600a610a9c9190612a28565b6308f0d180610aab9190612a72565b6005610ab79190612a72565b61237690919063ffffffff16565b8414604051610ad693929190612beb565b60405180910390a1505050565b610aeb61156e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6e90612afd565b60405180910390fd5b600e5f9054906101000a900460ff1615610bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbd90612c6a565b60405180910390fd5b6001600e60026101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff0219169083151502179055507f1e1a456d28192d4b49f845e45f55ca4ebf9da65f473205c0bdcf185e9ee055e2600e5f9054906101000a900460ff16600e60029054906101000a900460ff16604051610c49929190612c88565b60405180910390a1565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f5761766579000000000000000000000000000000000000000000000000000000815250905090565b610cbf61156e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4290612afd565b60405180910390fd5b600e5f9054906101000a900460ff1615610d9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9190612cf9565b60405180910390fd5b5f610df8610de16064610dd360196012600a610db69190612a28565b6308f0d180610dc59190612a72565b6123bf90919063ffffffff16565b61237690919063ffffffff16565b610dea30610736565b61243690919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e963060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610e829190612a28565b6308f0d180610e919190612a72565b611575565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f00573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f249190612d2b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610faa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fce9190612d2b565b6040518363ffffffff1660e01b8152600401610feb929190612d56565b6020604051808303815f875af1158015611007573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061102b9190612d2b565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730845f806110b461156e565b426040518863ffffffff1660e01b81526004016110d696959493929190612dbf565b60606040518083038185885af11580156110f2573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906111179190612e32565b50505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111b7929190612e82565b6020604051808303815f875af11580156111d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111f79190612ed3565b5050565b5f61120e61120761156e565b8484611703565b6001905092915050565b6012600a6112269190612a28565b620493e06112349190612a72565b81565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6112c161156e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461134d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134490612afd565b60405180910390fd5b6012600a61135b9190612a28565b6308f0d18061136a9190612a72565b600c819055506012600a61137e9190612a28565b6308f0d18061138d9190612a72565b600d819055507f69ada53addde5123341ce3a822c5f66292103b2771e41e1f3c00c2de8a63a7f96012600a6113c29190612a28565b6308f0d1806113d19190612a72565b6040516113de91906125bd565b60405180910390a1565b6113f061156e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147390612afd565b60405180910390fd5b5f4790505f81116114c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b990612f6e565b60405180910390fd5b5f3073ffffffffffffffffffffffffffffffffffffffff16826040516114e790612fb9565b5f6040518083038185875af1925050503d805f8114611521576040519150601f19603f3d011682016040523d82523d5f602084013e611526565b606091505b505090508061156a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156190613017565b60405180910390fd5b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115dd57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61161c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116139061307f565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116f691906125bd565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561176b57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6117aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a1906130e7565b60405180910390fd5b5f81116117ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e390613175565b60405180910390fd5b5f6117f5610c53565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118635750611833610c53565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611df957600e5f9054906101000a900460ff166119565760035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611916575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194c906131dd565b60405180910390fd5b5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119ff575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a52575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611b0c57600c54821115611a9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9390613245565b60405180910390fd5b600d5482611aa985610736565b611ab39190613263565b1115611af4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aeb906132e0565b60405180910390fd5b60095f815480929190611b06906132fe565b91905055505b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b9457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bda57611bd36064611bc5603260095411611bb2576019611bb6565b6008545b856123bf90919063ffffffff16565b61237690919063ffffffff16565b9050611ca5565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c6257503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ca457611ca16064611c93602360095411611c80576019611c84565b6007545b856123bf90919063ffffffff16565b61237690919063ffffffff16565b90505b5b80600a5f828254611cb69190613263565b925050819055505f611cc730610736565b9050600e60019054906101000a900460ff16158015611d32575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611d4a5750600e60029054906101000a900460ff165b8015611d7057506012600a611d5f9190612a28565b620493e0611d6d9190612a72565b81115b8015611d7e57506028600954115b8015611da557506012600a611d939190612a28565b614e20611da09190612a72565b600a54115b15611df7575f600b548211611dba5781611dbe565b600b545b9050611dd7818511611dd05784611dd2565b815b61210b565b5f4790505f811115611ded57611dec4761247f565b5b5f600a8190555050505b505b5f811115611ef857611e518160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124e790919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611eef91906125bd565b60405180910390a35b611f488260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461243690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611feb611f9f828461243690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124e790919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61208e848661243690919063ffffffff16565b60405161209b91906125bd565b60405180910390a350505050565b5f8383111582906120f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e79190612660565b60405180910390fd5b505f83856120fe9190613345565b9050809150509392505050565b6001600e60016101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561214257612141613378565b5b6040519080825280602002602001820160405280156121705781602001602082028036833780820191505090505b50905030815f81518110612187576121866133a5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561222b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061224f9190612d2b565b81600181518110612263576122626133a5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122c93060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611575565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161232b959493929190613489565b5f604051808303815f87803b158015612342575f80fd5b505af1158015612354573d5f803e3d5ffd5b50505050505f600e60016101000a81548160ff02191690831515021790555050565b5f6123b783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612544565b905092915050565b5f8083036123cf575f9050612430565b5f82846123dc9190612a72565b90508284826123eb919061350e565b1461242b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612422906135ae565b60405180910390fd5b809150505b92915050565b5f61247783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120a9565b905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156124e3573d5f803e3d5ffd5b5050565b5f8082846124f59190613263565b90508381101561253a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253190613616565b60405180910390fd5b8091505092915050565b5f808311829061258a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125819190612660565b60405180910390fd5b505f8385612598919061350e565b9050809150509392505050565b5f819050919050565b6125b7816125a5565b82525050565b5f6020820190506125d05f8301846125ae565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561260d5780820151818401526020810190506125f2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612632826125d6565b61263c81856125e0565b935061264c8185602086016125f0565b61265581612618565b840191505092915050565b5f6020820190508181035f8301526126788184612628565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126ad82612684565b9050919050565b6126bd816126a3565b81146126c7575f80fd5b50565b5f813590506126d8816126b4565b92915050565b6126e7816125a5565b81146126f1575f80fd5b50565b5f81359050612702816126de565b92915050565b5f806040838503121561271e5761271d612680565b5b5f61272b858286016126ca565b925050602061273c858286016126f4565b9150509250929050565b5f8115159050919050565b61275a81612746565b82525050565b5f6020820190506127735f830184612751565b92915050565b5f805f606084860312156127905761278f612680565b5b5f61279d868287016126ca565b93505060206127ae868287016126ca565b92505060406127bf868287016126f4565b9150509250925092565b5f60ff82169050919050565b6127de816127c9565b82525050565b5f6020820190506127f75f8301846127d5565b92915050565b5f6020828403121561281257612811612680565b5b5f61281f848285016126ca565b91505092915050565b5f806040838503121561283e5761283d612680565b5b5f61284b858286016126f4565b925050602061285c858286016126f4565b9150509250929050565b61286f816126a3565b82525050565b5f6020820190506128885f830184612866565b92915050565b5f80604083850312156128a4576128a3612680565b5b5f6128b1858286016126ca565b92505060206128c2858286016126ca565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561294e5780860481111561292a576129296128cc565b5b60018516156129395780820291505b8081029050612947856128f9565b945061290e565b94509492505050565b5f826129665760019050612a21565b81612973575f9050612a21565b81600181146129895760028114612993576129c2565b6001915050612a21565b60ff8411156129a5576129a46128cc565b5b8360020a9150848211156129bc576129bb6128cc565b5b50612a21565b5060208310610133831016604e8410600b84101617156129f75782820a9050838111156129f2576129f16128cc565b5b612a21565b612a048484846001612905565b92509050818404811115612a1b57612a1a6128cc565b5b81810290505b9392505050565b5f612a32826125a5565b9150612a3d836127c9565b9250612a6a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612957565b905092915050565b5f612a7c826125a5565b9150612a87836125a5565b9250828202612a95816125a5565b91508282048414831517612aac57612aab6128cc565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612ae76020836125e0565b9150612af282612ab3565b602082019050919050565b5f6020820190508181035f830152612b1481612adb565b9050919050565b7f4e6f7420656e6f75676820746f6b656e730000000000000000000000000000005f82015250565b5f612b4f6011836125e0565b9150612b5a82612b1b565b602082019050919050565b5f6020820190508181035f830152612b7c81612b43565b9050919050565b7f457863656564732076616c7565000000000000000000000000000000000000005f82015250565b5f612bb7600d836125e0565b9150612bc282612b83565b602082019050919050565b5f6020820190508181035f830152612be481612bab565b9050919050565b5f606082019050612bfe5f8301866125ae565b612c0b60208301856125ae565b612c186040830184612751565b949350505050565b7f74726164696e6720616c7265616479206f70656e0000000000000000000000005f82015250565b5f612c546014836125e0565b9150612c5f82612c20565b602082019050919050565b5f6020820190508181035f830152612c8181612c48565b9050919050565b5f604082019050612c9b5f830185612751565b612ca86020830184612751565b9392505050565b7f696e697420616c72656164792063616c6c6564000000000000000000000000005f82015250565b5f612ce36013836125e0565b9150612cee82612caf565b602082019050919050565b5f6020820190508181035f830152612d1081612cd7565b9050919050565b5f81519050612d25816126b4565b92915050565b5f60208284031215612d4057612d3f612680565b5b5f612d4d84828501612d17565b91505092915050565b5f604082019050612d695f830185612866565b612d766020830184612866565b9392505050565b5f819050919050565b5f819050919050565b5f612da9612da4612d9f84612d7d565b612d86565b6125a5565b9050919050565b612db981612d8f565b82525050565b5f60c082019050612dd25f830189612866565b612ddf60208301886125ae565b612dec6040830187612db0565b612df96060830186612db0565b612e066080830185612866565b612e1360a08301846125ae565b979650505050505050565b5f81519050612e2c816126de565b92915050565b5f805f60608486031215612e4957612e48612680565b5b5f612e5686828701612e1e565b9350506020612e6786828701612e1e565b9250506040612e7886828701612e1e565b9150509250925092565b5f604082019050612e955f830185612866565b612ea260208301846125ae565b9392505050565b612eb281612746565b8114612ebc575f80fd5b50565b5f81519050612ecd81612ea9565b92915050565b5f60208284031215612ee857612ee7612680565b5b5f612ef584828501612ebf565b91505092915050565b7f4554482062616c616e6365206d7573742062652067726561746572207468616e5f8201527f2030000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f586022836125e0565b9150612f6382612efe565b604082019050919050565b5f6020820190508181035f830152612f8581612f4c565b9050919050565b5f81905092915050565b50565b5f612fa45f83612f8c565b9150612faf82612f96565b5f82019050919050565b5f612fc382612f99565b9150819050919050565b7f4661696c656420746f20636c656172204554482062616c616e636500000000005f82015250565b5f613001601b836125e0565b915061300c82612fcd565b602082019050919050565b5f6020820190508181035f83015261302e81612ff5565b9050919050565b7f45524332303a20617070726f766520746865207a65726f2061646472657373005f82015250565b5f613069601f836125e0565b915061307482613035565b602082019050919050565b5f6020820190508181035f8301526130968161305d565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f20616464726573735f82015250565b5f6130d16020836125e0565b91506130dc8261309d565b602082019050919050565b5f6020820190508181035f8301526130fe816130c5565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61315f6029836125e0565b915061316a82613105565b604082019050919050565b5f6020820190508181035f83015261318c81613153565b9050919050565b7f74726164696e67206e6f7420796574206f70656e0000000000000000000000005f82015250565b5f6131c76014836125e0565b91506131d282613193565b602082019050919050565b5f6020820190508181035f8301526131f4816131bb565b9050919050565b7f4578636565647320746865205f6d61785478732e0000000000000000000000005f82015250565b5f61322f6014836125e0565b915061323a826131fb565b602082019050919050565b5f6020820190508181035f83015261325c81613223565b9050919050565b5f61326d826125a5565b9150613278836125a5565b92508282019050808211156132905761328f6128cc565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6132ca601a836125e0565b91506132d582613296565b602082019050919050565b5f6020820190508181035f8301526132f7816132be565b9050919050565b5f613308826125a5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361333a576133396128cc565b5b600182019050919050565b5f61334f826125a5565b915061335a836125a5565b9250828203905081811115613372576133716128cc565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613404816126a3565b82525050565b5f61341583836133fb565b60208301905092915050565b5f602082019050919050565b5f613437826133d2565b61344181856133dc565b935061344c836133ec565b805f5b8381101561347c578151613463888261340a565b975061346e83613421565b92505060018101905061344f565b5085935050505092915050565b5f60a08201905061349c5f8301886125ae565b6134a96020830187612db0565b81810360408301526134bb818661342d565b90506134ca6060830185612866565b6134d760808301846125ae565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613518826125a5565b9150613523836125a5565b925082613533576135326134e1565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6135986021836125e0565b91506135a38261353e565b604082019050919050565b5f6020820190508181035f8301526135c58161358c565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613600601b836125e0565b915061360b826135cc565b602082019050919050565b5f6020820190508181035f83015261362d816135f4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206cc15ad95630745d5be753aaf91d7049a11289eff73ab166e88db8cead73dc9564736f6c6343000814003300000000000000000000000040072a019f7ef81a6b328284eefa91f46461cc37

Deployed Bytecode

0x608060405260043610610138575f3560e01c8063715018a6116100aa5780639e78fb4f1161006e5780639e78fb4f146103db578063a9059cbb146103f1578063bf474bed1461042d578063dd62ed3e14610457578063e8920d6214610493578063f88de0c3146104a95761013f565b8063715018a61461033357806372333356146103495780638a8c523c146103715780638da5cb5b1461038757806395d89b41146103b15761013f565b806318160ddd116100fc57806318160ddd1461022757806323b872dd146102515780632b8939ce1461028d578063313ce567146102b757806351bc3c85146102e157806370a08231146102f75761013f565b806306efade21461014357806306fdde031461016d578063095ea7b3146101975780630b7640b8146101d35780630faee56f146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104bf565b60405161016491906125bd565b60405180910390f35b348015610178575f80fd5b506101816104c5565b60405161018e9190612660565b60405180910390f35b3480156101a2575f80fd5b506101bd60048036038101906101b89190612708565b610502565b6040516101ca9190612760565b60405180910390f35b3480156101de575f80fd5b506101e761051f565b6040516101f491906125bd565b60405180910390f35b348015610208575f80fd5b5061021161053d565b60405161021e91906125bd565b60405180910390f35b348015610232575f80fd5b5061023b610543565b60405161024891906125bd565b60405180910390f35b34801561025c575f80fd5b5061027760048036038101906102729190612779565b610566565b6040516102849190612760565b60405180910390f35b348015610298575f80fd5b506102a161063a565b6040516102ae91906125bd565b60405180910390f35b3480156102c2575f80fd5b506102cb610640565b6040516102d891906127e4565b60405180910390f35b3480156102ec575f80fd5b506102f5610648565b005b348015610302575f80fd5b5061031d600480360381019061031891906127fd565b610736565b60405161032a91906125bd565b60405180910390f35b34801561033e575f80fd5b5061034761077c565b005b348015610354575f80fd5b5061036f600480360381019061036a9190612828565b6108ca565b005b34801561037c575f80fd5b50610385610ae3565b005b348015610392575f80fd5b5061039b610c53565b6040516103a89190612875565b60405180910390f35b3480156103bc575f80fd5b506103c5610c7a565b6040516103d29190612660565b60405180910390f35b3480156103e6575f80fd5b506103ef610cb7565b005b3480156103fc575f80fd5b5061041760048036038101906104129190612708565b6111fb565b6040516104249190612760565b60405180910390f35b348015610438575f80fd5b50610441611218565b60405161044e91906125bd565b60405180910390f35b348015610462575f80fd5b5061047d6004803603810190610478919061288e565b611237565b60405161048a91906125bd565b60405180910390f35b34801561049e575f80fd5b506104a76112b9565b005b3480156104b4575f80fd5b506104bd6113e8565b005b600d5481565b60606040518060400160405280600b81526020017f576176657920546f6b656e000000000000000000000000000000000000000000815250905090565b5f61051561050e61156e565b8484611575565b6001905092915050565b6012600a61052d9190612a28565b614e2061053a9190612a72565b81565b600b5481565b5f6012600a6105529190612a28565b6308f0d1806105619190612a72565b905090565b5f610572848484611703565b61062f8461057e61156e565b61062a856040518060600160405280602881526020016136356028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105e161156e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120a99092919063ffffffff16565b611575565b600190509392505050565b600c5481565b5f6012905090565b61065061156e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d390612afd565b60405180910390fd5b5f6106e630610736565b90505f811161072a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072190612b65565b60405180910390fd5b6107338161210b565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61078461156e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080790612afd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108d261156e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461095e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095590612afd565b60405180910390fd5b601e82111580156109705750601e8111155b80156109875750600e5f9054906101000a900460ff165b6109c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bd90612bcd565b60405180910390fd5b81600781905550806008819055505f600560085411610a2057610a1b60646012600a6109f29190612a28565b6308f0d180610a019190612a72565b6001610a0d9190612a72565b61237690919063ffffffff16565b610a63565b610a5d6103e86012600a610a349190612a28565b6308f0d180610a439190612a72565b6005610a4f9190612a72565b61237690919063ffffffff16565b600b8190555b90507f29ddd482d71f6b4ad9a6b3978c21b2aa56a029d1de02646578471e24a465cb458383610ac56103e86012600a610a9c9190612a28565b6308f0d180610aab9190612a72565b6005610ab79190612a72565b61237690919063ffffffff16565b8414604051610ad693929190612beb565b60405180910390a1505050565b610aeb61156e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6e90612afd565b60405180910390fd5b600e5f9054906101000a900460ff1615610bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbd90612c6a565b60405180910390fd5b6001600e60026101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff0219169083151502179055507f1e1a456d28192d4b49f845e45f55ca4ebf9da65f473205c0bdcf185e9ee055e2600e5f9054906101000a900460ff16600e60029054906101000a900460ff16604051610c49929190612c88565b60405180910390a1565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f5761766579000000000000000000000000000000000000000000000000000000815250905090565b610cbf61156e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4290612afd565b60405180910390fd5b600e5f9054906101000a900460ff1615610d9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9190612cf9565b60405180910390fd5b5f610df8610de16064610dd360196012600a610db69190612a28565b6308f0d180610dc59190612a72565b6123bf90919063ffffffff16565b61237690919063ffffffff16565b610dea30610736565b61243690919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e963060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610e829190612a28565b6308f0d180610e919190612a72565b611575565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f00573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f249190612d2b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610faa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fce9190612d2b565b6040518363ffffffff1660e01b8152600401610feb929190612d56565b6020604051808303815f875af1158015611007573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061102b9190612d2b565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730845f806110b461156e565b426040518863ffffffff1660e01b81526004016110d696959493929190612dbf565b60606040518083038185885af11580156110f2573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906111179190612e32565b50505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111b7929190612e82565b6020604051808303815f875af11580156111d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111f79190612ed3565b5050565b5f61120e61120761156e565b8484611703565b6001905092915050565b6012600a6112269190612a28565b620493e06112349190612a72565b81565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6112c161156e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461134d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134490612afd565b60405180910390fd5b6012600a61135b9190612a28565b6308f0d18061136a9190612a72565b600c819055506012600a61137e9190612a28565b6308f0d18061138d9190612a72565b600d819055507f69ada53addde5123341ce3a822c5f66292103b2771e41e1f3c00c2de8a63a7f96012600a6113c29190612a28565b6308f0d1806113d19190612a72565b6040516113de91906125bd565b60405180910390a1565b6113f061156e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147390612afd565b60405180910390fd5b5f4790505f81116114c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b990612f6e565b60405180910390fd5b5f3073ffffffffffffffffffffffffffffffffffffffff16826040516114e790612fb9565b5f6040518083038185875af1925050503d805f8114611521576040519150601f19603f3d011682016040523d82523d5f602084013e611526565b606091505b505090508061156a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156190613017565b60405180910390fd5b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115dd57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61161c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116139061307f565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116f691906125bd565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561176b57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6117aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a1906130e7565b60405180910390fd5b5f81116117ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e390613175565b60405180910390fd5b5f6117f5610c53565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118635750611833610c53565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611df957600e5f9054906101000a900460ff166119565760035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611916575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194c906131dd565b60405180910390fd5b5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119ff575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a52575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611b0c57600c54821115611a9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9390613245565b60405180910390fd5b600d5482611aa985610736565b611ab39190613263565b1115611af4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aeb906132e0565b60405180910390fd5b60095f815480929190611b06906132fe565b91905055505b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b9457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bda57611bd36064611bc5603260095411611bb2576019611bb6565b6008545b856123bf90919063ffffffff16565b61237690919063ffffffff16565b9050611ca5565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c6257503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ca457611ca16064611c93602360095411611c80576019611c84565b6007545b856123bf90919063ffffffff16565b61237690919063ffffffff16565b90505b5b80600a5f828254611cb69190613263565b925050819055505f611cc730610736565b9050600e60019054906101000a900460ff16158015611d32575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611d4a5750600e60029054906101000a900460ff165b8015611d7057506012600a611d5f9190612a28565b620493e0611d6d9190612a72565b81115b8015611d7e57506028600954115b8015611da557506012600a611d939190612a28565b614e20611da09190612a72565b600a54115b15611df7575f600b548211611dba5781611dbe565b600b545b9050611dd7818511611dd05784611dd2565b815b61210b565b5f4790505f811115611ded57611dec4761247f565b5b5f600a8190555050505b505b5f811115611ef857611e518160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124e790919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611eef91906125bd565b60405180910390a35b611f488260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461243690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611feb611f9f828461243690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124e790919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61208e848661243690919063ffffffff16565b60405161209b91906125bd565b60405180910390a350505050565b5f8383111582906120f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e79190612660565b60405180910390fd5b505f83856120fe9190613345565b9050809150509392505050565b6001600e60016101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561214257612141613378565b5b6040519080825280602002602001820160405280156121705781602001602082028036833780820191505090505b50905030815f81518110612187576121866133a5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561222b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061224f9190612d2b565b81600181518110612263576122626133a5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122c93060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611575565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161232b959493929190613489565b5f604051808303815f87803b158015612342575f80fd5b505af1158015612354573d5f803e3d5ffd5b50505050505f600e60016101000a81548160ff02191690831515021790555050565b5f6123b783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612544565b905092915050565b5f8083036123cf575f9050612430565b5f82846123dc9190612a72565b90508284826123eb919061350e565b1461242b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612422906135ae565b60405180910390fd5b809150505b92915050565b5f61247783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120a9565b905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156124e3573d5f803e3d5ffd5b5050565b5f8082846124f59190613263565b90508381101561253a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253190613616565b60405180910390fd5b8091505092915050565b5f808311829061258a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125819190612660565b60405180910390fd5b505f8385612598919061350e565b9050809150509392505050565b5f819050919050565b6125b7816125a5565b82525050565b5f6020820190506125d05f8301846125ae565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561260d5780820151818401526020810190506125f2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612632826125d6565b61263c81856125e0565b935061264c8185602086016125f0565b61265581612618565b840191505092915050565b5f6020820190508181035f8301526126788184612628565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126ad82612684565b9050919050565b6126bd816126a3565b81146126c7575f80fd5b50565b5f813590506126d8816126b4565b92915050565b6126e7816125a5565b81146126f1575f80fd5b50565b5f81359050612702816126de565b92915050565b5f806040838503121561271e5761271d612680565b5b5f61272b858286016126ca565b925050602061273c858286016126f4565b9150509250929050565b5f8115159050919050565b61275a81612746565b82525050565b5f6020820190506127735f830184612751565b92915050565b5f805f606084860312156127905761278f612680565b5b5f61279d868287016126ca565b93505060206127ae868287016126ca565b92505060406127bf868287016126f4565b9150509250925092565b5f60ff82169050919050565b6127de816127c9565b82525050565b5f6020820190506127f75f8301846127d5565b92915050565b5f6020828403121561281257612811612680565b5b5f61281f848285016126ca565b91505092915050565b5f806040838503121561283e5761283d612680565b5b5f61284b858286016126f4565b925050602061285c858286016126f4565b9150509250929050565b61286f816126a3565b82525050565b5f6020820190506128885f830184612866565b92915050565b5f80604083850312156128a4576128a3612680565b5b5f6128b1858286016126ca565b92505060206128c2858286016126ca565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561294e5780860481111561292a576129296128cc565b5b60018516156129395780820291505b8081029050612947856128f9565b945061290e565b94509492505050565b5f826129665760019050612a21565b81612973575f9050612a21565b81600181146129895760028114612993576129c2565b6001915050612a21565b60ff8411156129a5576129a46128cc565b5b8360020a9150848211156129bc576129bb6128cc565b5b50612a21565b5060208310610133831016604e8410600b84101617156129f75782820a9050838111156129f2576129f16128cc565b5b612a21565b612a048484846001612905565b92509050818404811115612a1b57612a1a6128cc565b5b81810290505b9392505050565b5f612a32826125a5565b9150612a3d836127c9565b9250612a6a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612957565b905092915050565b5f612a7c826125a5565b9150612a87836125a5565b9250828202612a95816125a5565b91508282048414831517612aac57612aab6128cc565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612ae76020836125e0565b9150612af282612ab3565b602082019050919050565b5f6020820190508181035f830152612b1481612adb565b9050919050565b7f4e6f7420656e6f75676820746f6b656e730000000000000000000000000000005f82015250565b5f612b4f6011836125e0565b9150612b5a82612b1b565b602082019050919050565b5f6020820190508181035f830152612b7c81612b43565b9050919050565b7f457863656564732076616c7565000000000000000000000000000000000000005f82015250565b5f612bb7600d836125e0565b9150612bc282612b83565b602082019050919050565b5f6020820190508181035f830152612be481612bab565b9050919050565b5f606082019050612bfe5f8301866125ae565b612c0b60208301856125ae565b612c186040830184612751565b949350505050565b7f74726164696e6720616c7265616479206f70656e0000000000000000000000005f82015250565b5f612c546014836125e0565b9150612c5f82612c20565b602082019050919050565b5f6020820190508181035f830152612c8181612c48565b9050919050565b5f604082019050612c9b5f830185612751565b612ca86020830184612751565b9392505050565b7f696e697420616c72656164792063616c6c6564000000000000000000000000005f82015250565b5f612ce36013836125e0565b9150612cee82612caf565b602082019050919050565b5f6020820190508181035f830152612d1081612cd7565b9050919050565b5f81519050612d25816126b4565b92915050565b5f60208284031215612d4057612d3f612680565b5b5f612d4d84828501612d17565b91505092915050565b5f604082019050612d695f830185612866565b612d766020830184612866565b9392505050565b5f819050919050565b5f819050919050565b5f612da9612da4612d9f84612d7d565b612d86565b6125a5565b9050919050565b612db981612d8f565b82525050565b5f60c082019050612dd25f830189612866565b612ddf60208301886125ae565b612dec6040830187612db0565b612df96060830186612db0565b612e066080830185612866565b612e1360a08301846125ae565b979650505050505050565b5f81519050612e2c816126de565b92915050565b5f805f60608486031215612e4957612e48612680565b5b5f612e5686828701612e1e565b9350506020612e6786828701612e1e565b9250506040612e7886828701612e1e565b9150509250925092565b5f604082019050612e955f830185612866565b612ea260208301846125ae565b9392505050565b612eb281612746565b8114612ebc575f80fd5b50565b5f81519050612ecd81612ea9565b92915050565b5f60208284031215612ee857612ee7612680565b5b5f612ef584828501612ebf565b91505092915050565b7f4554482062616c616e6365206d7573742062652067726561746572207468616e5f8201527f2030000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f586022836125e0565b9150612f6382612efe565b604082019050919050565b5f6020820190508181035f830152612f8581612f4c565b9050919050565b5f81905092915050565b50565b5f612fa45f83612f8c565b9150612faf82612f96565b5f82019050919050565b5f612fc382612f99565b9150819050919050565b7f4661696c656420746f20636c656172204554482062616c616e636500000000005f82015250565b5f613001601b836125e0565b915061300c82612fcd565b602082019050919050565b5f6020820190508181035f83015261302e81612ff5565b9050919050565b7f45524332303a20617070726f766520746865207a65726f2061646472657373005f82015250565b5f613069601f836125e0565b915061307482613035565b602082019050919050565b5f6020820190508181035f8301526130968161305d565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f20616464726573735f82015250565b5f6130d16020836125e0565b91506130dc8261309d565b602082019050919050565b5f6020820190508181035f8301526130fe816130c5565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61315f6029836125e0565b915061316a82613105565b604082019050919050565b5f6020820190508181035f83015261318c81613153565b9050919050565b7f74726164696e67206e6f7420796574206f70656e0000000000000000000000005f82015250565b5f6131c76014836125e0565b91506131d282613193565b602082019050919050565b5f6020820190508181035f8301526131f4816131bb565b9050919050565b7f4578636565647320746865205f6d61785478732e0000000000000000000000005f82015250565b5f61322f6014836125e0565b915061323a826131fb565b602082019050919050565b5f6020820190508181035f83015261325c81613223565b9050919050565b5f61326d826125a5565b9150613278836125a5565b92508282019050808211156132905761328f6128cc565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6132ca601a836125e0565b91506132d582613296565b602082019050919050565b5f6020820190508181035f8301526132f7816132be565b9050919050565b5f613308826125a5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361333a576133396128cc565b5b600182019050919050565b5f61334f826125a5565b915061335a836125a5565b9250828203905081811115613372576133716128cc565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613404816126a3565b82525050565b5f61341583836133fb565b60208301905092915050565b5f602082019050919050565b5f613437826133d2565b61344181856133dc565b935061344c836133ec565b805f5b8381101561347c578151613463888261340a565b975061346e83613421565b92505060018101905061344f565b5085935050505092915050565b5f60a08201905061349c5f8301886125ae565b6134a96020830187612db0565b81810360408301526134bb818661342d565b90506134ca6060830185612866565b6134d760808301846125ae565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613518826125a5565b9150613523836125a5565b925082613533576135326134e1565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6135986021836125e0565b91506135a38261353e565b604082019050919050565b5f6020820190508181035f8301526135c58161358c565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613600601b836125e0565b915061360b826135cc565b602082019050919050565b5f6020820190508181035f83015261362d816135f4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206cc15ad95630745d5be753aaf91d7049a11289eff73ab166e88db8cead73dc9564736f6c63430008140033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000040072a019f7ef81a6b328284eefa91f46461cc37

-----Decoded View---------------
Arg [0] : taxWallet (address): 0x40072A019f7Ef81a6b328284eeFA91f46461cC37

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000040072a019f7ef81a6b328284eefa91f46461cc37


Deployed Bytecode Sourcemap

3991:9957:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5293:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6096:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7002:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5038:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5179:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6373:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7203:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5238:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6282:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12745:214;;;;;;;;;;;;;:::i;:::-;;6476:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2943:148;;;;;;;;;;;;;:::i;:::-;;13432:476;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12513:224;;;;;;;;;;;;;:::i;:::-;;2729:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6187:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11588:917;;;;;;;;;;;;;:::i;:::-;;6603:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5106:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6810:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12967:144;;;;;;;;;;;;;:::i;:::-;;13119:305;;;;;;;;;;;;;:::i;:::-;;5293:55;;;;:::o;6096:83::-;6133:13;6166:5;;;;;;;;;;;;;;;;;6159:12;;6096:83;:::o;7002:193::-;7104:4;7126:39;7135:12;:10;:12::i;:::-;7149:7;7158:6;7126:8;:39::i;:::-;7183:4;7176:11;;7002:193;;;;:::o;5038:61::-;4962:2;5086;:13;;;;:::i;:::-;5078:5;:21;;;;:::i;:::-;5038:61;:::o;5179:52::-;;;;:::o;6373:95::-;6426:7;4962:2;5018;:13;;;;:::i;:::-;5006:9;:25;;;;:::i;:::-;6446:14;;6373:95;:::o;7203:446::-;7335:4;7352:36;7362:6;7370:9;7381:6;7352:9;:36::i;:::-;7399:220;7422:6;7443:12;:10;:12::i;:::-;7470:138;7526:6;7470:138;;;;;;;;;;;;;;;;;:11;:19;7482:6;7470:19;;;;;;;;;;;;;;;:33;7490:12;:10;:12::i;:::-;7470:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7399:8;:220::i;:::-;7637:4;7630:11;;7203:446;;;;;:::o;5238:48::-;;;;:::o;6282:83::-;6323:5;4962:2;6341:16;;6282:83;:::o;12745:214::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12797:23:::1;12823:24;12841:4;12823:9;:24::i;:::-;12797:50;;12884:1;12866:15;:19;12858:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;12918:33;12935:15;12918:16;:33::i;:::-;12786:173;12745:214::o:0;6476:119::-;6542:7;6569:9;:18;6579:7;6569:18;;;;;;;;;;;;;;;;6562:25;;6476:119;;;:::o;2943:148::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3050:1:::1;3013:40;;3034:6;::::0;::::1;;;;;;;;3013:40;;;;;;;;;;;;3081:1;3064:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2943:148::o:0;13432:476::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13545:2:::1;13531:10;:16;;:37;;;;;13566:2;13551:11;:17;;13531:37;:52;;;;;13572:11;;;;;;;;;;;13531:52;13522:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;13650:10;13635:12;:25;;;;13687:11;13671:13;:27;;;;13709:18;13746:1;13730:13;;:17;:81;;13790:21;13807:3;4962:2;5018;:13;;;;:::i;:::-;5006:9;:25;;;;:::i;:::-;13791:1;:10;;;;:::i;:::-;13790:16;;:21;;;;:::i;:::-;13730:81;;;13764:22;13781:4;4962:2;5018;:13;;;;:::i;:::-;5006:9;:25;;;;:::i;:::-;13765:1;:10;;;;:::i;:::-;13764:16;;:22;;;;:::i;:::-;13750:11;:36;;;13730:81;13709:102;;13827:73;13836:10;13848:11;13876:22;13893:4;4962:2;5018;:13;;;;:::i;:::-;5006:9;:25;;;;:::i;:::-;13877:1;:10;;;;:::i;:::-;13876:16;;:22;;;;:::i;:::-;13862:10;:36;13827:73;;;;;;;;:::i;:::-;;;;;;;;13511:397;13432:476:::0;;:::o;12513:224::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12577:11:::1;;;;;;;;;;;12576:12;12568:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;12638:4;12624:11;;:18;;;;;;;;;;;;;;;;;;12667:4;12653:11;;:18;;;;;;;;;;;;;;;;;;12687:42;12704:11;;;;;;;;;;;12717;;;;;;;;;;;12687:42;;;;;;;:::i;:::-;;;;;;;;12513:224::o:0;2729:79::-;2767:7;2794:6;;;;;;;;;;;2787:13;;2729:79;:::o;6187:87::-;6226:13;6259:7;;;;;;;;;;;;;;;;;6252:14;;6187:87;:::o;11588:917::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11649:11:::1;;;;;;;;;;;11648:12;11640:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;11695:19;11717:90;11760:36;11792:3;11760:27;4437:2;4962;5018;:13;;;;:::i;:::-;5006:9;:25;;;;:::i;:::-;11760:11;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;11717:24;11735:4;11717:9;:24::i;:::-;:28;;:90;;;;:::i;:::-;11695:112;;11869:42;11818:15;;:104;;;;;;;;;;;;;;;;;;11933:58;11950:4;11965:15;;;;;;;;;;;4962:2;5018;:13;;;;:::i;:::-;5006:9;:25;;;;:::i;:::-;11933:8;:58::i;:::-;12036:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12018:55;;;12096:4;12116:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12018:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12002:13;;:147;;;;;;;;;;;;;;;;;;12160:15;;;;;;;;;;;:31;;;12199:21;12244:4;12264:11;12290:1;12306::::0;12322:12:::1;:10;:12::i;:::-;12349:15;12160:215;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12393:13;;;;;;;;;;;12386:29;;;12438:15;;;;;;;;;;;12469:17;12386:111;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11629:876;11588:917::o:0;6603:199::-;6708:4;6730:42;6740:12;:10;:12::i;:::-;6754:9;6765:6;6730:9;:42::i;:::-;6790:4;6783:11;;6603:199;;;;:::o;5106:66::-;4962:2;5159;:13;;;;:::i;:::-;5150:6;:22;;;;:::i;:::-;5106:66;:::o;6810:184::-;6927:7;6959:11;:18;6971:5;6959:18;;;;;;;;;;;;;;;:27;6978:7;6959:27;;;;;;;;;;;;;;;;6952:34;;6810:184;;;;:::o;12967:144::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4962:2:::1;5018;:13;;;;:::i;:::-;5006:9;:25;;;;:::i;:::-;13017:7;:17;;;;4962:2;5018;:13;;;;:::i;:::-;5006:9;:25;;;;:::i;:::-;13045:14;:24;;;;13085:18;4962:2;5018;:13;;;;:::i;:::-;5006:9;:25;;;;:::i;:::-;13085:18;;;;;;:::i;:::-;;;;;;;;12967:144::o:0;13119:305::-;2866:12;:10;:12::i;:::-;2856:22;;:6;;;;;;;;;;:22;;;2848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13174:18:::1;13195:21;13174:42;;13248:1;13235:10;:14;13227:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;13300:12;13325:4;13317:18;;13343:10;13317:41;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13299:59;;;13377:7;13369:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;13163:261;;13119:305::o:0;269:98::-;322:7;349:10;342:17;;269:98;:::o;7657:347::-;7815:1;7798:19;;:5;:19;;;;:44;;;;;7840:1;7821:21;;:7;:21;;;;7798:44;7776:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;7942:6;7912:11;:18;7924:5;7912:18;;;;;;;;;;;;;;;:27;7931:7;7912:27;;;;;;;;;;;;;;;:36;;;;7980:7;7964:32;;7973:5;7964:32;;;7989:6;7964:32;;;;;;:::i;:::-;;;;;;;;7657:347;;;:::o;8012:2975::-;8164:1;8148:18;;:4;:18;;;;:38;;;;;8184:1;8170:16;;:2;:16;;;;8148:38;8126:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;8274:1;8265:6;:10;8257:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8332:17;8378:7;:5;:7::i;:::-;8370:15;;:4;:15;;;;:32;;;;;8395:7;:5;:7::i;:::-;8389:13;;:2;:13;;;;8370:32;8366:2250;;;8424:11;;;;;;;;;;;8419:197;;8486:18;:22;8505:2;8486:22;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;8512:18;:24;8531:4;8512:24;;;;;;;;;;;;;;;;;;;;;;;;;8486:50;8456:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;8419:197;8662:13;;;;;;;;;;;8654:21;;:4;:21;;;:72;;;;;8710:15;;;;;;;;;;;8696:30;;:2;:30;;;;8654:72;:116;;;;;8748:18;:22;8767:2;8748:22;;;;;;;;;;;;;;;;;;;;;;;;;8747:23;8654:116;8632:428;;;8823:7;;8813:6;:17;;8805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8930:14;;8920:6;8904:13;8914:2;8904:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8874:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;9033:9;;:11;;;;;;;;;:::i;:::-;;;;;;8632:428;9086:13;;;;;;;;;;;9080:19;;:2;:19;;;:44;;;;;9119:4;9103:21;;:4;:21;;;;9080:44;9076:667;;;9157:235;9388:3;9157:204;4594:2;9217:9;;:28;9216:122;;4489:2;9216:122;;;9278:13;;9216:122;9157:6;:32;;:204;;;;:::i;:::-;:230;;:235;;;;:::i;:::-;9145:247;;9076:667;;;9426:13;;;;;;;;;;;9418:21;;:4;:21;;;:44;;;;;9457:4;9443:19;;:2;:19;;;;9418:44;9414:329;;;9495:232;9723:3;9495:201;4541:2;9555:9;;:27;9554:119;;4437:2;9554:119;;;9615:12;;9554:119;9495:6;:32;;:201;;;;:::i;:::-;:227;;:232;;;;:::i;:::-;9483:244;;9414:329;9076:667;9772:9;9759;;:22;;;;;;;:::i;:::-;;;;;;;;9796:28;9827:24;9845:4;9827:9;:24::i;:::-;9796:55;;9889:6;;;;;;;;;;;9888:7;:47;;;;;9922:13;;;;;;;;;;;9916:19;;:2;:19;;;9888:47;:79;;;;;9956:11;;;;;;;;;;;9888:79;:140;;;;;4962:2;5159;:13;;;;:::i;:::-;5150:6;:22;;;;:::i;:::-;9988:20;:40;9888:140;:191;;;;;4649:2;10049:9;;:30;9888:191;:237;;;;;4962:2;5086;:13;;;;:::i;:::-;5078:5;:21;;;;:::i;:::-;10100:9;;:25;9888:237;9866:739;;;10160:14;10201:11;;10178:20;:34;10177:115;;10272:20;10177:115;;;10237:11;;10177:115;10160:132;;10311:53;10338:6;10329;:15;10328:35;;10357:6;10328:35;;;10348:6;10328:35;10311:16;:53::i;:::-;10383:26;10412:21;10383:50;;10477:1;10456:18;:22;10452:106;;;10503:35;10516:21;10503:12;:35::i;:::-;10452:106;10588:1;10576:9;:13;;;;10141:464;;9866:739;8404:2212;8366:2250;10644:1;10632:9;:13;10628:172;;;10689:39;10718:9;10689;:24;10707:4;10689:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10662:9;:24;10680:4;10662:24;;;;;;;;;;;;;;;:66;;;;10771:4;10748:40;;10757:4;10748:40;;;10778:9;10748:40;;;;;;:::i;:::-;;;;;;;;10628:172;10828:27;10848:6;10828:9;:15;10838:4;10828:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10810:9;:15;10820:4;10810:15;;;;;;;;;;;;;;;:45;;;;10882:40;10900:21;10911:9;10900:6;:10;;:21;;;;:::i;:::-;10882:9;:13;10892:2;10882:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10866:9;:13;10876:2;10866:13;;;;;;;;;;;;;;;:56;;;;10953:2;10938:41;;10947:4;10938:41;;;10957:21;10968:9;10957:6;:10;;:21;;;;:::i;:::-;10938:41;;;;;;:::i;:::-;;;;;;;;8115:2872;8012:2975;;;:::o;1531:224::-;1651:7;1684:1;1679;:6;;1687:12;1671:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1711:9;1727:1;1723;:5;;;;:::i;:::-;1711:17;;1746:1;1739:8;;;1531:224;;;;;:::o;11097:483::-;5697:4;5688:6;;:13;;;;;;;;;;;;;;;;;;11175:21:::1;11213:1;11199:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11175:40;;11244:4;11226;11231:1;11226:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11270:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11260:4;11265:1;11260:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11303:62;11320:4;11335:15;;;;;;;;;;;11353:11;11303:8;:62::i;:::-;11376:15;;;;;;;;;;;:66;;;11457:11;11483:1;11499:4;11526;11546:15;11376:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11164:416;5733:5:::0;5724:6;;:14;;;;;;;;;;;;;;;;;;11097:483;:::o;2017:132::-;2075:7;2102:39;2106:1;2109;2102:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2095:46;;2017:132;;;;:::o;1763:246::-;1821:7;1850:1;1845;:6;1841:47;;1875:1;1868:8;;;;1841:47;1898:9;1914:1;1910;:5;;;;:::i;:::-;1898:17;;1943:1;1938;1934;:5;;;;:::i;:::-;:10;1926:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2000:1;1993:8;;;1763:246;;;;;:::o;1387:136::-;1445:7;1472:43;1476:1;1479;1472:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1465:50;;1387:136;;;;:::o;10995:94::-;11052:12;;;;;;;;;;;:21;;:29;11074:6;11052:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10995:94;:::o;1200:179::-;1258:7;1278:9;1294:1;1290;:5;;;;:::i;:::-;1278:17;;1319:1;1314;:6;;1306:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1370:1;1363:8;;;1200:179;;;;:::o;2157:223::-;2277:7;2309:1;2305;:5;2312:12;2297:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2336:9;2352:1;2348;:5;;;;:::i;:::-;2336:17;;2371:1;2364:8;;;2157:223;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:118::-;5755:24;5773:5;5755:24;:::i;:::-;5750:3;5743:37;5668:118;;:::o;5792:222::-;5885:4;5923:2;5912:9;5908:18;5900:26;;5936:71;6004:1;5993:9;5989:17;5980:6;5936:71;:::i;:::-;5792:222;;;;:::o;6020:474::-;6088:6;6096;6145:2;6133:9;6124:7;6120:23;6116:32;6113:119;;;6151:79;;:::i;:::-;6113:119;6271:1;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6242:117;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;6020:474;;;;;:::o;6500:180::-;6548:77;6545:1;6538:88;6645:4;6642:1;6635:15;6669:4;6666:1;6659:15;6686:102;6728:8;6775:5;6772:1;6768:13;6747:34;;6686:102;;;:::o;6794:848::-;6855:5;6862:4;6886:6;6877:15;;6910:5;6901:14;;6924:712;6945:1;6935:8;6932:15;6924:712;;;7040:4;7035:3;7031:14;7025:4;7022:24;7019:50;;;7049:18;;:::i;:::-;7019:50;7099:1;7089:8;7085:16;7082:451;;;7514:4;7507:5;7503:16;7494:25;;7082:451;7564:4;7558;7554:15;7546:23;;7594:32;7617:8;7594:32;:::i;:::-;7582:44;;6924:712;;;6794:848;;;;;;;:::o;7648:1073::-;7702:5;7893:8;7883:40;;7914:1;7905:10;;7916:5;;7883:40;7942:4;7932:36;;7959:1;7950:10;;7961:5;;7932:36;8028:4;8076:1;8071:27;;;;8112:1;8107:191;;;;8021:277;;8071:27;8089:1;8080:10;;8091:5;;;8107:191;8152:3;8142:8;8139:17;8136:43;;;8159:18;;:::i;:::-;8136:43;8208:8;8205:1;8201:16;8192:25;;8243:3;8236:5;8233:14;8230:40;;;8250:18;;:::i;:::-;8230:40;8283:5;;;8021:277;;8407:2;8397:8;8394:16;8388:3;8382:4;8379:13;8375:36;8357:2;8347:8;8344:16;8339:2;8333:4;8330:12;8326:35;8310:111;8307:246;;;8463:8;8457:4;8453:19;8444:28;;8498:3;8491:5;8488:14;8485:40;;;8505:18;;:::i;:::-;8485:40;8538:5;;8307:246;8578:42;8616:3;8606:8;8600:4;8597:1;8578:42;:::i;:::-;8563:57;;;;8652:4;8647:3;8643:14;8636:5;8633:25;8630:51;;;8661:18;;:::i;:::-;8630:51;8710:4;8703:5;8699:16;8690:25;;7648:1073;;;;;;:::o;8727:281::-;8785:5;8809:23;8827:4;8809:23;:::i;:::-;8801:31;;8853:25;8869:8;8853:25;:::i;:::-;8841:37;;8897:104;8934:66;8924:8;8918:4;8897:104;:::i;:::-;8888:113;;8727:281;;;;:::o;9014:410::-;9054:7;9077:20;9095:1;9077:20;:::i;:::-;9072:25;;9111:20;9129:1;9111:20;:::i;:::-;9106:25;;9166:1;9163;9159:9;9188:30;9206:11;9188:30;:::i;:::-;9177:41;;9367:1;9358:7;9354:15;9351:1;9348:22;9328:1;9321:9;9301:83;9278:139;;9397:18;;:::i;:::-;9278:139;9062:362;9014:410;;;;:::o;9430:182::-;9570:34;9566:1;9558:6;9554:14;9547:58;9430:182;:::o;9618:366::-;9760:3;9781:67;9845:2;9840:3;9781:67;:::i;:::-;9774:74;;9857:93;9946:3;9857:93;:::i;:::-;9975:2;9970:3;9966:12;9959:19;;9618:366;;;:::o;9990:419::-;10156:4;10194:2;10183:9;10179:18;10171:26;;10243:9;10237:4;10233:20;10229:1;10218:9;10214:17;10207:47;10271:131;10397:4;10271:131;:::i;:::-;10263:139;;9990:419;;;:::o;10415:167::-;10555:19;10551:1;10543:6;10539:14;10532:43;10415:167;:::o;10588:366::-;10730:3;10751:67;10815:2;10810:3;10751:67;:::i;:::-;10744:74;;10827:93;10916:3;10827:93;:::i;:::-;10945:2;10940:3;10936:12;10929:19;;10588:366;;;:::o;10960:419::-;11126:4;11164:2;11153:9;11149:18;11141:26;;11213:9;11207:4;11203:20;11199:1;11188:9;11184:17;11177:47;11241:131;11367:4;11241:131;:::i;:::-;11233:139;;10960:419;;;:::o;11385:163::-;11525:15;11521:1;11513:6;11509:14;11502:39;11385:163;:::o;11554:366::-;11696:3;11717:67;11781:2;11776:3;11717:67;:::i;:::-;11710:74;;11793:93;11882:3;11793:93;:::i;:::-;11911:2;11906:3;11902:12;11895:19;;11554:366;;;:::o;11926:419::-;12092:4;12130:2;12119:9;12115:18;12107:26;;12179:9;12173:4;12169:20;12165:1;12154:9;12150:17;12143:47;12207:131;12333:4;12207:131;:::i;:::-;12199:139;;11926:419;;;:::o;12351:430::-;12494:4;12532:2;12521:9;12517:18;12509:26;;12545:71;12613:1;12602:9;12598:17;12589:6;12545:71;:::i;:::-;12626:72;12694:2;12683:9;12679:18;12670:6;12626:72;:::i;:::-;12708:66;12770:2;12759:9;12755:18;12746:6;12708:66;:::i;:::-;12351:430;;;;;;:::o;12787:170::-;12927:22;12923:1;12915:6;12911:14;12904:46;12787:170;:::o;12963:366::-;13105:3;13126:67;13190:2;13185:3;13126:67;:::i;:::-;13119:74;;13202:93;13291:3;13202:93;:::i;:::-;13320:2;13315:3;13311:12;13304:19;;12963:366;;;:::o;13335:419::-;13501:4;13539:2;13528:9;13524:18;13516:26;;13588:9;13582:4;13578:20;13574:1;13563:9;13559:17;13552:47;13616:131;13742:4;13616:131;:::i;:::-;13608:139;;13335:419;;;:::o;13760:308::-;13869:4;13907:2;13896:9;13892:18;13884:26;;13920:65;13982:1;13971:9;13967:17;13958:6;13920:65;:::i;:::-;13995:66;14057:2;14046:9;14042:18;14033:6;13995:66;:::i;:::-;13760:308;;;;;:::o;14074:169::-;14214:21;14210:1;14202:6;14198:14;14191:45;14074:169;:::o;14249:366::-;14391:3;14412:67;14476:2;14471:3;14412:67;:::i;:::-;14405:74;;14488:93;14577:3;14488:93;:::i;:::-;14606:2;14601:3;14597:12;14590:19;;14249:366;;;:::o;14621:419::-;14787:4;14825:2;14814:9;14810:18;14802:26;;14874:9;14868:4;14864:20;14860:1;14849:9;14845:17;14838:47;14902:131;15028:4;14902:131;:::i;:::-;14894:139;;14621:419;;;:::o;15046:143::-;15103:5;15134:6;15128:13;15119:22;;15150:33;15177:5;15150:33;:::i;:::-;15046:143;;;;:::o;15195:351::-;15265:6;15314:2;15302:9;15293:7;15289:23;15285:32;15282:119;;;15320:79;;:::i;:::-;15282:119;15440:1;15465:64;15521:7;15512:6;15501:9;15497:22;15465:64;:::i;:::-;15455:74;;15411:128;15195:351;;;;:::o;15552:332::-;15673:4;15711:2;15700:9;15696:18;15688:26;;15724:71;15792:1;15781:9;15777:17;15768:6;15724:71;:::i;:::-;15805:72;15873:2;15862:9;15858:18;15849:6;15805:72;:::i;:::-;15552:332;;;;;:::o;15890:85::-;15935:7;15964:5;15953:16;;15890:85;;;:::o;15981:60::-;16009:3;16030:5;16023:12;;15981:60;;;:::o;16047:158::-;16105:9;16138:61;16156:42;16165:32;16191:5;16165:32;:::i;:::-;16156:42;:::i;:::-;16138:61;:::i;:::-;16125:74;;16047:158;;;:::o;16211:147::-;16306:45;16345:5;16306:45;:::i;:::-;16301:3;16294:58;16211:147;;:::o;16364:807::-;16613:4;16651:3;16640:9;16636:19;16628:27;;16665:71;16733:1;16722:9;16718:17;16709:6;16665:71;:::i;:::-;16746:72;16814:2;16803:9;16799:18;16790:6;16746:72;:::i;:::-;16828:80;16904:2;16893:9;16889:18;16880:6;16828:80;:::i;:::-;16918;16994:2;16983:9;16979:18;16970:6;16918:80;:::i;:::-;17008:73;17076:3;17065:9;17061:19;17052:6;17008:73;:::i;:::-;17091;17159:3;17148:9;17144:19;17135:6;17091:73;:::i;:::-;16364:807;;;;;;;;;:::o;17177:143::-;17234:5;17265:6;17259:13;17250:22;;17281:33;17308:5;17281:33;:::i;:::-;17177:143;;;;:::o;17326:663::-;17414:6;17422;17430;17479:2;17467:9;17458:7;17454:23;17450:32;17447:119;;;17485:79;;:::i;:::-;17447:119;17605:1;17630:64;17686:7;17677:6;17666:9;17662:22;17630:64;:::i;:::-;17620:74;;17576:128;17743:2;17769:64;17825:7;17816:6;17805:9;17801:22;17769:64;:::i;:::-;17759:74;;17714:129;17882:2;17908:64;17964:7;17955:6;17944:9;17940:22;17908:64;:::i;:::-;17898:74;;17853:129;17326:663;;;;;:::o;17995:332::-;18116:4;18154:2;18143:9;18139:18;18131:26;;18167:71;18235:1;18224:9;18220:17;18211:6;18167:71;:::i;:::-;18248:72;18316:2;18305:9;18301:18;18292:6;18248:72;:::i;:::-;17995:332;;;;;:::o;18333:116::-;18403:21;18418:5;18403:21;:::i;:::-;18396:5;18393:32;18383:60;;18439:1;18436;18429:12;18383:60;18333:116;:::o;18455:137::-;18509:5;18540:6;18534:13;18525:22;;18556:30;18580:5;18556:30;:::i;:::-;18455:137;;;;:::o;18598:345::-;18665:6;18714:2;18702:9;18693:7;18689:23;18685:32;18682:119;;;18720:79;;:::i;:::-;18682:119;18840:1;18865:61;18918:7;18909:6;18898:9;18894:22;18865:61;:::i;:::-;18855:71;;18811:125;18598:345;;;;:::o;18949:221::-;19089:34;19085:1;19077:6;19073:14;19066:58;19158:4;19153:2;19145:6;19141:15;19134:29;18949:221;:::o;19176:366::-;19318:3;19339:67;19403:2;19398:3;19339:67;:::i;:::-;19332:74;;19415:93;19504:3;19415:93;:::i;:::-;19533:2;19528:3;19524:12;19517:19;;19176:366;;;:::o;19548:419::-;19714:4;19752:2;19741:9;19737:18;19729:26;;19801:9;19795:4;19791:20;19787:1;19776:9;19772:17;19765:47;19829:131;19955:4;19829:131;:::i;:::-;19821:139;;19548:419;;;:::o;19973:147::-;20074:11;20111:3;20096:18;;19973:147;;;;:::o;20126:114::-;;:::o;20246:398::-;20405:3;20426:83;20507:1;20502:3;20426:83;:::i;:::-;20419:90;;20518:93;20607:3;20518:93;:::i;:::-;20636:1;20631:3;20627:11;20620:18;;20246:398;;;:::o;20650:379::-;20834:3;20856:147;20999:3;20856:147;:::i;:::-;20849:154;;21020:3;21013:10;;20650:379;;;:::o;21035:177::-;21175:29;21171:1;21163:6;21159:14;21152:53;21035:177;:::o;21218:366::-;21360:3;21381:67;21445:2;21440:3;21381:67;:::i;:::-;21374:74;;21457:93;21546:3;21457:93;:::i;:::-;21575:2;21570:3;21566:12;21559:19;;21218:366;;;:::o;21590:419::-;21756:4;21794:2;21783:9;21779:18;21771:26;;21843:9;21837:4;21833:20;21829:1;21818:9;21814:17;21807:47;21871:131;21997:4;21871:131;:::i;:::-;21863:139;;21590:419;;;:::o;22015:181::-;22155:33;22151:1;22143:6;22139:14;22132:57;22015:181;:::o;22202:366::-;22344:3;22365:67;22429:2;22424:3;22365:67;:::i;:::-;22358:74;;22441:93;22530:3;22441:93;:::i;:::-;22559:2;22554:3;22550:12;22543:19;;22202:366;;;:::o;22574:419::-;22740:4;22778:2;22767:9;22763:18;22755:26;;22827:9;22821:4;22817:20;22813:1;22802:9;22798:17;22791:47;22855:131;22981:4;22855:131;:::i;:::-;22847:139;;22574:419;;;:::o;22999:182::-;23139:34;23135:1;23127:6;23123:14;23116:58;22999:182;:::o;23187:366::-;23329:3;23350:67;23414:2;23409:3;23350:67;:::i;:::-;23343:74;;23426:93;23515:3;23426:93;:::i;:::-;23544:2;23539:3;23535:12;23528:19;;23187:366;;;:::o;23559:419::-;23725:4;23763:2;23752:9;23748:18;23740:26;;23812:9;23806:4;23802:20;23798:1;23787:9;23783:17;23776:47;23840:131;23966:4;23840:131;:::i;:::-;23832:139;;23559:419;;;:::o;23984:228::-;24124:34;24120:1;24112:6;24108:14;24101:58;24193:11;24188:2;24180:6;24176:15;24169:36;23984:228;:::o;24218:366::-;24360:3;24381:67;24445:2;24440:3;24381:67;:::i;:::-;24374:74;;24457:93;24546:3;24457:93;:::i;:::-;24575:2;24570:3;24566:12;24559:19;;24218:366;;;:::o;24590:419::-;24756:4;24794:2;24783:9;24779:18;24771:26;;24843:9;24837:4;24833:20;24829:1;24818:9;24814:17;24807:47;24871:131;24997:4;24871:131;:::i;:::-;24863:139;;24590:419;;;:::o;25015:170::-;25155:22;25151:1;25143:6;25139:14;25132:46;25015:170;:::o;25191:366::-;25333:3;25354:67;25418:2;25413:3;25354:67;:::i;:::-;25347:74;;25430:93;25519:3;25430:93;:::i;:::-;25548:2;25543:3;25539:12;25532:19;;25191:366;;;:::o;25563:419::-;25729:4;25767:2;25756:9;25752:18;25744:26;;25816:9;25810:4;25806:20;25802:1;25791:9;25787:17;25780:47;25844:131;25970:4;25844:131;:::i;:::-;25836:139;;25563:419;;;:::o;25988:170::-;26128:22;26124:1;26116:6;26112:14;26105:46;25988:170;:::o;26164:366::-;26306:3;26327:67;26391:2;26386:3;26327:67;:::i;:::-;26320:74;;26403:93;26492:3;26403:93;:::i;:::-;26521:2;26516:3;26512:12;26505:19;;26164:366;;;:::o;26536:419::-;26702:4;26740:2;26729:9;26725:18;26717:26;;26789:9;26783:4;26779:20;26775:1;26764:9;26760:17;26753:47;26817:131;26943:4;26817:131;:::i;:::-;26809:139;;26536:419;;;:::o;26961:191::-;27001:3;27020:20;27038:1;27020:20;:::i;:::-;27015:25;;27054:20;27072:1;27054:20;:::i;:::-;27049:25;;27097:1;27094;27090:9;27083:16;;27118:3;27115:1;27112:10;27109:36;;;27125:18;;:::i;:::-;27109:36;26961:191;;;;:::o;27158:176::-;27298:28;27294:1;27286:6;27282:14;27275:52;27158:176;:::o;27340:366::-;27482:3;27503:67;27567:2;27562:3;27503:67;:::i;:::-;27496:74;;27579:93;27668:3;27579:93;:::i;:::-;27697:2;27692:3;27688:12;27681:19;;27340:366;;;:::o;27712:419::-;27878:4;27916:2;27905:9;27901:18;27893:26;;27965:9;27959:4;27955:20;27951:1;27940:9;27936:17;27929:47;27993:131;28119:4;27993:131;:::i;:::-;27985:139;;27712:419;;;:::o;28137:233::-;28176:3;28199:24;28217:5;28199:24;:::i;:::-;28190:33;;28245:66;28238:5;28235:77;28232:103;;28315:18;;:::i;:::-;28232:103;28362:1;28355:5;28351:13;28344:20;;28137:233;;;:::o;28376:194::-;28416:4;28436:20;28454:1;28436:20;:::i;:::-;28431:25;;28470:20;28488:1;28470:20;:::i;:::-;28465:25;;28514:1;28511;28507:9;28499:17;;28538:1;28532:4;28529:11;28526:37;;;28543:18;;:::i;:::-;28526:37;28376:194;;;;:::o;28576:180::-;28624:77;28621:1;28614:88;28721:4;28718:1;28711:15;28745:4;28742:1;28735:15;28762:180;28810:77;28807:1;28800:88;28907:4;28904:1;28897:15;28931:4;28928:1;28921:15;28948:114;29015:6;29049:5;29043:12;29033:22;;28948:114;;;:::o;29068:184::-;29167:11;29201:6;29196:3;29189:19;29241:4;29236:3;29232:14;29217:29;;29068:184;;;;:::o;29258:132::-;29325:4;29348:3;29340:11;;29378:4;29373:3;29369:14;29361:22;;29258:132;;;:::o;29396:108::-;29473:24;29491:5;29473:24;:::i;:::-;29468:3;29461:37;29396:108;;:::o;29510:179::-;29579:10;29600:46;29642:3;29634:6;29600:46;:::i;:::-;29678:4;29673:3;29669:14;29655:28;;29510:179;;;;:::o;29695:113::-;29765:4;29797;29792:3;29788:14;29780:22;;29695:113;;;:::o;29844:732::-;29963:3;29992:54;30040:5;29992:54;:::i;:::-;30062:86;30141:6;30136:3;30062:86;:::i;:::-;30055:93;;30172:56;30222:5;30172:56;:::i;:::-;30251:7;30282:1;30267:284;30292:6;30289:1;30286:13;30267:284;;;30368:6;30362:13;30395:63;30454:3;30439:13;30395:63;:::i;:::-;30388:70;;30481:60;30534:6;30481:60;:::i;:::-;30471:70;;30327:224;30314:1;30311;30307:9;30302:14;;30267:284;;;30271:14;30567:3;30560:10;;29968:608;;;29844:732;;;;:::o;30582:831::-;30845:4;30883:3;30872:9;30868:19;30860:27;;30897:71;30965:1;30954:9;30950:17;30941:6;30897:71;:::i;:::-;30978:80;31054:2;31043:9;31039:18;31030:6;30978:80;:::i;:::-;31105:9;31099:4;31095:20;31090:2;31079:9;31075:18;31068:48;31133:108;31236:4;31227:6;31133:108;:::i;:::-;31125:116;;31251:72;31319:2;31308:9;31304:18;31295:6;31251:72;:::i;:::-;31333:73;31401:3;31390:9;31386:19;31377:6;31333:73;:::i;:::-;30582:831;;;;;;;;:::o;31419:180::-;31467:77;31464:1;31457:88;31564:4;31561:1;31554:15;31588:4;31585:1;31578:15;31605:185;31645:1;31662:20;31680:1;31662:20;:::i;:::-;31657:25;;31696:20;31714:1;31696:20;:::i;:::-;31691:25;;31735:1;31725:35;;31740:18;;:::i;:::-;31725:35;31782:1;31779;31775:9;31770:14;;31605:185;;;;:::o;31796:220::-;31936:34;31932:1;31924:6;31920:14;31913:58;32005:3;32000:2;31992:6;31988:15;31981:28;31796:220;:::o;32022:366::-;32164:3;32185:67;32249:2;32244:3;32185:67;:::i;:::-;32178:74;;32261:93;32350:3;32261:93;:::i;:::-;32379:2;32374:3;32370:12;32363:19;;32022:366;;;:::o;32394:419::-;32560:4;32598:2;32587:9;32583:18;32575:26;;32647:9;32641:4;32637:20;32633:1;32622:9;32618:17;32611:47;32675:131;32801:4;32675:131;:::i;:::-;32667:139;;32394:419;;;:::o;32819:177::-;32959:29;32955:1;32947:6;32943:14;32936:53;32819:177;:::o;33002:366::-;33144:3;33165:67;33229:2;33224:3;33165:67;:::i;:::-;33158:74;;33241:93;33330:3;33241:93;:::i;:::-;33359:2;33354:3;33350:12;33343:19;;33002:366;;;:::o;33374:419::-;33540:4;33578:2;33567:9;33563:18;33555:26;;33627:9;33621:4;33617:20;33613:1;33602:9;33598:17;33591:47;33655:131;33781:4;33655:131;:::i;:::-;33647:139;;33374:419;;;:::o

Swarm Source

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