ETH Price: $3,377.64 (-1.93%)
Gas: 2 Gwei

Token

kawaii.money (KAWAII)
 

Overview

Max Total Supply

690,000,000 KAWAII

Holders

95

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
inthearenatryingthings.eth
Balance
1,228,711.574170706833615887 KAWAII

Value
$0.00
0xb6d19afe6de6c1ab49b964e202ebbf6b8e590a33
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:
KawaiiMoney

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-09
*/

// SPDX-License-Identifier: MIT
//
// Let's get $KAWAII
//
// Welcome to Kawaii Money—where kawaii waifu girls meet Ethereum and blockchain technology
//
// Website: https://kawaii.money
// Telegram: https://t.me/KawaiiMoney
// Twitter: https://twitter.com/KawaiiMoney_

pragma solidity ^0.7.6;

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

        return c;
    }

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

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

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

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

/**
 * BEP20 standard interface.
 */
interface IBEP20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    function getOwner() external view returns (address);

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

abstract contract Auth {
    address public owner;
    mapping(address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER");
        _;
    }

    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED");
        _;
    }

    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);
}

interface IDEXRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function getAmountOut(
        uint256 amountIn,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountOut);

    function getAmountsOut(uint256 amountIn, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

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

    function removeLiquidityETH(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountToken, uint256 amountETH);

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

contract KawaiiMoney is IBEP20, Auth {
    using SafeMath for uint256;
    // WETH 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
    address WBNB = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    address DEV;

    string constant _name = "kawaii.money";
    string constant _symbol = "KAWAII";
    uint8 constant _decimals = 18;

    uint256 _totalSupply = 690_000_000 * 1e18;

    uint256 public _maxWalletToken = (_totalSupply * 2) / 100; // 2% of total supply

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

    mapping(address => bool) isFeeExempt;

    uint256 public liquidityFee = 0;
    uint256 public marketingFee = 90;
    uint256 public devFee = 0;
    uint256 public totalFee = marketingFee + liquidityFee + devFee;
    uint256 public feeDenominator = 100;

    uint256 public buyMultiplier = 100;
    uint256 public sellMultiplier = 0;

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;
    address public devFeeReceiver;

    uint256 targetLiquidity = 25;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;

    bool public tradingOpen = false;

    bool public buyCooldownEnabled = false;
    uint8 public cooldownTimerInterval = 1;
    mapping(address => uint256) private cooldownTimer;

    bool public swapEnabled = true;
    uint256 public swapThreshold = (_totalSupply * 10) / 10000;
    bool inSwap;
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() Auth(msg.sender) {
        DEV = msg.sender;
        // Uniswap V2 - 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IDEXFactory(router.factory()).createPair(WBNB, address(this));
        _allowances[address(this)][address(router)] = uint256(-1);

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(DEV)] = true;

        autoLiquidityReceiver = address(DEV);
        marketingFeeReceiver = address(DEV);
        devFeeReceiver = address(DEV);

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

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

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

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

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

    function getOwner() external view override returns (address) {
        return owner;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function allowance(address holder, address spender)
        external
        view
        override
        returns (uint256)
    {
        return _allowances[holder][spender];
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, uint256(-1));
    }

    function transfer(address recipient, uint256 amount)
        external
        override
        returns (bool)
    {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != uint256(-1)) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender]
                .sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000)
        external
        onlyOwner
    {
        _maxWalletToken = (_totalSupply * maxWallPercent_base1000) / 1000;
    }

    function setSwapPair(address _pair) external onlyOwner {
        pair = _pair;
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }

        if (!authorizations[sender] && !authorizations[recipient]) {
            require(tradingOpen, "Trading not open yet");
        }

        if (
            !authorizations[sender] &&
            recipient != address(this) &&
            recipient != address(DEAD) &&
            recipient != pair &&
            recipient != marketingFeeReceiver &&
            recipient != devFeeReceiver &&
            recipient != autoLiquidityReceiver
        ) {
            uint256 heldTokens = balanceOf(recipient);
            require(
                (heldTokens + amount) <= _maxWalletToken,
                "Total Holding is currently limited, you can not buy that much."
            );
        }

        if (shouldSwapBack()) {
            swapBack();
        }

        //Exchange tokens
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );

        uint256 amountReceived = shouldTakeFee(sender)
            ? takeFee(sender, amount, (recipient == pair))
            : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(
        address sender,
        uint256 amount,
        bool isSell
    ) internal returns (uint256) {
        uint256 multiplier = isSell ? sellMultiplier : buyMultiplier;
        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(
            feeDenominator * 100
        );

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return
            msg.sender != pair &&
            !inSwap &&
            swapEnabled &&
            _balances[address(this)] >= swapThreshold;
    }

    function clearStuckBalance(uint256 amountPercentage) external onlyOwner {
        uint256 amountBNB = address(this).balance;
        payable(marketingFeeReceiver).transfer(
            (amountBNB * amountPercentage) / 100
        );
    }

    function clearStuckTokenBalance(uint256 amountPercentage)
        external
        onlyOwner
    {
        uint256 amountToken = balanceOf(address(this));
        _basicTransfer(
            address(this),
            marketingFeeReceiver,
            (amountToken * amountPercentage) / 100
        );
    }

    function clearStuckBalance_sender(uint256 amountPercentage)
        external
        onlyOwner
    {
        uint256 amountBNB = address(this).balance;
        payable(msg.sender).transfer((amountBNB * amountPercentage) / 100);
    }

    function set_buy_multiplier(uint256 _multiplier) public onlyOwner {
        buyMultiplier = _multiplier;
    }

    function set_sell_multiplier(uint256 _multiplier) public onlyOwner {
        sellMultiplier = _multiplier;
    }

    // switch Trading
    function tradingStatus(bool _status) public onlyOwner {
        tradingOpen = _status;
    }

    // enable cooldown between trades
    function cooldownEnabled(bool _status, uint8 _interval) public onlyOwner {
        buyCooldownEnabled = _status;
        cooldownTimerInterval = _interval;
    }

    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(
            targetLiquidity,
            targetLiquidityDenominator
        )
            ? 0
            : liquidityFee;
        uint256 amountToLiquify = swapThreshold
            .mul(dynamicLiquidityFee)
            .div(totalFee)
            .div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WBNB;

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountBNB = address(this).balance.sub(balanceBefore);

        uint256 totalBNBFee = totalFee.sub(dynamicLiquidityFee.div(2));

        uint256 amountBNBLiquidity = amountBNB
            .mul(dynamicLiquidityFee)
            .div(totalBNBFee)
            .div(2);
        uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(
            totalBNBFee
        );
        uint256 amountBNBDev = amountBNB.mul(devFee).div(totalBNBFee);

        (bool tmpSuccess, ) = payable(marketingFeeReceiver).call{
            value: amountBNBMarketing,
            gas: 30000
        }("");
        (tmpSuccess, ) = payable(devFeeReceiver).call{
            value: amountBNBDev,
            gas: 30000
        }("");

        // Supress warning msg
        tmpSuccess = false;

        if (amountToLiquify > 0) {
            router.addLiquidityETH{value: amountBNBLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountBNBLiquidity, amountToLiquify);
        }
    }

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

    function setFees(
        uint256 _liquidityFee,
        uint256 _marketingFee,
        uint256 _feeDenominator
    ) public onlyOwner {
        liquidityFee = _liquidityFee;
        marketingFee = _marketingFee;
        devFee = 0;
        totalFee = _liquidityFee.add(_marketingFee).add(devFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 3, "Fees cannot be more than 33%");
    }

    function setFeesAndMultipliers(
        uint256 _liquidityFee,
        uint256 _marketingFee,
        uint256 _feeDenominator,
        uint256 _buyMultiplier,
        uint256 _sellMultiplier
    ) external onlyOwner {
        setFees(_liquidityFee, _marketingFee, _feeDenominator);
        set_buy_multiplier(_buyMultiplier);
        set_sell_multiplier(_sellMultiplier);
    }

    function setFeeReceivers(
        address _autoLiquidityReceiver,
        address _marketingFeeReceiver,
        address _devFeeReceiver
    ) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount)
        external
        onlyOwner
    {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTargetLiquidity(uint256 _target, uint256 _denominator)
        external
        onlyOwner
    {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy)
        public
        view
        returns (uint256)
    {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy)
        public
        view
        returns (bool)
    {
        return getLiquidityBacking(accuracy) > target;
    }

    event AutoLiquify(uint256 amountBNB, uint256 amountBOG);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance_sender","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckTokenBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint8","name":"_interval","type":"uint8"}],"name":"cooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"},{"internalType":"uint256","name":"_buyMultiplier","type":"uint256"},{"internalType":"uint256","name":"_sellMultiplier","type":"uint256"}],"name":"setFeesAndMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"setSwapPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"set_buy_multiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"set_sell_multiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","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":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506b023ac12ef364587bf2000000600655606460026006540281620000fe57fe5b046007556000600b55605a600c556000600d55600d54600b54600c540101600e556064600f5560646010556000601155601960155560646016556000601860146101000a81548160ff0219169083151502179055506000601860156101000a81548160ff0219169083151502179055506001601860166101000a81548160ff021916908360ff1602179055506001601a60006101000a81548160ff021916908315150217905550612710600a6006540281620001b657fe5b04601b55348015620001c757600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200036057600080fd5b505afa15801562000375573d6000803e3d6000fd5b505050506040513d60208110156200038c57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200044657600080fd5b505af11580156200045b573d6000803e3d6000fd5b505050506040513d60208110156200047257600080fd5b8101908080519060200190929190505050601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a3613d9a806200083f6000396000f3fe60806040526004361061031e5760003560e01c8063722b62ad116101ab578063d51ed1c8116100f7578063ec72d65f11610095578063f887ea401161006f578063f887ea4014611162578063fe9fbb80146111a3578063fed0d2a11461120a578063ffb54a991461123557610325565b8063ec72d65f14611085578063f0b37c04146110c0578063f2fde38b1461111157610325565b8063dab84ee7116100d1578063dab84ee714610f37578063dd62ed3e14610f78578063df20fd4914610ffd578063e96fada21461104457610325565b8063d51ed1c814610e1c578063d7c0103214610e6b578063da36d60714610efc57610325565b806398118cb411610164578063a9059cbb1161013e578063a9059cbb14610cca578063b6a5d7de14610d3b578063ca33e64c14610d8c578063cec10c1114610dcd57610325565b806398118cb414610bfb578063a3e9a14b14610c26578063a8aa1b3114610c8957610325565b8063722b62ad14610a3f57806373a432bb14610a6d57806378109e5414610abe578063893d20e814610ae95780638da5cb5b14610b2a57806395d89b4114610b6b57610325565b80632d5945671161026a578063571ac8b0116102235780636827e764116101fd5780636827e764146109575780636b67c4df146109825780636ddd1713146109ad57806370a08231146109da57610325565b8063571ac8b014610866578063617fe0ed146108cd578063658d4b7f146108fa57610325565b80632d594567146106e65780632f54bf6e146107305780633121c7c014610797578063313ce567146107c2578063364fc4f9146107f057806344a33fd21461082b57610325565b8063180b0d7e116102d75780631df4ccfc116102b15780631df4ccfc146105ba578063201e7991146105e557806323b872dd1461062a5780632b112e49146106bb57610325565b8063180b0d7e1461052957806318160ddd146105545780631da1db5e1461057f57610325565b80630445b6671461032a57806306fdde031461035557806309302dc6146103e5578063095ea7b3146104205780630d295980146104915780631161ae39146104ce57610325565b3661032557005b600080fd5b34801561033657600080fd5b5061033f611262565b6040518082815260200191505060405180910390f35b34801561036157600080fd5b5061036a611268565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103aa57808201518184015260208101905061038f565b50505050905090810190601f1680156103d75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103f157600080fd5b5061041e6004803603602081101561040857600080fd5b81019080803590602001909291905050506112a5565b005b34801561042c57600080fd5b506104796004803603604081101561044357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611339565b60405180821515815260200191505060405180910390f35b34801561049d57600080fd5b506104cc600480360360208110156104b457600080fd5b8101908080351515906020019092919050505061142b565b005b3480156104da57600080fd5b50610511600480360360408110156104f157600080fd5b8101908080359060200190929190803590602001909291905050506114c3565b60405180821515815260200191505060405180910390f35b34801561053557600080fd5b5061053e6114d8565b6040518082815260200191505060405180910390f35b34801561056057600080fd5b506105696114de565b6040518082815260200191505060405180910390f35b34801561058b57600080fd5b506105b8600480360360208110156105a257600080fd5b81019080803590602001909291905050506114e8565b005b3480156105c657600080fd5b506105cf6115e1565b6040518082815260200191505060405180910390f35b3480156105f157600080fd5b506106286004803603604081101561060857600080fd5b8101908080359060200190929190803590602001909291905050506115e7565b005b34801561063657600080fd5b506106a36004803603606081101561064d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611674565b60405180821515815260200191505060405180910390f35b3480156106c757600080fd5b506106d0611874565b6040518082815260200191505060405180910390f35b3480156106f257600080fd5b5061072e6004803603604081101561070957600080fd5b81019080803515159060200190929190803560ff1690602001909291905050506118f6565b005b34801561073c57600080fd5b5061077f6004803603602081101561075357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119aa565b60405180821515815260200191505060405180910390f35b3480156107a357600080fd5b506107ac611a03565b6040518082815260200191505060405180910390f35b3480156107ce57600080fd5b506107d7611a09565b604051808260ff16815260200191505060405180910390f35b3480156107fc57600080fd5b506108296004803603602081101561081357600080fd5b8101908080359060200190929190505050611a12565b005b34801561083757600080fd5b506108646004803603602081101561084e57600080fd5b8101908080359060200190929190505050611a97565b005b34801561087257600080fd5b506108b56004803603602081101561088957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b6e565b60405180821515815260200191505060405180910390f35b3480156108d957600080fd5b506108e2611ba1565b60405180821515815260200191505060405180910390f35b34801561090657600080fd5b506109556004803603604081101561091d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611bb4565b005b34801561096357600080fd5b5061096c611c8a565b6040518082815260200191505060405180910390f35b34801561098e57600080fd5b50610997611c90565b6040518082815260200191505060405180910390f35b3480156109b957600080fd5b506109c2611c96565b60405180821515815260200191505060405180910390f35b3480156109e657600080fd5b50610a29600480360360208110156109fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ca9565b6040518082815260200191505060405180910390f35b348015610a4b57600080fd5b50610a54611cf2565b604051808260ff16815260200191505060405180910390f35b348015610a7957600080fd5b50610abc60048036036020811015610a9057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d05565b005b348015610aca57600080fd5b50610ad3611dc4565b6040518082815260200191505060405180910390f35b348015610af557600080fd5b50610afe611dca565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b3657600080fd5b50610b3f611df3565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b7757600080fd5b50610b80611e17565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bc0578082015181840152602081019050610ba5565b50505050905090810190601f168015610bed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c0757600080fd5b50610c10611e54565b6040518082815260200191505060405180910390f35b348015610c3257600080fd5b50610c87600480360360a0811015610c4957600080fd5b810190808035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050611e5a565b005b348015610c9557600080fd5b50610c9e611ef9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610cd657600080fd5b50610d2360048036036040811015610ced57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f1f565b60405180821515815260200191505060405180910390f35b348015610d4757600080fd5b50610d8a60048036036020811015610d5e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f34565b005b348015610d9857600080fd5b50610da1612009565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610dd957600080fd5b50610e1a60048036036060811015610df057600080fd5b8101908080359060200190929190803590602001909291908035906020019092919050505061202f565b005b348015610e2857600080fd5b50610e5560048036036020811015610e3f57600080fd5b810190808035906020019092919050505061217c565b6040518082815260200191505060405180910390f35b348015610e7757600080fd5b50610efa60048036036060811015610e8e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121ee565b005b348015610f0857600080fd5b50610f3560048036036020811015610f1f57600080fd5b8101908080359060200190929190505050612331565b005b348015610f4357600080fd5b50610f4c6123f7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f8457600080fd5b50610fe760048036036040811015610f9b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061241d565b6040518082815260200191505060405180910390f35b34801561100957600080fd5b506110426004803603604081101561102057600080fd5b81019080803515159060200190929190803590602001909291905050506124a4565b005b34801561105057600080fd5b50611059612544565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561109157600080fd5b506110be600480360360208110156110a857600080fd5b810190808035906020019092919050505061256a565b005b3480156110cc57600080fd5b5061110f600480360360208110156110e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506125ef565b005b34801561111d57600080fd5b506111606004803603602081101561113457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126c5565b005b34801561116e57600080fd5b50611177612827565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156111af57600080fd5b506111f2600480360360208110156111c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061284d565b60405180821515815260200191505060405180910390f35b34801561121657600080fd5b5061121f6128a3565b6040518082815260200191505060405180910390f35b34801561124157600080fd5b5061124a6128a9565b60405180821515815260200191505060405180910390f35b601b5481565b60606040518060400160405280600c81526020017f6b61776169692e6d6f6e65790000000000000000000000000000000000000000815250905090565b6112ae336119aa565b611320576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6103e881600654028161132f57fe5b0460078190555050565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b611434336119aa565b6114a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80601860146101000a81548160ff02191690831515021790555050565b6000826114cf8361217c565b11905092915050565b600f5481565b6000600654905090565b6114f1336119aa565b611563576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000479050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064848402816115b057fe5b049081150290604051600060405180830381858888f193505050501580156115dc573d6000803e3d6000fd5b505050565b600e5481565b6115f0336119aa565b611662576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601581905550806016819055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611860576117df826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128bc9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61186b84848461297c565b90509392505050565b60006118f16118a4600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611ca9565b6118e36118d2600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611ca9565b600654612fe690919063ffffffff16565b612fe690919063ffffffff16565b905090565b6118ff336119aa565b611971576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601860156101000a81548160ff02191690831515021790555080601860166101000a81548160ff021916908360ff1602179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60105481565b60006012905090565b611a1b336119aa565b611a8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060108190555050565b611aa0336119aa565b611b12576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc606484840281611b3d57fe5b049081150290604051600060405180830381858888f19350505050158015611b69573d6000803e3d6000fd5b505050565b6000611b9a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611339565b9050919050565b601860159054906101000a900460ff1681565b611bbd336119aa565b611c2f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b600c5481565b601a60009054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601860169054906101000a900460ff1681565b611d0e336119aa565b611d80576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600681526020017f4b41574149490000000000000000000000000000000000000000000000000000815250905090565b600b5481565b611e63336119aa565b611ed5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b611ee085858561202f565b611ee982611a12565b611ef28161256a565b5050505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611f2c33848461297c565b905092915050565b611f3d336119aa565b611faf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612038336119aa565b6120aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b82600b8190555081600c819055506000600d819055506120e7600d546120d9848661303090919063ffffffff16565b61303090919063ffffffff16565b600e8190555080600f819055506003600f548161210057fe5b04600e5410612177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f466565732063616e6e6f74206265206d6f7265207468616e203333250000000081525060200191505060405180910390fd5b505050565b60006121e7612189611874565b6121d96121ca60026121bc601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611ca9565b6130b890919063ffffffff16565b856130b890919063ffffffff16565b61313e90919063ffffffff16565b9050919050565b6121f7336119aa565b612269576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b82601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b61233a336119aa565b6123ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60006123b730611ca9565b90506123f230601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064858502816123ec57fe5b04613188565b505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6124ad336119aa565b61251f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601a60006101000a81548160ff02191690831515021790555080601b819055505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612573336119aa565b6125e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060118190555050565b6125f8336119aa565b61266a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6126ce336119aa565b612740576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60115481565b601860149054906101000a900460ff1681565b6000838311158290612969576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561292e578082015181840152602081019050612913565b50505050905090810190601f16801561295b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000601c60009054906101000a900460ff16156129a55761299e848484613188565b9050612fdf565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612a495750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ad157601860149054906101000a900460ff16612ad0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54726164696e67206e6f74206f70656e2079657400000000000000000000000081525060200191505060405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b5757503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612bb15750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612c0b5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612c655750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612cbf5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612d195750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612d8a576000612d2984611ca9565b90506007548382011115612d88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e815260200180613d27603e913960400191505060405180910390fd5b505b612d9261335b565b15612da057612d9f613432565b5b612e29826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128bc9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612e7785613a78565b612e815782612edd565b612edc8584601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614613acf565b5b9050612f3181600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461303090919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b600061302883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506128bc565b905092915050565b6000808284019050838110156130ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000808314156130cb5760009050613138565b60008284029050828482816130dc57fe5b0414613133576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613d066021913960400191505060405180910390fd5b809150505b92915050565b600061318083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c3f565b905092915050565b6000613213826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128bc9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132a882600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461303090919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156133c85750601c60009054906101000a900460ff16155b80156133e05750601a60009054906101000a900460ff165b801561342d5750601b54600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601c60006101000a81548160ff021916908315150217905550600061345d6015546016546114c3565b61346957600b5461346c565b60005b905060006134ac600261349e600e5461349086601b546130b890919063ffffffff16565b61313e90919063ffffffff16565b61313e90919063ffffffff16565b905060006134c582601b54612fe690919063ffffffff16565b90506000600267ffffffffffffffff811180156134e157600080fd5b506040519080825280602002602001820160405280156135105781602001602082028036833780820191505090505b509050308160008151811061352157fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061358b57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561368e578082015181840152602081019050613673565b505050509050019650505050505050600060405180830381600087803b1580156136b757600080fd5b505af11580156136cb573d6000803e3d6000fd5b5050505060006136e48247612fe690919063ffffffff16565b905060006137106136ff60028961313e90919063ffffffff16565b600e54612fe690919063ffffffff16565b9050600061374c600261373e846137308c886130b890919063ffffffff16565b61313e90919063ffffffff16565b61313e90919063ffffffff16565b9050600061377783613769600c54876130b890919063ffffffff16565b61313e90919063ffffffff16565b905060006137a284613794600d54886130b890919063ffffffff16565b61313e90919063ffffffff16565b90506000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d806000811461382b576040519150601f19603f3d011682016040523d82523d6000602084013e613830565b606091505b50509050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051806000019050600060405180830381858888f193505050503d80600081146138b9576040519150601f19603f3d011682016040523d82523d6000602084013e6138be565b606091505b5050809150506000905060008a1115613a5057601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71985308d600080601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b1580156139bd57600080fd5b505af11580156139d1573d6000803e3d6000fd5b50505050506040513d60608110156139e857600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506848b604051808381526020018281526020019250505060405180910390a15b50505050505050505050506000601c60006101000a81548160ff021916908315150217905550565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008082613adf57601054613ae3565b6011545b90506000613b256064600f5402613b1784613b09600e548a6130b890919063ffffffff16565b6130b890919063ffffffff16565b61313e90919063ffffffff16565b9050613b7981600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461303090919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3613c348186612fe690919063ffffffff16565b925050509392505050565b60008083118290613ceb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613cb0578082015181840152602081019050613c95565b50505050905090810190601f168015613cdd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613cf757fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77546f74616c20486f6c64696e672069732063757272656e746c79206c696d697465642c20796f752063616e206e6f74206275792074686174206d7563682ea2646970667358221220682c2c078f406a6f011d35b7399baf764c5966f85aa750a66b3f28b9a7cd050964736f6c63430007060033

Deployed Bytecode

0x60806040526004361061031e5760003560e01c8063722b62ad116101ab578063d51ed1c8116100f7578063ec72d65f11610095578063f887ea401161006f578063f887ea4014611162578063fe9fbb80146111a3578063fed0d2a11461120a578063ffb54a991461123557610325565b8063ec72d65f14611085578063f0b37c04146110c0578063f2fde38b1461111157610325565b8063dab84ee7116100d1578063dab84ee714610f37578063dd62ed3e14610f78578063df20fd4914610ffd578063e96fada21461104457610325565b8063d51ed1c814610e1c578063d7c0103214610e6b578063da36d60714610efc57610325565b806398118cb411610164578063a9059cbb1161013e578063a9059cbb14610cca578063b6a5d7de14610d3b578063ca33e64c14610d8c578063cec10c1114610dcd57610325565b806398118cb414610bfb578063a3e9a14b14610c26578063a8aa1b3114610c8957610325565b8063722b62ad14610a3f57806373a432bb14610a6d57806378109e5414610abe578063893d20e814610ae95780638da5cb5b14610b2a57806395d89b4114610b6b57610325565b80632d5945671161026a578063571ac8b0116102235780636827e764116101fd5780636827e764146109575780636b67c4df146109825780636ddd1713146109ad57806370a08231146109da57610325565b8063571ac8b014610866578063617fe0ed146108cd578063658d4b7f146108fa57610325565b80632d594567146106e65780632f54bf6e146107305780633121c7c014610797578063313ce567146107c2578063364fc4f9146107f057806344a33fd21461082b57610325565b8063180b0d7e116102d75780631df4ccfc116102b15780631df4ccfc146105ba578063201e7991146105e557806323b872dd1461062a5780632b112e49146106bb57610325565b8063180b0d7e1461052957806318160ddd146105545780631da1db5e1461057f57610325565b80630445b6671461032a57806306fdde031461035557806309302dc6146103e5578063095ea7b3146104205780630d295980146104915780631161ae39146104ce57610325565b3661032557005b600080fd5b34801561033657600080fd5b5061033f611262565b6040518082815260200191505060405180910390f35b34801561036157600080fd5b5061036a611268565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103aa57808201518184015260208101905061038f565b50505050905090810190601f1680156103d75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103f157600080fd5b5061041e6004803603602081101561040857600080fd5b81019080803590602001909291905050506112a5565b005b34801561042c57600080fd5b506104796004803603604081101561044357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611339565b60405180821515815260200191505060405180910390f35b34801561049d57600080fd5b506104cc600480360360208110156104b457600080fd5b8101908080351515906020019092919050505061142b565b005b3480156104da57600080fd5b50610511600480360360408110156104f157600080fd5b8101908080359060200190929190803590602001909291905050506114c3565b60405180821515815260200191505060405180910390f35b34801561053557600080fd5b5061053e6114d8565b6040518082815260200191505060405180910390f35b34801561056057600080fd5b506105696114de565b6040518082815260200191505060405180910390f35b34801561058b57600080fd5b506105b8600480360360208110156105a257600080fd5b81019080803590602001909291905050506114e8565b005b3480156105c657600080fd5b506105cf6115e1565b6040518082815260200191505060405180910390f35b3480156105f157600080fd5b506106286004803603604081101561060857600080fd5b8101908080359060200190929190803590602001909291905050506115e7565b005b34801561063657600080fd5b506106a36004803603606081101561064d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611674565b60405180821515815260200191505060405180910390f35b3480156106c757600080fd5b506106d0611874565b6040518082815260200191505060405180910390f35b3480156106f257600080fd5b5061072e6004803603604081101561070957600080fd5b81019080803515159060200190929190803560ff1690602001909291905050506118f6565b005b34801561073c57600080fd5b5061077f6004803603602081101561075357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119aa565b60405180821515815260200191505060405180910390f35b3480156107a357600080fd5b506107ac611a03565b6040518082815260200191505060405180910390f35b3480156107ce57600080fd5b506107d7611a09565b604051808260ff16815260200191505060405180910390f35b3480156107fc57600080fd5b506108296004803603602081101561081357600080fd5b8101908080359060200190929190505050611a12565b005b34801561083757600080fd5b506108646004803603602081101561084e57600080fd5b8101908080359060200190929190505050611a97565b005b34801561087257600080fd5b506108b56004803603602081101561088957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b6e565b60405180821515815260200191505060405180910390f35b3480156108d957600080fd5b506108e2611ba1565b60405180821515815260200191505060405180910390f35b34801561090657600080fd5b506109556004803603604081101561091d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611bb4565b005b34801561096357600080fd5b5061096c611c8a565b6040518082815260200191505060405180910390f35b34801561098e57600080fd5b50610997611c90565b6040518082815260200191505060405180910390f35b3480156109b957600080fd5b506109c2611c96565b60405180821515815260200191505060405180910390f35b3480156109e657600080fd5b50610a29600480360360208110156109fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ca9565b6040518082815260200191505060405180910390f35b348015610a4b57600080fd5b50610a54611cf2565b604051808260ff16815260200191505060405180910390f35b348015610a7957600080fd5b50610abc60048036036020811015610a9057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d05565b005b348015610aca57600080fd5b50610ad3611dc4565b6040518082815260200191505060405180910390f35b348015610af557600080fd5b50610afe611dca565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b3657600080fd5b50610b3f611df3565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b7757600080fd5b50610b80611e17565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bc0578082015181840152602081019050610ba5565b50505050905090810190601f168015610bed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c0757600080fd5b50610c10611e54565b6040518082815260200191505060405180910390f35b348015610c3257600080fd5b50610c87600480360360a0811015610c4957600080fd5b810190808035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050611e5a565b005b348015610c9557600080fd5b50610c9e611ef9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610cd657600080fd5b50610d2360048036036040811015610ced57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f1f565b60405180821515815260200191505060405180910390f35b348015610d4757600080fd5b50610d8a60048036036020811015610d5e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f34565b005b348015610d9857600080fd5b50610da1612009565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610dd957600080fd5b50610e1a60048036036060811015610df057600080fd5b8101908080359060200190929190803590602001909291908035906020019092919050505061202f565b005b348015610e2857600080fd5b50610e5560048036036020811015610e3f57600080fd5b810190808035906020019092919050505061217c565b6040518082815260200191505060405180910390f35b348015610e7757600080fd5b50610efa60048036036060811015610e8e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121ee565b005b348015610f0857600080fd5b50610f3560048036036020811015610f1f57600080fd5b8101908080359060200190929190505050612331565b005b348015610f4357600080fd5b50610f4c6123f7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f8457600080fd5b50610fe760048036036040811015610f9b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061241d565b6040518082815260200191505060405180910390f35b34801561100957600080fd5b506110426004803603604081101561102057600080fd5b81019080803515159060200190929190803590602001909291905050506124a4565b005b34801561105057600080fd5b50611059612544565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561109157600080fd5b506110be600480360360208110156110a857600080fd5b810190808035906020019092919050505061256a565b005b3480156110cc57600080fd5b5061110f600480360360208110156110e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506125ef565b005b34801561111d57600080fd5b506111606004803603602081101561113457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126c5565b005b34801561116e57600080fd5b50611177612827565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156111af57600080fd5b506111f2600480360360208110156111c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061284d565b60405180821515815260200191505060405180910390f35b34801561121657600080fd5b5061121f6128a3565b6040518082815260200191505060405180910390f35b34801561124157600080fd5b5061124a6128a9565b60405180821515815260200191505060405180910390f35b601b5481565b60606040518060400160405280600c81526020017f6b61776169692e6d6f6e65790000000000000000000000000000000000000000815250905090565b6112ae336119aa565b611320576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6103e881600654028161132f57fe5b0460078190555050565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b611434336119aa565b6114a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80601860146101000a81548160ff02191690831515021790555050565b6000826114cf8361217c565b11905092915050565b600f5481565b6000600654905090565b6114f1336119aa565b611563576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000479050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064848402816115b057fe5b049081150290604051600060405180830381858888f193505050501580156115dc573d6000803e3d6000fd5b505050565b600e5481565b6115f0336119aa565b611662576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601581905550806016819055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611860576117df826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128bc9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61186b84848461297c565b90509392505050565b60006118f16118a4600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611ca9565b6118e36118d2600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611ca9565b600654612fe690919063ffffffff16565b612fe690919063ffffffff16565b905090565b6118ff336119aa565b611971576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601860156101000a81548160ff02191690831515021790555080601860166101000a81548160ff021916908360ff1602179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60105481565b60006012905090565b611a1b336119aa565b611a8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060108190555050565b611aa0336119aa565b611b12576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc606484840281611b3d57fe5b049081150290604051600060405180830381858888f19350505050158015611b69573d6000803e3d6000fd5b505050565b6000611b9a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611339565b9050919050565b601860159054906101000a900460ff1681565b611bbd336119aa565b611c2f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b600c5481565b601a60009054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601860169054906101000a900460ff1681565b611d0e336119aa565b611d80576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b80601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600681526020017f4b41574149490000000000000000000000000000000000000000000000000000815250905090565b600b5481565b611e63336119aa565b611ed5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b611ee085858561202f565b611ee982611a12565b611ef28161256a565b5050505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611f2c33848461297c565b905092915050565b611f3d336119aa565b611faf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612038336119aa565b6120aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b82600b8190555081600c819055506000600d819055506120e7600d546120d9848661303090919063ffffffff16565b61303090919063ffffffff16565b600e8190555080600f819055506003600f548161210057fe5b04600e5410612177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f466565732063616e6e6f74206265206d6f7265207468616e203333250000000081525060200191505060405180910390fd5b505050565b60006121e7612189611874565b6121d96121ca60026121bc601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611ca9565b6130b890919063ffffffff16565b856130b890919063ffffffff16565b61313e90919063ffffffff16565b9050919050565b6121f7336119aa565b612269576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b82601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b61233a336119aa565b6123ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60006123b730611ca9565b90506123f230601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064858502816123ec57fe5b04613188565b505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6124ad336119aa565b61251f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601a60006101000a81548160ff02191690831515021790555080601b819055505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612573336119aa565b6125e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060118190555050565b6125f8336119aa565b61266a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6126ce336119aa565b612740576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60115481565b601860149054906101000a900460ff1681565b6000838311158290612969576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561292e578082015181840152602081019050612913565b50505050905090810190601f16801561295b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000601c60009054906101000a900460ff16156129a55761299e848484613188565b9050612fdf565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612a495750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ad157601860149054906101000a900460ff16612ad0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f54726164696e67206e6f74206f70656e2079657400000000000000000000000081525060200191505060405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b5757503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612bb15750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612c0b5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612c655750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612cbf5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612d195750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612d8a576000612d2984611ca9565b90506007548382011115612d88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e815260200180613d27603e913960400191505060405180910390fd5b505b612d9261335b565b15612da057612d9f613432565b5b612e29826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128bc9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612e7785613a78565b612e815782612edd565b612edc8584601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614613acf565b5b9050612f3181600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461303090919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b600061302883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506128bc565b905092915050565b6000808284019050838110156130ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000808314156130cb5760009050613138565b60008284029050828482816130dc57fe5b0414613133576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613d066021913960400191505060405180910390fd5b809150505b92915050565b600061318083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c3f565b905092915050565b6000613213826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128bc9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132a882600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461303090919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156133c85750601c60009054906101000a900460ff16155b80156133e05750601a60009054906101000a900460ff165b801561342d5750601b54600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601c60006101000a81548160ff021916908315150217905550600061345d6015546016546114c3565b61346957600b5461346c565b60005b905060006134ac600261349e600e5461349086601b546130b890919063ffffffff16565b61313e90919063ffffffff16565b61313e90919063ffffffff16565b905060006134c582601b54612fe690919063ffffffff16565b90506000600267ffffffffffffffff811180156134e157600080fd5b506040519080825280602002602001820160405280156135105781602001602082028036833780820191505090505b509050308160008151811061352157fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061358b57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561368e578082015181840152602081019050613673565b505050509050019650505050505050600060405180830381600087803b1580156136b757600080fd5b505af11580156136cb573d6000803e3d6000fd5b5050505060006136e48247612fe690919063ffffffff16565b905060006137106136ff60028961313e90919063ffffffff16565b600e54612fe690919063ffffffff16565b9050600061374c600261373e846137308c886130b890919063ffffffff16565b61313e90919063ffffffff16565b61313e90919063ffffffff16565b9050600061377783613769600c54876130b890919063ffffffff16565b61313e90919063ffffffff16565b905060006137a284613794600d54886130b890919063ffffffff16565b61313e90919063ffffffff16565b90506000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051806000019050600060405180830381858888f193505050503d806000811461382b576040519150601f19603f3d011682016040523d82523d6000602084013e613830565b606091505b50509050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051806000019050600060405180830381858888f193505050503d80600081146138b9576040519150601f19603f3d011682016040523d82523d6000602084013e6138be565b606091505b5050809150506000905060008a1115613a5057601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71985308d600080601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b1580156139bd57600080fd5b505af11580156139d1573d6000803e3d6000fd5b50505050506040513d60608110156139e857600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506848b604051808381526020018281526020019250505060405180910390a15b50505050505050505050506000601c60006101000a81548160ff021916908315150217905550565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008082613adf57601054613ae3565b6011545b90506000613b256064600f5402613b1784613b09600e548a6130b890919063ffffffff16565b6130b890919063ffffffff16565b61313e90919063ffffffff16565b9050613b7981600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461303090919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3613c348186612fe690919063ffffffff16565b925050509392505050565b60008083118290613ceb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613cb0578082015181840152602081019050613c95565b50505050905090810190601f168015613cdd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613cf757fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77546f74616c20486f6c64696e672069732063757272656e746c79206c696d697465642c20796f752063616e206e6f74206275792074686174206d7563682ea2646970667358221220682c2c078f406a6f011d35b7399baf764c5966f85aa750a66b3f28b9a7cd050964736f6c63430007060033

Deployed Bytecode Sourcemap

6117:13076:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7677:58;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8907:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10434:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9432:248;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14570:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18944:182;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7059:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8589:102;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13482:243;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6990:62;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18374:205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10008:418;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18587:142;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14711:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3253:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7103:34;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8699:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14305:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14058:239;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9688:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7492:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16885:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6958:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6919:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7640:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9109:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7537:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10639:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6636:57;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9009:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2646:20;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8801:98;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6881:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17456:387;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7424:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9812:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3046:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7186:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17012:436;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18737:199;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17851:329;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13733:317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7271:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9236:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18188:178;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7229:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14425:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3148:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3479:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7393:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3364:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7144:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7452:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7677:58;;;;:::o;8907:94::-;8955:13;8988:5;;;;;;;;;;;;;;;;;8981:12;;8907:94;:::o;10434:197::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10619:4:::1;10592:23;10577:12;;:38;10576:47;;;;;;10558:15;:65;;;;10434:197:::0;:::o;9432:248::-;9534:4;9591:6;9556:11;:23;9568:10;9556:23;;;;;;;;;;;;;;;:32;9580:7;9556:32;;;;;;;;;;;;;;;:41;;;;9634:7;9613:37;;9622:10;9613:37;;;9643:6;9613:37;;;;;;;;;;;;;;;;;;9668:4;9661:11;;9432:248;;;;:::o;14570:94::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14649:7:::1;14635:11;;:21;;;;;;;;;;;;;;;;;;14570:94:::0;:::o;18944:182::-;19051:4;19112:6;19080:29;19100:8;19080:19;:29::i;:::-;:38;19073:45;;18944:182;;;;:::o;7059:35::-;;;;:::o;8589:102::-;8644:7;8671:12;;8664:19;;8589:102;:::o;13482:243::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13565:17:::1;13585:21;13565:41;;13625:20;;;;;;;;;;;13617:38;;:100;13703:3;13683:16;13671:9;:28;13670:36;;;;;;13617:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;2920:1;13482:243:::0;:::o;6990:62::-;;;;:::o;18374:205::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18512:7:::1;18494:15;:25;;;;18559:12;18530:26;:41;;;;18374:205:::0;;:::o;10008:418::-;10142:4;10206:2;10163:11;:19;10175:6;10163:19;;;;;;;;;;;;;;;:31;10183:10;10163:31;;;;;;;;;;;;;;;;:46;10159:200;;10260:87;10314:6;10260:87;;;;;;;;;;;;;;;;;:11;:19;10272:6;10260:19;;;;;;;;;;;;;;;:31;10280:10;10260:31;;;;;;;;;;;;;;;;:53;;:87;;;;;:::i;:::-;10226:11;:19;10238:6;10226:19;;;;;;;;;;;;;;;:31;10246:10;10226:31;;;;;;;;;;;;;;;:121;;;;10159:200;10378:40;10392:6;10400:9;10411:6;10378:13;:40::i;:::-;10371:47;;10008:418;;;;;:::o;18587:142::-;18640:7;18667:54;18705:15;18715:4;;;;;;;;;;;18705:9;:15::i;:::-;18667:33;18684:15;18694:4;;;;;;;;;;;18684:9;:15::i;:::-;18667:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;18660:61;;18587:142;:::o;14711:164::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14816:7:::1;14795:18;;:28;;;;;;;;;;;;;;;;;;14858:9;14834:21;;:33;;;;;;;;;;;;;;;;;;14711:164:::0;;:::o;3253:103::-;3308:4;3343:5;;;;;;;;;;;3332:16;;:7;:16;;;3325:23;;3253:103;;;:::o;7103:34::-;;;;:::o;8699:94::-;8751:5;6575:2;8769:16;;8699:94;:::o;14305:112::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14398:11:::1;14382:13;:27;;;;14305:112:::0;:::o;14058:239::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14171:17:::1;14191:21;14171:41;;14231:10;14223:28;;:66;14285:3;14265:16;14253:9;:28;14252:36;;;;;;14223:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;2920:1;14058:239:::0;:::o;9688:116::-;9743:4;9767:29;9775:7;9792:2;9767:7;:29::i;:::-;9760:36;;9688:116;;;:::o;7492:38::-;;;;;;;;;;;;;:::o;16885:119::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16990:6:::1;16968:11;:19;16980:6;16968:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;16885:119:::0;;:::o;6958:25::-;;;;:::o;6919:32::-;;;;:::o;7640:30::-;;;;;;;;;;;;;:::o;9109:119::-;9175:7;9202:9;:18;9212:7;9202:18;;;;;;;;;;;;;;;;9195:25;;9109:119;;;:::o;7537:38::-;;;;;;;;;;;;;:::o;10639:86::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10712:5:::1;10705:4;;:12;;;;;;;;;;;;;;;;;;10639:86:::0;:::o;6636:57::-;;;;:::o;9009:92::-;9061:7;9088:5;;;;;;;;;;;9081:12;;9009:92;:::o;2646:20::-;;;;;;;;;;;;:::o;8801:98::-;8851:13;8884:7;;;;;;;;;;;;;;;;;8877:14;;8801:98;:::o;6881:31::-;;;;:::o;17456:387::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17689:54:::1;17697:13;17712;17727:15;17689:7;:54::i;:::-;17754:34;17773:14;17754:18;:34::i;:::-;17799:36;17819:15;17799:19;:36::i;:::-;17456:387:::0;;;;;:::o;7424:19::-;;;;;;;;;;;;;:::o;9812:188::-;9919:4;9948:44;9962:10;9974:9;9985:6;9948:13;:44::i;:::-;9941:51;;9812:188;;;;:::o;3046:94::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3128:4:::1;3106:14:::0;:19:::1;3121:3;3106:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3046:94:::0;:::o;7186:36::-;;;;;;;;;;;;;:::o;17012:436::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17177:13:::1;17162:12;:28;;;;17216:13;17201:12;:28;;;;17249:1;17240:6;:10;;;;17272:44;17309:6;;17272:32;17290:13;17272;:17;;:32;;;;:::i;:::-;:36;;:44;;;;:::i;:::-;17261:8;:55;;;;17344:15;17327:14;:32;;;;17406:1;17389:14;;:18;;;;;;17378:8;;:29;17370:70;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;17012:436:::0;;;:::o;18737:199::-;18832:7;18864:64;18905:22;:20;:22::i;:::-;18864:36;18877:22;18897:1;18877:15;18887:4;;;;;;;;;;;18877:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;18864:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;18857:71;;18737:199;;;:::o;17851:329::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18052:22:::1;18028:21;;:46;;;;;;;;;;;;;;;;;;18108:21;18085:20;;:44;;;;;;;;;;;;;;;;;;18157:15;18140:14;;:32;;;;;;;;;;;;;;;;;;17851:329:::0;;;:::o;13733:317::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13844:19:::1;13866:24;13884:4;13866:9;:24::i;:::-;13844:46;;13901:141;13938:4;13958:20;;;;;;;;;;;14028:3;14008:16;13994:11;:30;13993:38;;;;;;13901:14;:141::i;:::-;;2920:1;13733:317:::0;:::o;7271:29::-;;;;;;;;;;;;;:::o;9236:188::-;9356:7;9388:11;:19;9400:6;9388:19;;;;;;;;;;;;;;;:28;9408:7;9388:28;;;;;;;;;;;;;;;;9381:35;;9236:188;;;;:::o;18188:178::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18316:8:::1;18302:11;;:22;;;;;;;;;;;;;;;;;;18351:7;18335:13;:23;;;;18188:178:::0;;:::o;7229:35::-;;;;;;;;;;;;;:::o;14425:114::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14520:11:::1;14503:14;:28;;;;14425:114:::0;:::o;3148:97::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3232:5:::1;3210:14;:19;3225:3;3210:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3148:97:::0;:::o;3479:173::-;2879:19;2887:10;2879:7;:19::i;:::-;2871:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3563:3:::1;3555:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3599:4;3577:14:::0;:19:::1;3592:3;3577:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3619:25;3640:3;3619:25;;;;;;;;;;;;;;;;;;;;3479:173:::0;:::o;7393:24::-;;;;;;;;;;;;;:::o;3364:107::-;3420:4;3444:14;:19;3459:3;3444:19;;;;;;;;;;;;;;;;;;;;;;;;;3437:26;;3364:107;;;:::o;7144:33::-;;;;:::o;7452:31::-;;;;;;;;;;;;;:::o;667:226::-;787:7;820:1;815;:6;;823:12;807:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;847:9;863:1;859;:5;847:17;;884:1;877:8;;;667:226;;;;;:::o;10733:1475::-;10859:4;10880:6;;;;;;;;;;;10876:87;;;10910:41;10925:6;10933:9;10944:6;10910:14;:41::i;:::-;10903:48;;;;10876:87;10980:14;:22;10995:6;10980:22;;;;;;;;;;;;;;;;;;;;;;;;;10979:23;:53;;;;;11007:14;:25;11022:9;11007:25;;;;;;;;;;;;;;;;;;;;;;;;;11006:26;10979:53;10975:130;;;11057:11;;;;;;;;;;;11049:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10975:130;11136:14;:22;11151:6;11136:22;;;;;;;;;;;;;;;;;;;;;;;;;11135:23;:66;;;;;11196:4;11175:26;;:9;:26;;;;11135:66;:109;;;;;11239:4;;;;;;;;;;;11218:26;;:9;:26;;;;11135:109;:143;;;;;11274:4;;;;;;;;;;;11261:17;;:9;:17;;;;11135:143;:193;;;;;11308:20;;;;;;;;;;;11295:33;;:9;:33;;;;11135:193;:237;;;;;11358:14;;;;;;;;;;;11345:27;;:9;:27;;;;11135:237;:288;;;;;11402:21;;;;;;;;;;;11389:34;;:9;:34;;;;11135:288;11117:565;;;11450:18;11471:20;11481:9;11471;:20::i;:::-;11450:41;;11557:15;;11546:6;11533:10;:19;11532:40;;11506:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11117:565;;11698:16;:14;:16::i;:::-;11694:59;;;11731:10;:8;:10::i;:::-;11694:59;11812:90;11848:6;11812:90;;;;;;;;;;;;;;;;;:9;:17;11822:6;11812:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;11792:9;:17;11802:6;11792:17;;;;;;;;;;;;;;;:110;;;;11915:22;11940:21;11954:6;11940:13;:21::i;:::-;:103;;12037:6;11940:103;;;11977:44;11985:6;11993;12015:4;;;;;;;;;;;12002:17;;:9;:17;;;11977:7;:44::i;:::-;11940:103;11915:128;;12077:40;12102:14;12077:9;:20;12087:9;12077:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;12054:9;:20;12064:9;12054:20;;;;;;;;;;;;;;;:63;;;;12152:9;12135:43;;12144:6;12135:43;;;12163:14;12135:43;;;;;;;;;;;;;;;;;;12196:4;12189:11;;;10733:1475;;;;;;:::o;523:136::-;581:7;608:43;612:1;615;608:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;601:50;;523:136;;;;:::o;334:181::-;392:7;412:9;428:1;424;:5;412:17;;453:1;448;:6;;440:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;506:1;499:8;;;334:181;;;;:::o;901:250::-;959:7;988:1;983;:6;979:47;;;1013:1;1006:8;;;;979:47;1038:9;1054:1;1050;:5;1038:17;;1083:1;1078;1074;:5;;;;;;:10;1066:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1142:1;1135:8;;;901:250;;;;;:::o;1159:132::-;1217:7;1244:39;1248:1;1251;1244:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1237:46;;1159:132;;;;:::o;12216:401::-;12343:4;12380:90;12416:6;12380:90;;;;;;;;;;;;;;;;;:9;:17;12390:6;12380:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;12360:9;:17;12370:6;12360:17;;;;;;;;;;;;;;;:110;;;;12504:32;12529:6;12504:9;:20;12514:9;12504:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12481:9;:20;12491:9;12481:20;;;;;;;;;;;;;;;:55;;;;12569:9;12552:35;;12561:6;12552:35;;;12580:6;12552:35;;;;;;;;;;;;;;;;;;12605:4;12598:11;;12216:401;;;;;:::o;13252:222::-;13301:4;13352;;;;;;;;;;;13338:18;;:10;:18;;;;:42;;;;;13374:6;;;;;;;;;;;13373:7;13338:42;:70;;;;;13397:11;;;;;;;;;;;13338:70;:128;;;;;13453:13;;13425:9;:24;13443:4;13425:24;;;;;;;;;;;;;;;;:41;;13338:128;13318:148;;13252:222;:::o;14883:1994::-;7800:4;7791:6;;:13;;;;;;;;;;;;;;;;;;14932:27:::1;14962:97;14992:15;;15022:26;;14962:15;:97::i;:::-;:142;;15092:12;;14962:142;;;15075:1;14962:142;14932:172;;15115:23;15141:101;15240:1;15141:80;15212:8;;15141:52;15173:19;15141:13;;:31;;:52;;;;:::i;:::-;:70;;:80;;;;:::i;:::-;:98;;:101;;;;:::i;:::-;15115:127;;15253:20;15276:34;15294:15;15276:13;;:17;;:34;;;;:::i;:::-;15253:57;;15323:21;15361:1;15347:16;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15323:40;;15392:4;15374;15379:1;15374:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;15418:4;;;;;;;;;;;15408;15413:1;15408:7;;;;;;;;;;;;;:14;;;;;;;;;::::0;::::1;15435:21;15459;15435:45;;15493:6;;;;;;;;;;;:57;;;15565:12;15592:1;15608:4;15635;15655:15;15493:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15694:17;15714:40;15740:13;15714:21;:25;;:40;;;;:::i;:::-;15694:60;;15767:19;15789:40;15802:26;15826:1;15802:19;:23;;:26;;;;:::i;:::-;15789:8;;:12;;:40;;;;:::i;:::-;15767:62;;15842:26;15871:100;15969:1;15871:79;15938:11;15871:48;15899:19;15871:9;:27;;:48;;;;:::i;:::-;:66;;:79;;;;:::i;:::-;:97;;:100;;;;:::i;:::-;15842:129;;15982:26;16011:68;16057:11;16011:27;16025:12;;16011:9;:13;;:27;;;;:::i;:::-;:31;;:68;;;;:::i;:::-;15982:97;;16090:20;16113:38;16139:11;16113:21;16127:6;;16113:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;16090:61;;16165:15;16194:20;;;;;;;;;;;16186:34;;16242:18;16280:5;16186:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16164:136;;;16336:14;;;;;;;;;;;16328:28;;16378:12;16410:5;16328:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16311:119;;;;;16488:5;16475:18;;16528:1;16510:15;:19;16506:364;;;16546:6;;;;;;;;;;;:22;;;16576:18;16622:4;16646:15;16680:1;16700::::0;16720:21:::1;;;;;;;;;;;16760:15;16546:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16810:48;16822:18;16842:15;16810:48;;;;;;;;;;;;;;;;;;;;;;;;16506:364;7815:1;;;;;;;;;;;7836:5:::0;7827:6;;:14;;;;;;;;;;;;;;;;;;14883:1994::o;12625:114::-;12687:4;12712:11;:19;12724:6;12712:19;;;;;;;;;;;;;;;;;;;;;;;;;12711:20;12704:27;;12625:114;;;:::o;12747:497::-;12861:7;12881:18;12902:6;:39;;12928:13;;12902:39;;;12911:14;;12902:39;12881:60;;12952:17;12972:86;13044:3;13027:14;;:20;12972:36;12997:10;12972:20;12983:8;;12972:6;:10;;:20;;;;:::i;:::-;:24;;:36;;;;:::i;:::-;:40;;:86;;;;:::i;:::-;12952:106;;13098:39;13127:9;13098;:24;13116:4;13098:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;13071:9;:24;13089:4;13071:24;;;;;;;;;;;;;;;:66;;;;13178:4;13153:42;;13162:6;13153:42;;;13185:9;13153:42;;;;;;;;;;;;;;;;;;13215:21;13226:9;13215:6;:10;;:21;;;;:::i;:::-;13208:28;;;;12747:497;;;;;:::o;1299:223::-;1419:7;1451:1;1447;:5;1454:12;1439:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1478:9;1494:1;1490;:5;;;;;;1478:17;;1513:1;1506:8;;;1299:223;;;;;:::o

Swarm Source

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