ETH Price: $3,465.25 (+3.94%)
Gas: 5 Gwei

Token

Barbie (Barbie)
 

Overview

Max Total Supply

1,000,000,000 Barbie

Holders

255

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.01424363901694591 Barbie

Value
$0.00
0x09ee833daa0c5727000c6e87919b5965656488b6
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:
BarbieToken

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-18
*/

// website: https://barbietoken.xyz/
// twitter: @barbie_erc
// twitter: @BarbieTokenERC

 // SPDX-License-Identifier:MIT
pragma solidity ^0.8.10;

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

// Dex Factory contract interface
interface IDexFactory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

// Dex Router contract interface
interface IDexRouter {
    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
        );

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

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

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

    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 = payable(address(0));
    }

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

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

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    mapping(address => bool) public isExcludedFromFee;
    mapping(address => bool) public isExcludedFromMaxTxn;
    mapping(address => bool) public isExcludedFromMaxHolding;
    mapping(address => bool) public isBot;

    string private _name = "Barbie";
    string private _symbol = "Barbie";
    uint8 private _decimals = 18;
    uint256 private _totalSupply = 1_000_000_000 * 1e18;
    
    uint256 public minTokenToSwap = _totalSupply.div(200); // this amount will trigger swap and distribute
    uint256 public maxHoldLimit = _totalSupply.mul(5).div(100); // this is the max wallet holding limit
    uint256 public maxTxnLimit = _totalSupply.div(100); // this is the max transaction limit 
    uint256 public percentDivider = 100; 
    uint256 public launchedAt;

    bool public distributeAndLiquifyStatus; // should be true to turn on to liquidate the pool
    bool public feesStatus; // enable by default
    bool public trading; // once enable can't be disable afterwards

    IDexRouter public dexRouter; // router declaration

    address public dexPair; // pair address declaration 
    address public marketingWallet; // marketing address declaration
    address private constant DEAD = address(0xdead);
    address private constant ZERO = address(0);
 
    uint256 public marketingFeeOnBuying = 0; 
 
    uint256 public marketingFeeOnSelling = 0;   

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    constructor() {
        _balances[owner()] = _totalSupply;
        marketingWallet = owner();

        //exclude owner and this contract from fee
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[address(dexRouter)] = true;

        //exclude owner and this contract from max Txn
        isExcludedFromMaxTxn[owner()] = true;
        isExcludedFromMaxTxn[address(this)] = true;
        isExcludedFromMaxTxn[address(dexRouter)] = true;

        //exclude owner and this contract from max hold limit
        isExcludedFromMaxHolding[owner()] = true;
        isExcludedFromMaxHolding[address(this)] = true;
        isExcludedFromMaxHolding[address(dexRouter)] = true;
        isExcludedFromMaxHolding[dexPair] = true;
        isExcludedFromMaxHolding[marketingWallet] = true;

        emit Transfer(address(0), owner(), _totalSupply);
    }

    //to receive ETH from dexRouter when swapping
    receive() external payable {}

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

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

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

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

    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,
                "$Barbie: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].add(addedValue)
        );
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].sub(
                subtractedValue,
                "$Barbie: decreased allowance or below zero"
            )
        );
        return true;
    }

    function includeOrExcludeFromFee(address account, bool value)
        external
        onlyOwner
    {
        isExcludedFromFee[account] = value;
    }

    function includeOrExcludeFromMaxTxn(address account, bool value)
        external
        onlyOwner
    {
        isExcludedFromMaxTxn[account] = value;
    }

    function includeOrExcludeFromMaxHolding(address account, bool value)
        external
        onlyOwner
    {
        isExcludedFromMaxHolding[account] = value;
    }

    function setMinTokenToSwap(uint256 _amount) external onlyOwner { 
        minTokenToSwap = _amount * 1e18;
    }

    function setMaxHoldLimit(uint256 _amount) external onlyOwner { 
        maxHoldLimit = _amount * 1e18;
    }

    function setMaxTxnLimit(uint256 _amount) external onlyOwner { 
        maxTxnLimit = _amount * 1e18;
    }

    function setBuyFeePercent( 
        uint256 _marketingFee
    ) external onlyOwner {
        marketingFeeOnBuying = _marketingFee;  
    }

    function setSellFeePercent( 
        uint256 _marketingFee
    ) external onlyOwner {
        marketingFeeOnSelling = _marketingFee;  
    }

    function setDistributionStatus(bool _value) public onlyOwner {
        distributeAndLiquifyStatus = _value;
    }

    function enableOrDisableFees(bool _value) external onlyOwner {
        feesStatus = _value;
    }

    function updateAddresses(address _marketingWallet) external onlyOwner {
        marketingWallet = _marketingWallet;
    }

    function setIsBot(address holder, bool exempt)
        external
        onlyOwner
    {
        isBot[holder] = exempt;
    }

    function enableTrading() external onlyOwner {
        require(!trading, "Barbie: already enabled");
        dexRouter = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(dexRouter), _totalSupply);
        dexPair = IDexFactory(dexRouter.factory()).createPair(address(this), dexRouter.WETH());
        dexRouter.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(dexPair).approve(address(dexRouter), type(uint).max);

        trading = true;
        feesStatus = true;
        distributeAndLiquifyStatus = true;
        launchedAt = block.timestamp;
    }

    function removeStuckEth(address _receiver) public onlyOwner {
        payable(_receiver).transfer(address(this).balance);
    }

    function totalBuyFeePerTx(uint256 amount) public view returns (uint256) {
        uint256 fee = amount
            .mul(marketingFeeOnBuying )
            .div(percentDivider);
        return fee;
    }

    function totalSellFeePerTx(uint256 amount) public view returns (uint256) {
        uint256 fee = amount
            .mul(marketingFeeOnSelling)
            .div(percentDivider);
        return fee;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "$Barbie: approve from the zero address");
        require(spender != address(0), "$Barbie: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "$Barbie: transfer from the zero address");
        require(to != address(0), "$Barbie: transfer to the zero address");
        require(amount > 0, "$Barbie: Amount must be greater than zero");
        require(!isBot[from],"Bot detected");

        if (!isExcludedFromMaxTxn[from] && !isExcludedFromMaxTxn[to]) {
            require(amount <= maxTxnLimit, "Barbie: max txn limit exceeds");

            // trading disable till launch
            if (!trading) {
                require(
                    dexPair != from && dexPair != to,
                    "Barbie: trading is disable"
                );
            }
        }

        if (!isExcludedFromMaxHolding[to]) {
            require(
                balanceOf(to).add(amount) <= maxHoldLimit,
                "Barbie: max hold limit exceeds"
            );
        }

        // swap and liquify
        distributeAndLiquify(from, to);

        //indicates if fee should be deducted from transfer
        bool takeFee = true;

        //if any account belongs to isExcludedFromFee account then remove the fee
        if (isExcludedFromFee[from] || isExcludedFromFee[to] || !feesStatus) {
            takeFee = false;
        }

        //transfer amount, it will take tax, burn, liquidity fee
        _tokenTransfer(from, to, amount, takeFee);
    }

    //this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (dexPair == sender && takeFee) {
            uint256 allFee;
            uint256 tTransferAmount; 
                allFee = totalBuyFeePerTx(amount);
                tTransferAmount = amount.sub(allFee); 

            _balances[sender] = _balances[sender].sub(
                amount,
                "Barbie: insufficient balance"
            );
            _balances[recipient] = _balances[recipient].add(tTransferAmount);
            emit Transfer(sender, recipient, tTransferAmount);

            takeTokenFee(sender, allFee);
        } else if (dexPair == recipient && takeFee) {
            uint256 allFee = totalSellFeePerTx(amount);
            uint256 tTransferAmount = amount.sub(allFee);
            _balances[sender] = _balances[sender].sub(
                amount,
                "Barbie: insufficient balance"
            );
            _balances[recipient] = _balances[recipient].add(tTransferAmount);
            emit Transfer(sender, recipient, tTransferAmount);

            takeTokenFee(sender, allFee); 
        } else {
            _balances[sender] = _balances[sender].sub(
                amount,
                "Barbie: insufficient balance"
            );
            _balances[recipient] = _balances[recipient].add(amount);
            emit Transfer(sender, recipient, amount);
        }
    }

    function takeTokenFee(address sender, uint256 amount) private {
        _balances[address(this)] = _balances[address(this)].add(amount);

        emit Transfer(sender, address(this), amount);
    }
 
    // to withdarw ETH from contract
    function withdrawETH(uint256 _amount) external onlyOwner {
        require(address(this).balance >= _amount, "Invalid Amount");
        payable(msg.sender).transfer(_amount);
    }

    // to withdraw ERC20 tokens from contract
    function withdrawToken(IERC20 _token, uint256 _amount) external onlyOwner {
        require(_token.balanceOf(address(this)) >= _amount, "Invalid Amount");
        _token.transfer(msg.sender, _amount);
    }
    function distributeAndLiquify(address from, address to) private { 
        uint256 contractTokenBalance = balanceOf(address(this));

        bool shouldSell = contractTokenBalance >= minTokenToSwap;

        if (
            shouldSell &&
            from != dexPair &&
            distributeAndLiquifyStatus &&
            !(from == address(this) && to == dexPair) // swap 1 time
        ) {
            // approve contract
            _approve(address(this), address(dexRouter), minTokenToSwap);
 

            // now is to lock into liquidty pool
            Utils.swapTokensForEth(address(dexRouter), minTokenToSwap); 
            uint256 ethForMarketing = address(this).balance;

            // sending Eth to Marketing wallet
            if (ethForMarketing > 0) payable(marketingWallet).transfer(ethForMarketing);

           
        }
    }
}

// Library for doing a swap on Dex
library Utils {
    using SafeMath for uint256;

    function swapTokensForEth(address routerAddress, uint256 tokenAmount)
        internal
    {
        IDexRouter dexRouter = IDexRouter(routerAddress);

        // generate the Dex pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        // make the swap
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp + 300
        );
    }

    function addLiquidity(
        address routerAddress,
        address owner,
        uint256 tokenAmount,
        uint256 ethAmount
    ) internal {
        IDexRouter dexRouter = IDexRouter(routerAddress);

        // add the liquidity
        dexRouter.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner,
            block.timestamp + 300
        );
    }
}

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) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributeAndLiquifyStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"enableOrDisableFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feesStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromMaxHolding","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromMaxTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxHolding","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxTxn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeOnBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeOnSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxnLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTokenToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentDivider","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"}],"name":"removeStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setBuyFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"setDistributionStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxHoldLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxTxnLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMinTokenToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setSellFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"totalBuyFeePerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"totalSellFeePerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"updateAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280600681526020017f4261726269650000000000000000000000000000000000000000000000000000815250600790816200004a919062000bca565b506040518060400160405280600681526020017f42617262696500000000000000000000000000000000000000000000000000008152506008908162000091919062000bca565b506012600960006101000a81548160ff021916908360ff1602179055506b033b2e3c9fd0803ce8000000600a55620000db60c8600a54620007e260201b620027ab1790919060201c565b600b55620001156064620001016005600a546200083460201b620027f51790919060201c565b620007e260201b620027ab1790919060201c565b600c55620001356064600a54620007e260201b620027ab1790919060201c565b600d556064600e55600060135560006014553480156200015457600080fd5b5062000165620008b760201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600a546001600062000236620008bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000284620008bf60201b60201c565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000620002da620008bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016004600062000413620008bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560006200054c620008bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000773620008bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a54604051620007d4919062000cc2565b60405180910390a362000f0b565b60006200082c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620008e860201b60201c565b905092915050565b6000808303620008485760009050620008b1565b6000828462000858919062000d0e565b905082848262000869919062000d88565b14620008ac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008a39062000e47565b60405180910390fd5b809150505b92915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000932576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000929919062000ee7565b60405180910390fd5b506000838562000943919062000d88565b9050809150509392505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620009d257607f821691505b602082108103620009e857620009e76200098a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000a527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a13565b62000a5e868362000a13565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000aab62000aa562000a9f8462000a76565b62000a80565b62000a76565b9050919050565b6000819050919050565b62000ac78362000a8a565b62000adf62000ad68262000ab2565b84845462000a20565b825550505050565b600090565b62000af662000ae7565b62000b0381848462000abc565b505050565b5b8181101562000b2b5762000b1f60008262000aec565b60018101905062000b09565b5050565b601f82111562000b7a5762000b4481620009ee565b62000b4f8462000a03565b8101602085101562000b5f578190505b62000b7762000b6e8562000a03565b83018262000b08565b50505b505050565b600082821c905092915050565b600062000b9f6000198460080262000b7f565b1980831691505092915050565b600062000bba838362000b8c565b9150826002028217905092915050565b62000bd58262000950565b67ffffffffffffffff81111562000bf15762000bf06200095b565b5b62000bfd8254620009b9565b62000c0a82828562000b2f565b600060209050601f83116001811462000c42576000841562000c2d578287015190505b62000c39858262000bac565b86555062000ca9565b601f19841662000c5286620009ee565b60005b8281101562000c7c5784890151825560018201915060208501945060208101905062000c55565b8683101562000c9c578489015162000c98601f89168262000b8c565b8355505b6001600288020188555050505b505050505050565b62000cbc8162000a76565b82525050565b600060208201905062000cd9600083018462000cb1565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000d1b8262000a76565b915062000d288362000a76565b925082820262000d388162000a76565b9150828204841483151762000d525762000d5162000cdf565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000d958262000a76565b915062000da28362000a76565b92508262000db55762000db462000d59565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000e2f60218362000dc0565b915062000e3c8262000dd1565b604082019050919050565b6000602082019050818103600083015262000e628162000e20565b9050919050565b60005b8381101562000e8957808201518184015260208101905062000e6c565b60008484015250505050565b6000601f19601f8301169050919050565b600062000eb38262000950565b62000ebf818562000dc0565b935062000ed181856020860162000e69565b62000edc8162000e95565b840191505092915050565b6000602082019050818103600083015262000f03818462000ea6565b905092915050565b614e0c8062000f1b6000396000f3fe6080604052600436106102b25760003560e01c80638a8c523c11610175578063a9059cbb116100dc578063ed42142911610095578063f242ab411161006f578063f242ab4114610adf578063f2fde38b14610b0a578063f4b3dbc314610b33578063fe6f1b0514610b70576102b9565b8063ed42142914610a50578063f097ea1a14610a8d578063f14210a614610ab6576102b9565b8063a9059cbb1461092e578063b0bc2a2d1461096b578063bf56b37114610994578063dd62ed3e146109bf578063ea5b9e85146109fc578063ec44acf214610a25576102b9565b80639b6a27501161012e5780639b6a2750146108245780639e281a981461084d578063a2b8a94714610876578063a457c2d71461089f578063a643c1a0146108dc578063a7c29b4014610905576102b9565b80638a8c523c146107265780638da5cb5b1461073d578063950eb5d51461076857806395d89b411461079157806399b102b5146107bc5780639a36dfa1146107f9576102b9565b80635342acb41161021957806379777b4e116101d257806379777b4e146106145780637c6a9a9c1461063f578063844af78e1461066a57806384ea21bc146106955780638756aabd146106d2578063879dd3c5146106fb576102b9565b80635342acb414610504578063679a3c5914610541578063681aa3621461056a57806370a0823114610595578063715018a6146105d257806375f0a874146105e9576102b9565b80631884f1e61161026b5780631884f1e6146103ce57806323b872dd146103f95780632d12939014610436578063313ce5671461045f578063395093511461048a5780633bbac579146104c7576102b9565b806303c0f5d4146102be57806306fdde03146102e75780630758d92414610312578063095ea7b31461033d5780630a2d140c1461037a57806318160ddd146103a3576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102e560048036038101906102e09190613cdf565b610b9b565b005b3480156102f357600080fd5b506102fc610c8b565b6040516103099190613daf565b60405180910390f35b34801561031e57600080fd5b50610327610d1d565b6040516103349190613e30565b60405180910390f35b34801561034957600080fd5b50610364600480360381019061035f9190613e81565b610d43565b6040516103719190613ed0565b60405180910390f35b34801561038657600080fd5b506103a1600480360381019061039c9190613eeb565b610d61565b005b3480156103af57600080fd5b506103b8610e13565b6040516103c59190613f27565b60405180910390f35b3480156103da57600080fd5b506103e3610e1d565b6040516103f09190613f27565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b9190613f42565b610e23565b60405161042d9190613ed0565b60405180910390f35b34801561044257600080fd5b5061045d60048036038101906104589190613cdf565b610efc565b005b34801561046b57600080fd5b50610474610fec565b6040516104819190613fb1565b60405180910390f35b34801561049657600080fd5b506104b160048036038101906104ac9190613e81565b611003565b6040516104be9190613ed0565b60405180910390f35b3480156104d357600080fd5b506104ee60048036038101906104e99190613fcc565b6110b6565b6040516104fb9190613ed0565b60405180910390f35b34801561051057600080fd5b5061052b60048036038101906105269190613fcc565b6110d6565b6040516105389190613ed0565b60405180910390f35b34801561054d57600080fd5b5061056860048036038101906105639190613fcc565b6110f6565b005b34801561057657600080fd5b5061057f6111d5565b60405161058c9190613f27565b60405180910390f35b3480156105a157600080fd5b506105bc60048036038101906105b79190613fcc565b6111db565b6040516105c99190613f27565b60405180910390f35b3480156105de57600080fd5b506105e7611224565b005b3480156105f557600080fd5b506105fe611377565b60405161060b9190614008565b60405180910390f35b34801561062057600080fd5b5061062961139d565b6040516106369190613ed0565b60405180910390f35b34801561064b57600080fd5b506106546113b0565b6040516106619190613f27565b60405180910390f35b34801561067657600080fd5b5061067f6113b6565b60405161068c9190613f27565b60405180910390f35b3480156106a157600080fd5b506106bc60048036038101906106b79190613fcc565b6113bc565b6040516106c99190613ed0565b60405180910390f35b3480156106de57600080fd5b506106f960048036038101906106f49190614023565b6113dc565b005b34801561070757600080fd5b5061071061148e565b60405161071d9190613ed0565b60405180910390f35b34801561073257600080fd5b5061073b6114a1565b005b34801561074957600080fd5b506107526119e1565b60405161075f9190614008565b60405180910390f35b34801561077457600080fd5b5061078f600480360381019061078a9190614023565b611a0a565b005b34801561079d57600080fd5b506107a6611aa9565b6040516107b39190613daf565b60405180910390f35b3480156107c857600080fd5b506107e360048036038101906107de9190613fcc565b611b3b565b6040516107f09190613ed0565b60405180910390f35b34801561080557600080fd5b5061080e611b5b565b60405161081b9190613f27565b60405180910390f35b34801561083057600080fd5b5061084b60048036038101906108469190614023565b611b61565b005b34801561085957600080fd5b50610874600480360381019061086f919061408e565b611c13565b005b34801561088257600080fd5b5061089d60048036038101906108989190614023565b611de7565b005b3480156108ab57600080fd5b506108c660048036038101906108c19190613e81565b611e86565b6040516108d39190613ed0565b60405180910390f35b3480156108e857600080fd5b5061090360048036038101906108fe9190613fcc565b611f53565b005b34801561091157600080fd5b5061092c60048036038101906109279190613cdf565b61202c565b005b34801561093a57600080fd5b5061095560048036038101906109509190613e81565b61211c565b6040516109629190613ed0565b60405180910390f35b34801561097757600080fd5b50610992600480360381019061098d9190613eeb565b61213a565b005b3480156109a057600080fd5b506109a96121ec565b6040516109b69190613f27565b60405180910390f35b3480156109cb57600080fd5b506109e660048036038101906109e191906140ce565b6121f2565b6040516109f39190613f27565b60405180910390f35b348015610a0857600080fd5b50610a236004803603810190610a1e9190613cdf565b612279565b005b348015610a3157600080fd5b50610a3a612369565b604051610a479190613ed0565b60405180910390f35b348015610a5c57600080fd5b50610a776004803603810190610a729190614023565b61237c565b604051610a849190613f27565b60405180910390f35b348015610a9957600080fd5b50610ab46004803603810190610aaf9190614023565b6123b3565b005b348015610ac257600080fd5b50610add6004803603810190610ad89190614023565b612465565b005b348015610aeb57600080fd5b50610af4612587565b604051610b019190614008565b60405180910390f35b348015610b1657600080fd5b50610b316004803603810190610b2c9190613fcc565b6125ad565b005b348015610b3f57600080fd5b50610b5a6004803603810190610b559190614023565b61276e565b604051610b679190613f27565b60405180910390f35b348015610b7c57600080fd5b50610b856127a5565b604051610b929190613f27565b60405180910390f35b610ba361286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c279061415a565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060078054610c9a906141a9565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc6906141a9565b8015610d135780601f10610ce857610100808354040283529160200191610d13565b820191906000526020600020905b815481529060010190602001808311610cf657829003601f168201915b5050505050905090565b601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d57610d5061286f565b8484612877565b6001905092915050565b610d6961286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ded9061415a565b60405180910390fd5b80601060006101000a81548160ff02191690831515021790555050565b6000600a54905090565b600b5481565b6000610e30848484612a40565b610ef184610e3c61286f565b610eec856040518060600160405280602a8152602001614dad602a9139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ea261286f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f739092919063ffffffff16565b612877565b600190509392505050565b610f0461286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f889061415a565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600960009054906101000a900460ff16905090565b60006110ac61101061286f565b846110a7856002600061102161286f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fd790919063ffffffff16565b612877565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b60036020528060005260406000206000915054906101000a900460ff1681565b6110fe61286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461118b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111829061415a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156111d1573d6000803e3d6000fd5b5050565b600d5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61122c61286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b09061415a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900460ff1681565b60135481565b60145481565b60056020528060005260406000206000915054906101000a900460ff1681565b6113e461286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611471576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114689061415a565b60405180910390fd5b670de0b6b3a7640000816114859190614209565b600c8190555050565b601060019054906101000a900460ff1681565b6114a961286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152d9061415a565b60405180910390fd5b601060029054906101000a900460ff1615611586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157d90614297565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601060036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061160a30601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a54612877565b601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169b91906142cc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611724573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174891906142cc565b6040518363ffffffff1660e01b81526004016117659291906142f9565b6020604051808303816000875af1158015611784573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a891906142cc565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611831306111db565b60008061183c6119e1565b426040518863ffffffff1660e01b815260040161185e9695949392919061435d565b60606040518083038185885af115801561187c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118a191906143d3565b505050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611943929190614426565b6020604051808303816000875af1158015611962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119869190614464565b506001601060026101000a81548160ff0219169083151502179055506001601060016101000a81548160ff0219169083151502179055506001601060006101000a81548160ff02191690831515021790555042600f81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611a1261286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a969061415a565b60405180910390fd5b8060138190555050565b606060088054611ab8906141a9565b80601f0160208091040260200160405190810160405280929190818152602001828054611ae4906141a9565b8015611b315780601f10611b0657610100808354040283529160200191611b31565b820191906000526020600020905b815481529060010190602001808311611b1457829003601f168201915b5050505050905090565b60046020528060005260406000206000915054906101000a900460ff1681565b600c5481565b611b6961286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bed9061415a565b60405180910390fd5b670de0b6b3a764000081611c0a9190614209565b600d8190555050565b611c1b61286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9f9061415a565b60405180910390fd5b808273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611ce29190614008565b602060405180830381865afa158015611cff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d239190614491565b1015611d64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5b9061450a565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611d9f929190614426565b6020604051808303816000875af1158015611dbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de29190614464565b505050565b611def61286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e739061415a565b60405180910390fd5b8060148190555050565b6000611f49611e9361286f565b84611f44856040518060600160405280602a8152602001614d83602a913960026000611ebd61286f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f739092919063ffffffff16565b612877565b6001905092915050565b611f5b61286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdf9061415a565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61203461286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b89061415a565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061213061212961286f565b8484612a40565b6001905092915050565b61214261286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c69061415a565b60405180910390fd5b80601060016101000a81548160ff02191690831515021790555050565b600f5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61228161286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461230e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123059061415a565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601060029054906101000a900460ff1681565b6000806123a8600e5461239a601354866127f590919063ffffffff16565b6127ab90919063ffffffff16565b905080915050919050565b6123bb61286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243f9061415a565b60405180910390fd5b670de0b6b3a76400008161245c9190614209565b600b8190555050565b61246d61286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f19061415a565b60405180910390fd5b8047101561253d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125349061450a565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612583573d6000803e3d6000fd5b5050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6125b561286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612642576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126399061415a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036126b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a89061459c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008061279a600e5461278c601454866127f590919063ffffffff16565b6127ab90919063ffffffff16565b905080915050919050565b600e5481565b60006127ed83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613035565b905092915050565b60008083036128075760009050612869565b600082846128159190614209565b905082848261282491906145eb565b14612864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285b9061468e565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128dd90614720565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294c906147b2565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612a339190613f27565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612aaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aa690614844565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b15906148d6565b60405180910390fd5b60008111612b61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5890614968565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612be5906149d4565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c925750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ddd57600d54811115612cdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cd390614a40565b60405180910390fd5b601060029054906101000a900460ff16612ddc578273ffffffffffffffffffffffffffffffffffffffff16601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015612d9c57508173ffffffffffffffffffffffffffffffffffffffff16601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b612ddb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dd290614aac565b60405180910390fd5b5b5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612e8e57600c54612e4c82612e3e856111db565b612fd790919063ffffffff16565b1115612e8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e8490614b18565b60405180910390fd5b5b612e988383613098565b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f3f5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612f575750601060019054906101000a900460ff16155b15612f6157600090505b612f6d84848484613295565b50505050565b6000838311158290612fbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fb29190613daf565b60405180910390fd5b5060008385612fca9190614b38565b9050809150509392505050565b6000808284612fe69190614b6c565b90508381101561302b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161302290614bec565b60405180910390fd5b8091505092915050565b6000808311829061307c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130739190613daf565b60405180910390fd5b506000838561308b91906145eb565b9050809150509392505050565b60006130a3306111db565b90506000600b54821015905080801561310a5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156131225750601060009054906101000a900460ff165b80156131b357503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156131b15750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b155b1561328f576131e730601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b54612877565b613215601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b54613916565b6000479050600081111561328d57601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561328b573d6000803e3d6000fd5b505b505b50505050565b8373ffffffffffffffffffffffffffffffffffffffff16601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156132ef5750805b156134ee576000806133008461237c565b91506133158285613afc90919063ffffffff16565b90506133a0846040518060400160405280601c81526020017f4261726269653a20696e73756666696369656e742062616c616e636500000000815250600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f739092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061343581600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fd790919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134d59190613f27565b60405180910390a36134e78683613b46565b5050613910565b8273ffffffffffffffffffffffffffffffffffffffff16601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156135485750805b156137485760006135588361276e565b9050600061356f8285613afc90919063ffffffff16565b90506135fa846040518060400160405280601c81526020017f4261726269653a20696e73756666696369656e742062616c616e636500000000815250600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f739092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061368f81600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fd790919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161372f9190613f27565b60405180910390a36137418683613b46565b505061390f565b6137d1826040518060400160405280601c81526020017f4261726269653a20696e73756666696369656e742062616c616e636500000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f739092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061386682600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fd790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516139069190613f27565b60405180910390a35b5b50505050565b60008290506000600267ffffffffffffffff81111561393857613937614c0c565b5b6040519080825280602002602001820160405280156139665781602001602082028036833780820191505090505b509050308160008151811061397e5761397d614c3b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a2791906142cc565b81600181518110613a3b57613a3a614c3b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663791ac947846000843061012c42613aa49190614b6c565b6040518663ffffffff1660e01b8152600401613ac4959493929190614d28565b600060405180830381600087803b158015613ade57600080fd5b505af1158015613af2573d6000803e3d6000fd5b5050505050505050565b6000613b3e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612f73565b905092915050565b613b9881600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fd790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613c389190613f27565b60405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613c7482613c49565b9050919050565b613c8481613c69565b8114613c8f57600080fd5b50565b600081359050613ca181613c7b565b92915050565b60008115159050919050565b613cbc81613ca7565b8114613cc757600080fd5b50565b600081359050613cd981613cb3565b92915050565b60008060408385031215613cf657613cf5613c44565b5b6000613d0485828601613c92565b9250506020613d1585828601613cca565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613d59578082015181840152602081019050613d3e565b60008484015250505050565b6000601f19601f8301169050919050565b6000613d8182613d1f565b613d8b8185613d2a565b9350613d9b818560208601613d3b565b613da481613d65565b840191505092915050565b60006020820190508181036000830152613dc98184613d76565b905092915050565b6000819050919050565b6000613df6613df1613dec84613c49565b613dd1565b613c49565b9050919050565b6000613e0882613ddb565b9050919050565b6000613e1a82613dfd565b9050919050565b613e2a81613e0f565b82525050565b6000602082019050613e456000830184613e21565b92915050565b6000819050919050565b613e5e81613e4b565b8114613e6957600080fd5b50565b600081359050613e7b81613e55565b92915050565b60008060408385031215613e9857613e97613c44565b5b6000613ea685828601613c92565b9250506020613eb785828601613e6c565b9150509250929050565b613eca81613ca7565b82525050565b6000602082019050613ee56000830184613ec1565b92915050565b600060208284031215613f0157613f00613c44565b5b6000613f0f84828501613cca565b91505092915050565b613f2181613e4b565b82525050565b6000602082019050613f3c6000830184613f18565b92915050565b600080600060608486031215613f5b57613f5a613c44565b5b6000613f6986828701613c92565b9350506020613f7a86828701613c92565b9250506040613f8b86828701613e6c565b9150509250925092565b600060ff82169050919050565b613fab81613f95565b82525050565b6000602082019050613fc66000830184613fa2565b92915050565b600060208284031215613fe257613fe1613c44565b5b6000613ff084828501613c92565b91505092915050565b61400281613c69565b82525050565b600060208201905061401d6000830184613ff9565b92915050565b60006020828403121561403957614038613c44565b5b600061404784828501613e6c565b91505092915050565b600061405b82613c69565b9050919050565b61406b81614050565b811461407657600080fd5b50565b60008135905061408881614062565b92915050565b600080604083850312156140a5576140a4613c44565b5b60006140b385828601614079565b92505060206140c485828601613e6c565b9150509250929050565b600080604083850312156140e5576140e4613c44565b5b60006140f385828601613c92565b925050602061410485828601613c92565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614144602083613d2a565b915061414f8261410e565b602082019050919050565b6000602082019050818103600083015261417381614137565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806141c157607f821691505b6020821081036141d4576141d361417a565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061421482613e4b565b915061421f83613e4b565b925082820261422d81613e4b565b91508282048414831517614244576142436141da565b5b5092915050565b7f4261726269653a20616c726561647920656e61626c6564000000000000000000600082015250565b6000614281601783613d2a565b915061428c8261424b565b602082019050919050565b600060208201905081810360008301526142b081614274565b9050919050565b6000815190506142c681613c7b565b92915050565b6000602082840312156142e2576142e1613c44565b5b60006142f0848285016142b7565b91505092915050565b600060408201905061430e6000830185613ff9565b61431b6020830184613ff9565b9392505050565b6000819050919050565b600061434761434261433d84614322565b613dd1565b613e4b565b9050919050565b6143578161432c565b82525050565b600060c0820190506143726000830189613ff9565b61437f6020830188613f18565b61438c604083018761434e565b614399606083018661434e565b6143a66080830185613ff9565b6143b360a0830184613f18565b979650505050505050565b6000815190506143cd81613e55565b92915050565b6000806000606084860312156143ec576143eb613c44565b5b60006143fa868287016143be565b935050602061440b868287016143be565b925050604061441c868287016143be565b9150509250925092565b600060408201905061443b6000830185613ff9565b6144486020830184613f18565b9392505050565b60008151905061445e81613cb3565b92915050565b60006020828403121561447a57614479613c44565b5b60006144888482850161444f565b91505092915050565b6000602082840312156144a7576144a6613c44565b5b60006144b5848285016143be565b91505092915050565b7f496e76616c696420416d6f756e74000000000000000000000000000000000000600082015250565b60006144f4600e83613d2a565b91506144ff826144be565b602082019050919050565b60006020820190508181036000830152614523816144e7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614586602683613d2a565b91506145918261452a565b604082019050919050565b600060208201905081810360008301526145b581614579565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006145f682613e4b565b915061460183613e4b565b925082614611576146106145bc565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614678602183613d2a565b91506146838261461c565b604082019050919050565b600060208201905081810360008301526146a78161466b565b9050919050565b7f244261726269653a20617070726f76652066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061470a602683613d2a565b9150614715826146ae565b604082019050919050565b60006020820190508181036000830152614739816146fd565b9050919050565b7f244261726269653a20617070726f766520746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061479c602483613d2a565b91506147a782614740565b604082019050919050565b600060208201905081810360008301526147cb8161478f565b9050919050565b7f244261726269653a207472616e736665722066726f6d20746865207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b600061482e602783613d2a565b9150614839826147d2565b604082019050919050565b6000602082019050818103600083015261485d81614821565b9050919050565b7f244261726269653a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006148c0602583613d2a565b91506148cb82614864565b604082019050919050565b600060208201905081810360008301526148ef816148b3565b9050919050565b7f244261726269653a20416d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614952602983613d2a565b915061495d826148f6565b604082019050919050565b6000602082019050818103600083015261498181614945565b9050919050565b7f426f742064657465637465640000000000000000000000000000000000000000600082015250565b60006149be600c83613d2a565b91506149c982614988565b602082019050919050565b600060208201905081810360008301526149ed816149b1565b9050919050565b7f4261726269653a206d61782074786e206c696d69742065786365656473000000600082015250565b6000614a2a601d83613d2a565b9150614a35826149f4565b602082019050919050565b60006020820190508181036000830152614a5981614a1d565b9050919050565b7f4261726269653a2074726164696e672069732064697361626c65000000000000600082015250565b6000614a96601a83613d2a565b9150614aa182614a60565b602082019050919050565b60006020820190508181036000830152614ac581614a89565b9050919050565b7f4261726269653a206d617820686f6c64206c696d697420657863656564730000600082015250565b6000614b02601e83613d2a565b9150614b0d82614acc565b602082019050919050565b60006020820190508181036000830152614b3181614af5565b9050919050565b6000614b4382613e4b565b9150614b4e83613e4b565b9250828203905081811115614b6657614b656141da565b5b92915050565b6000614b7782613e4b565b9150614b8283613e4b565b9250828201905080821115614b9a57614b996141da565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614bd6601b83613d2a565b9150614be182614ba0565b602082019050919050565b60006020820190508181036000830152614c0581614bc9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c9f81613c69565b82525050565b6000614cb18383614c96565b60208301905092915050565b6000602082019050919050565b6000614cd582614c6a565b614cdf8185614c75565b9350614cea83614c86565b8060005b83811015614d1b578151614d028882614ca5565b9750614d0d83614cbd565b925050600181019050614cee565b5085935050505092915050565b600060a082019050614d3d6000830188613f18565b614d4a602083018761434e565b8181036040830152614d5c8186614cca565b9050614d6b6060830185613ff9565b614d786080830184613f18565b969550505050505056fe244261726269653a2064656372656173656420616c6c6f77616e6365206f722062656c6f77207a65726f244261726269653a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207e8d7cc07cac507576ac5ee3c9b86a039682ca3ff04887fb26198c12416a978e64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102b25760003560e01c80638a8c523c11610175578063a9059cbb116100dc578063ed42142911610095578063f242ab411161006f578063f242ab4114610adf578063f2fde38b14610b0a578063f4b3dbc314610b33578063fe6f1b0514610b70576102b9565b8063ed42142914610a50578063f097ea1a14610a8d578063f14210a614610ab6576102b9565b8063a9059cbb1461092e578063b0bc2a2d1461096b578063bf56b37114610994578063dd62ed3e146109bf578063ea5b9e85146109fc578063ec44acf214610a25576102b9565b80639b6a27501161012e5780639b6a2750146108245780639e281a981461084d578063a2b8a94714610876578063a457c2d71461089f578063a643c1a0146108dc578063a7c29b4014610905576102b9565b80638a8c523c146107265780638da5cb5b1461073d578063950eb5d51461076857806395d89b411461079157806399b102b5146107bc5780639a36dfa1146107f9576102b9565b80635342acb41161021957806379777b4e116101d257806379777b4e146106145780637c6a9a9c1461063f578063844af78e1461066a57806384ea21bc146106955780638756aabd146106d2578063879dd3c5146106fb576102b9565b80635342acb414610504578063679a3c5914610541578063681aa3621461056a57806370a0823114610595578063715018a6146105d257806375f0a874146105e9576102b9565b80631884f1e61161026b5780631884f1e6146103ce57806323b872dd146103f95780632d12939014610436578063313ce5671461045f578063395093511461048a5780633bbac579146104c7576102b9565b806303c0f5d4146102be57806306fdde03146102e75780630758d92414610312578063095ea7b31461033d5780630a2d140c1461037a57806318160ddd146103a3576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102e560048036038101906102e09190613cdf565b610b9b565b005b3480156102f357600080fd5b506102fc610c8b565b6040516103099190613daf565b60405180910390f35b34801561031e57600080fd5b50610327610d1d565b6040516103349190613e30565b60405180910390f35b34801561034957600080fd5b50610364600480360381019061035f9190613e81565b610d43565b6040516103719190613ed0565b60405180910390f35b34801561038657600080fd5b506103a1600480360381019061039c9190613eeb565b610d61565b005b3480156103af57600080fd5b506103b8610e13565b6040516103c59190613f27565b60405180910390f35b3480156103da57600080fd5b506103e3610e1d565b6040516103f09190613f27565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b9190613f42565b610e23565b60405161042d9190613ed0565b60405180910390f35b34801561044257600080fd5b5061045d60048036038101906104589190613cdf565b610efc565b005b34801561046b57600080fd5b50610474610fec565b6040516104819190613fb1565b60405180910390f35b34801561049657600080fd5b506104b160048036038101906104ac9190613e81565b611003565b6040516104be9190613ed0565b60405180910390f35b3480156104d357600080fd5b506104ee60048036038101906104e99190613fcc565b6110b6565b6040516104fb9190613ed0565b60405180910390f35b34801561051057600080fd5b5061052b60048036038101906105269190613fcc565b6110d6565b6040516105389190613ed0565b60405180910390f35b34801561054d57600080fd5b5061056860048036038101906105639190613fcc565b6110f6565b005b34801561057657600080fd5b5061057f6111d5565b60405161058c9190613f27565b60405180910390f35b3480156105a157600080fd5b506105bc60048036038101906105b79190613fcc565b6111db565b6040516105c99190613f27565b60405180910390f35b3480156105de57600080fd5b506105e7611224565b005b3480156105f557600080fd5b506105fe611377565b60405161060b9190614008565b60405180910390f35b34801561062057600080fd5b5061062961139d565b6040516106369190613ed0565b60405180910390f35b34801561064b57600080fd5b506106546113b0565b6040516106619190613f27565b60405180910390f35b34801561067657600080fd5b5061067f6113b6565b60405161068c9190613f27565b60405180910390f35b3480156106a157600080fd5b506106bc60048036038101906106b79190613fcc565b6113bc565b6040516106c99190613ed0565b60405180910390f35b3480156106de57600080fd5b506106f960048036038101906106f49190614023565b6113dc565b005b34801561070757600080fd5b5061071061148e565b60405161071d9190613ed0565b60405180910390f35b34801561073257600080fd5b5061073b6114a1565b005b34801561074957600080fd5b506107526119e1565b60405161075f9190614008565b60405180910390f35b34801561077457600080fd5b5061078f600480360381019061078a9190614023565b611a0a565b005b34801561079d57600080fd5b506107a6611aa9565b6040516107b39190613daf565b60405180910390f35b3480156107c857600080fd5b506107e360048036038101906107de9190613fcc565b611b3b565b6040516107f09190613ed0565b60405180910390f35b34801561080557600080fd5b5061080e611b5b565b60405161081b9190613f27565b60405180910390f35b34801561083057600080fd5b5061084b60048036038101906108469190614023565b611b61565b005b34801561085957600080fd5b50610874600480360381019061086f919061408e565b611c13565b005b34801561088257600080fd5b5061089d60048036038101906108989190614023565b611de7565b005b3480156108ab57600080fd5b506108c660048036038101906108c19190613e81565b611e86565b6040516108d39190613ed0565b60405180910390f35b3480156108e857600080fd5b5061090360048036038101906108fe9190613fcc565b611f53565b005b34801561091157600080fd5b5061092c60048036038101906109279190613cdf565b61202c565b005b34801561093a57600080fd5b5061095560048036038101906109509190613e81565b61211c565b6040516109629190613ed0565b60405180910390f35b34801561097757600080fd5b50610992600480360381019061098d9190613eeb565b61213a565b005b3480156109a057600080fd5b506109a96121ec565b6040516109b69190613f27565b60405180910390f35b3480156109cb57600080fd5b506109e660048036038101906109e191906140ce565b6121f2565b6040516109f39190613f27565b60405180910390f35b348015610a0857600080fd5b50610a236004803603810190610a1e9190613cdf565b612279565b005b348015610a3157600080fd5b50610a3a612369565b604051610a479190613ed0565b60405180910390f35b348015610a5c57600080fd5b50610a776004803603810190610a729190614023565b61237c565b604051610a849190613f27565b60405180910390f35b348015610a9957600080fd5b50610ab46004803603810190610aaf9190614023565b6123b3565b005b348015610ac257600080fd5b50610add6004803603810190610ad89190614023565b612465565b005b348015610aeb57600080fd5b50610af4612587565b604051610b019190614008565b60405180910390f35b348015610b1657600080fd5b50610b316004803603810190610b2c9190613fcc565b6125ad565b005b348015610b3f57600080fd5b50610b5a6004803603810190610b559190614023565b61276e565b604051610b679190613f27565b60405180910390f35b348015610b7c57600080fd5b50610b856127a5565b604051610b929190613f27565b60405180910390f35b610ba361286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c279061415a565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060078054610c9a906141a9565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc6906141a9565b8015610d135780601f10610ce857610100808354040283529160200191610d13565b820191906000526020600020905b815481529060010190602001808311610cf657829003601f168201915b5050505050905090565b601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d57610d5061286f565b8484612877565b6001905092915050565b610d6961286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ded9061415a565b60405180910390fd5b80601060006101000a81548160ff02191690831515021790555050565b6000600a54905090565b600b5481565b6000610e30848484612a40565b610ef184610e3c61286f565b610eec856040518060600160405280602a8152602001614dad602a9139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ea261286f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f739092919063ffffffff16565b612877565b600190509392505050565b610f0461286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f889061415a565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600960009054906101000a900460ff16905090565b60006110ac61101061286f565b846110a7856002600061102161286f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fd790919063ffffffff16565b612877565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b60036020528060005260406000206000915054906101000a900460ff1681565b6110fe61286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461118b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111829061415a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156111d1573d6000803e3d6000fd5b5050565b600d5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61122c61286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b09061415a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900460ff1681565b60135481565b60145481565b60056020528060005260406000206000915054906101000a900460ff1681565b6113e461286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611471576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114689061415a565b60405180910390fd5b670de0b6b3a7640000816114859190614209565b600c8190555050565b601060019054906101000a900460ff1681565b6114a961286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152d9061415a565b60405180910390fd5b601060029054906101000a900460ff1615611586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157d90614297565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601060036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061160a30601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a54612877565b601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169b91906142cc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611724573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174891906142cc565b6040518363ffffffff1660e01b81526004016117659291906142f9565b6020604051808303816000875af1158015611784573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a891906142cc565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611831306111db565b60008061183c6119e1565b426040518863ffffffff1660e01b815260040161185e9695949392919061435d565b60606040518083038185885af115801561187c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118a191906143d3565b505050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611943929190614426565b6020604051808303816000875af1158015611962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119869190614464565b506001601060026101000a81548160ff0219169083151502179055506001601060016101000a81548160ff0219169083151502179055506001601060006101000a81548160ff02191690831515021790555042600f81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611a1261286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a969061415a565b60405180910390fd5b8060138190555050565b606060088054611ab8906141a9565b80601f0160208091040260200160405190810160405280929190818152602001828054611ae4906141a9565b8015611b315780601f10611b0657610100808354040283529160200191611b31565b820191906000526020600020905b815481529060010190602001808311611b1457829003601f168201915b5050505050905090565b60046020528060005260406000206000915054906101000a900460ff1681565b600c5481565b611b6961286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bed9061415a565b60405180910390fd5b670de0b6b3a764000081611c0a9190614209565b600d8190555050565b611c1b61286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9f9061415a565b60405180910390fd5b808273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611ce29190614008565b602060405180830381865afa158015611cff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d239190614491565b1015611d64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5b9061450a565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611d9f929190614426565b6020604051808303816000875af1158015611dbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de29190614464565b505050565b611def61286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e739061415a565b60405180910390fd5b8060148190555050565b6000611f49611e9361286f565b84611f44856040518060600160405280602a8152602001614d83602a913960026000611ebd61286f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f739092919063ffffffff16565b612877565b6001905092915050565b611f5b61286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdf9061415a565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61203461286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b89061415a565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061213061212961286f565b8484612a40565b6001905092915050565b61214261286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c69061415a565b60405180910390fd5b80601060016101000a81548160ff02191690831515021790555050565b600f5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61228161286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461230e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123059061415a565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601060029054906101000a900460ff1681565b6000806123a8600e5461239a601354866127f590919063ffffffff16565b6127ab90919063ffffffff16565b905080915050919050565b6123bb61286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243f9061415a565b60405180910390fd5b670de0b6b3a76400008161245c9190614209565b600b8190555050565b61246d61286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f19061415a565b60405180910390fd5b8047101561253d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125349061450a565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612583573d6000803e3d6000fd5b5050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6125b561286f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612642576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126399061415a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036126b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a89061459c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008061279a600e5461278c601454866127f590919063ffffffff16565b6127ab90919063ffffffff16565b905080915050919050565b600e5481565b60006127ed83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613035565b905092915050565b60008083036128075760009050612869565b600082846128159190614209565b905082848261282491906145eb565b14612864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285b9061468e565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128dd90614720565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294c906147b2565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612a339190613f27565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612aaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aa690614844565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b15906148d6565b60405180910390fd5b60008111612b61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5890614968565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612be5906149d4565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c925750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ddd57600d54811115612cdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cd390614a40565b60405180910390fd5b601060029054906101000a900460ff16612ddc578273ffffffffffffffffffffffffffffffffffffffff16601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015612d9c57508173ffffffffffffffffffffffffffffffffffffffff16601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b612ddb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dd290614aac565b60405180910390fd5b5b5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612e8e57600c54612e4c82612e3e856111db565b612fd790919063ffffffff16565b1115612e8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e8490614b18565b60405180910390fd5b5b612e988383613098565b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f3f5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612f575750601060019054906101000a900460ff16155b15612f6157600090505b612f6d84848484613295565b50505050565b6000838311158290612fbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fb29190613daf565b60405180910390fd5b5060008385612fca9190614b38565b9050809150509392505050565b6000808284612fe69190614b6c565b90508381101561302b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161302290614bec565b60405180910390fd5b8091505092915050565b6000808311829061307c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130739190613daf565b60405180910390fd5b506000838561308b91906145eb565b9050809150509392505050565b60006130a3306111db565b90506000600b54821015905080801561310a5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156131225750601060009054906101000a900460ff165b80156131b357503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156131b15750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b155b1561328f576131e730601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b54612877565b613215601060039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b54613916565b6000479050600081111561328d57601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561328b573d6000803e3d6000fd5b505b505b50505050565b8373ffffffffffffffffffffffffffffffffffffffff16601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156132ef5750805b156134ee576000806133008461237c565b91506133158285613afc90919063ffffffff16565b90506133a0846040518060400160405280601c81526020017f4261726269653a20696e73756666696369656e742062616c616e636500000000815250600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f739092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061343581600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fd790919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134d59190613f27565b60405180910390a36134e78683613b46565b5050613910565b8273ffffffffffffffffffffffffffffffffffffffff16601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156135485750805b156137485760006135588361276e565b9050600061356f8285613afc90919063ffffffff16565b90506135fa846040518060400160405280601c81526020017f4261726269653a20696e73756666696369656e742062616c616e636500000000815250600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f739092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061368f81600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fd790919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161372f9190613f27565b60405180910390a36137418683613b46565b505061390f565b6137d1826040518060400160405280601c81526020017f4261726269653a20696e73756666696369656e742062616c616e636500000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f739092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061386682600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fd790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516139069190613f27565b60405180910390a35b5b50505050565b60008290506000600267ffffffffffffffff81111561393857613937614c0c565b5b6040519080825280602002602001820160405280156139665781602001602082028036833780820191505090505b509050308160008151811061397e5761397d614c3b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a2791906142cc565b81600181518110613a3b57613a3a614c3b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663791ac947846000843061012c42613aa49190614b6c565b6040518663ffffffff1660e01b8152600401613ac4959493929190614d28565b600060405180830381600087803b158015613ade57600080fd5b505af1158015613af2573d6000803e3d6000fd5b5050505050505050565b6000613b3e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612f73565b905092915050565b613b9881600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fd790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613c389190613f27565b60405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613c7482613c49565b9050919050565b613c8481613c69565b8114613c8f57600080fd5b50565b600081359050613ca181613c7b565b92915050565b60008115159050919050565b613cbc81613ca7565b8114613cc757600080fd5b50565b600081359050613cd981613cb3565b92915050565b60008060408385031215613cf657613cf5613c44565b5b6000613d0485828601613c92565b9250506020613d1585828601613cca565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613d59578082015181840152602081019050613d3e565b60008484015250505050565b6000601f19601f8301169050919050565b6000613d8182613d1f565b613d8b8185613d2a565b9350613d9b818560208601613d3b565b613da481613d65565b840191505092915050565b60006020820190508181036000830152613dc98184613d76565b905092915050565b6000819050919050565b6000613df6613df1613dec84613c49565b613dd1565b613c49565b9050919050565b6000613e0882613ddb565b9050919050565b6000613e1a82613dfd565b9050919050565b613e2a81613e0f565b82525050565b6000602082019050613e456000830184613e21565b92915050565b6000819050919050565b613e5e81613e4b565b8114613e6957600080fd5b50565b600081359050613e7b81613e55565b92915050565b60008060408385031215613e9857613e97613c44565b5b6000613ea685828601613c92565b9250506020613eb785828601613e6c565b9150509250929050565b613eca81613ca7565b82525050565b6000602082019050613ee56000830184613ec1565b92915050565b600060208284031215613f0157613f00613c44565b5b6000613f0f84828501613cca565b91505092915050565b613f2181613e4b565b82525050565b6000602082019050613f3c6000830184613f18565b92915050565b600080600060608486031215613f5b57613f5a613c44565b5b6000613f6986828701613c92565b9350506020613f7a86828701613c92565b9250506040613f8b86828701613e6c565b9150509250925092565b600060ff82169050919050565b613fab81613f95565b82525050565b6000602082019050613fc66000830184613fa2565b92915050565b600060208284031215613fe257613fe1613c44565b5b6000613ff084828501613c92565b91505092915050565b61400281613c69565b82525050565b600060208201905061401d6000830184613ff9565b92915050565b60006020828403121561403957614038613c44565b5b600061404784828501613e6c565b91505092915050565b600061405b82613c69565b9050919050565b61406b81614050565b811461407657600080fd5b50565b60008135905061408881614062565b92915050565b600080604083850312156140a5576140a4613c44565b5b60006140b385828601614079565b92505060206140c485828601613e6c565b9150509250929050565b600080604083850312156140e5576140e4613c44565b5b60006140f385828601613c92565b925050602061410485828601613c92565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614144602083613d2a565b915061414f8261410e565b602082019050919050565b6000602082019050818103600083015261417381614137565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806141c157607f821691505b6020821081036141d4576141d361417a565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061421482613e4b565b915061421f83613e4b565b925082820261422d81613e4b565b91508282048414831517614244576142436141da565b5b5092915050565b7f4261726269653a20616c726561647920656e61626c6564000000000000000000600082015250565b6000614281601783613d2a565b915061428c8261424b565b602082019050919050565b600060208201905081810360008301526142b081614274565b9050919050565b6000815190506142c681613c7b565b92915050565b6000602082840312156142e2576142e1613c44565b5b60006142f0848285016142b7565b91505092915050565b600060408201905061430e6000830185613ff9565b61431b6020830184613ff9565b9392505050565b6000819050919050565b600061434761434261433d84614322565b613dd1565b613e4b565b9050919050565b6143578161432c565b82525050565b600060c0820190506143726000830189613ff9565b61437f6020830188613f18565b61438c604083018761434e565b614399606083018661434e565b6143a66080830185613ff9565b6143b360a0830184613f18565b979650505050505050565b6000815190506143cd81613e55565b92915050565b6000806000606084860312156143ec576143eb613c44565b5b60006143fa868287016143be565b935050602061440b868287016143be565b925050604061441c868287016143be565b9150509250925092565b600060408201905061443b6000830185613ff9565b6144486020830184613f18565b9392505050565b60008151905061445e81613cb3565b92915050565b60006020828403121561447a57614479613c44565b5b60006144888482850161444f565b91505092915050565b6000602082840312156144a7576144a6613c44565b5b60006144b5848285016143be565b91505092915050565b7f496e76616c696420416d6f756e74000000000000000000000000000000000000600082015250565b60006144f4600e83613d2a565b91506144ff826144be565b602082019050919050565b60006020820190508181036000830152614523816144e7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614586602683613d2a565b91506145918261452a565b604082019050919050565b600060208201905081810360008301526145b581614579565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006145f682613e4b565b915061460183613e4b565b925082614611576146106145bc565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614678602183613d2a565b91506146838261461c565b604082019050919050565b600060208201905081810360008301526146a78161466b565b9050919050565b7f244261726269653a20617070726f76652066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061470a602683613d2a565b9150614715826146ae565b604082019050919050565b60006020820190508181036000830152614739816146fd565b9050919050565b7f244261726269653a20617070726f766520746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061479c602483613d2a565b91506147a782614740565b604082019050919050565b600060208201905081810360008301526147cb8161478f565b9050919050565b7f244261726269653a207472616e736665722066726f6d20746865207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b600061482e602783613d2a565b9150614839826147d2565b604082019050919050565b6000602082019050818103600083015261485d81614821565b9050919050565b7f244261726269653a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006148c0602583613d2a565b91506148cb82614864565b604082019050919050565b600060208201905081810360008301526148ef816148b3565b9050919050565b7f244261726269653a20416d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614952602983613d2a565b915061495d826148f6565b604082019050919050565b6000602082019050818103600083015261498181614945565b9050919050565b7f426f742064657465637465640000000000000000000000000000000000000000600082015250565b60006149be600c83613d2a565b91506149c982614988565b602082019050919050565b600060208201905081810360008301526149ed816149b1565b9050919050565b7f4261726269653a206d61782074786e206c696d69742065786365656473000000600082015250565b6000614a2a601d83613d2a565b9150614a35826149f4565b602082019050919050565b60006020820190508181036000830152614a5981614a1d565b9050919050565b7f4261726269653a2074726164696e672069732064697361626c65000000000000600082015250565b6000614a96601a83613d2a565b9150614aa182614a60565b602082019050919050565b60006020820190508181036000830152614ac581614a89565b9050919050565b7f4261726269653a206d617820686f6c64206c696d697420657863656564730000600082015250565b6000614b02601e83613d2a565b9150614b0d82614acc565b602082019050919050565b60006020820190508181036000830152614b3181614af5565b9050919050565b6000614b4382613e4b565b9150614b4e83613e4b565b9250828203905081811115614b6657614b656141da565b5b92915050565b6000614b7782613e4b565b9150614b8283613e4b565b9250828201905080821115614b9a57614b996141da565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614bd6601b83613d2a565b9150614be182614ba0565b602082019050919050565b60006020820190508181036000830152614c0581614bc9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c9f81613c69565b82525050565b6000614cb18383614c96565b60208301905092915050565b6000602082019050919050565b6000614cd582614c6a565b614cdf8185614c75565b9350614cea83614c86565b8060005b83811015614d1b578151614d028882614ca5565b9750614d0d83614cbd565b925050600181019050614cee565b5085935050505092915050565b600060a082019050614d3d6000830188613f18565b614d4a602083018761434e565b8181036040830152614d5c8186614cca565b9050614d6b6060830185613ff9565b614d786080830184613f18565b969550505050505056fe244261726269653a2064656372656173656420616c6c6f77616e6365206f722062656c6f77207a65726f244261726269653a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207e8d7cc07cac507576ac5ee3c9b86a039682ca3ff04887fb26198c12416a978e64736f6c63430008120033

Deployed Bytecode Sourcemap

3271:13053:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9868:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6045:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4493:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6956:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9507:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6322:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3891:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7157:448;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8670:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6231:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7613:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3668:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3490:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10705:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4104:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6430:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2818:157;;;;;;;;;;;;;:::i;:::-;;4609:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4276:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4785:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4835:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3605:56;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8971:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4372:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10006:691;;;;;;;;;;;;;:::i;:::-;;2604:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9205:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6136:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3546:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3999:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9089:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15233:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9355:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7921:405;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9737:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8499:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6557:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9630:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4242:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6764:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8334:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4422:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10842:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8849:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14995:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4551:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2983:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11057:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4199:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9868:130;2741:12;:10;:12::i;:::-;2731:22;;:6;;;;;;;;;;:22;;;2723:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9984:6:::1;9968:5;:13;9974:6;9968:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;9868:130:::0;;:::o;6045:83::-;6082:13;6115:5;6108:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6045:83;:::o;4493:27::-;;;;;;;;;;;;;:::o;6956:193::-;7058:4;7080:39;7089:12;:10;:12::i;:::-;7103:7;7112:6;7080:8;:39::i;:::-;7137:4;7130:11;;6956:193;;;;:::o;9507:115::-;2741:12;:10;:12::i;:::-;2731:22;;:6;;;;;;;;;;:22;;;2723:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9608:6:::1;9579:26;;:35;;;;;;;;;;;;;;;;;;9507:115:::0;:::o;6322:100::-;6375:7;6402:12;;6395:19;;6322:100;:::o;3891:53::-;;;;:::o;7157:448::-;7289:4;7306:36;7316:6;7324:9;7335:6;7306:9;:36::i;:::-;7353:222;7376:6;7397:12;:10;:12::i;:::-;7424:140;7480:6;7424:140;;;;;;;;;;;;;;;;;:11;:19;7436:6;7424:19;;;;;;;;;;;;;;;:33;7444:12;:10;:12::i;:::-;7424:33;;;;;;;;;;;;;;;;:37;;:140;;;;;:::i;:::-;7353:8;:222::i;:::-;7593:4;7586:11;;7157:448;;;;;:::o;8670:171::-;2741:12;:10;:12::i;:::-;2731:22;;:6;;;;;;;;;;:22;;;2723:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8828:5:::1;8792:24;:33;8817:7;8792:33;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;8670:171:::0;;:::o;6231:83::-;6272:5;6297:9;;;;;;;;;;;6290:16;;6231:83;:::o;7613:300::-;7728:4;7750:133;7773:12;:10;:12::i;:::-;7800:7;7822:50;7861:10;7822:11;:25;7834:12;:10;:12::i;:::-;7822:25;;;;;;;;;;;;;;;:34;7848:7;7822:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;7750:8;:133::i;:::-;7901:4;7894:11;;7613:300;;;;:::o;3668:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;3490:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;10705:129::-;2741:12;:10;:12::i;:::-;2731:22;;:6;;;;;;;;;;:22;;;2723:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10784:9:::1;10776:27;;:50;10804:21;10776:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10705:129:::0;:::o;4104:50::-;;;;:::o;6430:119::-;6496:7;6523:9;:18;6533:7;6523:18;;;;;;;;;;;;;;;;6516:25;;6430:119;;;:::o;2818:157::-;2741:12;:10;:12::i;:::-;2731:22;;:6;;;;;;;;;;:22;;;2723:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2925:1:::1;2888:40;;2909:6;::::0;::::1;;;;;;;;2888:40;;;;;;;;;;;;2964:1;2939:6:::0;::::1;:28;;;;;;;;;;;;;;;;;;2818:157::o:0;4609:30::-;;;;;;;;;;;;;:::o;4276:38::-;;;;;;;;;;;;;:::o;4785:39::-;;;;:::o;4835:40::-;;;;:::o;3605:56::-;;;;;;;;;;;;;;;;;;;;;;:::o;8971:110::-;2741:12;:10;:12::i;:::-;2731:22;;:6;;;;;;;;;;:22;;;2723:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9069:4:::1;9059:7;:14;;;;:::i;:::-;9044:12;:29;;;;8971:110:::0;:::o;4372:22::-;;;;;;;;;;;;;:::o;10006:691::-;2741:12;:10;:12::i;:::-;2731:22;;:6;;;;;;;;;;:22;;;2723:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10070:7:::1;;;;;;;;;;;10069:8;10061:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;10139:42;10116:9;;:66;;;;;;;;;;;;;;;;;;10193:57;10210:4;10225:9;;;;;;;;;;;10237:12;;10193:8;:57::i;:::-;10283:9;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10271:43;;;10323:4;10330:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10271:76;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10261:7;;:86;;;;;;;;;;;;;;;;;;10358:9;;;;;;;;;;;:25;;;10391:21;10422:4;10428:24;10446:4;10428:9;:24::i;:::-;10453:1;10455::::0;10457:7:::1;:5;:7::i;:::-;10465:15;10358:123;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10499:7;;;;;;;;;;;10492:23;;;10524:9;;;;;;;;;;;10536:14;10492:59;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10574:4;10564:7;;:14;;;;;;;;;;;;;;;;;;10602:4;10589:10;;:17;;;;;;;;;;;;;;;;;;10646:4;10617:26;;:33;;;;;;;;;;;;;;;;;;10674:15;10661:10;:28;;;;10006:691::o:0;2604:79::-;2642:7;2669:6;;;;;;;;;;;2662:13;;2604:79;:::o;9205:142::-;2741:12;:10;:12::i;:::-;2731:22;;:6;;;;;;;;;;:22;;;2723:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9324:13:::1;9301:20;:36;;;;9205:142:::0;:::o;6136:87::-;6175:13;6208:7;6201:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6136:87;:::o;3546:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;3999:58::-;;;;:::o;9089:108::-;2741:12;:10;:12::i;:::-;2731:22;;:6;;;;;;;;;;:22;;;2723:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9185:4:::1;9175:7;:14;;;;:::i;:::-;9161:11;:28;;;;9089:108:::0;:::o;15233:209::-;2741:12;:10;:12::i;:::-;2731:22;;:6;;;;;;;;;;:22;;;2723:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15361:7:::1;15326:6;:16;;;15351:4;15326:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:42;;15318:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;15398:6;:15;;;15414:10;15426:7;15398:36;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15233:209:::0;;:::o;9355:144::-;2741:12;:10;:12::i;:::-;2731:22;;:6;;;;;;;;;;:22;;;2723:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9476:13:::1;9452:21;:37;;;;9355:144:::0;:::o;7921:405::-;8041:4;8063:233;8086:12;:10;:12::i;:::-;8113:7;8135:150;8192:15;8135:150;;;;;;;;;;;;;;;;;:11;:25;8147:12;:10;:12::i;:::-;8135:25;;;;;;;;;;;;;;;:34;8161:7;8135:34;;;;;;;;;;;;;;;;:38;;:150;;;;;:::i;:::-;8063:8;:233::i;:::-;8314:4;8307:11;;7921:405;;;;:::o;9737:123::-;2741:12;:10;:12::i;:::-;2731:22;;:6;;;;;;;;;;:22;;;2723:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9836:16:::1;9818:15;;:34;;;;;;;;;;;;;;;;;;9737:123:::0;:::o;8499:163::-;2741:12;:10;:12::i;:::-;2731:22;;:6;;;;;;;;;;:22;;;2723:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8649:5:::1;8617:20;:29;8638:7;8617:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;8499:163:::0;;:::o;6557:199::-;6662:4;6684:42;6694:12;:10;:12::i;:::-;6708:9;6719:6;6684:9;:42::i;:::-;6744:4;6737:11;;6557:199;;;;:::o;9630:99::-;2741:12;:10;:12::i;:::-;2731:22;;:6;;;;;;;;;;:22;;;2723:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9715:6:::1;9702:10;;:19;;;;;;;;;;;;;;;;;;9630:99:::0;:::o;4242:25::-;;;;:::o;6764:184::-;6881:7;6913:11;:18;6925:5;6913:18;;;;;;;;;;;;;;;:27;6932:7;6913:27;;;;;;;;;;;;;;;;6906:34;;6764:184;;;;:::o;8334:157::-;2741:12;:10;:12::i;:::-;2731:22;;:6;;;;;;;;;;:22;;;2723:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8478:5:::1;8449:17;:26;8467:7;8449:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;8334:157:::0;;:::o;4422:19::-;;;;;;;;;;;;;:::o;10842:207::-;10905:7;10925:11;10939:81;11005:14;;10939:47;10964:20;;10939:6;:24;;:47;;;;:::i;:::-;:65;;:81;;;;:::i;:::-;10925:95;;11038:3;11031:10;;;10842:207;;;:::o;8849:114::-;2741:12;:10;:12::i;:::-;2731:22;;:6;;;;;;;;;;:22;;;2723:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8951:4:::1;8941:7;:14;;;;:::i;:::-;8924;:31;;;;8849:114:::0;:::o;14995:183::-;2741:12;:10;:12::i;:::-;2731:22;;:6;;;;;;;;;;:22;;;2723:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15096:7:::1;15071:21;:32;;15063:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;15141:10;15133:28;;:37;15162:7;15133:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14995:183:::0;:::o;4551:22::-;;;;;;;;;;;;;:::o;2983:281::-;2741:12;:10;:12::i;:::-;2731:22;;:6;;;;;;;;;;:22;;;2723:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3106:1:::1;3086:22;;:8;:22;;::::0;3064:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3219:8;3190:38;;3211:6;::::0;::::1;;;;;;;;3190:38;;;;;;;;;;;;3248:8;3239:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2983:281:::0;:::o;11057:208::-;11121:7;11141:11;11155:81;11221:14;;11155:47;11180:21;;11155:6;:24;;:47;;;;:::i;:::-;:65;;:81;;;;:::i;:::-;11141:95;;11254:3;11247:10;;;11057:208;;;:::o;4199:35::-;;;;:::o;18620:132::-;18678:7;18705:39;18709:1;18712;18705:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;18698:46;;18620:132;;;;:::o;18141:471::-;18199:7;18449:1;18444;:6;18440:47;;18474:1;18467:8;;;;18440:47;18499:9;18515:1;18511;:5;;;;:::i;:::-;18499:17;;18544:1;18539;18535;:5;;;;:::i;:::-;:10;18527:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;18603:1;18596:8;;;18141:471;;;;;:::o;1940:115::-;1993:15;2036:10;2021:26;;1940:115;:::o;11273:375::-;11417:1;11400:19;;:5;:19;;;11392:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11500:1;11481:21;;:7;:21;;;11473:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11586:6;11556:11;:18;11568:5;11556:18;;;;;;;;;;;;;;;:27;11575:7;11556:27;;;;;;;;;;;;;;;:36;;;;11624:7;11608:32;;11617:5;11608:32;;;11633:6;11608:32;;;;;;:::i;:::-;;;;;;;;11273:375;;;:::o;11656:1494::-;11794:1;11778:18;;:4;:18;;;11770:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11873:1;11859:16;;:2;:16;;;11851:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;11945:1;11936:6;:10;11928:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12012:5;:11;12018:4;12012:11;;;;;;;;;;;;;;;;;;;;;;;;;12011:12;12003:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;12057:20;:26;12078:4;12057:26;;;;;;;;;;;;;;;;;;;;;;;;;12056:27;:56;;;;;12088:20;:24;12109:2;12088:24;;;;;;;;;;;;;;;;;;;;;;;;;12087:25;12056:56;12052:393;;;12147:11;;12137:6;:21;;12129:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;12258:7;;;;;;;;;;;12253:181;;12327:4;12316:15;;:7;;;;;;;;;;;:15;;;;:32;;;;;12346:2;12335:13;;:7;;;;;;;;;;;:13;;;;12316:32;12286:132;;;;;;;;;;;;:::i;:::-;;;;;;;;;12253:181;12052:393;12462:24;:28;12487:2;12462:28;;;;;;;;;;;;;;;;;;;;;;;;;12457:195;;12562:12;;12533:25;12551:6;12533:13;12543:2;12533:9;:13::i;:::-;:17;;:25;;;;:::i;:::-;:41;;12507:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;12457:195;12693:30;12714:4;12720:2;12693:20;:30::i;:::-;12797:12;12812:4;12797:19;;12916:17;:23;12934:4;12916:23;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;12943:17;:21;12961:2;12943:21;;;;;;;;;;;;;;;;;;;;;;;;;12916:48;:63;;;;12969:10;;;;;;;;;;;12968:11;12916:63;12912:111;;;13006:5;12996:15;;12912:111;13101:41;13116:4;13122:2;13126:6;13134:7;13101:14;:41::i;:::-;11759:1391;11656:1494;;;:::o;17907:226::-;18027:7;18060:1;18055;:6;;18063:12;18047:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;18087:9;18103:1;18099;:5;;;;:::i;:::-;18087:17;;18124:1;18117:8;;;17907:226;;;;;:::o;17574:181::-;17632:7;17652:9;17668:1;17664;:5;;;;:::i;:::-;17652:17;;17693:1;17688;:6;;17680:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;17746:1;17739:8;;;17574:181;;;;:::o;18760:312::-;18880:7;18912:1;18908;:5;18915:12;18900:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;18939:9;18955:1;18951;:5;;;;:::i;:::-;18939:17;;19063:1;19056:8;;;18760:312;;;;;:::o;15448:873::-;15524:28;15555:24;15573:4;15555:9;:24::i;:::-;15524:55;;15592:15;15634:14;;15610:20;:38;;15592:56;;15679:10;:42;;;;;15714:7;;;;;;;;;;;15706:15;;:4;:15;;;;15679:42;:85;;;;;15738:26;;;;;;;;;;;15679:85;:143;;;;;15799:4;15783:21;;:4;:21;;;:38;;;;;15814:7;;;;;;;;;;;15808:13;;:2;:13;;;15783:38;15781:41;15679:143;15661:653;;;15897:59;15914:4;15929:9;;;;;;;;;;;15941:14;;15897:8;:59::i;:::-;16026:58;16057:9;;;;;;;;;;;16069:14;;16026:22;:58::i;:::-;16100:23;16126:21;16100:47;;16234:1;16216:15;:19;16212:75;;;16245:15;;;;;;;;;;;16237:33;;:50;16271:15;16237:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16212:75;15849:465;15661:653;15512:809;;15448:873;;:::o;13231:1508::-;13397:6;13386:17;;:7;;;;;;;;;;;:17;;;:28;;;;;13407:7;13386:28;13382:1350;;;13431:14;13460:23;13512:24;13529:6;13512:16;:24::i;:::-;13503:33;;13573:18;13584:6;13573;:10;;:18;;;;:::i;:::-;13555:36;;13629:110;13669:6;13629:110;;;;;;;;;;;;;;;;;:9;:17;13639:6;13629:17;;;;;;;;;;;;;;;;:21;;:110;;;;;:::i;:::-;13609:9;:17;13619:6;13609:17;;;;;;;;;;;;;;;:130;;;;13777:41;13802:15;13777:9;:20;13787:9;13777:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;13754:9;:20;13764:9;13754:20;;;;;;;;;;;;;;;:64;;;;13855:9;13838:44;;13847:6;13838:44;;;13866:15;13838:44;;;;;;:::i;:::-;;;;;;;;13899:28;13912:6;13920;13899:12;:28::i;:::-;13416:523;;13382:1350;;;13960:9;13949:20;;:7;;;;;;;;;;;:20;;;:31;;;;;13973:7;13949:31;13945:787;;;13997:14;14014:25;14032:6;14014:17;:25::i;:::-;13997:42;;14054:23;14080:18;14091:6;14080;:10;;:18;;;;:::i;:::-;14054:44;;14133:110;14173:6;14133:110;;;;;;;;;;;;;;;;;:9;:17;14143:6;14133:17;;;;;;;;;;;;;;;;:21;;:110;;;;;:::i;:::-;14113:9;:17;14123:6;14113:17;;;;;;;;;;;;;;;:130;;;;14281:41;14306:15;14281:9;:20;14291:9;14281:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;14258:9;:20;14268:9;14258:20;;;;;;;;;;;;;;;:64;;;;14359:9;14342:44;;14351:6;14342:44;;;14370:15;14342:44;;;;;;:::i;:::-;;;;;;;;14403:28;14416:6;14424;14403:12;:28::i;:::-;13982:462;;13945:787;;;14485:110;14525:6;14485:110;;;;;;;;;;;;;;;;;:9;:17;14495:6;14485:17;;;;;;;;;;;;;;;;:21;;:110;;;;;:::i;:::-;14465:9;:17;14475:6;14465:17;;;;;;;;;;;;;;;:130;;;;14633:32;14658:6;14633:9;:20;14643:9;14633:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14610:9;:20;14620:9;14610:20;;;;;;;;;;;;;;;:55;;;;14702:9;14685:35;;14694:6;14685:35;;;14713:6;14685:35;;;;;;:::i;:::-;;;;;;;;13945:787;13382:1350;13231:1508;;;;:::o;16420:603::-;16524:20;16558:13;16524:48;;16641:21;16679:1;16665:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16641:40;;16710:4;16692;16697:1;16692:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16736:9;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16726:4;16731:1;16726:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;16791:9;:60;;;16866:11;16892:1;16936:4;16963;17001:3;16983:15;:21;;;;:::i;:::-;16791:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16513:510;;16420:603;;:::o;17763:136::-;17821:7;17848:43;17852:1;17855;17848:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;17841:50;;17763:136;;;;:::o;14747:201::-;14847:36;14876:6;14847:9;:24;14865:4;14847:24;;;;;;;;;;;;;;;;:28;;:36;;;;:::i;:::-;14820:9;:24;14838:4;14820:24;;;;;;;;;;;;;;;:63;;;;14926:4;14901:39;;14910:6;14901:39;;;14933:6;14901:39;;;;;;:::i;:::-;;;;;;;;14747:201;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:90::-;875:7;918:5;911:13;904:21;893:32;;841:90;;;:::o;937:116::-;1007:21;1022:5;1007:21;:::i;:::-;1000:5;997:32;987:60;;1043:1;1040;1033:12;987:60;937:116;:::o;1059:133::-;1102:5;1140:6;1127:20;1118:29;;1156:30;1180:5;1156:30;:::i;:::-;1059:133;;;;:::o;1198:468::-;1263:6;1271;1320:2;1308:9;1299:7;1295:23;1291:32;1288:119;;;1326:79;;:::i;:::-;1288:119;1446:1;1471:53;1516:7;1507:6;1496:9;1492:22;1471:53;:::i;:::-;1461:63;;1417:117;1573:2;1599:50;1641:7;1632:6;1621:9;1617:22;1599:50;:::i;:::-;1589:60;;1544:115;1198:468;;;;;:::o;1672:99::-;1724:6;1758:5;1752:12;1742:22;;1672:99;;;:::o;1777:169::-;1861:11;1895:6;1890:3;1883:19;1935:4;1930:3;1926:14;1911:29;;1777:169;;;;:::o;1952:246::-;2033:1;2043:113;2057:6;2054:1;2051:13;2043:113;;;2142:1;2137:3;2133:11;2127:18;2123:1;2118:3;2114:11;2107:39;2079:2;2076:1;2072:10;2067:15;;2043:113;;;2190:1;2181:6;2176:3;2172:16;2165:27;2014:184;1952:246;;;:::o;2204:102::-;2245:6;2296:2;2292:7;2287:2;2280:5;2276:14;2272:28;2262:38;;2204:102;;;:::o;2312:377::-;2400:3;2428:39;2461:5;2428:39;:::i;:::-;2483:71;2547:6;2542:3;2483:71;:::i;:::-;2476:78;;2563:65;2621:6;2616:3;2609:4;2602:5;2598:16;2563:65;:::i;:::-;2653:29;2675:6;2653:29;:::i;:::-;2648:3;2644:39;2637:46;;2404:285;2312:377;;;;:::o;2695:313::-;2808:4;2846:2;2835:9;2831:18;2823:26;;2895:9;2889:4;2885:20;2881:1;2870:9;2866:17;2859:47;2923:78;2996:4;2987:6;2923:78;:::i;:::-;2915:86;;2695:313;;;;:::o;3014:60::-;3042:3;3063:5;3056:12;;3014:60;;;:::o;3080:142::-;3130:9;3163:53;3181:34;3190:24;3208:5;3190:24;:::i;:::-;3181:34;:::i;:::-;3163:53;:::i;:::-;3150:66;;3080:142;;;:::o;3228:126::-;3278:9;3311:37;3342:5;3311:37;:::i;:::-;3298:50;;3228:126;;;:::o;3360:144::-;3428:9;3461:37;3492:5;3461:37;:::i;:::-;3448:50;;3360:144;;;:::o;3510:167::-;3615:55;3664:5;3615:55;:::i;:::-;3610:3;3603:68;3510:167;;:::o;3683:258::-;3794:4;3832:2;3821:9;3817:18;3809:26;;3845:89;3931:1;3920:9;3916:17;3907:6;3845:89;:::i;:::-;3683:258;;;;:::o;3947:77::-;3984:7;4013:5;4002:16;;3947:77;;;:::o;4030:122::-;4103:24;4121:5;4103:24;:::i;:::-;4096:5;4093:35;4083:63;;4142:1;4139;4132:12;4083:63;4030:122;:::o;4158:139::-;4204:5;4242:6;4229:20;4220:29;;4258:33;4285:5;4258:33;:::i;:::-;4158:139;;;;:::o;4303:474::-;4371:6;4379;4428:2;4416:9;4407:7;4403:23;4399:32;4396:119;;;4434:79;;:::i;:::-;4396:119;4554:1;4579:53;4624:7;4615:6;4604:9;4600:22;4579:53;:::i;:::-;4569:63;;4525:117;4681:2;4707:53;4752:7;4743:6;4732:9;4728:22;4707:53;:::i;:::-;4697:63;;4652:118;4303:474;;;;;:::o;4783:109::-;4864:21;4879:5;4864:21;:::i;:::-;4859:3;4852:34;4783:109;;:::o;4898:210::-;4985:4;5023:2;5012:9;5008:18;5000:26;;5036:65;5098:1;5087:9;5083:17;5074:6;5036:65;:::i;:::-;4898:210;;;;:::o;5114:323::-;5170:6;5219:2;5207:9;5198:7;5194:23;5190:32;5187:119;;;5225:79;;:::i;:::-;5187:119;5345:1;5370:50;5412:7;5403:6;5392:9;5388:22;5370:50;:::i;:::-;5360:60;;5316:114;5114:323;;;;:::o;5443:118::-;5530:24;5548:5;5530:24;:::i;:::-;5525:3;5518:37;5443:118;;:::o;5567:222::-;5660:4;5698:2;5687:9;5683:18;5675:26;;5711:71;5779:1;5768:9;5764:17;5755:6;5711:71;:::i;:::-;5567:222;;;;:::o;5795:619::-;5872:6;5880;5888;5937:2;5925:9;5916:7;5912:23;5908:32;5905:119;;;5943:79;;:::i;:::-;5905:119;6063:1;6088:53;6133:7;6124:6;6113:9;6109:22;6088:53;:::i;:::-;6078:63;;6034:117;6190:2;6216:53;6261:7;6252:6;6241:9;6237:22;6216:53;:::i;:::-;6206:63;;6161:118;6318:2;6344:53;6389:7;6380:6;6369:9;6365:22;6344:53;:::i;:::-;6334:63;;6289:118;5795:619;;;;;:::o;6420:86::-;6455:7;6495:4;6488:5;6484:16;6473:27;;6420:86;;;:::o;6512:112::-;6595:22;6611:5;6595:22;:::i;:::-;6590:3;6583:35;6512:112;;:::o;6630:214::-;6719:4;6757:2;6746:9;6742:18;6734:26;;6770:67;6834:1;6823:9;6819:17;6810:6;6770:67;:::i;:::-;6630:214;;;;:::o;6850:329::-;6909:6;6958:2;6946:9;6937:7;6933:23;6929:32;6926:119;;;6964:79;;:::i;:::-;6926:119;7084:1;7109:53;7154:7;7145:6;7134:9;7130:22;7109:53;:::i;:::-;7099:63;;7055:117;6850:329;;;;:::o;7185:118::-;7272:24;7290:5;7272:24;:::i;:::-;7267:3;7260:37;7185:118;;:::o;7309:222::-;7402:4;7440:2;7429:9;7425:18;7417:26;;7453:71;7521:1;7510:9;7506:17;7497:6;7453:71;:::i;:::-;7309:222;;;;:::o;7537:329::-;7596:6;7645:2;7633:9;7624:7;7620:23;7616:32;7613:119;;;7651:79;;:::i;:::-;7613:119;7771:1;7796:53;7841:7;7832:6;7821:9;7817:22;7796:53;:::i;:::-;7786:63;;7742:117;7537:329;;;;:::o;7872:109::-;7922:7;7951:24;7969:5;7951:24;:::i;:::-;7940:35;;7872:109;;;:::o;7987:148::-;8073:37;8104:5;8073:37;:::i;:::-;8066:5;8063:48;8053:76;;8125:1;8122;8115:12;8053:76;7987:148;:::o;8141:165::-;8200:5;8238:6;8225:20;8216:29;;8254:46;8294:5;8254:46;:::i;:::-;8141:165;;;;:::o;8312:500::-;8393:6;8401;8450:2;8438:9;8429:7;8425:23;8421:32;8418:119;;;8456:79;;:::i;:::-;8418:119;8576:1;8601:66;8659:7;8650:6;8639:9;8635:22;8601:66;:::i;:::-;8591:76;;8547:130;8716:2;8742:53;8787:7;8778:6;8767:9;8763:22;8742:53;:::i;:::-;8732:63;;8687:118;8312:500;;;;;:::o;8818:474::-;8886:6;8894;8943:2;8931:9;8922:7;8918:23;8914:32;8911:119;;;8949:79;;:::i;:::-;8911:119;9069:1;9094:53;9139:7;9130:6;9119:9;9115:22;9094:53;:::i;:::-;9084:63;;9040:117;9196:2;9222:53;9267:7;9258:6;9247:9;9243:22;9222:53;:::i;:::-;9212:63;;9167:118;8818:474;;;;;:::o;9298:182::-;9438:34;9434:1;9426:6;9422:14;9415:58;9298:182;:::o;9486:366::-;9628:3;9649:67;9713:2;9708:3;9649:67;:::i;:::-;9642:74;;9725:93;9814:3;9725:93;:::i;:::-;9843:2;9838:3;9834:12;9827:19;;9486:366;;;:::o;9858:419::-;10024:4;10062:2;10051:9;10047:18;10039:26;;10111:9;10105:4;10101:20;10097:1;10086:9;10082:17;10075:47;10139:131;10265:4;10139:131;:::i;:::-;10131:139;;9858:419;;;:::o;10283:180::-;10331:77;10328:1;10321:88;10428:4;10425:1;10418:15;10452:4;10449:1;10442:15;10469:320;10513:6;10550:1;10544:4;10540:12;10530:22;;10597:1;10591:4;10587:12;10618:18;10608:81;;10674:4;10666:6;10662:17;10652:27;;10608:81;10736:2;10728:6;10725:14;10705:18;10702:38;10699:84;;10755:18;;:::i;:::-;10699:84;10520:269;10469:320;;;:::o;10795:180::-;10843:77;10840:1;10833:88;10940:4;10937:1;10930:15;10964:4;10961:1;10954:15;10981:410;11021:7;11044:20;11062:1;11044:20;:::i;:::-;11039:25;;11078:20;11096:1;11078:20;:::i;:::-;11073:25;;11133:1;11130;11126:9;11155:30;11173:11;11155:30;:::i;:::-;11144:41;;11334:1;11325:7;11321:15;11318:1;11315:22;11295:1;11288:9;11268:83;11245:139;;11364:18;;:::i;:::-;11245:139;11029:362;10981:410;;;;:::o;11397:173::-;11537:25;11533:1;11525:6;11521:14;11514:49;11397:173;:::o;11576:366::-;11718:3;11739:67;11803:2;11798:3;11739:67;:::i;:::-;11732:74;;11815:93;11904:3;11815:93;:::i;:::-;11933:2;11928:3;11924:12;11917:19;;11576:366;;;:::o;11948:419::-;12114:4;12152:2;12141:9;12137:18;12129:26;;12201:9;12195:4;12191:20;12187:1;12176:9;12172:17;12165:47;12229:131;12355:4;12229:131;:::i;:::-;12221:139;;11948:419;;;:::o;12373:143::-;12430:5;12461:6;12455:13;12446:22;;12477:33;12504:5;12477:33;:::i;:::-;12373:143;;;;:::o;12522:351::-;12592:6;12641:2;12629:9;12620:7;12616:23;12612:32;12609:119;;;12647:79;;:::i;:::-;12609:119;12767:1;12792:64;12848:7;12839:6;12828:9;12824:22;12792:64;:::i;:::-;12782:74;;12738:128;12522:351;;;;:::o;12879:332::-;13000:4;13038:2;13027:9;13023:18;13015:26;;13051:71;13119:1;13108:9;13104:17;13095:6;13051:71;:::i;:::-;13132:72;13200:2;13189:9;13185:18;13176:6;13132:72;:::i;:::-;12879:332;;;;;:::o;13217:85::-;13262:7;13291:5;13280:16;;13217:85;;;:::o;13308:158::-;13366:9;13399:61;13417:42;13426:32;13452:5;13426:32;:::i;:::-;13417:42;:::i;:::-;13399:61;:::i;:::-;13386:74;;13308:158;;;:::o;13472:147::-;13567:45;13606:5;13567:45;:::i;:::-;13562:3;13555:58;13472:147;;:::o;13625:807::-;13874:4;13912:3;13901:9;13897:19;13889:27;;13926:71;13994:1;13983:9;13979:17;13970:6;13926:71;:::i;:::-;14007:72;14075:2;14064:9;14060:18;14051:6;14007:72;:::i;:::-;14089:80;14165:2;14154:9;14150:18;14141:6;14089:80;:::i;:::-;14179;14255:2;14244:9;14240:18;14231:6;14179:80;:::i;:::-;14269:73;14337:3;14326:9;14322:19;14313:6;14269:73;:::i;:::-;14352;14420:3;14409:9;14405:19;14396:6;14352:73;:::i;:::-;13625:807;;;;;;;;;:::o;14438:143::-;14495:5;14526:6;14520:13;14511:22;;14542:33;14569:5;14542:33;:::i;:::-;14438:143;;;;:::o;14587:663::-;14675:6;14683;14691;14740:2;14728:9;14719:7;14715:23;14711:32;14708:119;;;14746:79;;:::i;:::-;14708:119;14866:1;14891:64;14947:7;14938:6;14927:9;14923:22;14891:64;:::i;:::-;14881:74;;14837:128;15004:2;15030:64;15086:7;15077:6;15066:9;15062:22;15030:64;:::i;:::-;15020:74;;14975:129;15143:2;15169:64;15225:7;15216:6;15205:9;15201:22;15169:64;:::i;:::-;15159:74;;15114:129;14587:663;;;;;:::o;15256:332::-;15377:4;15415:2;15404:9;15400:18;15392:26;;15428:71;15496:1;15485:9;15481:17;15472:6;15428:71;:::i;:::-;15509:72;15577:2;15566:9;15562:18;15553:6;15509:72;:::i;:::-;15256:332;;;;;:::o;15594:137::-;15648:5;15679:6;15673:13;15664:22;;15695:30;15719:5;15695:30;:::i;:::-;15594:137;;;;:::o;15737:345::-;15804:6;15853:2;15841:9;15832:7;15828:23;15824:32;15821:119;;;15859:79;;:::i;:::-;15821:119;15979:1;16004:61;16057:7;16048:6;16037:9;16033:22;16004:61;:::i;:::-;15994:71;;15950:125;15737:345;;;;:::o;16088:351::-;16158:6;16207:2;16195:9;16186:7;16182:23;16178:32;16175:119;;;16213:79;;:::i;:::-;16175:119;16333:1;16358:64;16414:7;16405:6;16394:9;16390:22;16358:64;:::i;:::-;16348:74;;16304:128;16088:351;;;;:::o;16445:164::-;16585:16;16581:1;16573:6;16569:14;16562:40;16445:164;:::o;16615:366::-;16757:3;16778:67;16842:2;16837:3;16778:67;:::i;:::-;16771:74;;16854:93;16943:3;16854:93;:::i;:::-;16972:2;16967:3;16963:12;16956:19;;16615:366;;;:::o;16987:419::-;17153:4;17191:2;17180:9;17176:18;17168:26;;17240:9;17234:4;17230:20;17226:1;17215:9;17211:17;17204:47;17268:131;17394:4;17268:131;:::i;:::-;17260:139;;16987:419;;;:::o;17412:225::-;17552:34;17548:1;17540:6;17536:14;17529:58;17621:8;17616:2;17608:6;17604:15;17597:33;17412:225;:::o;17643:366::-;17785:3;17806:67;17870:2;17865:3;17806:67;:::i;:::-;17799:74;;17882:93;17971:3;17882:93;:::i;:::-;18000:2;17995:3;17991:12;17984:19;;17643:366;;;:::o;18015:419::-;18181:4;18219:2;18208:9;18204:18;18196:26;;18268:9;18262:4;18258:20;18254:1;18243:9;18239:17;18232:47;18296:131;18422:4;18296:131;:::i;:::-;18288:139;;18015:419;;;:::o;18440:180::-;18488:77;18485:1;18478:88;18585:4;18582:1;18575:15;18609:4;18606:1;18599:15;18626:185;18666:1;18683:20;18701:1;18683:20;:::i;:::-;18678:25;;18717:20;18735:1;18717:20;:::i;:::-;18712:25;;18756:1;18746:35;;18761:18;;:::i;:::-;18746:35;18803:1;18800;18796:9;18791:14;;18626:185;;;;:::o;18817:220::-;18957:34;18953:1;18945:6;18941:14;18934:58;19026:3;19021:2;19013:6;19009:15;19002:28;18817:220;:::o;19043:366::-;19185:3;19206:67;19270:2;19265:3;19206:67;:::i;:::-;19199:74;;19282:93;19371:3;19282:93;:::i;:::-;19400:2;19395:3;19391:12;19384:19;;19043:366;;;:::o;19415:419::-;19581:4;19619:2;19608:9;19604:18;19596:26;;19668:9;19662:4;19658:20;19654:1;19643:9;19639:17;19632:47;19696:131;19822:4;19696:131;:::i;:::-;19688:139;;19415:419;;;:::o;19840:225::-;19980:34;19976:1;19968:6;19964:14;19957:58;20049:8;20044:2;20036:6;20032:15;20025:33;19840:225;:::o;20071:366::-;20213:3;20234:67;20298:2;20293:3;20234:67;:::i;:::-;20227:74;;20310:93;20399:3;20310:93;:::i;:::-;20428:2;20423:3;20419:12;20412:19;;20071:366;;;:::o;20443:419::-;20609:4;20647:2;20636:9;20632:18;20624:26;;20696:9;20690:4;20686:20;20682:1;20671:9;20667:17;20660:47;20724:131;20850:4;20724:131;:::i;:::-;20716:139;;20443:419;;;:::o;20868:223::-;21008:34;21004:1;20996:6;20992:14;20985:58;21077:6;21072:2;21064:6;21060:15;21053:31;20868:223;:::o;21097:366::-;21239:3;21260:67;21324:2;21319:3;21260:67;:::i;:::-;21253:74;;21336:93;21425:3;21336:93;:::i;:::-;21454:2;21449:3;21445:12;21438:19;;21097:366;;;:::o;21469:419::-;21635:4;21673:2;21662:9;21658:18;21650:26;;21722:9;21716:4;21712:20;21708:1;21697:9;21693:17;21686:47;21750:131;21876:4;21750:131;:::i;:::-;21742:139;;21469:419;;;:::o;21894:226::-;22034:34;22030:1;22022:6;22018:14;22011:58;22103:9;22098:2;22090:6;22086:15;22079:34;21894:226;:::o;22126:366::-;22268:3;22289:67;22353:2;22348:3;22289:67;:::i;:::-;22282:74;;22365:93;22454:3;22365:93;:::i;:::-;22483:2;22478:3;22474:12;22467:19;;22126:366;;;:::o;22498:419::-;22664:4;22702:2;22691:9;22687:18;22679:26;;22751:9;22745:4;22741:20;22737:1;22726:9;22722:17;22715:47;22779:131;22905:4;22779:131;:::i;:::-;22771:139;;22498:419;;;:::o;22923:224::-;23063:34;23059:1;23051:6;23047:14;23040:58;23132:7;23127:2;23119:6;23115:15;23108:32;22923:224;:::o;23153:366::-;23295:3;23316:67;23380:2;23375:3;23316:67;:::i;:::-;23309:74;;23392:93;23481:3;23392:93;:::i;:::-;23510:2;23505:3;23501:12;23494:19;;23153:366;;;:::o;23525:419::-;23691:4;23729:2;23718:9;23714:18;23706:26;;23778:9;23772:4;23768:20;23764:1;23753:9;23749:17;23742:47;23806:131;23932:4;23806:131;:::i;:::-;23798:139;;23525:419;;;:::o;23950:228::-;24090:34;24086:1;24078:6;24074:14;24067:58;24159:11;24154:2;24146:6;24142:15;24135:36;23950:228;:::o;24184:366::-;24326:3;24347:67;24411:2;24406:3;24347:67;:::i;:::-;24340:74;;24423:93;24512:3;24423:93;:::i;:::-;24541:2;24536:3;24532:12;24525:19;;24184:366;;;:::o;24556:419::-;24722:4;24760:2;24749:9;24745:18;24737:26;;24809:9;24803:4;24799:20;24795:1;24784:9;24780:17;24773:47;24837:131;24963:4;24837:131;:::i;:::-;24829:139;;24556:419;;;:::o;24981:162::-;25121:14;25117:1;25109:6;25105:14;25098:38;24981:162;:::o;25149:366::-;25291:3;25312:67;25376:2;25371:3;25312:67;:::i;:::-;25305:74;;25388:93;25477:3;25388:93;:::i;:::-;25506:2;25501:3;25497:12;25490:19;;25149:366;;;:::o;25521:419::-;25687:4;25725:2;25714:9;25710:18;25702:26;;25774:9;25768:4;25764:20;25760:1;25749:9;25745:17;25738:47;25802:131;25928:4;25802:131;:::i;:::-;25794:139;;25521:419;;;:::o;25946:179::-;26086:31;26082:1;26074:6;26070:14;26063:55;25946:179;:::o;26131:366::-;26273:3;26294:67;26358:2;26353:3;26294:67;:::i;:::-;26287:74;;26370:93;26459:3;26370:93;:::i;:::-;26488:2;26483:3;26479:12;26472:19;;26131:366;;;:::o;26503:419::-;26669:4;26707:2;26696:9;26692:18;26684:26;;26756:9;26750:4;26746:20;26742:1;26731:9;26727:17;26720:47;26784:131;26910:4;26784:131;:::i;:::-;26776:139;;26503:419;;;:::o;26928:176::-;27068:28;27064:1;27056:6;27052:14;27045:52;26928:176;:::o;27110:366::-;27252:3;27273:67;27337:2;27332:3;27273:67;:::i;:::-;27266:74;;27349:93;27438:3;27349:93;:::i;:::-;27467:2;27462:3;27458:12;27451:19;;27110:366;;;:::o;27482:419::-;27648:4;27686:2;27675:9;27671:18;27663:26;;27735:9;27729:4;27725:20;27721:1;27710:9;27706:17;27699:47;27763:131;27889:4;27763:131;:::i;:::-;27755:139;;27482:419;;;:::o;27907:180::-;28047:32;28043:1;28035:6;28031:14;28024:56;27907:180;:::o;28093:366::-;28235:3;28256:67;28320:2;28315:3;28256:67;:::i;:::-;28249:74;;28332:93;28421:3;28332:93;:::i;:::-;28450:2;28445:3;28441:12;28434:19;;28093:366;;;:::o;28465:419::-;28631:4;28669:2;28658:9;28654:18;28646:26;;28718:9;28712:4;28708:20;28704:1;28693:9;28689:17;28682:47;28746:131;28872:4;28746:131;:::i;:::-;28738:139;;28465:419;;;:::o;28890:194::-;28930:4;28950:20;28968:1;28950:20;:::i;:::-;28945:25;;28984:20;29002:1;28984:20;:::i;:::-;28979:25;;29028:1;29025;29021:9;29013:17;;29052:1;29046:4;29043:11;29040:37;;;29057:18;;:::i;:::-;29040:37;28890:194;;;;:::o;29090:191::-;29130:3;29149:20;29167:1;29149:20;:::i;:::-;29144:25;;29183:20;29201:1;29183:20;:::i;:::-;29178:25;;29226:1;29223;29219:9;29212:16;;29247:3;29244:1;29241:10;29238:36;;;29254:18;;:::i;:::-;29238:36;29090:191;;;;:::o;29287:177::-;29427:29;29423:1;29415:6;29411:14;29404:53;29287:177;:::o;29470:366::-;29612:3;29633:67;29697:2;29692:3;29633:67;:::i;:::-;29626:74;;29709:93;29798:3;29709:93;:::i;:::-;29827:2;29822:3;29818:12;29811:19;;29470:366;;;:::o;29842:419::-;30008:4;30046:2;30035:9;30031:18;30023:26;;30095:9;30089:4;30085:20;30081:1;30070:9;30066:17;30059:47;30123:131;30249:4;30123:131;:::i;:::-;30115:139;;29842:419;;;:::o;30267:180::-;30315:77;30312:1;30305:88;30412:4;30409:1;30402:15;30436:4;30433:1;30426:15;30453:180;30501:77;30498:1;30491:88;30598:4;30595:1;30588:15;30622:4;30619:1;30612:15;30639:114;30706:6;30740:5;30734:12;30724:22;;30639:114;;;:::o;30759:184::-;30858:11;30892:6;30887:3;30880:19;30932:4;30927:3;30923:14;30908:29;;30759:184;;;;:::o;30949:132::-;31016:4;31039:3;31031:11;;31069:4;31064:3;31060:14;31052:22;;30949:132;;;:::o;31087:108::-;31164:24;31182:5;31164:24;:::i;:::-;31159:3;31152:37;31087:108;;:::o;31201:179::-;31270:10;31291:46;31333:3;31325:6;31291:46;:::i;:::-;31369:4;31364:3;31360:14;31346:28;;31201:179;;;;:::o;31386:113::-;31456:4;31488;31483:3;31479:14;31471:22;;31386:113;;;:::o;31535:732::-;31654:3;31683:54;31731:5;31683:54;:::i;:::-;31753:86;31832:6;31827:3;31753:86;:::i;:::-;31746:93;;31863:56;31913:5;31863:56;:::i;:::-;31942:7;31973:1;31958:284;31983:6;31980:1;31977:13;31958:284;;;32059:6;32053:13;32086:63;32145:3;32130:13;32086:63;:::i;:::-;32079:70;;32172:60;32225:6;32172:60;:::i;:::-;32162:70;;32018:224;32005:1;32002;31998:9;31993:14;;31958:284;;;31962:14;32258:3;32251:10;;31659:608;;;31535:732;;;;:::o;32273:831::-;32536:4;32574:3;32563:9;32559:19;32551:27;;32588:71;32656:1;32645:9;32641:17;32632:6;32588:71;:::i;:::-;32669:80;32745:2;32734:9;32730:18;32721:6;32669:80;:::i;:::-;32796:9;32790:4;32786:20;32781:2;32770:9;32766:18;32759:48;32824:108;32927:4;32918:6;32824:108;:::i;:::-;32816:116;;32942:72;33010:2;32999:9;32995:18;32986:6;32942:72;:::i;:::-;33024:73;33092:3;33081:9;33077:19;33068:6;33024:73;:::i;:::-;32273:831;;;;;;;;:::o

Swarm Source

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