ETH Price: $3,470.83 (+0.62%)
Gas: 6 Gwei

Token

Infinite Money Glitch (GLITCH)
 

Overview

Max Total Supply

133,713,371,337 GLITCH

Holders

399

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
100,493,257.087973375 GLITCH

Value
$0.00
0xe656640456717019138Dcf4D60e6Ea002D0276eB
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:
IMG

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*

https://t.me/GLITCHportal

*/

// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.13;

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * ERC20 standard interface.
 */
interface IERC20 {
    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
    );
}

/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    /**
     * Function modifier to require caller to be contract deployer
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!Owner");
        _;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Transfer ownership to new address. Caller must be deployer. Leaves old deployer authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

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

    function WETH() external pure returns (address);

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

interface IDividendDistributor {
    function setShare(address shareholder, uint256 amount) external;

    function claimDividend(address shareholder) external;

    function getDividendsClaimedPP(address shareholder)
        external
        view
        returns (uint256);

    function getDividendsClaimedPL(address shareholder)
        external
        view
        returns (uint256);
}

contract DividendDistributor is IDividendDistributor {
    using SafeMath for uint256;

    address public _token;
    address public _owner;

    address public immutable PP =
        address(0x8442E0e292186854BB6875b2A0fc1308b9Ded793); //UNI
    address public immutable PL =
        address(0xFB033FA09706fA92acE768736EC94AD68688888B); //UNI

    struct Share {
        uint256 amount;
        uint256 totalExcludedPP;
        uint256 totalExcludedPL;
        uint256 totalClaimedPP;
        uint256 totalClaimedPL;
    }

    address[] private shareholders;
    mapping(address => uint256) private shareholderIndexes;

    mapping(address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividendsPP;
    uint256 public totalDividendsPL;
    uint256 public totalClaimedPP;
    uint256 public totalClaimedPL;
    uint256 public dividendsPerSharePP;
    uint256 public dividendsPerSharePL;
    uint256 private dividendsPerShareAccuracyFactor = 10**36;

    modifier onlyToken() {
        require(msg.sender == _token, "Caller is not the token contract");
        _;
    }

    modifier onlyOwner() {
        require(msg.sender == _owner, "Caller is not the owner");
        _;
    }

    constructor(address owner) {
        _token = msg.sender;
        _owner = owner;
    }

    receive() external payable {}

    function setShare(address shareholder, uint256 amount)
        external
        override
        onlyToken
    {
        if (shares[shareholder].amount > 0) {
            distributeDividendPP(shareholder);
            distributeDividendPL(shareholder);
        }

        if (amount > 0 && shares[shareholder].amount == 0) {
            addShareholder(shareholder);
        } else if (amount == 0 && shares[shareholder].amount > 0) {
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcludedPP = getCumulativeDividendsPP(
            shares[shareholder].amount
        );
        shares[shareholder].totalExcludedPL = getCumulativeDividendsPL(
            shares[shareholder].amount
        );
    }

    function depositPP(uint256 amount) external onlyToken {
        require(amount > 0, "Amount must be greater than zero");
        totalDividendsPP = totalDividendsPP.add(amount);
        dividendsPerSharePP = dividendsPerSharePP.add(
            dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)
        );
    }

    function depositPL(uint256 amount) external onlyToken {
        require(amount > 0, "Amount must be greater than zero");
        totalDividendsPL = totalDividendsPL.add(amount);
        dividendsPerSharePL = dividendsPerSharePL.add(
            dividendsPerShareAccuracyFactor.mul(amount).div(totalShares)
        );
    }

    function distributeDividendPP(address shareholder) internal {
        if (shares[shareholder].amount == 0) {
            return;
        }

        uint256 amount = getClaimableDividendPPOf(shareholder);
        if (amount > 0) {
            totalClaimedPP = totalClaimedPP.add(amount);
            shares[shareholder].totalClaimedPP = shares[shareholder]
                .totalClaimedPP
                .add(amount);
            shares[shareholder].totalExcludedPP = getCumulativeDividendsPP(
                shares[shareholder].amount
            );
            IERC20(PP).transfer(shareholder, amount);
        }
    }

    function distributeDividendPL(address shareholder) internal {
        if (shares[shareholder].amount == 0) {
            return;
        }

        uint256 amount = getClaimableDividendPLOf(shareholder);
        if (amount > 0) {
            totalClaimedPL = totalClaimedPL.add(amount);
            shares[shareholder].totalClaimedPL = shares[shareholder]
                .totalClaimedPL
                .add(amount);
            shares[shareholder].totalExcludedPL = getCumulativeDividendsPL(
                shares[shareholder].amount
            );
            IERC20(PL).transfer(shareholder, amount);
        }
    }

    function claimDividend(address shareholder) external override onlyToken {
        distributeDividendPP(shareholder);
        distributeDividendPL(shareholder);
    }

    function getClaimableDividendPPOf(address shareholder)
        public
        view
        returns (uint256)
    {
        if (shares[shareholder].amount == 0) {
            return 0;
        }

        uint256 shareholderTotalDividends = getCumulativeDividendsPP(
            shares[shareholder].amount
        );
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcludedPP;

        if (shareholderTotalDividends <= shareholderTotalExcluded) {
            return 0;
        }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getClaimableDividendPLOf(address shareholder)
        public
        view
        returns (uint256)
    {
        if (shares[shareholder].amount == 0) {
            return 0;
        }

        uint256 shareholderTotalDividends = getCumulativeDividendsPL(
            shares[shareholder].amount
        );
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcludedPL;

        if (shareholderTotalDividends <= shareholderTotalExcluded) {
            return 0;
        }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividendsPP(uint256 share)
        internal
        view
        returns (uint256)
    {
        return
            share.mul(dividendsPerSharePP).div(dividendsPerShareAccuracyFactor);
    }

    function getCumulativeDividendsPL(uint256 share)
        internal
        view
        returns (uint256)
    {
        return
            share.mul(dividendsPerSharePL).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[
            shareholders.length - 1
        ];
        shareholderIndexes[
            shareholders[shareholders.length - 1]
        ] = shareholderIndexes[shareholder];
        shareholders.pop();
    }

    function manualSend(uint256 amount, address holder) external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(holder).transfer(amount > 0 ? amount : contractETHBalance);
    }

    function getDividendsClaimedPP(address shareholder)
        external
        view
        override
        returns (uint256)
    {
        require(shares[shareholder].amount > 0, "You're not a shareholder!");

        return shares[shareholder].totalClaimedPP;
    }

    function getDividendsClaimedPL(address shareholder)
        external
        view
        override
        returns (uint256)
    {
        require(shares[shareholder].amount > 0, "You're not a shareholder!");

        return shares[shareholder].totalClaimedPL;
    }
}

contract IMG is IERC20, Auth {
    using SafeMath for uint256;

    address private WETH;
    address private DEAD = 0x000000000000000000000000000000000000dEaD;
    address private ZERO = 0x0000000000000000000000000000000000000000;

    address public immutable PP =
        address(0x8442E0e292186854BB6875b2A0fc1308b9Ded793); //UNI
    address public immutable PL =
        address(0xFB033FA09706fA92acE768736EC94AD68688888B); //UNI

    string private constant _name = "Infinite Money Glitch";
    string private constant _symbol = "GLITCH";
    uint8 private constant _decimals = 9;

    uint256 private _totalSupply = 133713371337 * (10**_decimals);
    uint256 private _maxTxAmountBuy = _totalSupply;

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

    mapping(address => bool) private isFeeExempt;
    mapping(address => bool) private isDividendExempt;
    mapping(address => bool) private isBot;

    uint256 private totalFee = 10;
    uint256 private feeDenominator = 100;

    address payable public marketingWallet =
        payable(0x2d3D3Cca83F9fAff5a13cDAf6Eaad4EF3b4EC5f3);

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;
    bool private tradingOpen = true;
    bool private buyLimit = true;
    uint256 private maxBuy = 1337133713 * (10**_decimals);
    uint256 public numTokensSellToSwap = 133713371 * 10**9;
    uint256 public ppPercentage = 40;
    uint256 public plPercentage = 30;
    uint256 public ethPercentage = 30;

    DividendDistributor public distributor;

    bool public blacklistEnabled = false;
    bool private inSwap;
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor(address _owner) Auth(_owner) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        WETH = router.WETH();

        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));

        _allowances[address(this)][address(router)] = type(uint256).max;

        distributor = new DividendDistributor(_owner);

        isFeeExempt[_owner] = true;
        isFeeExempt[marketingWallet] = true;

        isDividendExempt[pair] = true;
        isDividendExempt[DEAD] = true;

        _balances[_owner] = _totalSupply;

        emit Transfer(address(0), _owner, _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, type(uint256).max);
    }

    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] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender]
                .sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        if (sender != owner && recipient != owner)
            require(tradingOpen, "Trading not yet enabled.");
        if (blacklistEnabled) {
            require(!isBot[sender] && !isBot[recipient], "Bot!");
        }
        if (buyLimit) {
           if (sender != owner && recipient != owner && sender != address(this) && recipient != address(this))
                require(amount <= maxBuy, "Too much sir");
        }

        if (
            sender == pair &&
            recipient != address(router) &&
            !isFeeExempt[recipient]
        ) {
            require(cooldown[recipient] < block.timestamp);
            cooldown[recipient] = block.timestamp + 60 seconds;
        }

        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool overMinTokenBalance = contractTokenBalance >= numTokensSellToSwap;

        bool shouldSwapBack = (overMinTokenBalance &&
            recipient == pair &&
            balanceOf(address(this)) > 0);
        if (shouldSwapBack) {
            swapBack();
        }

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

        uint256 amountReceived = shouldTakeFee(sender, recipient)
            ? takeFee(sender, amount)
            : amount;

        _balances[recipient] = _balances[recipient].add(amountReceived);

        if (sender != pair && !isDividendExempt[sender]) {
            try distributor.setShare(sender, _balances[sender]) {} catch {}
        }
        if (recipient != pair && !isDividendExempt[recipient]) {
            try
                distributor.setShare(recipient, _balances[recipient])
            {} catch {}
        }

        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, address recipient)
        internal
        view
        returns (bool)
    {
        return (!(isFeeExempt[sender] || isFeeExempt[recipient]) &&
            (sender == pair || recipient == pair));
    }

    function takeFee(address sender, uint256 amount)
        internal
        returns (uint256)
    {
        uint256 feeAmount;
        feeAmount = amount.mul(totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function setSwapPercentages(
        uint256 newPPPercentage,
        uint256 newPLPercentage,
        uint256 newEthPercentage
    ) external onlyOwner {
        require(
            newPPPercentage.add(newPLPercentage).add(newEthPercentage) == 100,
            "Percentages must add up to 100"
        );
        ppPercentage = newPPPercentage;
        plPercentage = newPLPercentage;
        ethPercentage = newEthPercentage;
    }

    function swapBack() internal swapping {
        uint256 amountToSwap = balanceOf(address(this));

        uint256 amountToSwapPP = amountToSwap.mul(ppPercentage).div(100);
        uint256 amountToSwapPL = amountToSwap.mul(plPercentage).div(100);
        uint256 amountToSwapEth = amountToSwap.mul(ethPercentage).div(100);

        swapTokensForEth(amountToSwapEth);
        swapTokensForPP(amountToSwapPP);
        swapTokensForPL(amountToSwapPL);

        claimPPDividendContract();
        claimPLDividendContract();

        uint256 dividendsPP = IERC20(PP).balanceOf(address(this));
        uint256 dividendsPL = IERC20(PL).balanceOf(address(this));

        bool successPP = IERC20(PP).transfer(address(distributor), dividendsPP);
        bool successPL = IERC20(PL).transfer(address(distributor), dividendsPL);

        if (successPP) {
            distributor.depositPP(dividendsPP);
        }
        if (successPL) {
            distributor.depositPL(dividendsPL);
        }

        payable(marketingWallet).transfer(address(this).balance);
    }

    function swapTokensForPP(uint256 tokenAmount) private {
        address[] memory path = new address[](3);
        path[0] = address(this);
        path[1] = WETH;
        path[2] = PP;

        router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function swapTokensForPL(uint256 tokenAmount) private {
        address[] memory path = new address[](3);
        path[0] = address(this);
        path[1] = WETH;
        path[2] = PL;

        router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

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

    function openTrading() external onlyOwner {
        launchedAt = block.number;
        tradingOpen = true;
    }

    function setBot(address _address, bool toggle) external onlyOwner {
        isBot[_address] = toggle;
        _setIsDividendExempt(_address, toggle);
    }

    function _setIsDividendExempt(address holder, bool exempt) internal {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if (exempt) {
            distributor.setShare(holder, 0);
        } else {
            distributor.setShare(holder, _balances[holder]);
        }
    }

    function setIsDividendExempt(address holder, bool exempt)
        external
        onlyOwner
    {
        _setIsDividendExempt(holder, exempt);
    }

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

    function setFee(uint256 _fee) external onlyOwner {
        require(_fee <= 20, "Fee can't exceed 20%");
        totalFee = _fee;
    }

    function manualSend() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(marketingWallet).transfer(contractETHBalance);
    }

    function claimDividend() external {
        distributor.claimDividend(msg.sender);
    }

    function claimDividend(address holder) external onlyOwner {
        distributor.claimDividend(holder);
    }

    function claimPPDividendContract() public {
        (bool success, ) = PP.call(abi.encodeWithSelector(bytes4(0xf0fc6bca)));
        require(success, "Claiming dividend failed");
    }

    function claimPLDividendContract() public {
        (bool success, ) = PL.call(abi.encodeWithSelector(bytes4(0xf0fc6bca)));
        require(success, "Claiming dividend failed");
    }

    function getClaimableDividendPPOf(address shareholder)
        public
        view
        returns (uint256)
    {
        return distributor.getClaimableDividendPPOf(shareholder);
    }

    function getClaimableDividendPLOf(address shareholder)
        public
        view
        returns (uint256)
    {
        return distributor.getClaimableDividendPLOf(shareholder);
    }

    function manualBurn(uint256 amount) external onlyOwner returns (bool) {
        return _basicTransfer(address(this), DEAD, amount);
    }

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

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

    function getTotalDividendsPP() external view returns (uint256) {
        return distributor.totalDividendsPP();
    }

    function getTotalDividendsPL() external view returns (uint256) {
        return distributor.totalDividendsPL();
    }

    function getTotalClaimedPP() external view returns (uint256) {
        return distributor.totalClaimedPP();
    }

    function getTotalClaimedPL() external view returns (uint256) {
        return distributor.totalClaimedPL();
    }

    function removeBuyLimit() external onlyOwner {
        buyLimit = false;
    }

    function checkBot(address account) public view returns (bool) {
        return isBot[account];
    }

    function setBlacklistEnabled() external onlyOwner {
        require(blacklistEnabled == false, "can only be called once");
        blacklistEnabled = true;
    }

    function setSwapThresholdAmount(uint256 amount) external onlyOwner {
        numTokensSellToSwap = amount * 10**9;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"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":"PL","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PP","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blacklistEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"checkBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimPLDividendContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimPPDividendContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"distributor","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ethPercentage","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":"address","name":"shareholder","type":"address"}],"name":"getClaimableDividendPLOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getClaimableDividendPPOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalClaimedPL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalClaimedPP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalDividendsPL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalDividendsPP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"numTokensSellToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"plPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ppPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeBuyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"setBlacklistEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"toggle","type":"bool"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","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":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPPPercentage","type":"uint256"},{"internalType":"uint256","name":"newPLPercentage","type":"uint256"},{"internalType":"uint256","name":"newEthPercentage","type":"uint256"}],"name":"setSwapPercentages","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapThresholdAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600280546001600160a01b031990811661dead17909155600380549091169055738442e0e292186854bb6875b2a0fc1308b9ded79360805273fb033fa09706fa92ace768736ec94ad68688888b60a052620000626009600a6200053a565b6200007390641f21f020c962000552565b6004819055600555600a600c8190556064600d55600e80546001600160a01b031916732d3d3cca83f9faff5a13cdaf6eaad4ef3b4ec5f31790556012805461010161ffff19909116179055620000cc906009906200053a565b620000dc90634fb30a9162000552565b6013556701db0b9a3c2cce006014556028601555601e60168190556017556018805460ff60a01b191690553480156200011457600080fd5b50604051620040d0380380620040d0833981016040819052620001379162000574565b600080546001600160a01b03199081166001600160a01b03841617909155600f8054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620001b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d6919062000574565b600180546001600160a01b0319166001600160a01b03928316179055600f546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000235573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025b919062000574565b6001546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015620002ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d3919062000574565b601080546001600160a01b0319166001600160a01b03928316179055306000908152600760209081526040808320600f5490941683529290528190206000199055518190620003229062000417565b6001600160a01b039091168152602001604051809103906000f0801580156200034f573d6000803e3d6000fd5b50601880546001600160a01b0319166001600160a01b039283161790558181166000818152600960209081526040808320805460ff199081166001908117909255600e5487168552828520805482168317905560105487168552600a845282852080548216831790556002549096168452818420805490961617909455600454838352600682528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3506200059f565b6113018062002dcf83390190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200047c57816000190482111562000460576200046062000425565b808516156200046e57918102915b93841c939080029062000440565b509250929050565b600082620004955750600162000534565b81620004a45750600062000534565b8160018114620004bd5760028114620004c857620004e8565b600191505062000534565b60ff841115620004dc57620004dc62000425565b50506001821b62000534565b5060208310610133831016604e8410600b84101617156200050d575081810a62000534565b6200051983836200043b565b806000190482111562000530576200053062000425565b0290505b92915050565b60006200054b60ff84168362000484565b9392505050565b60008160001904831182151516156200056f576200056f62000425565b500290565b6000602082840312156200058757600080fd5b81516001600160a01b03811681146200054b57600080fd5b60805160a0516127d2620005fd6000396000818161037a0152818161120801528181611d2d01528181611e65015261240501526000818161086b01528181610dff01528181611c9701528181611dc7015261230401526127d26000f3fe6080604052600436106102b25760003560e01c806370a0823111610175578063bf56b371116100dc578063dfb9b2e611610095578063f2fde38b1161006f578063f2fde38b146108a2578063f4293890146108c2578063f708a64f146108d7578063f887ea40146108f757600080fd5b8063dfb9b2e614610844578063eeeac01e14610859578063f0fc6bca1461088d57600080fd5b8063bf56b3711461077c578063bfe1092814610792578063bffb691d146107b2578063c9567bf9146107d3578063dd62ed3e146107e8578063dec9d0fa1461082e57600080fd5b806395d89b411161012e57806395d89b4114610694578063977c103c146106c3578063a8aa1b31146106e3578063a9059cbb14610703578063b1a4e0dc14610723578063b46c4c131461075c57600080fd5b806370a08231146105e057806375f0a87414610616578063764ca5121461063657806381915f571461064b578063893d20e8146106605780639203f2c41461067e57600080fd5b8063313ce567116102195780635d098b38116101d25780635d098b38146105415780635db4759314610561578063648a4ef114610576578063658d4b7f1461058b57806369d9a3ac146105ab57806369fe0e2d146105c057600080fd5b8063313ce567146104a5578063342aa8b5146104c157806335401b69146104e15780633e07ce5b146104f75780634eb104071461050c578063571ac8b01461052157600080fd5b806318160ddd1161026b57806318160ddd146103ec57806323b635851461040157806323b872dd1461042157806329e04b4a146104415780632b112e49146104615780632f54bf6e1461047657600080fd5b806303f67459146102be57806306fdde03146102f1578063095ea7b31461033857806311eb2e5b14610368578063123ddac7146103b457806315f7e05e146103ca57600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102de6102d936600461247a565b610917565b6040519081526020015b60405180910390f35b3480156102fd57600080fd5b50604080518082019091526015815274092dcccd2dcd2e8ca409adedccaf2408ed8d2e8c6d605b1b60208201525b6040516102e891906124c3565b34801561034457600080fd5b506103586103533660046124f6565b61098d565b60405190151581526020016102e8565b34801561037457600080fd5b5061039c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102e8565b3480156103c057600080fd5b506102de60145481565b3480156103d657600080fd5b506103ea6103e536600461247a565b6109f9565b005b3480156103f857600080fd5b506004546102de565b34801561040d57600080fd5b5061035861041c366004612522565b610a8e565b34801561042d57600080fd5b5061035861043c36600461253b565b610ad1565b34801561044d57600080fd5b506103ea61045c366004612522565b610b93565b34801561046d57600080fd5b506102de610bd1565b34801561048257600080fd5b5061035861049136600461247a565b6000546001600160a01b0391821691161490565b3480156104b157600080fd5b50604051600981526020016102e8565b3480156104cd57600080fd5b506103ea6104dc36600461258a565b610c23565b3480156104ed57600080fd5b506102de60165481565b34801561050357600080fd5b506103ea610c7f565b34801561051857600080fd5b506102de610cb6565b34801561052d57600080fd5b5061035861053c36600461247a565b610d24565b34801561054d57600080fd5b506103ea61055c36600461247a565b610d32565b34801561056d57600080fd5b506102de610d7e565b34801561058257600080fd5b506103ea610dc8565b34801561059757600080fd5b506103ea6105a636600461258a565b610ec0565b3480156105b757600080fd5b506102de610f15565b3480156105cc57600080fd5b506103ea6105db366004612522565b610f5f565b3480156105ec57600080fd5b506102de6105fb36600461247a565b6001600160a01b031660009081526006602052604090205490565b34801561062257600080fd5b50600e5461039c906001600160a01b031681565b34801561064257600080fd5b506103ea610fd6565b34801561065757600080fd5b506102de61106f565b34801561066c57600080fd5b506000546001600160a01b031661039c565b34801561068a57600080fd5b506102de60175481565b3480156106a057600080fd5b5060408051808201909152600681526508e9892a886960d31b602082015261032b565b3480156106cf57600080fd5b506103ea6106de3660046125c3565b6110b9565b3480156106ef57600080fd5b5060105461039c906001600160a01b031681565b34801561070f57600080fd5b5061035861071e3660046124f6565b611154565b34801561072f57600080fd5b5061035861073e36600461247a565b6001600160a01b03166000908152600b602052604090205460ff1690565b34801561076857600080fd5b506102de61077736600461247a565b611161565b34801561078857600080fd5b506102de60115481565b34801561079e57600080fd5b5060185461039c906001600160a01b031681565b3480156107be57600080fd5b5060185461035890600160a01b900460ff1681565b3480156107df57600080fd5b506103ea611194565b3480156107f457600080fd5b506102de6108033660046125ef565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561083a57600080fd5b506102de60155481565b34801561085057600080fd5b506103ea6111d1565b34801561086557600080fd5b5061039c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561089957600080fd5b506103ea611233565b3480156108ae57600080fd5b506103ea6108bd36600461247a565b611292565b3480156108ce57600080fd5b506103ea611310565b3480156108e357600080fd5b506103ea6108f236600461258a565b611374565b34801561090357600080fd5b50600f5461039c906001600160a01b031681565b6018546040516303f6745960e01b81526001600160a01b03838116600483015260009216906303f67459906024015b602060405180830381865afa158015610963573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610987919061261d565b92915050565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109e89086815260200190565b60405180910390a350600192915050565b6000546001600160a01b03163314610a2c5760405162461bcd60e51b8152600401610a2390612636565b60405180910390fd5b601854604051630afbf02f60e11b81526001600160a01b038381166004830152909116906315f7e05e90602401600060405180830381600087803b158015610a7357600080fd5b505af1158015610a87573d6000803e3d6000fd5b5050505050565b600080546001600160a01b03163314610ab95760405162461bcd60e51b8152600401610a2390612636565b6002546109879030906001600160a01b0316846113a8565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610b7e576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600782528381203382529091529190912054610b5991849061148e565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b610b898484846114c8565b90505b9392505050565b6000546001600160a01b03163314610bbd5760405162461bcd60e51b8152600401610a2390612636565b610bcb81633b9aca0061266c565b60145550565b6003546001600160a01b0316600090815260066020526040812054610c1e906002546001600160a01b0316600090815260066020526040902054610c189060045490611a1d565b90611a1d565b905090565b6000546001600160a01b03163314610c4d5760405162461bcd60e51b8152600401610a2390612636565b6001600160a01b0382166000908152600b60205260409020805460ff1916821515179055610c7b8282611a5f565b5050565b6000546001600160a01b03163314610ca95760405162461bcd60e51b8152600401610a2390612636565b6012805461ff0019169055565b6018546040805163ee95e3bb60e01b815290516000926001600160a01b03169163ee95e3bb9160048083019260209291908290030181865afa158015610d00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1e919061261d565b60006109878260001961098d565b6000546001600160a01b03163314610d5c5760405162461bcd60e51b8152600401610a2390612636565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b601854604080516304efd8ef60e41b815290516000926001600160a01b031691634efd8ef09160048083019260209291908290030181865afa158015610d00573d6000803e3d6000fd5b60408051600481526024810182526020810180516001600160e01b031663787e35e560e11b17905290516000916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691610e2a919061268b565b6000604051808303816000865af19150503d8060008114610e67576040519150601f19603f3d011682016040523d82523d6000602084013e610e6c565b606091505b5050905080610ebd5760405162461bcd60e51b815260206004820152601860248201527f436c61696d696e67206469766964656e64206661696c656400000000000000006044820152606401610a23565b50565b6000546001600160a01b03163314610eea5760405162461bcd60e51b8152600401610a2390612636565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6018546040805163127975e160e01b815290516000926001600160a01b03169163127975e19160048083019260209291908290030181865afa158015610d00573d6000803e3d6000fd5b6000546001600160a01b03163314610f895760405162461bcd60e51b8152600401610a2390612636565b6014811115610fd15760405162461bcd60e51b81526020600482015260146024820152734665652063616e2774206578636565642032302560601b6044820152606401610a23565b600c55565b6000546001600160a01b031633146110005760405162461bcd60e51b8152600401610a2390612636565b601854600160a01b900460ff161561105a5760405162461bcd60e51b815260206004820152601760248201527f63616e206f6e6c792062652063616c6c6564206f6e63650000000000000000006044820152606401610a23565b6018805460ff60a01b1916600160a01b179055565b60185460408051632adac96960e11b815290516000926001600160a01b0316916355b592d29160048083019260209291908290030181865afa158015610d00573d6000803e3d6000fd5b6000546001600160a01b031633146110e35760405162461bcd60e51b8152600401610a2390612636565b6110f7816110f18585611b70565b90611b70565b6064146111465760405162461bcd60e51b815260206004820152601e60248201527f50657263656e7461676573206d7573742061646420757020746f2031303000006044820152606401610a23565b601592909255601655601755565b6000610b8c3384846114c8565b60185460405163b46c4c1360e01b81526001600160a01b038381166004830152600092169063b46c4c1390602401610946565b6000546001600160a01b031633146111be5760405162461bcd60e51b8152600401610a2390612636565b436011556012805460ff19166001179055565b60408051600481526024810182526020810180516001600160e01b031663787e35e560e11b17905290516000916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691610e2a919061268b565b601854604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b15801561127857600080fd5b505af115801561128c573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146112bc5760405162461bcd60e51b8152600401610a2390612636565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b0316331461133a5760405162461bcd60e51b8152600401610a2390612636565b600e5460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610c7b573d6000803e3d6000fd5b6000546001600160a01b0316331461139e5760405162461bcd60e51b8152600401610a2390612636565b610c7b8282611a5f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526006909152918220546113f991849061148e565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546114289083611b70565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061147c9086815260200190565b60405180910390a35060019392505050565b600081848411156114b25760405162461bcd60e51b8152600401610a2391906124c3565b5060006114bf84866126a7565b95945050505050565b600080546001600160a01b038581169116148015906114f557506000546001600160a01b03848116911614155b1561154c5760125460ff1661154c5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e00000000000000006044820152606401610a23565b601854600160a01b900460ff16156115d5576001600160a01b0384166000908152600b602052604090205460ff161580156115a057506001600160a01b0383166000908152600b602052604090205460ff16155b6115d55760405162461bcd60e51b8152600401610a2390602080825260049082015263426f742160e01b604082015260600190565b601254610100900460ff1615611681576000546001600160a01b0385811691161480159061161157506000546001600160a01b03848116911614155b801561162657506001600160a01b0384163014155b801561163b57506001600160a01b0383163014155b15611681576013548211156116815760405162461bcd60e51b815260206004820152600c60248201526b2a37b79036bab1b41039b4b960a11b6044820152606401610a23565b6010546001600160a01b0385811691161480156116ac5750600f546001600160a01b03848116911614155b80156116d157506001600160a01b03831660009081526009602052604090205460ff16155b1561171f576001600160a01b03831660009081526008602052604090205442116116fa57600080fd5b61170542603c6126be565b6001600160a01b0384166000908152600860205260409020555b601854600160a81b900460ff16156117435761173c8484846113a8565b9050610b8c565b30600090815260066020526040812054601454909190821080159190829061177857506010546001600160a01b038781169116145b8015611791575030600090815260066020526040812054115b905080156117a1576117a1611bcf565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a166000908152600690915291909120546117f391879061148e565b6001600160a01b0388166000908152600660205260408120919091556118198888611ff1565b611823578561182d565b61182d8887612066565b6001600160a01b0388166000908152600660205260409020549091506118539082611b70565b6001600160a01b0380891660009081526006602052604090209190915560105489821691161480159061189f57506001600160a01b0388166000908152600a602052604090205460ff16155b15611915576018546001600160a01b0389811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561190257600080fd5b505af1925050508015611913575060015b505b6010546001600160a01b0388811691161480159061194c57506001600160a01b0387166000908152600a602052604090205460ff16155b156119c2576018546001600160a01b0388811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b1580156119af57600080fd5b505af19250505080156119c0575060015b505b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a0791815260200190565b60405180910390a3506001979650505050505050565b6000610b8c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061148e565b6001600160a01b0382163014801590611a8657506010546001600160a01b03838116911614155b611a8f57600080fd5b6001600160a01b0382166000908152600a60205260409020805460ff19168215801591909117909155611b2757601854604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044015b600060405180830381600087803b158015611b0b57600080fd5b505af1158015611b1f573d6000803e3d6000fd5b505050505050565b6018546001600160a01b0383811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401611af1565b600080611b7d83856126be565b905083811015610b8c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a23565b6018805460ff60a81b1916600160a81b1790553060009081526006602052604081205490506000611c166064611c106015548561210c90919063ffffffff16565b9061218e565b90506000611c346064611c106016548661210c90919063ffffffff16565b90506000611c526064611c106017548761210c90919063ffffffff16565b9050611c5d816121d0565b611c668361227b565b611c6f8261237c565b611c77610dc8565b611c7f6111d1565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611ce6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0a919061261d565b6040516370a0823160e01b81523060048201529091506000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015611d74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d98919061261d565b60185460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018590529192506000917f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303816000875af1158015611e12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3691906126d6565b60185460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018590529192506000917f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303816000875af1158015611eb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ed491906126d6565b90508115611f3b57601854604051635a293f8f60e01b8152600481018690526001600160a01b0390911690635a293f8f90602401600060405180830381600087803b158015611f2257600080fd5b505af1158015611f36573d6000803e3d6000fd5b505050505b8015611fa05760185460405163432d937160e01b8152600481018590526001600160a01b039091169063432d937190602401600060405180830381600087803b158015611f8757600080fd5b505af1158015611f9b573d6000803e3d6000fd5b505050505b600e546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611fd9573d6000803e3d6000fd5b50506018805460ff60a81b1916905550505050505050565b6001600160a01b03821660009081526009602052604081205460ff168061203057506001600160a01b03821660009081526009602052604090205460ff165b158015610b8c57506010546001600160a01b0384811691161480610b8c5750506010546001600160a01b03908116911614919050565b600080612084600d54611c10600c548661210c90919063ffffffff16565b306000908152600660205260409020549091506120a19082611b70565b30600081815260066020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906120f29085815260200190565b60405180910390a36121048382611a1d565b949350505050565b60008260000361211e57506000610987565b600061212a838561266c565b90508261213785836126f3565b14610b8c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a23565b6000610b8c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612437565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061220557612205612715565b6001600160a01b039283166020918202929092010152600180548351921691839190811061223557612235612715565b6001600160a01b039283166020918202929092010152600f5460405163791ac94760e01b815291169063791ac94790611af190859060009086903090429060040161272b565b604080516003808252608082019092526000916020820160608036833701905050905030816000815181106122b2576122b2612715565b6001600160a01b03928316602091820292909201015260018054835192169183919081106122e2576122e2612715565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160028151811061233657612336612715565b6001600160a01b039283166020918202929092010152600f54604051635c11d79560e01b8152911690635c11d79590611af190859060009086903090429060040161272b565b604080516003808252608082019092526000916020820160608036833701905050905030816000815181106123b3576123b3612715565b6001600160a01b03928316602091820292909201015260018054835192169183919081106123e3576123e3612715565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160028151811061233657612336612715565b600081836124585760405162461bcd60e51b8152600401610a2391906124c3565b5060006114bf84866126f3565b6001600160a01b0381168114610ebd57600080fd5b60006020828403121561248c57600080fd5b8135610b8c81612465565b60005b838110156124b257818101518382015260200161249a565b8381111561128c5750506000910152565b60208152600082518060208401526124e2816040850160208701612497565b601f01601f19169190910160400192915050565b6000806040838503121561250957600080fd5b823561251481612465565b946020939093013593505050565b60006020828403121561253457600080fd5b5035919050565b60008060006060848603121561255057600080fd5b833561255b81612465565b9250602084013561256b81612465565b929592945050506040919091013590565b8015158114610ebd57600080fd5b6000806040838503121561259d57600080fd5b82356125a881612465565b915060208301356125b88161257c565b809150509250929050565b6000806000606084860312156125d857600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561260257600080fd5b823561260d81612465565b915060208301356125b881612465565b60006020828403121561262f57600080fd5b5051919050565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561268657612686612656565b500290565b6000825161269d818460208701612497565b9190910192915050565b6000828210156126b9576126b9612656565b500390565b600082198211156126d1576126d1612656565b500190565b6000602082840312156126e857600080fd5b8151610b8c8161257c565b60008261271057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561277b5784516001600160a01b031683529383019391830191600101612756565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122027bfdb5b89e154c33aeeb7108d1bd918dd092f43b605762278c5da943d6cde0064736f6c634300080d003360c0604052738442e0e292186854bb6875b2a0fc1308b9ded79360805273fb033fa09706fa92ace768736ec94ad68688888b60a0526ec097ce7bc90715b34b9f1000000000600c5534801561005357600080fd5b50604051611301380380611301833981016040819052610072916100a5565b60008054336001600160a01b031991821617909155600180549091166001600160a01b03929092169190911790556100d5565b6000602082840312156100b757600080fd5b81516001600160a01b03811681146100ce57600080fd5b9392505050565b60805160a0516111f9610108600039600081816101b70152610cd30152600081816104040152610b8b01526111f96000f3fe60806040526004361061012e5760003560e01c806353f0c14d116100ab578063b46c4c131161006f578063b46c4c1314610329578063ce7c2ac214610349578063ecd0c0c3146103bc578063ee95e3bb146103dc578063eeeac01e146103f2578063f2198ded1461042657600080fd5b806353f0c14d1461029357806355b592d2146102b35780635a293f8f146102c9578063acff31ef146102e9578063b2bdfa7b1461030957600080fd5b806314b6ca96116100f257806314b6ca961461020757806315f7e05e146102275780633a98ef3914610247578063432d93711461025d5780634efd8ef01461027d57600080fd5b806303f674591461013a5780631014edf51461016d578063105284fd1461018f57806311eb2e5b146101a5578063127975e1146101f157600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5061015a610155366004610fdb565b61043c565b6040519081526020015b60405180910390f35b34801561017957600080fd5b5061018d610188366004610ff6565b6104c7565b005b34801561019b57600080fd5b5061015a600b5481565b3480156101b157600080fd5b506101d97f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610164565b3480156101fd57600080fd5b5061015a60095481565b34801561021357600080fd5b5061018d610222366004611022565b61056f565b34801561023357600080fd5b5061018d610242366004610fdb565b61072d565b34801561025357600080fd5b5061015a60055481565b34801561026957600080fd5b5061018d61027836600461104c565b61076c565b34801561028957600080fd5b5061015a60075481565b34801561029f57600080fd5b5061015a6102ae366004610fdb565b610823565b3480156102bf57600080fd5b5061015a60065481565b3480156102d557600080fd5b5061018d6102e436600461104c565b6108a4565b3480156102f557600080fd5b5061015a610304366004610fdb565b610955565b34801561031557600080fd5b506001546101d9906001600160a01b031681565b34801561033557600080fd5b5061015a610344366004610fdb565b6109d5565b34801561035557600080fd5b50610394610364366004610fdb565b60046020819052600091825260409091208054600182015460028301546003840154939094015491939092909185565b604080519586526020860194909452928401919091526060830152608082015260a001610164565b3480156103c857600080fd5b506000546101d9906001600160a01b031681565b3480156103e857600080fd5b5061015a60085481565b3480156103fe57600080fd5b506101d97f000000000000000000000000000000000000000000000000000000000000000081565b34801561043257600080fd5b5061015a600a5481565b6001600160a01b038116600090815260046020526040812054810361046357506000919050565b6001600160a01b03821660009081526004602052604081205461048590610a4e565b6001600160a01b0384166000908152600460205260409020600201549091508082116104b5575060009392505050565b6104bf8282610a71565b949350505050565b6001546001600160a01b031633146105265760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e657200000000000000000060448201526064015b60405180910390fd5b476001600160a01b0382166108fc8461053f5782610541565b845b6040518115909202916000818181858888f19350505050158015610569573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146105995760405162461bcd60e51b815260040161051d90611065565b6001600160a01b038216600090815260046020526040902054156105c9576105c082610aba565b6105c982610bff565b6000811180156105ef57506001600160a01b038216600090815260046020526040902054155b1561065557600280546001600160a01b0384166000818152600360205260408120839055600183018455929092527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319169091179055610688565b8015801561067a57506001600160a01b03821660009081526004602052604090205415155b156106885761068882610d02565b6001600160a01b0382166000908152600460205260409020546005546106b99183916106b391610a71565b90610e17565b6005556001600160a01b03821660009081526004602052604090208190556106e081610e76565b6001600160a01b038316600090815260046020526040902060018101919091555461070a90610a4e565b6001600160a01b0390921660009081526004602052604090206002019190915550565b6000546001600160a01b031633146107575760405162461bcd60e51b815260040161051d90611065565b61076081610aba565b61076981610bff565b50565b6000546001600160a01b031633146107965760405162461bcd60e51b815260040161051d90611065565b600081116107e65760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f604482015260640161051d565b6007546107f39082610e17565b600755600554600c5461081d916108149161080e9085610e93565b90610f15565b600b5490610e17565b600b5550565b6001600160a01b0381166000908152600460205260408120546108845760405162461bcd60e51b8152602060048201526019602482015278596f75277265206e6f742061207368617265686f6c6465722160381b604482015260640161051d565b506001600160a01b03166000908152600460208190526040909120015490565b6000546001600160a01b031633146108ce5760405162461bcd60e51b815260040161051d90611065565b6000811161091e5760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f604482015260640161051d565b60065461092b9082610e17565b600655600554600c5461094f916109469161080e9085610e93565b600a5490610e17565b600a5550565b6001600160a01b0381166000908152600460205260408120546109b65760405162461bcd60e51b8152602060048201526019602482015278596f75277265206e6f742061207368617265686f6c6465722160381b604482015260640161051d565b506001600160a01b031660009081526004602052604090206003015490565b6001600160a01b03811660009081526004602052604081205481036109fc57506000919050565b6001600160a01b038216600090815260046020526040812054610a1e90610e76565b6001600160a01b0384166000908152600460205260409020600101549091508082116104b5575060009392505050565b6000610a6b600c5461080e600b5485610e9390919063ffffffff16565b92915050565b6000610ab383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f57565b9392505050565b6001600160a01b0381166000908152600460205260408120549003610adc5750565b6000610ae7826109d5565b90508015610bfb57600854610afc9082610e17565b6008556001600160a01b038216600090815260046020526040902060030154610b259082610e17565b6001600160a01b0383166000908152600460205260409020600381019190915554610b4f90610e76565b6001600160a01b03838116600081815260046020819052604091829020600101949094555163a9059cbb60e01b815292830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044015b6020604051808303816000875af1158015610bd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf9919061109a565b505b5050565b6001600160a01b0381166000908152600460205260408120549003610c215750565b6000610c2c8261043c565b90508015610bfb57600954610c419082610e17565b6009556001600160a01b03821660009081526004602081905260409091200154610c6b9082610e17565b6001600160a01b03831660009081526004602081905260409091209081019190915554610c9790610a4e565b6001600160a01b03838116600081815260046020819052604091829020600201949094555163a9059cbb60e01b815292830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb90604401610bb6565b60028054610d12906001906110d2565b81548110610d2257610d226110e9565b60009182526020808320909101546001600160a01b0384811684526003909252604090922054600280549290931692918110610d6057610d606110e9565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260039182905260408120546002805491939291610dac906001906110d2565b81548110610dbc57610dbc6110e9565b60009182526020808320909101546001600160a01b031683528201929092526040019020556002805480610df257610df26110ff565b600082815260209020810160001990810180546001600160a01b031916905501905550565b600080610e248385611115565b905083811015610ab35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161051d565b6000610a6b600c5461080e600a5485610e9390919063ffffffff16565b600082600003610ea557506000610a6b565b6000610eb1838561112d565b905082610ebe858361114c565b14610ab35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161051d565b6000610ab383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610f91565b60008184841115610f7b5760405162461bcd60e51b815260040161051d919061116e565b506000610f8884866110d2565b95945050505050565b60008183610fb25760405162461bcd60e51b815260040161051d919061116e565b506000610f88848661114c565b80356001600160a01b0381168114610fd657600080fd5b919050565b600060208284031215610fed57600080fd5b610ab382610fbf565b6000806040838503121561100957600080fd5b8235915061101960208401610fbf565b90509250929050565b6000806040838503121561103557600080fd5b61103e83610fbf565b946020939093013593505050565b60006020828403121561105e57600080fd5b5035919050565b6020808252818101527f43616c6c6572206973206e6f742074686520746f6b656e20636f6e7472616374604082015260600190565b6000602082840312156110ac57600080fd5b81518015158114610ab357600080fd5b634e487b7160e01b600052601160045260246000fd5b6000828210156110e4576110e46110bc565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b60008219821115611128576111286110bc565b500190565b6000816000190483118215151615611147576111476110bc565b500290565b60008261116957634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b8181101561119b5785810183015185820160400152820161117f565b818111156111ad576000604083870101525b50601f01601f191692909201604001939250505056fea2646970667358221220aab6a05b452fd99f74ae58793e49d1ad62d495b44724b95f80b0c496a1f2e75164736f6c634300080d00330000000000000000000000005b95162a51856195c224b40a0805e30929463c95

Deployed Bytecode

0x6080604052600436106102b25760003560e01c806370a0823111610175578063bf56b371116100dc578063dfb9b2e611610095578063f2fde38b1161006f578063f2fde38b146108a2578063f4293890146108c2578063f708a64f146108d7578063f887ea40146108f757600080fd5b8063dfb9b2e614610844578063eeeac01e14610859578063f0fc6bca1461088d57600080fd5b8063bf56b3711461077c578063bfe1092814610792578063bffb691d146107b2578063c9567bf9146107d3578063dd62ed3e146107e8578063dec9d0fa1461082e57600080fd5b806395d89b411161012e57806395d89b4114610694578063977c103c146106c3578063a8aa1b31146106e3578063a9059cbb14610703578063b1a4e0dc14610723578063b46c4c131461075c57600080fd5b806370a08231146105e057806375f0a87414610616578063764ca5121461063657806381915f571461064b578063893d20e8146106605780639203f2c41461067e57600080fd5b8063313ce567116102195780635d098b38116101d25780635d098b38146105415780635db4759314610561578063648a4ef114610576578063658d4b7f1461058b57806369d9a3ac146105ab57806369fe0e2d146105c057600080fd5b8063313ce567146104a5578063342aa8b5146104c157806335401b69146104e15780633e07ce5b146104f75780634eb104071461050c578063571ac8b01461052157600080fd5b806318160ddd1161026b57806318160ddd146103ec57806323b635851461040157806323b872dd1461042157806329e04b4a146104415780632b112e49146104615780632f54bf6e1461047657600080fd5b806303f67459146102be57806306fdde03146102f1578063095ea7b31461033857806311eb2e5b14610368578063123ddac7146103b457806315f7e05e146103ca57600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102de6102d936600461247a565b610917565b6040519081526020015b60405180910390f35b3480156102fd57600080fd5b50604080518082019091526015815274092dcccd2dcd2e8ca409adedccaf2408ed8d2e8c6d605b1b60208201525b6040516102e891906124c3565b34801561034457600080fd5b506103586103533660046124f6565b61098d565b60405190151581526020016102e8565b34801561037457600080fd5b5061039c7f000000000000000000000000fb033fa09706fa92ace768736ec94ad68688888b81565b6040516001600160a01b0390911681526020016102e8565b3480156103c057600080fd5b506102de60145481565b3480156103d657600080fd5b506103ea6103e536600461247a565b6109f9565b005b3480156103f857600080fd5b506004546102de565b34801561040d57600080fd5b5061035861041c366004612522565b610a8e565b34801561042d57600080fd5b5061035861043c36600461253b565b610ad1565b34801561044d57600080fd5b506103ea61045c366004612522565b610b93565b34801561046d57600080fd5b506102de610bd1565b34801561048257600080fd5b5061035861049136600461247a565b6000546001600160a01b0391821691161490565b3480156104b157600080fd5b50604051600981526020016102e8565b3480156104cd57600080fd5b506103ea6104dc36600461258a565b610c23565b3480156104ed57600080fd5b506102de60165481565b34801561050357600080fd5b506103ea610c7f565b34801561051857600080fd5b506102de610cb6565b34801561052d57600080fd5b5061035861053c36600461247a565b610d24565b34801561054d57600080fd5b506103ea61055c36600461247a565b610d32565b34801561056d57600080fd5b506102de610d7e565b34801561058257600080fd5b506103ea610dc8565b34801561059757600080fd5b506103ea6105a636600461258a565b610ec0565b3480156105b757600080fd5b506102de610f15565b3480156105cc57600080fd5b506103ea6105db366004612522565b610f5f565b3480156105ec57600080fd5b506102de6105fb36600461247a565b6001600160a01b031660009081526006602052604090205490565b34801561062257600080fd5b50600e5461039c906001600160a01b031681565b34801561064257600080fd5b506103ea610fd6565b34801561065757600080fd5b506102de61106f565b34801561066c57600080fd5b506000546001600160a01b031661039c565b34801561068a57600080fd5b506102de60175481565b3480156106a057600080fd5b5060408051808201909152600681526508e9892a886960d31b602082015261032b565b3480156106cf57600080fd5b506103ea6106de3660046125c3565b6110b9565b3480156106ef57600080fd5b5060105461039c906001600160a01b031681565b34801561070f57600080fd5b5061035861071e3660046124f6565b611154565b34801561072f57600080fd5b5061035861073e36600461247a565b6001600160a01b03166000908152600b602052604090205460ff1690565b34801561076857600080fd5b506102de61077736600461247a565b611161565b34801561078857600080fd5b506102de60115481565b34801561079e57600080fd5b5060185461039c906001600160a01b031681565b3480156107be57600080fd5b5060185461035890600160a01b900460ff1681565b3480156107df57600080fd5b506103ea611194565b3480156107f457600080fd5b506102de6108033660046125ef565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561083a57600080fd5b506102de60155481565b34801561085057600080fd5b506103ea6111d1565b34801561086557600080fd5b5061039c7f0000000000000000000000008442e0e292186854bb6875b2a0fc1308b9ded79381565b34801561089957600080fd5b506103ea611233565b3480156108ae57600080fd5b506103ea6108bd36600461247a565b611292565b3480156108ce57600080fd5b506103ea611310565b3480156108e357600080fd5b506103ea6108f236600461258a565b611374565b34801561090357600080fd5b50600f5461039c906001600160a01b031681565b6018546040516303f6745960e01b81526001600160a01b03838116600483015260009216906303f67459906024015b602060405180830381865afa158015610963573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610987919061261d565b92915050565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109e89086815260200190565b60405180910390a350600192915050565b6000546001600160a01b03163314610a2c5760405162461bcd60e51b8152600401610a2390612636565b60405180910390fd5b601854604051630afbf02f60e11b81526001600160a01b038381166004830152909116906315f7e05e90602401600060405180830381600087803b158015610a7357600080fd5b505af1158015610a87573d6000803e3d6000fd5b5050505050565b600080546001600160a01b03163314610ab95760405162461bcd60e51b8152600401610a2390612636565b6002546109879030906001600160a01b0316846113a8565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610b7e576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600782528381203382529091529190912054610b5991849061148e565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b610b898484846114c8565b90505b9392505050565b6000546001600160a01b03163314610bbd5760405162461bcd60e51b8152600401610a2390612636565b610bcb81633b9aca0061266c565b60145550565b6003546001600160a01b0316600090815260066020526040812054610c1e906002546001600160a01b0316600090815260066020526040902054610c189060045490611a1d565b90611a1d565b905090565b6000546001600160a01b03163314610c4d5760405162461bcd60e51b8152600401610a2390612636565b6001600160a01b0382166000908152600b60205260409020805460ff1916821515179055610c7b8282611a5f565b5050565b6000546001600160a01b03163314610ca95760405162461bcd60e51b8152600401610a2390612636565b6012805461ff0019169055565b6018546040805163ee95e3bb60e01b815290516000926001600160a01b03169163ee95e3bb9160048083019260209291908290030181865afa158015610d00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1e919061261d565b60006109878260001961098d565b6000546001600160a01b03163314610d5c5760405162461bcd60e51b8152600401610a2390612636565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b601854604080516304efd8ef60e41b815290516000926001600160a01b031691634efd8ef09160048083019260209291908290030181865afa158015610d00573d6000803e3d6000fd5b60408051600481526024810182526020810180516001600160e01b031663787e35e560e11b17905290516000916001600160a01b037f0000000000000000000000008442e0e292186854bb6875b2a0fc1308b9ded7931691610e2a919061268b565b6000604051808303816000865af19150503d8060008114610e67576040519150601f19603f3d011682016040523d82523d6000602084013e610e6c565b606091505b5050905080610ebd5760405162461bcd60e51b815260206004820152601860248201527f436c61696d696e67206469766964656e64206661696c656400000000000000006044820152606401610a23565b50565b6000546001600160a01b03163314610eea5760405162461bcd60e51b8152600401610a2390612636565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6018546040805163127975e160e01b815290516000926001600160a01b03169163127975e19160048083019260209291908290030181865afa158015610d00573d6000803e3d6000fd5b6000546001600160a01b03163314610f895760405162461bcd60e51b8152600401610a2390612636565b6014811115610fd15760405162461bcd60e51b81526020600482015260146024820152734665652063616e2774206578636565642032302560601b6044820152606401610a23565b600c55565b6000546001600160a01b031633146110005760405162461bcd60e51b8152600401610a2390612636565b601854600160a01b900460ff161561105a5760405162461bcd60e51b815260206004820152601760248201527f63616e206f6e6c792062652063616c6c6564206f6e63650000000000000000006044820152606401610a23565b6018805460ff60a01b1916600160a01b179055565b60185460408051632adac96960e11b815290516000926001600160a01b0316916355b592d29160048083019260209291908290030181865afa158015610d00573d6000803e3d6000fd5b6000546001600160a01b031633146110e35760405162461bcd60e51b8152600401610a2390612636565b6110f7816110f18585611b70565b90611b70565b6064146111465760405162461bcd60e51b815260206004820152601e60248201527f50657263656e7461676573206d7573742061646420757020746f2031303000006044820152606401610a23565b601592909255601655601755565b6000610b8c3384846114c8565b60185460405163b46c4c1360e01b81526001600160a01b038381166004830152600092169063b46c4c1390602401610946565b6000546001600160a01b031633146111be5760405162461bcd60e51b8152600401610a2390612636565b436011556012805460ff19166001179055565b60408051600481526024810182526020810180516001600160e01b031663787e35e560e11b17905290516000916001600160a01b037f000000000000000000000000fb033fa09706fa92ace768736ec94ad68688888b1691610e2a919061268b565b601854604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b15801561127857600080fd5b505af115801561128c573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146112bc5760405162461bcd60e51b8152600401610a2390612636565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b0316331461133a5760405162461bcd60e51b8152600401610a2390612636565b600e5460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610c7b573d6000803e3d6000fd5b6000546001600160a01b0316331461139e5760405162461bcd60e51b8152600401610a2390612636565b610c7b8282611a5f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526006909152918220546113f991849061148e565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546114289083611b70565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061147c9086815260200190565b60405180910390a35060019392505050565b600081848411156114b25760405162461bcd60e51b8152600401610a2391906124c3565b5060006114bf84866126a7565b95945050505050565b600080546001600160a01b038581169116148015906114f557506000546001600160a01b03848116911614155b1561154c5760125460ff1661154c5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e00000000000000006044820152606401610a23565b601854600160a01b900460ff16156115d5576001600160a01b0384166000908152600b602052604090205460ff161580156115a057506001600160a01b0383166000908152600b602052604090205460ff16155b6115d55760405162461bcd60e51b8152600401610a2390602080825260049082015263426f742160e01b604082015260600190565b601254610100900460ff1615611681576000546001600160a01b0385811691161480159061161157506000546001600160a01b03848116911614155b801561162657506001600160a01b0384163014155b801561163b57506001600160a01b0383163014155b15611681576013548211156116815760405162461bcd60e51b815260206004820152600c60248201526b2a37b79036bab1b41039b4b960a11b6044820152606401610a23565b6010546001600160a01b0385811691161480156116ac5750600f546001600160a01b03848116911614155b80156116d157506001600160a01b03831660009081526009602052604090205460ff16155b1561171f576001600160a01b03831660009081526008602052604090205442116116fa57600080fd5b61170542603c6126be565b6001600160a01b0384166000908152600860205260409020555b601854600160a81b900460ff16156117435761173c8484846113a8565b9050610b8c565b30600090815260066020526040812054601454909190821080159190829061177857506010546001600160a01b038781169116145b8015611791575030600090815260066020526040812054115b905080156117a1576117a1611bcf565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a166000908152600690915291909120546117f391879061148e565b6001600160a01b0388166000908152600660205260408120919091556118198888611ff1565b611823578561182d565b61182d8887612066565b6001600160a01b0388166000908152600660205260409020549091506118539082611b70565b6001600160a01b0380891660009081526006602052604090209190915560105489821691161480159061189f57506001600160a01b0388166000908152600a602052604090205460ff16155b15611915576018546001600160a01b0389811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561190257600080fd5b505af1925050508015611913575060015b505b6010546001600160a01b0388811691161480159061194c57506001600160a01b0387166000908152600a602052604090205460ff16155b156119c2576018546001600160a01b0388811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b1580156119af57600080fd5b505af19250505080156119c0575060015b505b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a0791815260200190565b60405180910390a3506001979650505050505050565b6000610b8c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061148e565b6001600160a01b0382163014801590611a8657506010546001600160a01b03838116911614155b611a8f57600080fd5b6001600160a01b0382166000908152600a60205260409020805460ff19168215801591909117909155611b2757601854604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044015b600060405180830381600087803b158015611b0b57600080fd5b505af1158015611b1f573d6000803e3d6000fd5b505050505050565b6018546001600160a01b0383811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401611af1565b600080611b7d83856126be565b905083811015610b8c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a23565b6018805460ff60a81b1916600160a81b1790553060009081526006602052604081205490506000611c166064611c106015548561210c90919063ffffffff16565b9061218e565b90506000611c346064611c106016548661210c90919063ffffffff16565b90506000611c526064611c106017548761210c90919063ffffffff16565b9050611c5d816121d0565b611c668361227b565b611c6f8261237c565b611c77610dc8565b611c7f6111d1565b6040516370a0823160e01b81523060048201526000907f0000000000000000000000008442e0e292186854bb6875b2a0fc1308b9ded7936001600160a01b0316906370a0823190602401602060405180830381865afa158015611ce6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0a919061261d565b6040516370a0823160e01b81523060048201529091506000906001600160a01b037f000000000000000000000000fb033fa09706fa92ace768736ec94ad68688888b16906370a0823190602401602060405180830381865afa158015611d74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d98919061261d565b60185460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018590529192506000917f0000000000000000000000008442e0e292186854bb6875b2a0fc1308b9ded7939091169063a9059cbb906044016020604051808303816000875af1158015611e12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3691906126d6565b60185460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018590529192506000917f000000000000000000000000fb033fa09706fa92ace768736ec94ad68688888b9091169063a9059cbb906044016020604051808303816000875af1158015611eb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ed491906126d6565b90508115611f3b57601854604051635a293f8f60e01b8152600481018690526001600160a01b0390911690635a293f8f90602401600060405180830381600087803b158015611f2257600080fd5b505af1158015611f36573d6000803e3d6000fd5b505050505b8015611fa05760185460405163432d937160e01b8152600481018590526001600160a01b039091169063432d937190602401600060405180830381600087803b158015611f8757600080fd5b505af1158015611f9b573d6000803e3d6000fd5b505050505b600e546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611fd9573d6000803e3d6000fd5b50506018805460ff60a81b1916905550505050505050565b6001600160a01b03821660009081526009602052604081205460ff168061203057506001600160a01b03821660009081526009602052604090205460ff165b158015610b8c57506010546001600160a01b0384811691161480610b8c5750506010546001600160a01b03908116911614919050565b600080612084600d54611c10600c548661210c90919063ffffffff16565b306000908152600660205260409020549091506120a19082611b70565b30600081815260066020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906120f29085815260200190565b60405180910390a36121048382611a1d565b949350505050565b60008260000361211e57506000610987565b600061212a838561266c565b90508261213785836126f3565b14610b8c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a23565b6000610b8c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612437565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061220557612205612715565b6001600160a01b039283166020918202929092010152600180548351921691839190811061223557612235612715565b6001600160a01b039283166020918202929092010152600f5460405163791ac94760e01b815291169063791ac94790611af190859060009086903090429060040161272b565b604080516003808252608082019092526000916020820160608036833701905050905030816000815181106122b2576122b2612715565b6001600160a01b03928316602091820292909201015260018054835192169183919081106122e2576122e2612715565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000008442e0e292186854bb6875b2a0fc1308b9ded7938160028151811061233657612336612715565b6001600160a01b039283166020918202929092010152600f54604051635c11d79560e01b8152911690635c11d79590611af190859060009086903090429060040161272b565b604080516003808252608082019092526000916020820160608036833701905050905030816000815181106123b3576123b3612715565b6001600160a01b03928316602091820292909201015260018054835192169183919081106123e3576123e3612715565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000fb033fa09706fa92ace768736ec94ad68688888b8160028151811061233657612336612715565b600081836124585760405162461bcd60e51b8152600401610a2391906124c3565b5060006114bf84866126f3565b6001600160a01b0381168114610ebd57600080fd5b60006020828403121561248c57600080fd5b8135610b8c81612465565b60005b838110156124b257818101518382015260200161249a565b8381111561128c5750506000910152565b60208152600082518060208401526124e2816040850160208701612497565b601f01601f19169190910160400192915050565b6000806040838503121561250957600080fd5b823561251481612465565b946020939093013593505050565b60006020828403121561253457600080fd5b5035919050565b60008060006060848603121561255057600080fd5b833561255b81612465565b9250602084013561256b81612465565b929592945050506040919091013590565b8015158114610ebd57600080fd5b6000806040838503121561259d57600080fd5b82356125a881612465565b915060208301356125b88161257c565b809150509250929050565b6000806000606084860312156125d857600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561260257600080fd5b823561260d81612465565b915060208301356125b881612465565b60006020828403121561262f57600080fd5b5051919050565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561268657612686612656565b500290565b6000825161269d818460208701612497565b9190910192915050565b6000828210156126b9576126b9612656565b500390565b600082198211156126d1576126d1612656565b500190565b6000602082840312156126e857600080fd5b8151610b8c8161257c565b60008261271057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561277b5784516001600160a01b031683529383019391830191600101612756565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122027bfdb5b89e154c33aeeb7108d1bd918dd092f43b605762278c5da943d6cde0064736f6c634300080d0033

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

0000000000000000000000005b95162a51856195c224b40a0805e30929463c95

-----Decoded View---------------
Arg [0] : _owner (address): 0x5B95162A51856195c224b40A0805E30929463c95

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000005b95162a51856195c224b40a0805e30929463c95


Deployed Bytecode Sourcemap

13034:13965:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25364:192;;;;;;;;;;-1:-1:-1;25364:192:0;;;;;:::i;:::-;;:::i;:::-;;;548:25:1;;;536:2;521:18;25364:192:0;;;;;;;;15913:94;;;;;;;;;;-1:-1:-1;15994:5:0;;;;;;;;;;;;-1:-1:-1;;;15994:5:0;;;;15913:94;;;;;;;:::i;16438:248::-;;;;;;;;;;-1:-1:-1;16438:248:0;;;;;:::i;:::-;;:::i;:::-;;;1720:14:1;;1713:22;1695:41;;1683:2;1668:18;16438:248:0;1555:187:1;13381:90:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1911:32:1;;;1893:51;;1881:2;1866:18;13381:90:0;1747:203:1;14513:54:0;;;;;;;;;;;;;;;;24658:110;;;;;;;;;;-1:-1:-1;24658:110:0;;;;;:::i;:::-;;:::i;:::-;;15595:102;;;;;;;;;;-1:-1:-1;15677:12:0;;15595:102;;25564:139;;;;;;;;;;-1:-1:-1;25564:139:0;;;;;:::i;:::-;;:::i;17020:424::-;;;;;;;;;;-1:-1:-1;17020:424:0;;;;;:::i;:::-;;:::i;26874:122::-;;;;;;;;;;-1:-1:-1;26874:122:0;;;;;:::i;:::-;;:::i;25711:142::-;;;;;;;;;;;;;:::i;3092:103::-;;;;;;;;;;-1:-1:-1;3092:103:0;;;;;:::i;:::-;3147:4;3182:5;-1:-1:-1;;;;;3171:16:0;;;3182:5;;3171:16;;3092:103;15705:94;;;;;;;;;;-1:-1:-1;15705:94:0;;13632:1;2743:36:1;;2731:2;2716:18;15705:94:0;2601:184:1;23428:158:0;;;;;;;;;;-1:-1:-1;23428:158:0;;;;;:::i;:::-;;:::i;14613:32::-;;;;;;;;;;;;;;;;26504:80;;;;;;;;;;;;;:::i;26258:115::-;;;;;;;;;;;;;:::i;16694:122::-;;;;;;;;;;-1:-1:-1;16694:122:0;;;;;:::i;:::-;;:::i;25861:135::-;;;;;;;;;;-1:-1:-1;25861:135:0;;;;;:::i;:::-;;:::i;26131:119::-;;;;;;;;;;;;;:::i;24776:186::-;;;;;;;;;;;;;:::i;24106:119::-;;;;;;;;;;-1:-1:-1;24106:119:0;;;;;:::i;:::-;;:::i;26381:115::-;;;;;;;;;;;;;:::i;24233:137::-;;;;;;;;;;-1:-1:-1;24233:137:0;;;;;:::i;:::-;;:::i;16115:119::-;;;;;;;;;;-1:-1:-1;16115:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;16208:18:0;16181:7;16208:18;;;:9;:18;;;;;;;16115:119;14179:101;;;;;;;;;;-1:-1:-1;14179:101:0;;;;-1:-1:-1;;;;;14179:101:0;;;26702:164;;;;;;;;;;;;;:::i;26004:119::-;;;;;;;;;;;;;:::i;16015:92::-;;;;;;;;;;-1:-1:-1;16067:7:0;16094:5;-1:-1:-1;;;;;16094:5:0;16015:92;;14652:33;;;;;;;;;;;;;;;;15807:98;;;;;;;;;;-1:-1:-1;15890:7:0;;;;;;;;;;;;-1:-1:-1;;;15890:7:0;;;;15807:98;;20566:446;;;;;;;;;;-1:-1:-1;20566:446:0;;;;;:::i;:::-;;:::i;14320:19::-;;;;;;;;;;-1:-1:-1;14320:19:0;;;;-1:-1:-1;;;;;14320:19:0;;;16824:188;;;;;;;;;;-1:-1:-1;16824:188:0;;;;;:::i;:::-;;:::i;26592:102::-;;;;;;;;;;-1:-1:-1;26592:102:0;;;;;:::i;:::-;-1:-1:-1;;;;;26672:14:0;26648:4;26672:14;;;:5;:14;;;;;;;;;26592:102;25164:192;;;;;;;;;;-1:-1:-1;25164:192:0;;;;;:::i;:::-;;:::i;14348:25::-;;;;;;;;;;;;;;;;14694:38;;;;;;;;;;-1:-1:-1;14694:38:0;;;;-1:-1:-1;;;;;14694:38:0;;;14741:36;;;;;;;;;;-1:-1:-1;14741:36:0;;;;-1:-1:-1;;;14741:36:0;;;;;;23305:115;;;;;;;;;;;;;:::i;16242:188::-;;;;;;;;;;-1:-1:-1;16242:188:0;;;;;:::i;:::-;-1:-1:-1;;;;;16394:19:0;;;16362:7;16394:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;16242:188;14574:32;;;;;;;;;;;;;;;;24970:186;;;;;;;;;;;;;:::i;13278:90::-;;;;;;;;;;;;;;;24560;;;;;;;;;;;;;:::i;3320:136::-;;;;;;;;;;-1:-1:-1;3320:136:0;;;;;:::i;:::-;;:::i;24378:174::-;;;;;;;;;;;;;:::i;23943:155::-;;;;;;;;;;-1:-1:-1;23943:155:0;;;;;:::i;:::-;;:::i;14289:24::-;;;;;;;;;;-1:-1:-1;14289:24:0;;;;-1:-1:-1;;;;;14289:24:0;;;25364:192;25499:11;;:49;;-1:-1:-1;;;25499:49:0;;-1:-1:-1;;;;;1911:32:1;;;25499:49:0;;;1893:51:1;25467:7:0;;25499:11;;:36;;1866:18:1;;25499:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25492:56;25364:192;-1:-1:-1;;25364:192:0:o;16438:248::-;16574:10;16540:4;16562:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;16562:32:0;;;;;;;;;;:41;;;16619:37;16540:4;;16562:32;;16619:37;;;;16597:6;548:25:1;;536:2;521:18;;402:177;16619:37:0;;;;;;;;-1:-1:-1;16674:4:0;16438:248;;;;:::o;24658:110::-;3147:4;3182:5;-1:-1:-1;;;;;3182:5:0;2990:10;3171:16;2974:38;;;;-1:-1:-1;;;2974:38:0;;;;;;;:::i;:::-;;;;;;;;;24727:11:::1;::::0;:33:::1;::::0;-1:-1:-1;;;24727:33:0;;-1:-1:-1;;;;;1911:32:1;;;24727:33:0::1;::::0;::::1;1893:51:1::0;24727:11:0;;::::1;::::0;:25:::1;::::0;1866:18:1;;24727:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;24658:110:::0;:::o;25564:139::-;25628:4;3182:5;;-1:-1:-1;;;;;3182:5:0;2990:10;3171:16;2974:38;;;;-1:-1:-1;;;2974:38:0;;;;;;;:::i;:::-;25682:4:::1;::::0;25652:43:::1;::::0;25675:4:::1;::::0;-1:-1:-1;;;;;25682:4:0::1;25688:6:::0;25652:14:::1;:43::i;17020:424::-:0;-1:-1:-1;;;;;17175:19:0;;17154:4;17175:19;;;:11;:19;;;;;;;;17195:10;17175:31;;;;;;;;-1:-1:-1;;17175:52:0;17171:206;;17278:87;;;;;;;;;;;-1:-1:-1;;;17278:87:0;;;;;;;;-1:-1:-1;;;;;17278:19:0;;-1:-1:-1;17278:19:0;;;:11;:19;;;;;17298:10;17278:31;;;;;;;;;;:87;;17332:6;;17278:53;:87::i;:::-;-1:-1:-1;;;;;17244:19:0;;;;;;:11;:19;;;;;;;;17264:10;17244:31;;;;;;;:121;17171:206;17396:40;17410:6;17418:9;17429:6;17396:13;:40::i;:::-;17389:47;;17020:424;;;;;;:::o;26874:122::-;3147:4;3182:5;-1:-1:-1;;;;;3182:5:0;2990:10;3171:16;2974:38;;;;-1:-1:-1;;;2974:38:0;;;;;;;:::i;:::-;26974:14:::1;:6:::0;26983:5:::1;26974:14;:::i;:::-;26952:19;:36:::0;-1:-1:-1;26874:122:0:o;25711:142::-;25839:4;;-1:-1:-1;;;;;25839:4:0;25764:7;16208:18;;;:9;:18;;;;;;25791:54;;25818:4;;-1:-1:-1;;;;;25818:4:0;16181:7;16208:18;;;:9;:18;;;;;;25791:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;25784:61;;25711:142;:::o;23428:158::-;3147:4;3182:5;-1:-1:-1;;;;;3182:5:0;2990:10;3171:16;2974:38;;;;-1:-1:-1;;;2974:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23505:15:0;::::1;;::::0;;;:5:::1;:15;::::0;;;;:24;;-1:-1:-1;;23505:24:0::1;::::0;::::1;;;::::0;;23540:38:::1;23505:15:::0;:24;23540:20:::1;:38::i;:::-;23428:158:::0;;:::o;26504:80::-;3147:4;3182:5;-1:-1:-1;;;;;3182:5:0;2990:10;3171:16;2974:38;;;;-1:-1:-1;;;2974:38:0;;;;;;;:::i;:::-;26560:8:::1;:16:::0;;-1:-1:-1;;26560:16:0::1;::::0;;26504:80::o;26258:115::-;26337:11;;:28;;;-1:-1:-1;;;26337:28:0;;;;26310:7;;-1:-1:-1;;;;;26337:11:0;;:26;;:28;;;;;;;;;;;;;;:11;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16694:122::-;16749:4;16773:35;16781:7;-1:-1:-1;;16773:7:0;:35::i;25861:135::-;3147:4;3182:5;-1:-1:-1;;;;;3182:5:0;2990:10;3171:16;2974:38;;;;-1:-1:-1;;;2974:38:0;;;;;;;:::i;:::-;25945:15:::1;:43:::0;;-1:-1:-1;;;;;;25945:43:0::1;-1:-1:-1::0;;;;;25945:43:0;;;::::1;::::0;;;::::1;::::0;;25861:135::o;26131:119::-;26212:11;;:30;;;-1:-1:-1;;;26212:30:0;;;;26185:7;;-1:-1:-1;;;;;26212:11:0;;:28;;:30;;;;;;;;;;;;;;:11;:30;;;;;;;;;;;;;;24776:186;24856:42;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24856:42:0;-1:-1:-1;;;24856:42:0;;;24848:51;;24830:12;;-1:-1:-1;;;;;24848:2:0;:7;;:51;;24856:42;24848:51;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24829:70;;;24918:7;24910:44;;;;-1:-1:-1;;;24910:44:0;;6277:2:1;24910:44:0;;;6259:21:1;6316:2;6296:18;;;6289:30;6355:26;6335:18;;;6328:54;6399:18;;24910:44:0;6075:348:1;24910:44:0;24818:144;24776:186::o;24106:119::-;3147:4;3182:5;-1:-1:-1;;;;;3182:5:0;2990:10;3171:16;2974:38;;;;-1:-1:-1;;;2974:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24189:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;24189:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24106:119::o;26381:115::-;26460:11;;:28;;;-1:-1:-1;;;26460:28:0;;;;26433:7;;-1:-1:-1;;;;;26460:11:0;;:26;;:28;;;;;;;;;;;;;;:11;:28;;;;;;;;;;;;;;24233:137;3147:4;3182:5;-1:-1:-1;;;;;3182:5:0;2990:10;3171:16;2974:38;;;;-1:-1:-1;;;2974:38:0;;;;;;;:::i;:::-;24309:2:::1;24301:4;:10;;24293:43;;;::::0;-1:-1:-1;;;24293:43:0;;6630:2:1;24293:43:0::1;::::0;::::1;6612:21:1::0;6669:2;6649:18;;;6642:30;-1:-1:-1;;;6688:18:1;;;6681:50;6748:18;;24293:43:0::1;6428:344:1::0;24293:43:0::1;24347:8;:15:::0;24233:137::o;26702:164::-;3147:4;3182:5;-1:-1:-1;;;;;3182:5:0;2990:10;3171:16;2974:38;;;;-1:-1:-1;;;2974:38:0;;;;;;;:::i;:::-;26771:16:::1;::::0;-1:-1:-1;;;26771:16:0;::::1;;;:25;26763:61;;;::::0;-1:-1:-1;;;26763:61:0;;6979:2:1;26763:61:0::1;::::0;::::1;6961:21:1::0;7018:2;6998:18;;;6991:30;7057:25;7037:18;;;7030:53;7100:18;;26763:61:0::1;6777:347:1::0;26763:61:0::1;26835:16;:23:::0;;-1:-1:-1;;;;26835:23:0::1;-1:-1:-1::0;;;26835:23:0::1;::::0;;26702:164::o;26004:119::-;26085:11;;:30;;;-1:-1:-1;;;26085:30:0;;;;26058:7;;-1:-1:-1;;;;;26085:11:0;;:28;;:30;;;;;;;;;;;;;;:11;:30;;;;;;;;;;;;;;20566:446;3147:4;3182:5;-1:-1:-1;;;;;3182:5:0;2990:10;3171:16;2974:38;;;;-1:-1:-1;;;2974:38:0;;;;;;;:::i;:::-;20756:58:::1;20797:16:::0;20756:36:::1;:15:::0;20776;20756:19:::1;:36::i;:::-;:40:::0;::::1;:58::i;:::-;20818:3;20756:65;20734:145;;;::::0;-1:-1:-1;;;20734:145:0;;7331:2:1;20734:145:0::1;::::0;::::1;7313:21:1::0;7370:2;7350:18;;;7343:30;7409:32;7389:18;;;7382:60;7459:18;;20734:145:0::1;7129:354:1::0;20734:145:0::1;20890:12;:30:::0;;;;20931:12:::1;:30:::0;20972:13:::1;:32:::0;20566:446::o;16824:188::-;16931:4;16960:44;16974:10;16986:9;16997:6;16960:13;:44::i;25164:192::-;25299:11;;:49;;-1:-1:-1;;;25299:49:0;;-1:-1:-1;;;;;1911:32:1;;;25299:49:0;;;1893:51:1;25267:7:0;;25299:11;;:36;;1866:18:1;;25299:49:0;1747:203:1;23305:115:0;3147:4;3182:5;-1:-1:-1;;;;;3182:5:0;2990:10;3171:16;2974:38;;;;-1:-1:-1;;;2974:38:0;;;;;;;:::i;:::-;23371:12:::1;23358:10;:25:::0;23394:11:::1;:18:::0;;-1:-1:-1;;23394:18:0::1;23408:4;23394:18;::::0;;23305:115::o;24970:186::-;25050:42;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25050:42:0;-1:-1:-1;;;25050:42:0;;;25042:51;;25024:12;;-1:-1:-1;;;;;25042:2:0;:7;;:51;;25050:42;25042:51;:::i;24560:90::-;24605:11;;:37;;-1:-1:-1;;;24605:37:0;;24631:10;24605:37;;;1893:51:1;-1:-1:-1;;;;;24605:11:0;;;;:25;;1866:18:1;;24605:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24560:90::o;3320:136::-;3147:4;3182:5;-1:-1:-1;;;;;3182:5:0;2990:10;3171:16;2974:38;;;;-1:-1:-1;;;2974:38:0;;;;;;;:::i;:::-;3396:5:::1;:11:::0;;-1:-1:-1;;;;;;3396:11:0::1;-1:-1:-1::0;;;;;3396:11:0;::::1;::::0;;::::1;::::0;;;3423:25:::1;::::0;1893:51:1;;;3423:25:0::1;::::0;1881:2:1;1866:18;3423:25:0::1;;;;;;;3320:136:::0;:::o;24378:174::-;3147:4;3182:5;-1:-1:-1;;;;;3182:5:0;2990:10;3171:16;2974:38;;;;-1:-1:-1;;;2974:38:0;;;;;;;:::i;:::-;24499:15:::1;::::0;24491:53:::1;::::0;24459:21:::1;::::0;-1:-1:-1;;;;;24499:15:0::1;::::0;24491:53;::::1;;;::::0;24459:21;;24430:26:::1;24491:53:::0;24430:26;24491:53;24459:21;24499:15;24491:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;23943:155:::0;3147:4;3182:5;-1:-1:-1;;;;;3182:5:0;2990:10;3171:16;2974:38;;;;-1:-1:-1;;;2974:38:0;;;;;;;:::i;:::-;24054:36:::1;24075:6;24083;24054:20;:36::i;19518:401::-:0;19682:90;;;;;;;;;;;-1:-1:-1;;;19682:90:0;;;;;;;;-1:-1:-1;;;;;19682:17:0;;19645:4;19682:17;;;:9;:17;;;;;;;:90;;19718:6;;19682:21;:90::i;:::-;-1:-1:-1;;;;;19662:17:0;;;;;;;:9;:17;;;;;;:110;;;;19806:20;;;;;;;:32;;19831:6;19806:24;:32::i;:::-;-1:-1:-1;;;;;19783:20:0;;;;;;;:9;:20;;;;;;;:55;;;;19854:35;;;;;;;;;;19882:6;548:25:1;;536:2;521:18;;402:177;19854:35:0;;;;;;;;-1:-1:-1;19907:4:0;19518:401;;;;;:::o;538:226::-;658:7;694:12;686:6;;;;678:29;;;;-1:-1:-1;;;678:29:0;;;;;;;;:::i;:::-;-1:-1:-1;718:9:0;730:5;734:1;730;:5;:::i;:::-;718:17;538:226;-1:-1:-1;;;;;538:226:0:o;17452:2058::-;17578:4;17609:5;;-1:-1:-1;;;;;17599:15:0;;;17609:5;;17599:15;;;;:37;;-1:-1:-1;17631:5:0;;-1:-1:-1;;;;;17618:18:0;;;17631:5;;17618:18;;17599:37;17595:104;;;17659:11;;;;17651:48;;;;-1:-1:-1;;;17651:48:0;;8036:2:1;17651:48:0;;;8018:21:1;8075:2;8055:18;;;8048:30;8114:26;8094:18;;;8087:54;8158:18;;17651:48:0;7834:348:1;17651:48:0;17714:16;;-1:-1:-1;;;17714:16:0;;;;17710:101;;;-1:-1:-1;;;;;17756:13:0;;;;;;:5;:13;;;;;;;;17755:14;:35;;;;-1:-1:-1;;;;;;17774:16:0;;;;;;:5;:16;;;;;;;;17773:17;17755:35;17747:52;;;;-1:-1:-1;;;17747:52:0;;;;;;8389:2:1;8371:21;;;8428:1;8408:18;;;8401:29;-1:-1:-1;;;8461:2:1;8446:18;;8439:34;8505:2;8490:18;;8187:327;17747:52:0;17825:8;;;;;;;17821:198;;;17863:5;;-1:-1:-1;;;;;17853:15:0;;;17863:5;;17853:15;;;;:37;;-1:-1:-1;17885:5:0;;-1:-1:-1;;;;;17872:18:0;;;17885:5;;17872:18;;17853:37;:64;;;;-1:-1:-1;;;;;;17894:23:0;;17912:4;17894:23;;17853:64;:94;;;;-1:-1:-1;;;;;;17921:26:0;;17942:4;17921:26;;17853:94;17849:158;;;17984:6;;17974;:16;;17966:41;;;;-1:-1:-1;;;17966:41:0;;8721:2:1;17966:41:0;;;8703:21:1;8760:2;8740:18;;;8733:30;-1:-1:-1;;;8779:18:1;;;8772:42;8831:18;;17966:41:0;8519:336:1;17966:41:0;18059:4;;-1:-1:-1;;;;;18049:14:0;;;18059:4;;18049:14;:59;;;;-1:-1:-1;18101:6:0;;-1:-1:-1;;;;;18080:28:0;;;18101:6;;18080:28;;18049:59;:99;;;;-1:-1:-1;;;;;;18126:22:0;;;;;;:11;:22;;;;;;;;18125:23;18049:99;18031:267;;;-1:-1:-1;;;;;18183:19:0;;;;;;:8;:19;;;;;;18205:15;-1:-1:-1;18175:46:0;;;;;;18258:28;:15;18276:10;18258:28;:::i;:::-;-1:-1:-1;;;;;18236:19:0;;;;;;:8;:19;;;;;:50;18031:267;18314:6;;-1:-1:-1;;;18314:6:0;;;;18310:87;;;18344:41;18359:6;18367:9;18378:6;18344:14;:41::i;:::-;18337:48;;;;18310:87;18458:4;18409:28;16208:18;;;:9;:18;;;;;;18528:19;;16208:18;;18504:43;;;;;;18409:28;18504:43;;18583:53;;-1:-1:-1;18632:4:0;;-1:-1:-1;;;;;18619:17:0;;;18632:4;;18619:17;18583:53;:98;;;;-1:-1:-1;18671:4:0;18680:1;16208:18;;;:9;:18;;;;;;18653:28;18583:98;18560:122;;18697:14;18693:57;;;18728:10;:8;:10::i;:::-;18782:90;;;;;;;;;;;-1:-1:-1;;;18782:90:0;;;;;;;;-1:-1:-1;;;;;18782:17:0;;-1:-1:-1;18782:17:0;;;:9;:17;;;;;;;;:90;;18818:6;;18782:21;:90::i;:::-;-1:-1:-1;;;;;18762:17:0;;;;;;:9;:17;;;;;:110;;;;18910:32;18772:6;18932:9;18910:13;:32::i;:::-;:93;;18997:6;18910:93;;;18958:23;18966:6;18974;18958:7;:23::i;:::-;-1:-1:-1;;;;;19039:20:0;;;;;;:9;:20;;;;;;18885:118;;-1:-1:-1;19039:40:0;;18885:118;19039:24;:40::i;:::-;-1:-1:-1;;;;;19016:20:0;;;;;;;:9;:20;;;;;:63;;;;19106:4;;19096:14;;;19106:4;;19096:14;;;;:43;;-1:-1:-1;;;;;;19115:24:0;;;;;;:16;:24;;;;;;;;19114:25;19096:43;19092:138;;;19160:11;;-1:-1:-1;;;;;19189:17:0;;;19160:11;19189:17;;;:9;:17;;;;;;;;19160:47;;-1:-1:-1;;;19160:47:0;;;;;9167:51:1;;;;9234:18;;;9227:34;19160:11:0;;;:20;;9140:18:1;;19160:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19156:63;;19257:4;;-1:-1:-1;;;;;19244:17:0;;;19257:4;;19244:17;;;;:49;;-1:-1:-1;;;;;;19266:27:0;;;;;;:16;:27;;;;;;;;19265:28;19244:49;19240:180;;;19331:11;;-1:-1:-1;;;;;19363:20:0;;;19331:11;19363:20;;;:9;:20;;;;;;;;19331:53;;-1:-1:-1;;;19331:53:0;;;;;9167:51:1;;;;9234:18;;;9227:34;19331:11:0;;;:20;;9140:18:1;;19331:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19310:99;;19454:9;-1:-1:-1;;;;;19437:43:0;19446:6;-1:-1:-1;;;;;19437:43:0;;19465:14;19437:43;;;;548:25:1;;536:2;521:18;;402:177;19437:43:0;;;;;;;;-1:-1:-1;19498:4:0;;17452:2058;-1:-1:-1;;;;;;;17452:2058:0:o;394:136::-;452:7;479:43;483:1;486;479:43;;;;;;;;;;;;;;;;;:3;:43::i;23594:341::-;-1:-1:-1;;;;;23681:23:0;;23699:4;23681:23;;;;:41;;-1:-1:-1;23718:4:0;;-1:-1:-1;;;;;23708:14:0;;;23718:4;;23708:14;;23681:41;23673:50;;;;;;-1:-1:-1;;;;;23734:24:0;;;;;;:16;:24;;;;;:33;;-1:-1:-1;;23734:33:0;;;;;;;;;;;;23778:150;;23805:11;;:31;;-1:-1:-1;;;23805:31:0;;-1:-1:-1;;;;;9185:32:1;;;23805:31:0;;;9167:51:1;23805:11:0;9234:18:1;;;9227:34;23805:11:0;;;;:20;;9140:18:1;;23805:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23428:158;;:::o;23778:150::-;23869:11;;-1:-1:-1;;;;;23898:17:0;;;23869:11;23898:17;;;:9;:17;;;;;;;;23869:47;;-1:-1:-1;;;23869:47:0;;;;;9167:51:1;;;;9234:18;;;9227:34;23869:11:0;;;:20;;9140:18:1;;23869:47:0;8993:274:1;205:181:0;263:7;;295:5;299:1;295;:5;:::i;:::-;283:17;;324:1;319;:6;;311:46;;;;-1:-1:-1;;;311:46:0;;9761:2:1;311:46:0;;;9743:21:1;9800:2;9780:18;;;9773:30;9839:29;9819:18;;;9812:57;9886:18;;311:46:0;9559:351:1;21020:1084:0;14841:6;:13;;-1:-1:-1;;;;14841:13:0;-1:-1:-1;;;14841:13:0;;;21110:4:::1;-1:-1:-1::0;16208:18:0;;;:9;:18;;;;;;21069:47:::1;;21129:22;21154:39;21189:3;21154:30;21171:12;;21154;:16;;:30;;;;:::i;:::-;:34:::0;::::1;:39::i;:::-;21129:64;;21204:22;21229:39;21264:3;21229:30;21246:12;;21229;:16;;:30;;;;:::i;:39::-;21204:64;;21279:23;21305:40;21341:3;21305:31;21322:13;;21305:12;:16;;:31;;;;:::i;:40::-;21279:66;;21358:33;21375:15;21358:16;:33::i;:::-;21402:31;21418:14;21402:15;:31::i;:::-;21444;21460:14;21444:15;:31::i;:::-;21488:25;:23;:25::i;:::-;21524;:23;:25::i;:::-;21584:35;::::0;-1:-1:-1;;;21584:35:0;;21613:4:::1;21584:35;::::0;::::1;1893:51:1::0;21562:19:0::1;::::0;21591:2:::1;-1:-1:-1::0;;;;;21584:20:0::1;::::0;::::1;::::0;1866:18:1;;21584:35:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21652;::::0;-1:-1:-1;;;21652:35:0;;21681:4:::1;21652:35;::::0;::::1;1893:51:1::0;21562:57:0;;-1:-1:-1;21630:19:0::1;::::0;-1:-1:-1;;;;;21659:2:0::1;21652:20;::::0;::::1;::::0;1866:18:1;;21652:35:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21745:11;::::0;21717:54:::1;::::0;-1:-1:-1;;;21717:54:0;;-1:-1:-1;;;;;21745:11:0;;::::1;21717:54;::::0;::::1;9167:51:1::0;9234:18;;;9227:34;;;21630:57:0;;-1:-1:-1;21700:14:0::1;::::0;21724:2:::1;21717:19:::0;;::::1;::::0;::::1;::::0;9140:18:1;;21717:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21827:11;::::0;21799:54:::1;::::0;-1:-1:-1;;;21799:54:0;;-1:-1:-1;;;;;21827:11:0;;::::1;21799:54;::::0;::::1;9167:51:1::0;9234:18;;;9227:34;;;21700:71:0;;-1:-1:-1;21782:14:0::1;::::0;21806:2:::1;21799:19:::0;;::::1;::::0;::::1;::::0;9140:18:1;;21799:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21782:71;;21870:9;21866:76;;;21896:11;::::0;:34:::1;::::0;-1:-1:-1;;;21896:34:0;;::::1;::::0;::::1;548:25:1::0;;;-1:-1:-1;;;;;21896:11:0;;::::1;::::0;:21:::1;::::0;521:18:1;;21896:34:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21866:76;21956:9;21952:76;;;21982:11;::::0;:34:::1;::::0;-1:-1:-1;;;21982:34:0;;::::1;::::0;::::1;548:25:1::0;;;-1:-1:-1;;;;;21982:11:0;;::::1;::::0;:21:::1;::::0;521:18:1;;21982:34:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21952:76;22048:15;::::0;22040:56:::1;::::0;-1:-1:-1;;;;;22048:15:0;;::::1;::::0;22074:21:::1;22040:56:::0;::::1;;;::::0;22048:15:::1;22040:56:::0;22048:15;22040:56;22074:21;22048:15;22040:56;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;14877:6:0;:14;;-1:-1:-1;;;;14877:14:0;;;-1:-1:-1;;;;;;;21020:1084:0:o;19927:249::-;-1:-1:-1;;;;;20067:19:0;;20035:4;20067:19;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;20090:22:0;;;;;;:11;:22;;;;;;;;20067:45;20065:48;:102;;;;-1:-1:-1;20141:4:0;;-1:-1:-1;;;;;20131:14:0;;;20141:4;;20131:14;;:35;;-1:-1:-1;;20162:4:0;;-1:-1:-1;;;;;20162:4:0;;;20149:17;;;;19927:249;-1:-1:-1;19927:249:0:o;20184:374::-;20269:7;20294:17;20334:40;20359:14;;20334:20;20345:8;;20334:6;:10;;:20;;;;:::i;:40::-;20430:4;20412:24;;;;:9;:24;;;;;;20322:52;;-1:-1:-1;20412:39:0;;20322:52;20412:28;:39::i;:::-;20403:4;20385:24;;;;:9;:24;;;;;;;:66;;;;20467:42;;-1:-1:-1;;;;;20467:42:0;;;;;;;20499:9;548:25:1;;536:2;521:18;;402:177;20467:42:0;;;;;;;;20529:21;:6;20540:9;20529:10;:21::i;:::-;20522:28;20184:374;-1:-1:-1;;;;20184:374:0:o;772:250::-;830:7;854:1;859;854:6;850:47;;-1:-1:-1;884:1:0;877:8;;850:47;909:9;921:5;925:1;921;:5;:::i;:::-;909:17;-1:-1:-1;954:1:0;945:5;949:1;909:17;945:5;:::i;:::-;:10;937:56;;;;-1:-1:-1;;;937:56:0;;10589:2:1;937:56:0;;;10571:21:1;10628:2;10608:18;;;10601:30;10667:34;10647:18;;;10640:62;-1:-1:-1;;;10718:18:1;;;10711:31;10759:19;;937:56:0;10387:397:1;1030:132:0;1088:7;1115:39;1119:1;1122;1115:39;;;;;;;;;;;;;;;;;:3;:39::i;22924:373::-;23014:16;;;23028:1;23014:16;;;;;;;;22990:21;;23014:16;;;;;;;;;;-1:-1:-1;23014:16:0;22990:40;;23059:4;23041;23046:1;23041:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23041:23:0;;;:7;;;;;;;;;:23;23085:4;;;23075:7;;23085:4;;;23075;;23085;23075:7;;;;;;:::i;:::-;-1:-1:-1;;;;;23075:14:0;;;:7;;;;;;;;;:14;23102:6;;:187;;-1:-1:-1;;;23102:187:0;;:6;;;:57;;:187;;23174:11;;23102:6;;23216:4;;23243;;23263:15;;23102:187;;;:::i;22112:398::-;22201:16;;;22215:1;22201:16;;;;;;;;;22177:21;;22201:16;;;;;;;;;;-1:-1:-1;22201:16:0;22177:40;;22246:4;22228;22233:1;22228:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22228:23:0;;;:7;;;;;;;;;:23;22272:4;;;22262:7;;22272:4;;;22262;;22272;22262:7;;;;;;:::i;:::-;;;;;;:14;-1:-1:-1;;;;;22262:14:0;;;-1:-1:-1;;;;;22262:14:0;;;;;22297:2;22287:4;22292:1;22287:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22287:12:0;;;:7;;;;;;;;;:12;22312:6;;:190;;-1:-1:-1;;;22312:190:0;;:6;;;:60;;:190;;22387:11;;22312:6;;22429:4;;22456;;22476:15;;22312:190;;;:::i;22518:398::-;22607:16;;;22621:1;22607:16;;;;;;;;;22583:21;;22607:16;;;;;;;;;;-1:-1:-1;22607:16:0;22583:40;;22652:4;22634;22639:1;22634:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22634:23:0;;;:7;;;;;;;;;:23;22678:4;;;22668:7;;22678:4;;;22668;;22678;22668:7;;;;;;:::i;:::-;;;;;;:14;-1:-1:-1;;;;;22668:14:0;;;-1:-1:-1;;;;;22668:14:0;;;;;22703:2;22693:4;22698:1;22693:7;;;;;;;;:::i;1170:379::-;1290:7;1392:12;1385:5;1377:28;;;;-1:-1:-1;;;1377:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1416:9:0;1428:5;1432:1;1428;:5;:::i;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:247;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;584:258::-;656:1;666:113;680:6;677:1;674:13;666:113;;;756:11;;;750:18;737:11;;;730:39;702:2;695:10;666:113;;;797:6;794:1;791:13;788:48;;;-1:-1:-1;;832:1:1;814:16;;807:27;584:258::o;847:383::-;996:2;985:9;978:21;959:4;1028:6;1022:13;1071:6;1066:2;1055:9;1051:18;1044:34;1087:66;1146:6;1141:2;1130:9;1126:18;1121:2;1113:6;1109:15;1087:66;:::i;:::-;1214:2;1193:15;-1:-1:-1;;1189:29:1;1174:45;;;;1221:2;1170:54;;847:383;-1:-1:-1;;847:383:1:o;1235:315::-;1303:6;1311;1364:2;1352:9;1343:7;1339:23;1335:32;1332:52;;;1380:1;1377;1370:12;1332:52;1419:9;1406:23;1438:31;1463:5;1438:31;:::i;:::-;1488:5;1540:2;1525:18;;;;1512:32;;-1:-1:-1;;;1235:315:1:o;1955:180::-;2014:6;2067:2;2055:9;2046:7;2042:23;2038:32;2035:52;;;2083:1;2080;2073:12;2035:52;-1:-1:-1;2106:23:1;;1955:180;-1:-1:-1;1955:180:1:o;2140:456::-;2217:6;2225;2233;2286:2;2274:9;2265:7;2261:23;2257:32;2254:52;;;2302:1;2299;2292:12;2254:52;2341:9;2328:23;2360:31;2385:5;2360:31;:::i;:::-;2410:5;-1:-1:-1;2467:2:1;2452:18;;2439:32;2480:33;2439:32;2480:33;:::i;:::-;2140:456;;2532:7;;-1:-1:-1;;;2586:2:1;2571:18;;;;2558:32;;2140:456::o;2790:118::-;2876:5;2869:13;2862:21;2855:5;2852:32;2842:60;;2898:1;2895;2888:12;2913:382;2978:6;2986;3039:2;3027:9;3018:7;3014:23;3010:32;3007:52;;;3055:1;3052;3045:12;3007:52;3094:9;3081:23;3113:31;3138:5;3113:31;:::i;:::-;3163:5;-1:-1:-1;3220:2:1;3205:18;;3192:32;3233:30;3192:32;3233:30;:::i;:::-;3282:7;3272:17;;;2913:382;;;;;:::o;3524:316::-;3601:6;3609;3617;3670:2;3658:9;3649:7;3645:23;3641:32;3638:52;;;3686:1;3683;3676:12;3638:52;-1:-1:-1;;3709:23:1;;;3779:2;3764:18;;3751:32;;-1:-1:-1;3830:2:1;3815:18;;;3802:32;;3524:316;-1:-1:-1;3524:316:1:o;4089:388::-;4157:6;4165;4218:2;4206:9;4197:7;4193:23;4189:32;4186:52;;;4234:1;4231;4224:12;4186:52;4273:9;4260:23;4292:31;4317:5;4292:31;:::i;:::-;4342:5;-1:-1:-1;4399:2:1;4384:18;;4371:32;4412:33;4371:32;4412:33;:::i;4968:184::-;5038:6;5091:2;5079:9;5070:7;5066:23;5062:32;5059:52;;;5107:1;5104;5097:12;5059:52;-1:-1:-1;5130:16:1;;4968:184;-1:-1:-1;4968:184:1:o;5157:329::-;5359:2;5341:21;;;5398:1;5378:18;;;5371:29;-1:-1:-1;;;5431:2:1;5416:18;;5409:36;5477:2;5462:18;;5157:329::o;5491:127::-;5552:10;5547:3;5543:20;5540:1;5533:31;5583:4;5580:1;5573:15;5607:4;5604:1;5597:15;5623:168;5663:7;5729:1;5725;5721:6;5717:14;5714:1;5711:21;5706:1;5699:9;5692:17;5688:45;5685:71;;;5736:18;;:::i;:::-;-1:-1:-1;5776:9:1;;5623:168::o;5796:274::-;5925:3;5963:6;5957:13;5979:53;6025:6;6020:3;6013:4;6005:6;6001:17;5979:53;:::i;:::-;6048:16;;;;;5796:274;-1:-1:-1;;5796:274:1:o;7704:125::-;7744:4;7772:1;7769;7766:8;7763:34;;;7777:18;;:::i;:::-;-1:-1:-1;7814:9:1;;7704:125::o;8860:128::-;8900:3;8931:1;8927:6;8924:1;8921:13;8918:39;;;8937:18;;:::i;:::-;-1:-1:-1;8973:9:1;;8860:128::o;9915:245::-;9982:6;10035:2;10023:9;10014:7;10010:23;10006:32;10003:52;;;10051:1;10048;10041:12;10003:52;10083:9;10077:16;10102:28;10124:5;10102:28;:::i;10165:217::-;10205:1;10231;10221:132;;10275:10;10270:3;10266:20;10263:1;10256:31;10310:4;10307:1;10300:15;10338:4;10335:1;10328:15;10221:132;-1:-1:-1;10367:9:1;;10165:217::o;10921:127::-;10982:10;10977:3;10973:20;10970:1;10963:31;11013:4;11010:1;11003:15;11037:4;11034:1;11027:15;11053:980;11315:4;11363:3;11352:9;11348:19;11394:6;11383:9;11376:25;11420:2;11458:6;11453:2;11442:9;11438:18;11431:34;11501:3;11496:2;11485:9;11481:18;11474:31;11525:6;11560;11554:13;11591:6;11583;11576:22;11629:3;11618:9;11614:19;11607:26;;11668:2;11660:6;11656:15;11642:29;;11689:1;11699:195;11713:6;11710:1;11707:13;11699:195;;;11778:13;;-1:-1:-1;;;;;11774:39:1;11762:52;;11869:15;;;;11834:12;;;;11810:1;11728:9;11699:195;;;-1:-1:-1;;;;;;;11950:32:1;;;;11945:2;11930:18;;11923:60;-1:-1:-1;;;12014:3:1;11999:19;11992:35;11911:3;11053:980;-1:-1:-1;;;11053:980:1:o

Swarm Source

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