ETH Price: $2,637.20 (-0.34%)
Gas: 5.56 Gwei

Token

My Lady (LADY)
 

Overview

Max Total Supply

666,666,666,666,666 LADY

Holders

191

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 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:
MyLady

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-28
*/

/*
My Lady
Our 5% taxes go to buying the females on the floor of Miladay!
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

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

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

interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event. C U ON THE MOON
     */
    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) internal _balances;

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

    uint256 internal _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

    function transfer(address recipient, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if(currentAllowance != type(uint256).max) { 
            require(
                currentAllowance >= amount,
                "ERC20: transfer amount exceeds allowance"
            );
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }
        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        uint256 senderBalance = _balances[sender];
        require(
            senderBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

contract Ownable is Context {
    address private _owner;

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

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

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

interface ILpPair {
    function sync() external;
}

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

    function WETH() external pure returns (address);

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

    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

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

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

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

contract MyLady is ERC20, Ownable {
    IDexRouter public immutable dexRouter;
    address public lpPair;

    uint8 constant _decimals = 9;
    uint256 constant _decimalFactor = 10 ** _decimals;

    bool public taxEnabled = false;
    bool private swapping;
    uint256 public swapTokensAtAmount;
    bool public swapEnabled = false;
    mapping(address => bool) public _taxExempt;

    uint256 public tradingActiveTime;
    address public purchaserAddress;
    bool relaunching = true;

    mapping(address => bool) public pairs;

    event SetPair(address indexed pair, bool indexed value);
    event ExcludeTaxes(address indexed account, bool isExcluded);

    constructor(address _marketing) ERC20("My Lady", "LADY") payable {
        address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
        dexRouter = IDexRouter(routerAddress);

        _approve(address(this), routerAddress, type(uint256).max);

        uint256 totalSupply = 666_666_666_666_666 * _decimalFactor;
        swapTokensAtAmount = totalSupply / 100000;

        excludeTaxes(msg.sender, true);
        excludeTaxes(_marketing, true);
        excludeTaxes(address(this), true);
        excludeTaxes(address(0xdead), true);

        purchaserAddress = _marketing;

        uint256 toLp = totalSupply * 99 / 100;

        _balances[address(this)] = toLp;
        emit Transfer(address(0), address(this), toLp);
        _balances[msg.sender] = totalSupply - toLp;
        emit Transfer(address(0), msg.sender, totalSupply - toLp);

        _totalSupply = totalSupply;

        transferOwnership(msg.sender);
    }

    receive() external payable {}

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

    function setPair(address pair, bool value) external onlyOwner {
        require(pair != lpPair,"The main pair cannot be removed from pairs");

        pairs[pair] = value;
        emit SetPair(pair, value);
    }

    function excludeTaxes(address account, bool excluded) public onlyOwner {
        _taxExempt[account] = excluded;
        emit ExcludeTaxes(account, excluded);
    }

    function getSellFees() public view returns (uint256) {
        if(!taxEnabled) return 0;
        if(tradingActiveTime + 5 minutes < block.timestamp) return 5;
        return 20;
    }

    function getBuyFees() public view returns (uint256) {
        if(!taxEnabled) return 0;
        return 5;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "amount must be greater than 0");

        if (tradingActiveTime > 0 && !_taxExempt[from] && !_taxExempt[to]) 
        {
            uint256 fees = 0;
            uint256 _sf = getSellFees();
            uint256 _bf = getBuyFees();

            if (swapEnabled && !swapping && pairs[to]) {
                swapping = true;
                swapBack(amount);
                swapping = false;
            }

            if (_sf > 0 && pairs[to]) {
                fees = (amount * _sf) / 100;
            }
            else if (_bf > 0 && pairs[from]) {
                fees = (amount * _bf) / 100;
            }

            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }

            amount -= fees;
        }
        else if (tradingActiveTime == 0) {
            require(!relaunching, "Not yet launched");
        }

        super._transfer(from, to, amount);
    }

    function withdrawStuckETH() external onlyOwner {
        bool success;
        (success, ) = address(msg.sender).call{value: address(this).balance}("");
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

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

    function swapBack(uint256 amount) private {
        uint256 amountToSwap = balanceOf(address(this));
        if (amountToSwap < swapTokensAtAmount) return;
        if (amountToSwap > swapTokensAtAmount * 10) amountToSwap = swapTokensAtAmount * 10;
        if (amountToSwap > amount) amountToSwap = 90 * amount / 100;
	    if (amountToSwap == 0) return;

        swapTokensForEth(amountToSwap);

        bool success;
        (success, ) = purchaserAddress.call{value: address(this).balance}("");
    }

    function launch(address lpOwner, address[] calldata _wallets, uint256[] calldata _tokens) external payable onlyOwner {
        require(tradingActiveTime == 0);

        lpPair = IDexFactory(dexRouter.factory()).createPair(dexRouter.WETH(), address(this));
        pairs[lpPair] = true;

        relaunching = false;
        dexRouter.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,lpOwner,block.timestamp);

        _relaunch(_wallets, _tokens);

        relaunching = true;
    }

    function relaunch(address[] calldata _wallets, uint256[] calldata _tokens) external payable onlyOwner {
        require(tradingActiveTime == 0);
        relaunching = false;
        _relaunch(_wallets, _tokens);
        relaunching = true;
    }

    function _relaunch(address[] calldata _wallets, uint256[] calldata _tokens) internal {
        address[] memory path = new address[](2);
        path[0] = dexRouter.WETH();
        path[1] = address(this);

        if(_wallets.length > 0) {
            for(uint256 i = 0; i < _wallets.length; i++) {
                dexRouter.swapETHForExactTokens{value: address(this).balance} (
                    _tokens[i] * 1000000000,
                    path,
                    _wallets[i],
                    block.timestamp
                );
            }
        }
    }

    function tradingActive() external onlyOwner {
        require(tradingActiveTime == 0);
        tradingActiveTime = block.timestamp;
        taxEnabled = true;
        swapEnabled = true;
        relaunching = false;
    }

    function endLaunchPeriod() external onlyOwner {
        tradingActiveTime += 5 minutes;
    }

    function disableTax() external onlyOwner() {
        taxEnabled = false;
    }

    function enableTax() external onlyOwner() {
        taxEnabled = true;
    }

    function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner {
        require(newAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% total supply.");
        require(newAmount <= (totalSupply() * 1) / 1000, "Swap amount cannot be higher than 0.1% total supply.");
        swapTokensAtAmount = newAmount;
    }

    function disableSwap() external onlyOwner {
        swapEnabled = false;
    }

    function enableSwap() external onlyOwner {
        swapEnabled = true;
    }

	function airdrop(address[] calldata _addresses, uint256[] calldata _amount) external onlyOwner
    {
        bool rl;
        if (relaunching) {
            rl = true;
            relaunching = false;
        }

        require(_addresses.length == _amount.length, "Array lengths don't match");
        for (uint256 i = 0; i < _addresses.length; i++) {
            super._transfer(msg.sender, _addresses[i], _amount[i] * _decimalFactor);
        }

        if (rl)
            relaunching = true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_marketing","type":"address"}],"stateMutability":"payable","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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeTaxes","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_taxExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"endLaunchPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"lpOwner","type":"address"},{"internalType":"address[]","name":"_wallets","type":"address[]"},{"internalType":"uint256[]","name":"_tokens","type":"uint256[]"}],"name":"launch","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"purchaserAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_wallets","type":"address[]"},{"internalType":"uint256[]","name":"_tokens","type":"uint256[]"}],"name":"relaunch","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tradingActiveTime","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","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060408190526006805460ff60a01b199081169091556008805460ff19169055600b8054909116600160a01b17905562002e2a388190039081908339810160408190526200004e9162000541565b604051806040016040528060078152602001664d79204c61647960c81b815250604051806040016040528060048152602001634c41445960e01b81525081600390816200009c919062000618565b506004620000ab828262000618565b5050506000620000c06200026a60201b60201c565b600580546001600160a01b0319166001600160a01b0383169081179091556040519192509060009060008051602062002dea833981519152908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d60808190526200012630826000196200026e565b6000620001366009600a620007f9565b620001499066025e546dd9aaaa6200080a565b90506200015a620186a08262000824565b6007556200016a3360016200039a565b620001778360016200039a565b620001843060016200039a565b6200019361dead60016200039a565b600b80546001600160a01b0319166001600160a01b03851617905560006064620001bf8360636200080a565b620001cb919062000824565b30600081815260208181526040808320859055518481529394509192909160008051602062002e0a833981519152910160405180910390a36200020f818362000847565b336000818152602081905260408120929092559060008051602062002e0a8339815191526200023f848662000847565b60405190815260200160405180910390a36002829055620002603362000444565b505050506200085d565b3390565b6001600160a01b038316620002d65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620003395760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620002cd565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b03163314620003e55760405162461bcd60e51b8152602060048201819052602482015260008051602062002dca8339815191526044820152606401620002cd565b6001600160a01b038216600081815260096020908152604091829020805460ff191685151590811790915591519182527f1ea5ded834520f8c14263a97add45c6acff0cd631a47467830e399e245bfc793910160405180910390a25050565b6005546001600160a01b031633146200048f5760405162461bcd60e51b8152602060048201819052602482015260008051602062002dca8339815191526044820152606401620002cd565b6001600160a01b038116620004f65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620002cd565b6005546040516001600160a01b0380841692169060008051602062002dea83398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000602082840312156200055457600080fd5b81516001600160a01b03811681146200056c57600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200059e57607f821691505b602082108103620005bf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200061357600081815260208120601f850160051c81016020861015620005ee5750805b601f850160051c820191505b818110156200060f57828155600101620005fa565b5050505b505050565b81516001600160401b0381111562000634576200063462000573565b6200064c8162000645845462000589565b84620005c5565b602080601f8311600181146200068457600084156200066b5750858301515b600019600386901b1c1916600185901b1785556200060f565b600085815260208120601f198616915b82811015620006b55788860151825594840194600190910190840162000694565b5085821015620006d45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200073b5781600019048211156200071f576200071f620006e4565b808516156200072d57918102915b93841c9390800290620006ff565b509250929050565b6000826200075457506001620007f3565b816200076357506000620007f3565b81600181146200077c57600281146200078757620007a7565b6001915050620007f3565b60ff8411156200079b576200079b620006e4565b50506001821b620007f3565b5060208310610133831016604e8410600b8410161715620007cc575081810a620007f3565b620007d88383620006fa565b8060001904821115620007ef57620007ef620006e4565b0290505b92915050565b60006200056c60ff84168362000743565b8082028115828204841417620007f357620007f3620006e4565b6000826200084257634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115620007f357620007f3620006e4565b608051612520620008aa6000396000818161029101528181610955015281816109e501528181610b1d015281816118450152818161193701528181611cab0152611d6301526125206000f3fe6080604052600436106102295760003560e01c8063715018a611610123578063bbc0c742116100ab578063eafaa5fe1161006f578063eafaa5fe1461064d578063f2fde38b1461066d578063f5648a4f1461068d578063fd5b9026146106a2578063fe33b302146106b757600080fd5b8063bbc0c742146105a7578063ced695a4146105bc578063d257b34f146105d1578063dd62ed3e146105f1578063e2f456051461063757600080fd5b80638da5cb5b116100f25780638da5cb5b1461052157806395d89b411461053f5780639eea247614610554578063a457c2d714610567578063a9059cbb1461058757600080fd5b8063715018a61461049b57806373d553c1146104b057806386a22eff146104e0578063870bd30b1461050057600080fd5b806339509351116101b157806367243482116101755780636724348214610401578063685fc568146104215780636da97648146104365780636ddd17131461044b57806370a082311461046557600080fd5b80633950935114610383578063452ed4f1146103a35780635031595f146103c357806353eb3bcf146103d95780635f85abb3146103ee57600080fd5b80630ac30857116101f85780630ac30857146102fb57806318160ddd1461031b57806323b872dd146103305780632969144814610350578063313ce5671461036757600080fd5b80630644e7571461023557806306fdde031461025d5780630758d9241461027f578063095ea7b3146102cb57600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024a6106e7565b6040519081526020015b60405180910390f35b34801561026957600080fd5b50610272610707565b6040516102549190611dd1565b34801561028b57600080fd5b506102b37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610254565b3480156102d757600080fd5b506102eb6102e6366004611e37565b610799565b6040519015158152602001610254565b34801561030757600080fd5b50600b546102b3906001600160a01b031681565b34801561032757600080fd5b5060025461024a565b34801561033c57600080fd5b506102eb61034b366004611e63565b6107b0565b34801561035c57600080fd5b50610365610868565b005b34801561037357600080fd5b5060405160098152602001610254565b34801561038f57600080fd5b506102eb61039e366004611e37565b6108a1565b3480156103af57600080fd5b506006546102b3906001600160a01b031681565b3480156103cf57600080fd5b5061024a600a5481565b3480156103e557600080fd5b506103656108dd565b6103656103fc366004611ef0565b61091c565b34801561040d57600080fd5b5061036561041c366004611f73565b610c1a565b34801561042d57600080fd5b5061024a610d57565b34801561044257600080fd5b50610365610d94565b34801561045757600080fd5b506008546102eb9060ff1681565b34801561047157600080fd5b5061024a610480366004611fdf565b6001600160a01b031660009081526020819052604090205490565b3480156104a757600080fd5b50610365610dd9565b3480156104bc57600080fd5b506102eb6104cb366004611fdf565b60096020526000908152604090205460ff1681565b3480156104ec57600080fd5b506103656104fb366004612003565b610e4d565b34801561050c57600080fd5b506006546102eb90600160a01b900460ff1681565b34801561052d57600080fd5b506005546001600160a01b03166102b3565b34801561054b57600080fd5b50610272610f3c565b610365610562366004611f73565b610f4b565b34801561057357600080fd5b506102eb610582366004611e37565b610fb4565b34801561059357600080fd5b506102eb6105a2366004611e37565b61104d565b3480156105b357600080fd5b5061036561105a565b3480156105c857600080fd5b506103656110c3565b3480156105dd57600080fd5b506103656105ec366004612041565b6110fc565b3480156105fd57600080fd5b5061024a61060c36600461205a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561064357600080fd5b5061024a60075481565b34801561065957600080fd5b50610365610668366004612003565b611247565b34801561067957600080fd5b50610365610688366004611fdf565b6112d0565b34801561069957600080fd5b506103656113bb565b3480156106ae57600080fd5b50610365611432565b3480156106c357600080fd5b506102eb6106d2366004611fdf565b600c6020526000908152604090205460ff1681565b600654600090600160a01b900460ff166107015750600090565b50600590565b60606003805461071690612088565b80601f016020809104026020016040519081016040528092919081815260200182805461074290612088565b801561078f5780601f106107645761010080835404028352916020019161078f565b820191906000526020600020905b81548152906001019060200180831161077257829003601f168201915b5050505050905090565b60006107a6338484611468565b5060015b92915050565b60006107bd84848461158c565b6001600160a01b0384166000908152600160209081526040808320338452909152902054600019811461085d57828110156108505760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61085d8533858403611468565b506001949350505050565b6005546001600160a01b031633146108925760405162461bcd60e51b8152600401610847906120c2565b6008805460ff19166001179055565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916107a69185906108d890869061210d565b611468565b6005546001600160a01b031633146109075760405162461bcd60e51b8152600401610847906120c2565b6006805460ff60a01b1916600160a01b179055565b6005546001600160a01b031633146109465760405162461bcd60e51b8152600401610847906120c2565b600a541561095357600080fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d59190612120565b6001600160a01b031663c9c653967f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a659190612120565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015610ab1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad59190612120565b600680546001600160a01b039283166001600160a01b031990911681179091556000908152600c60205260409020805460ff19166001179055600b805460ff60a01b191690557f00000000000000000000000000000000000000000000000000000000000000001663f305d7194730610b63816001600160a01b031660009081526020819052604090205490565b6040516001600160e01b031960e086901b1681526001600160a01b0392831660048201526024810191909152600060448201819052606482015290891660848201524260a482015260c40160606040518083038185885af1158015610bcc573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bf1919061213d565b505050610c0084848484611822565b5050600b805460ff60a01b1916600160a01b179055505050565b6005546001600160a01b03163314610c445760405162461bcd60e51b8152600401610847906120c2565b600b54600090600160a01b900460ff1615610c6a5750600b805460ff60a01b1916905560015b838214610cb95760405162461bcd60e51b815260206004820152601960248201527f4172726179206c656e6774687320646f6e2774206d61746368000000000000006044820152606401610847565b60005b84811015610d3557610d2333878784818110610cda57610cda61216b565b9050602002016020810190610cef9190611fdf565b610cfb6009600a612265565b878786818110610d0d57610d0d61216b565b90506020020135610d1e9190612274565b611a37565b80610d2d8161228b565b915050610cbc565b508015610d5057600b805460ff60a01b1916600160a01b1790555b5050505050565b600654600090600160a01b900460ff16610d715750600090565b42600a5461012c610d82919061210d565b1015610d8e5750600590565b50601490565b6005546001600160a01b03163314610dbe5760405162461bcd60e51b8152600401610847906120c2565b61012c600a6000828254610dd2919061210d565b9091555050565b6005546001600160a01b03163314610e035760405162461bcd60e51b8152600401610847906120c2565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610e775760405162461bcd60e51b8152600401610847906120c2565b6006546001600160a01b0390811690831603610ee85760405162461bcd60e51b815260206004820152602a60248201527f546865206d61696e20706169722063616e6e6f742062652072656d6f7665642060448201526966726f6d20706169727360b01b6064820152608401610847565b6001600160a01b0382166000818152600c6020526040808220805460ff191685151590811790915590519092917ff40a563af144a84735f7f6c7c3029794b0ac17713e5f048d3fd00ed85aa4ca7a91a35050565b60606004805461071690612088565b6005546001600160a01b03163314610f755760405162461bcd60e51b8152600401610847906120c2565b600a5415610f8257600080fd5b600b805460ff60a01b19169055610f9b84848484611822565b5050600b805460ff60a01b1916600160a01b1790555050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156110365760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610847565b6110433385858403611468565b5060019392505050565b60006107a633848461158c565b6005546001600160a01b031633146110845760405162461bcd60e51b8152600401610847906120c2565b600a541561109157600080fd5b42600a556006805460ff60a01b19908116600160a01b179091556008805460ff19166001179055600b80549091169055565b6005546001600160a01b031633146110ed5760405162461bcd60e51b8152600401610847906120c2565b6006805460ff60a01b19169055565b6005546001600160a01b031633146111265760405162461bcd60e51b8152600401610847906120c2565b620186a061113360025490565b61113e906001612274565b61114891906122a4565b8110156111b55760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610847565b6103e86111c160025490565b6111cc906001612274565b6111d691906122a4565b8111156112425760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171892903a37ba30b61039bab838363c9760611b6064820152608401610847565b600755565b6005546001600160a01b031633146112715760405162461bcd60e51b8152600401610847906120c2565b6001600160a01b038216600081815260096020908152604091829020805460ff191685151590811790915591519182527f1ea5ded834520f8c14263a97add45c6acff0cd631a47467830e399e245bfc793910160405180910390a25050565b6005546001600160a01b031633146112fa5760405162461bcd60e51b8152600401610847906120c2565b6001600160a01b03811661135f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610847565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146113e55760405162461bcd60e51b8152600401610847906120c2565b604051600090339047908381818185875af1925050503d8060008114611427576040519150601f19603f3d011682016040523d82523d6000602084013e61142c565b606091505b50505050565b6005546001600160a01b0316331461145c5760405162461bcd60e51b8152600401610847906120c2565b6008805460ff19169055565b6001600160a01b0383166114ca5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610847565b6001600160a01b03821661152b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610847565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115b25760405162461bcd60e51b8152600401610847906122c6565b6001600160a01b0382166115d85760405162461bcd60e51b81526004016108479061230b565b600081116116285760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610847565b6000600a5411801561165357506001600160a01b03831660009081526009602052604090205460ff16155b801561167857506001600160a01b03821660009081526009602052604090205460ff16155b156117bb57600080611688610d57565b905060006116946106e7565b60085490915060ff1680156116b35750600654600160a81b900460ff16155b80156116d757506001600160a01b0385166000908152600c602052604090205460ff165b15611706576006805460ff60a81b1916600160a81b1790556116f884611b8c565b6006805460ff60a81b191690555b60008211801561172e57506001600160a01b0385166000908152600c602052604090205460ff165b1561175057606461173f8386612274565b61174991906122a4565b9250611796565b60008111801561177857506001600160a01b0386166000908152600c602052604090205460ff165b156117965760646117898286612274565b61179391906122a4565b92505b82156117a7576117a7863085611a37565b6117b1838561234e565b9350505050611812565b600a5460000361181257600b54600160a01b900460ff16156118125760405162461bcd60e51b815260206004820152601060248201526f139bdd081e595d081b185d5b98da195960821b6044820152606401610847565b61181d838383611a37565b505050565b6040805160028082526060820183526000926020830190803683370190505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c59190612120565b816000815181106118d8576118d861216b565b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061190c5761190c61216b565b6001600160a01b03909216602092830291909101909101528315610d505760005b84811015611a2f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fb3bdb41478686858181106119775761197761216b565b90506020020135633b9aca0061198d9190612274565b858a8a878181106119a0576119a061216b565b90506020020160208101906119b59190611fdf565b426040518663ffffffff1660e01b81526004016119d594939291906123bb565b60006040518083038185885af11580156119f3573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052611a1c91908101906123f0565b5080611a278161228b565b91505061192d565b505050505050565b6001600160a01b038316611a5d5760405162461bcd60e51b8152600401610847906122c6565b6001600160a01b038216611a835760405162461bcd60e51b81526004016108479061230b565b6001600160a01b03831660009081526020819052604090205481811015611afb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610847565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611b3290849061210d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b7e91815260200190565b60405180910390a350505050565b30600090815260208190526040902054600754811015611baa575050565b600754611bb890600a612274565b811115611bd057600754611bcd90600a612274565b90505b81811115611bf2576064611be583605a612274565b611bef91906122a4565b90505b80600003611bfe575050565b611c0781611c54565b600b546040516000916001600160a01b03169047908381818185875af1925050503d8060008114611a2f576040519150601f19603f3d011682016040523d82523d6000602084013e611a2f565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c8957611c8961216b565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2b9190612120565b81600181518110611d3e57611d3e61216b565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063791ac94790611da39085906000908690309042906004016124ae565b600060405180830381600087803b158015611dbd57600080fd5b505af1158015611a2f573d6000803e3d6000fd5b600060208083528351808285015260005b81811015611dfe57858101830151858201604001528201611de2565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611e3457600080fd5b50565b60008060408385031215611e4a57600080fd5b8235611e5581611e1f565b946020939093013593505050565b600080600060608486031215611e7857600080fd5b8335611e8381611e1f565b92506020840135611e9381611e1f565b929592945050506040919091013590565b60008083601f840112611eb657600080fd5b50813567ffffffffffffffff811115611ece57600080fd5b6020830191508360208260051b8501011115611ee957600080fd5b9250929050565b600080600080600060608688031215611f0857600080fd5b8535611f1381611e1f565b9450602086013567ffffffffffffffff80821115611f3057600080fd5b611f3c89838a01611ea4565b90965094506040880135915080821115611f5557600080fd5b50611f6288828901611ea4565b969995985093965092949392505050565b60008060008060408587031215611f8957600080fd5b843567ffffffffffffffff80821115611fa157600080fd5b611fad88838901611ea4565b90965094506020870135915080821115611fc657600080fd5b50611fd387828801611ea4565b95989497509550505050565b600060208284031215611ff157600080fd5b8135611ffc81611e1f565b9392505050565b6000806040838503121561201657600080fd5b823561202181611e1f565b91506020830135801515811461203657600080fd5b809150509250929050565b60006020828403121561205357600080fd5b5035919050565b6000806040838503121561206d57600080fd5b823561207881611e1f565b9150602083013561203681611e1f565b600181811c9082168061209c57607f821691505b6020821081036120bc57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156107aa576107aa6120f7565b60006020828403121561213257600080fd5b8151611ffc81611e1f565b60008060006060848603121561215257600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b600181815b808511156121bc5781600019048211156121a2576121a26120f7565b808516156121af57918102915b93841c9390800290612186565b509250929050565b6000826121d3575060016107aa565b816121e0575060006107aa565b81600181146121f657600281146122005761221c565b60019150506107aa565b60ff841115612211576122116120f7565b50506001821b6107aa565b5060208310610133831016604e8410600b841016171561223f575081810a6107aa565b6122498383612181565b806000190482111561225d5761225d6120f7565b029392505050565b6000611ffc60ff8416836121c4565b80820281158282048414176107aa576107aa6120f7565b60006001820161229d5761229d6120f7565b5060010190565b6000826122c157634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156107aa576107aa6120f7565b634e487b7160e01b600052604160045260246000fd5b600081518084526020808501945080840160005b838110156123b05781516001600160a01b03168752958201959082019060010161238b565b509495945050505050565b8481526080602082015260006123d46080830186612377565b6001600160a01b03949094166040830152506060015292915050565b6000602080838503121561240357600080fd5b825167ffffffffffffffff8082111561241b57600080fd5b818501915085601f83011261242f57600080fd5b81518181111561244157612441612361565b8060051b604051601f19603f8301168101818110858211171561246657612466612361565b60405291825284820192508381018501918883111561248457600080fd5b938501935b828510156124a257845184529385019392850192612489565b98975050505050505050565b85815284602082015260a0604082015260006124cd60a0830186612377565b6001600160a01b039490941660608301525060800152939250505056fea2646970667358221220b60bc0894d8ac1b1d70322651a540e3dd238db35060b33941d27ff6e50988d4564736f6c634300081300334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef000000000000000000000000699f1e40eb7fed6fbb9a4049ba1ff72ee42d98b4

Deployed Bytecode

0x6080604052600436106102295760003560e01c8063715018a611610123578063bbc0c742116100ab578063eafaa5fe1161006f578063eafaa5fe1461064d578063f2fde38b1461066d578063f5648a4f1461068d578063fd5b9026146106a2578063fe33b302146106b757600080fd5b8063bbc0c742146105a7578063ced695a4146105bc578063d257b34f146105d1578063dd62ed3e146105f1578063e2f456051461063757600080fd5b80638da5cb5b116100f25780638da5cb5b1461052157806395d89b411461053f5780639eea247614610554578063a457c2d714610567578063a9059cbb1461058757600080fd5b8063715018a61461049b57806373d553c1146104b057806386a22eff146104e0578063870bd30b1461050057600080fd5b806339509351116101b157806367243482116101755780636724348214610401578063685fc568146104215780636da97648146104365780636ddd17131461044b57806370a082311461046557600080fd5b80633950935114610383578063452ed4f1146103a35780635031595f146103c357806353eb3bcf146103d95780635f85abb3146103ee57600080fd5b80630ac30857116101f85780630ac30857146102fb57806318160ddd1461031b57806323b872dd146103305780632969144814610350578063313ce5671461036757600080fd5b80630644e7571461023557806306fdde031461025d5780630758d9241461027f578063095ea7b3146102cb57600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024a6106e7565b6040519081526020015b60405180910390f35b34801561026957600080fd5b50610272610707565b6040516102549190611dd1565b34801561028b57600080fd5b506102b37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610254565b3480156102d757600080fd5b506102eb6102e6366004611e37565b610799565b6040519015158152602001610254565b34801561030757600080fd5b50600b546102b3906001600160a01b031681565b34801561032757600080fd5b5060025461024a565b34801561033c57600080fd5b506102eb61034b366004611e63565b6107b0565b34801561035c57600080fd5b50610365610868565b005b34801561037357600080fd5b5060405160098152602001610254565b34801561038f57600080fd5b506102eb61039e366004611e37565b6108a1565b3480156103af57600080fd5b506006546102b3906001600160a01b031681565b3480156103cf57600080fd5b5061024a600a5481565b3480156103e557600080fd5b506103656108dd565b6103656103fc366004611ef0565b61091c565b34801561040d57600080fd5b5061036561041c366004611f73565b610c1a565b34801561042d57600080fd5b5061024a610d57565b34801561044257600080fd5b50610365610d94565b34801561045757600080fd5b506008546102eb9060ff1681565b34801561047157600080fd5b5061024a610480366004611fdf565b6001600160a01b031660009081526020819052604090205490565b3480156104a757600080fd5b50610365610dd9565b3480156104bc57600080fd5b506102eb6104cb366004611fdf565b60096020526000908152604090205460ff1681565b3480156104ec57600080fd5b506103656104fb366004612003565b610e4d565b34801561050c57600080fd5b506006546102eb90600160a01b900460ff1681565b34801561052d57600080fd5b506005546001600160a01b03166102b3565b34801561054b57600080fd5b50610272610f3c565b610365610562366004611f73565b610f4b565b34801561057357600080fd5b506102eb610582366004611e37565b610fb4565b34801561059357600080fd5b506102eb6105a2366004611e37565b61104d565b3480156105b357600080fd5b5061036561105a565b3480156105c857600080fd5b506103656110c3565b3480156105dd57600080fd5b506103656105ec366004612041565b6110fc565b3480156105fd57600080fd5b5061024a61060c36600461205a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561064357600080fd5b5061024a60075481565b34801561065957600080fd5b50610365610668366004612003565b611247565b34801561067957600080fd5b50610365610688366004611fdf565b6112d0565b34801561069957600080fd5b506103656113bb565b3480156106ae57600080fd5b50610365611432565b3480156106c357600080fd5b506102eb6106d2366004611fdf565b600c6020526000908152604090205460ff1681565b600654600090600160a01b900460ff166107015750600090565b50600590565b60606003805461071690612088565b80601f016020809104026020016040519081016040528092919081815260200182805461074290612088565b801561078f5780601f106107645761010080835404028352916020019161078f565b820191906000526020600020905b81548152906001019060200180831161077257829003601f168201915b5050505050905090565b60006107a6338484611468565b5060015b92915050565b60006107bd84848461158c565b6001600160a01b0384166000908152600160209081526040808320338452909152902054600019811461085d57828110156108505760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61085d8533858403611468565b506001949350505050565b6005546001600160a01b031633146108925760405162461bcd60e51b8152600401610847906120c2565b6008805460ff19166001179055565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916107a69185906108d890869061210d565b611468565b6005546001600160a01b031633146109075760405162461bcd60e51b8152600401610847906120c2565b6006805460ff60a01b1916600160a01b179055565b6005546001600160a01b031633146109465760405162461bcd60e51b8152600401610847906120c2565b600a541561095357600080fd5b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d59190612120565b6001600160a01b031663c9c653967f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a659190612120565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015610ab1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad59190612120565b600680546001600160a01b039283166001600160a01b031990911681179091556000908152600c60205260409020805460ff19166001179055600b805460ff60a01b191690557f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d1663f305d7194730610b63816001600160a01b031660009081526020819052604090205490565b6040516001600160e01b031960e086901b1681526001600160a01b0392831660048201526024810191909152600060448201819052606482015290891660848201524260a482015260c40160606040518083038185885af1158015610bcc573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bf1919061213d565b505050610c0084848484611822565b5050600b805460ff60a01b1916600160a01b179055505050565b6005546001600160a01b03163314610c445760405162461bcd60e51b8152600401610847906120c2565b600b54600090600160a01b900460ff1615610c6a5750600b805460ff60a01b1916905560015b838214610cb95760405162461bcd60e51b815260206004820152601960248201527f4172726179206c656e6774687320646f6e2774206d61746368000000000000006044820152606401610847565b60005b84811015610d3557610d2333878784818110610cda57610cda61216b565b9050602002016020810190610cef9190611fdf565b610cfb6009600a612265565b878786818110610d0d57610d0d61216b565b90506020020135610d1e9190612274565b611a37565b80610d2d8161228b565b915050610cbc565b508015610d5057600b805460ff60a01b1916600160a01b1790555b5050505050565b600654600090600160a01b900460ff16610d715750600090565b42600a5461012c610d82919061210d565b1015610d8e5750600590565b50601490565b6005546001600160a01b03163314610dbe5760405162461bcd60e51b8152600401610847906120c2565b61012c600a6000828254610dd2919061210d565b9091555050565b6005546001600160a01b03163314610e035760405162461bcd60e51b8152600401610847906120c2565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610e775760405162461bcd60e51b8152600401610847906120c2565b6006546001600160a01b0390811690831603610ee85760405162461bcd60e51b815260206004820152602a60248201527f546865206d61696e20706169722063616e6e6f742062652072656d6f7665642060448201526966726f6d20706169727360b01b6064820152608401610847565b6001600160a01b0382166000818152600c6020526040808220805460ff191685151590811790915590519092917ff40a563af144a84735f7f6c7c3029794b0ac17713e5f048d3fd00ed85aa4ca7a91a35050565b60606004805461071690612088565b6005546001600160a01b03163314610f755760405162461bcd60e51b8152600401610847906120c2565b600a5415610f8257600080fd5b600b805460ff60a01b19169055610f9b84848484611822565b5050600b805460ff60a01b1916600160a01b1790555050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156110365760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610847565b6110433385858403611468565b5060019392505050565b60006107a633848461158c565b6005546001600160a01b031633146110845760405162461bcd60e51b8152600401610847906120c2565b600a541561109157600080fd5b42600a556006805460ff60a01b19908116600160a01b179091556008805460ff19166001179055600b80549091169055565b6005546001600160a01b031633146110ed5760405162461bcd60e51b8152600401610847906120c2565b6006805460ff60a01b19169055565b6005546001600160a01b031633146111265760405162461bcd60e51b8152600401610847906120c2565b620186a061113360025490565b61113e906001612274565b61114891906122a4565b8110156111b55760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610847565b6103e86111c160025490565b6111cc906001612274565b6111d691906122a4565b8111156112425760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171892903a37ba30b61039bab838363c9760611b6064820152608401610847565b600755565b6005546001600160a01b031633146112715760405162461bcd60e51b8152600401610847906120c2565b6001600160a01b038216600081815260096020908152604091829020805460ff191685151590811790915591519182527f1ea5ded834520f8c14263a97add45c6acff0cd631a47467830e399e245bfc793910160405180910390a25050565b6005546001600160a01b031633146112fa5760405162461bcd60e51b8152600401610847906120c2565b6001600160a01b03811661135f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610847565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146113e55760405162461bcd60e51b8152600401610847906120c2565b604051600090339047908381818185875af1925050503d8060008114611427576040519150601f19603f3d011682016040523d82523d6000602084013e61142c565b606091505b50505050565b6005546001600160a01b0316331461145c5760405162461bcd60e51b8152600401610847906120c2565b6008805460ff19169055565b6001600160a01b0383166114ca5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610847565b6001600160a01b03821661152b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610847565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115b25760405162461bcd60e51b8152600401610847906122c6565b6001600160a01b0382166115d85760405162461bcd60e51b81526004016108479061230b565b600081116116285760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610847565b6000600a5411801561165357506001600160a01b03831660009081526009602052604090205460ff16155b801561167857506001600160a01b03821660009081526009602052604090205460ff16155b156117bb57600080611688610d57565b905060006116946106e7565b60085490915060ff1680156116b35750600654600160a81b900460ff16155b80156116d757506001600160a01b0385166000908152600c602052604090205460ff165b15611706576006805460ff60a81b1916600160a81b1790556116f884611b8c565b6006805460ff60a81b191690555b60008211801561172e57506001600160a01b0385166000908152600c602052604090205460ff165b1561175057606461173f8386612274565b61174991906122a4565b9250611796565b60008111801561177857506001600160a01b0386166000908152600c602052604090205460ff165b156117965760646117898286612274565b61179391906122a4565b92505b82156117a7576117a7863085611a37565b6117b1838561234e565b9350505050611812565b600a5460000361181257600b54600160a01b900460ff16156118125760405162461bcd60e51b815260206004820152601060248201526f139bdd081e595d081b185d5b98da195960821b6044820152606401610847565b61181d838383611a37565b505050565b6040805160028082526060820183526000926020830190803683370190505090507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c59190612120565b816000815181106118d8576118d861216b565b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061190c5761190c61216b565b6001600160a01b03909216602092830291909101909101528315610d505760005b84811015611a2f577f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663fb3bdb41478686858181106119775761197761216b565b90506020020135633b9aca0061198d9190612274565b858a8a878181106119a0576119a061216b565b90506020020160208101906119b59190611fdf565b426040518663ffffffff1660e01b81526004016119d594939291906123bb565b60006040518083038185885af11580156119f3573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052611a1c91908101906123f0565b5080611a278161228b565b91505061192d565b505050505050565b6001600160a01b038316611a5d5760405162461bcd60e51b8152600401610847906122c6565b6001600160a01b038216611a835760405162461bcd60e51b81526004016108479061230b565b6001600160a01b03831660009081526020819052604090205481811015611afb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610847565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611b3290849061210d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b7e91815260200190565b60405180910390a350505050565b30600090815260208190526040902054600754811015611baa575050565b600754611bb890600a612274565b811115611bd057600754611bcd90600a612274565b90505b81811115611bf2576064611be583605a612274565b611bef91906122a4565b90505b80600003611bfe575050565b611c0781611c54565b600b546040516000916001600160a01b03169047908381818185875af1925050503d8060008114611a2f576040519150601f19603f3d011682016040523d82523d6000602084013e611a2f565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c8957611c8961216b565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2b9190612120565b81600181518110611d3e57611d3e61216b565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9091169063791ac94790611da39085906000908690309042906004016124ae565b600060405180830381600087803b158015611dbd57600080fd5b505af1158015611a2f573d6000803e3d6000fd5b600060208083528351808285015260005b81811015611dfe57858101830151858201604001528201611de2565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611e3457600080fd5b50565b60008060408385031215611e4a57600080fd5b8235611e5581611e1f565b946020939093013593505050565b600080600060608486031215611e7857600080fd5b8335611e8381611e1f565b92506020840135611e9381611e1f565b929592945050506040919091013590565b60008083601f840112611eb657600080fd5b50813567ffffffffffffffff811115611ece57600080fd5b6020830191508360208260051b8501011115611ee957600080fd5b9250929050565b600080600080600060608688031215611f0857600080fd5b8535611f1381611e1f565b9450602086013567ffffffffffffffff80821115611f3057600080fd5b611f3c89838a01611ea4565b90965094506040880135915080821115611f5557600080fd5b50611f6288828901611ea4565b969995985093965092949392505050565b60008060008060408587031215611f8957600080fd5b843567ffffffffffffffff80821115611fa157600080fd5b611fad88838901611ea4565b90965094506020870135915080821115611fc657600080fd5b50611fd387828801611ea4565b95989497509550505050565b600060208284031215611ff157600080fd5b8135611ffc81611e1f565b9392505050565b6000806040838503121561201657600080fd5b823561202181611e1f565b91506020830135801515811461203657600080fd5b809150509250929050565b60006020828403121561205357600080fd5b5035919050565b6000806040838503121561206d57600080fd5b823561207881611e1f565b9150602083013561203681611e1f565b600181811c9082168061209c57607f821691505b6020821081036120bc57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156107aa576107aa6120f7565b60006020828403121561213257600080fd5b8151611ffc81611e1f565b60008060006060848603121561215257600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b600181815b808511156121bc5781600019048211156121a2576121a26120f7565b808516156121af57918102915b93841c9390800290612186565b509250929050565b6000826121d3575060016107aa565b816121e0575060006107aa565b81600181146121f657600281146122005761221c565b60019150506107aa565b60ff841115612211576122116120f7565b50506001821b6107aa565b5060208310610133831016604e8410600b841016171561223f575081810a6107aa565b6122498383612181565b806000190482111561225d5761225d6120f7565b029392505050565b6000611ffc60ff8416836121c4565b80820281158282048414176107aa576107aa6120f7565b60006001820161229d5761229d6120f7565b5060010190565b6000826122c157634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156107aa576107aa6120f7565b634e487b7160e01b600052604160045260246000fd5b600081518084526020808501945080840160005b838110156123b05781516001600160a01b03168752958201959082019060010161238b565b509495945050505050565b8481526080602082015260006123d46080830186612377565b6001600160a01b03949094166040830152506060015292915050565b6000602080838503121561240357600080fd5b825167ffffffffffffffff8082111561241b57600080fd5b818501915085601f83011261242f57600080fd5b81518181111561244157612441612361565b8060051b604051601f19603f8301168101818110858211171561246657612466612361565b60405291825284820192508381018501918883111561248457600080fd5b938501935b828510156124a257845184529385019392850192612489565b98975050505050505050565b85815284602082015260a0604082015260006124cd60a0830186612377565b6001600160a01b039490941660608301525060800152939250505056fea2646970667358221220b60bc0894d8ac1b1d70322651a540e3dd238db35060b33941d27ff6e50988d4564736f6c63430008130033

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

000000000000000000000000699f1e40eb7fed6fbb9a4049ba1ff72ee42d98b4

-----Decoded View---------------
Arg [0] : _marketing (address): 0x699F1E40eB7FED6fbB9A4049bA1Ff72eE42D98b4

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000699f1e40eb7fed6fbb9a4049ba1ff72ee42d98b4


Deployed Bytecode Sourcemap

10530:7905:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12910:114;;;;;;;;;;;;;:::i;:::-;;;160:25:1;;;148:2;133:18;12910:114:0;;;;;;;;4126:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;10571:37::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;931:32:1;;;913:51;;901:2;886:18;10571:37:0;749:221:1;5181:210:0;;;;;;;;;;-1:-1:-1;5181:210:0;;;;;:::i;:::-;;:::i;:::-;;;1596:14:1;;1589:22;1571:41;;1559:2;1544:18;5181:210:0;1431:187:1;10971:31:0;;;;;;;;;;-1:-1:-1;10971:31:0;;;;-1:-1:-1;;;;;10971:31:0;;;4447:108;;;;;;;;;;-1:-1:-1;4535:12:0;;4447:108;;5399:620;;;;;;;;;;-1:-1:-1;5399:620:0;;;;;:::i;:::-;;:::i;17832:78::-;;;;;;;;;;;;;:::i;:::-;;12223:84;;;;;;;;;;-1:-1:-1;12223:84:0;;12298:1;2434:36:1;;2422:2;2407:18;12223:84:0;2292:184:1;6027:297:0;;;;;;;;;;-1:-1:-1;6027:297:0;;;;;:::i;:::-;;:::i;10615:21::-;;;;;;;;;;-1:-1:-1;10615:21:0;;;;-1:-1:-1;;;;;10615:21:0;;;10932:32;;;;;;;;;;;;;;;;17296:78;;;;;;;;;;;;;:::i;15479:534::-;;;;;;:::i;:::-;;:::i;17915:517::-;;;;;;;;;;-1:-1:-1;17915:517:0;;;;;:::i;:::-;;:::i;12715:187::-;;;;;;;;;;;;;:::i;17105:95::-;;;;;;;;;;;;;:::i;10843:31::-;;;;;;;;;;-1:-1:-1;10843:31:0;;;;;;;;4563:177;;;;;;;;;;-1:-1:-1;4563:177:0;;;;;:::i;:::-;-1:-1:-1;;;;;4714:18:0;4682:7;4714:18;;;;;;;;;;;;4563:177;8426:148;;;;;;;;;;;;;:::i;10881:42::-;;;;;;;;;;-1:-1:-1;10881:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12315:217;;;;;;;;;;-1:-1:-1;12315:217:0;;;;;:::i;:::-;;:::i;10738:30::-;;;;;;;;;;-1:-1:-1;10738:30:0;;;;-1:-1:-1;;;10738:30:0;;;;;;8212:79;;;;;;;;;;-1:-1:-1;8277:6:0;;-1:-1:-1;;;;;8277:6:0;8212:79;;4234:104;;;;;;;;;;;;;:::i;16021:250::-;;;;;;:::i;:::-;;:::i;6332:482::-;;;;;;;;;;-1:-1:-1;6332:482:0;;;;;:::i;:::-;;:::i;4748:216::-;;;;;;;;;;-1:-1:-1;4748:216:0;;;;;:::i;:::-;;:::i;16870:227::-;;;;;;;;;;;;;:::i;17208:80::-;;;;;;;;;;;;;:::i;17382:354::-;;;;;;;;;;-1:-1:-1;17382:354:0;;;;;:::i;:::-;;:::i;4972:201::-;;;;;;;;;;-1:-1:-1;4972:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;5138:18:0;;;5106:7;5138:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4972:201;10803:33;;;;;;;;;;;;;;;;12540:167;;;;;;;;;;-1:-1:-1;12540:167:0;;;;;:::i;:::-;;:::i;8582:281::-;;;;;;;;;;-1:-1:-1;8582:281:0;;;;;:::i;:::-;;:::i;14280:161::-;;;;;;;;;;;;;:::i;17744:80::-;;;;;;;;;;;;;:::i;11041:37::-;;;;;;;;;;-1:-1:-1;11041:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12910:114;12977:10;;12953:7;;-1:-1:-1;;;12977:10:0;;;;12973:24;;-1:-1:-1;12996:1:0;;12910:114::o;12973:24::-;-1:-1:-1;13015:1:0;;12910:114::o;4126:100::-;4180:13;4213:5;4206:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4126:100;:::o;5181:210::-;5300:4;5322:39;258:10;5345:7;5354:6;5322:8;:39::i;:::-;-1:-1:-1;5379:4:0;5181:210;;;;;:::o;5399:620::-;5539:4;5556:36;5566:6;5574:9;5585:6;5556:9;:36::i;:::-;-1:-1:-1;;;;;5632:19:0;;5605:24;5632:19;;;:11;:19;;;;;;;;258:10;5632:33;;;;;;;;-1:-1:-1;;5679:37:0;;5676:314;;5780:6;5760:16;:26;;5734:128;;;;-1:-1:-1;;;5734:128:0;;6382:2:1;5734:128:0;;;6364:21:1;6421:2;6401:18;;;6394:30;6460:34;6440:18;;;6433:62;-1:-1:-1;;;6511:18:1;;;6504:38;6559:19;;5734:128:0;;;;;;;;;5906:57;5915:6;258:10;5956:6;5937:16;:25;5906:8;:57::i;:::-;-1:-1:-1;6007:4:0;;5399:620;-1:-1:-1;;;;5399:620:0:o;17832:78::-;8339:6;;-1:-1:-1;;;;;8339:6:0;258:10;8339:22;8331:67;;;;-1:-1:-1;;;8331:67:0;;;;;;;:::i;:::-;17884:11:::1;:18:::0;;-1:-1:-1;;17884:18:0::1;17898:4;17884:18;::::0;;17832:78::o;6027:297::-;258:10;6142:4;6236:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6236:34:0;;;;;;;;;;6142:4;;6164:130;;6214:7;;6236:47;;6273:10;;6236:47;:::i;:::-;6164:8;:130::i;17296:78::-;8339:6;;-1:-1:-1;;;;;8339:6:0;258:10;8339:22;8331:67;;;;-1:-1:-1;;;8331:67:0;;;;;;;:::i;:::-;17349:10:::1;:17:::0;;-1:-1:-1;;;;17349:17:0::1;-1:-1:-1::0;;;17349:17:0::1;::::0;;17296:78::o;15479:534::-;8339:6;;-1:-1:-1;;;;;8339:6:0;258:10;8339:22;8331:67;;;;-1:-1:-1;;;8331:67:0;;;;;;;:::i;:::-;15615:17:::1;::::0;:22;15607:31:::1;;;::::0;::::1;;15672:9;-1:-1:-1::0;;;;;15672:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15660:43:0::1;;15704:9;-1:-1:-1::0;;;;;15704:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15660:76;::::0;-1:-1:-1;;;;;;15660:76:0::1;::::0;;;;;;-1:-1:-1;;;;;7698:15:1;;;15660:76:0::1;::::0;::::1;7680:34:1::0;15730:4:0::1;7730:18:1::0;;;7723:43;7615:18;;15660:76:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15651:6;:85:::0;;-1:-1:-1;;;;;15651:85:0;;::::1;-1:-1:-1::0;;;;;;15651:85:0;;::::1;::::0;::::1;::::0;;;:6:::1;15747:13:::0;;;:5:::1;:13;::::0;;;;:20;;-1:-1:-1;;15747:20:0::1;15651:85:::0;15747:20:::1;::::0;;15780:11:::1;:19:::0;;-1:-1:-1;;;;15780:19:0::1;::::0;;15810:9:::1;:25;;15843:21;15874:4;15880:24;15874:4:::0;-1:-1:-1;;;;;4714:18:0;4682:7;4714:18;;;;;;;;;;;;4563:177;15880:24:::1;15810:123;::::0;-1:-1:-1;;;;;;15810:123:0::1;::::0;;;;;;-1:-1:-1;;;;;8136:15:1;;;15810:123:0::1;::::0;::::1;8118:34:1::0;8168:18;;;8161:34;;;;15905:1:0::1;8211:18:1::0;;;8204:34;;;8254:18;;;8247:34;8318:15;;;8297:19;;;8290:44;15917:15:0::1;8350:19:1::0;;;8343:35;8052:19;;15810:123:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15946:28;15956:8;;15966:7;;15946:9;:28::i;:::-;-1:-1:-1::0;;15987:11:0::1;:18:::0;;-1:-1:-1;;;;15987:18:0::1;-1:-1:-1::0;;;15987:18:0::1;::::0;;-1:-1:-1;;;15479:534:0:o;17915:517::-;8339:6;;-1:-1:-1;;;;;8339:6:0;258:10;8339:22;8331:67;;;;-1:-1:-1;;;8331:67:0;;;;;;;:::i;:::-;18048:11:::1;::::0;18026:7:::1;::::0;-1:-1:-1;;;18048:11:0;::::1;;;18044:87;;;-1:-1:-1::0;18100:11:0::1;:19:::0;;-1:-1:-1;;;;18100:19:0::1;::::0;;18081:4:::1;18044:87;18151:35:::0;;::::1;18143:73;;;::::0;-1:-1:-1;;;18143:73:0;;8902:2:1;18143:73:0::1;::::0;::::1;8884:21:1::0;8941:2;8921:18;;;8914:30;8980:27;8960:18;;;8953:55;9025:18;;18143:73:0::1;8700:349:1::0;18143:73:0::1;18232:9;18227:146;18247:21:::0;;::::1;18227:146;;;18290:71;18306:10;18318;;18329:1;18318:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;10714:15;10672:1;10714:2;:15;:::i;:::-;18333:7;;18341:1;18333:10;;;;;;;:::i;:::-;;;;;;;:27;;;;:::i;:::-;18290:15;:71::i;:::-;18270:3:::0;::::1;::::0;::::1;:::i;:::-;;;;18227:146;;;;18389:2;18385:39;;;18406:11;:18:::0;;-1:-1:-1;;;;18406:18:0::1;-1:-1:-1::0;;;18406:18:0::1;::::0;;18385:39:::1;18015:417;17915:517:::0;;;;:::o;12715:187::-;12783:10;;12759:7;;-1:-1:-1;;;12783:10:0;;;;12779:24;;-1:-1:-1;12802:1:0;;12715:187::o;12779:24::-;12849:15;12817:17;;12837:9;12817:29;;;;:::i;:::-;:47;12814:60;;;-1:-1:-1;12873:1:0;;12715:187::o;12814:60::-;-1:-1:-1;12892:2:0;;12715:187::o;17105:95::-;8339:6;;-1:-1:-1;;;;;8339:6:0;258:10;8339:22;8331:67;;;;-1:-1:-1;;;8331:67:0;;;;;;;:::i;:::-;17183:9:::1;17162:17;;:30;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;17105:95:0:o;8426:148::-;8339:6;;-1:-1:-1;;;;;8339:6:0;258:10;8339:22;8331:67;;;;-1:-1:-1;;;8331:67:0;;;;;;;:::i;:::-;8517:6:::1;::::0;8496:40:::1;::::0;8533:1:::1;::::0;-1:-1:-1;;;;;8517:6:0::1;::::0;8496:40:::1;::::0;8533:1;;8496:40:::1;8547:6;:19:::0;;-1:-1:-1;;;;;;8547:19:0::1;::::0;;8426:148::o;12315:217::-;8339:6;;-1:-1:-1;;;;;8339:6:0;258:10;8339:22;8331:67;;;;-1:-1:-1;;;8331:67:0;;;;;;;:::i;:::-;12404:6:::1;::::0;-1:-1:-1;;;;;12404:6:0;;::::1;12396:14:::0;;::::1;::::0;12388:68:::1;;;::::0;-1:-1:-1;;;12388:68:0;;11084:2:1;12388:68:0::1;::::0;::::1;11066:21:1::0;11123:2;11103:18;;;11096:30;11162:34;11142:18;;;11135:62;-1:-1:-1;;;11213:18:1;;;11206:40;11263:19;;12388:68:0::1;10882:406:1::0;12388:68:0::1;-1:-1:-1::0;;;;;12469:11:0;::::1;;::::0;;;:5:::1;:11;::::0;;;;;:19;;-1:-1:-1;;12469:19:0::1;::::0;::::1;;::::0;;::::1;::::0;;;12504:20;;12469:19;;:11;12504:20:::1;::::0;::::1;12315:217:::0;;:::o;4234:104::-;4290:13;4323:7;4316:14;;;;;:::i;16021:250::-;8339:6;;-1:-1:-1;;;;;8339:6:0;258:10;8339:22;8331:67;;;;-1:-1:-1;;;8331:67:0;;;;;;;:::i;:::-;16142:17:::1;::::0;:22;16134:31:::1;;;::::0;::::1;;16176:11;:19:::0;;-1:-1:-1;;;;16176:19:0::1;::::0;;16206:28:::1;16216:8:::0;;16226:7;;16206:9:::1;:28::i;:::-;-1:-1:-1::0;;16245:11:0::1;:18:::0;;-1:-1:-1;;;;16245:18:0::1;-1:-1:-1::0;;;16245:18:0::1;::::0;;-1:-1:-1;;16021:250:0:o;6332:482::-;258:10;6452:4;6501:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6501:34:0;;;;;;;;;;6568:35;;;;6546:122;;;;-1:-1:-1;;;6546:122:0;;11495:2:1;6546:122:0;;;11477:21:1;11534:2;11514:18;;;11507:30;11573:34;11553:18;;;11546:62;-1:-1:-1;;;11624:18:1;;;11617:35;11669:19;;6546:122:0;11293:401:1;6546:122:0;6704:67;258:10;6727:7;6755:15;6736:16;:34;6704:8;:67::i;:::-;-1:-1:-1;6802:4:0;;6332:482;-1:-1:-1;;;6332:482:0:o;4748:216::-;4870:4;4892:42;258:10;4916:9;4927:6;4892:9;:42::i;16870:227::-;8339:6;;-1:-1:-1;;;;;8339:6:0;258:10;8339:22;8331:67;;;;-1:-1:-1;;;8331:67:0;;;;;;;:::i;:::-;16933:17:::1;::::0;:22;16925:31:::1;;;::::0;::::1;;16987:15;16967:17;:35:::0;17013:10:::1;:17:::0;;-1:-1:-1;;;;17013:17:0;;::::1;-1:-1:-1::0;;;17013:17:0::1;::::0;;;17041:11:::1;:18:::0;;-1:-1:-1;;17041:18:0::1;17026:4;17041:18;::::0;;17070:11:::1;:19:::0;;;;::::1;::::0;;16870:227::o;17208:80::-;8339:6;;-1:-1:-1;;;;;8339:6:0;258:10;8339:22;8331:67;;;;-1:-1:-1;;;8331:67:0;;;;;;;:::i;:::-;17262:10:::1;:18:::0;;-1:-1:-1;;;;17262:18:0::1;::::0;;17208:80::o;17382:354::-;8339:6;;-1:-1:-1;;;;;8339:6:0;258:10;8339:22;8331:67;;;;-1:-1:-1;;;8331:67:0;;;;;;;:::i;:::-;17508:6:::1;17487:13;4535:12:::0;;;4447:108;17487:13:::1;:17;::::0;17503:1:::1;17487:17;:::i;:::-;17486:28;;;;:::i;:::-;17473:9;:41;;17465:107;;;::::0;-1:-1:-1;;;17465:107:0;;12123:2:1;17465:107:0::1;::::0;::::1;12105:21:1::0;12162:2;12142:18;;;12135:30;12201:34;12181:18;;;12174:62;-1:-1:-1;;;12252:18:1;;;12245:51;12313:19;;17465:107:0::1;11921:417:1::0;17465:107:0::1;17626:4;17605:13;4535:12:::0;;;4447:108;17605:13:::1;:17;::::0;17621:1:::1;17605:17;:::i;:::-;17604:26;;;;:::i;:::-;17591:9;:39;;17583:104;;;::::0;-1:-1:-1;;;17583:104:0;;12545:2:1;17583:104:0::1;::::0;::::1;12527:21:1::0;12584:2;12564:18;;;12557:30;12623:34;12603:18;;;12596:62;-1:-1:-1;;;12674:18:1;;;12667:50;12734:19;;17583:104:0::1;12343:416:1::0;17583:104:0::1;17698:18;:30:::0;17382:354::o;12540:167::-;8339:6;;-1:-1:-1;;;;;8339:6:0;258:10;8339:22;8331:67;;;;-1:-1:-1;;;8331:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12622:19:0;::::1;;::::0;;;:10:::1;:19;::::0;;;;;;;;:30;;-1:-1:-1;;12622:30:0::1;::::0;::::1;;::::0;;::::1;::::0;;;12668:31;;1571:41:1;;;12668:31:0::1;::::0;1544:18:1;12668:31:0::1;;;;;;;12540:167:::0;;:::o;8582:281::-;8339:6;;-1:-1:-1;;;;;8339:6:0;258:10;8339:22;8331:67;;;;-1:-1:-1;;;8331:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8685:22:0;::::1;8663:110;;;::::0;-1:-1:-1;;;8663:110:0;;12966:2:1;8663:110:0::1;::::0;::::1;12948:21:1::0;13005:2;12985:18;;;12978:30;13044:34;13024:18;;;13017:62;-1:-1:-1;;;13095:18:1;;;13088:36;13141:19;;8663:110:0::1;12764:402:1::0;8663:110:0::1;8810:6;::::0;8789:38:::1;::::0;-1:-1:-1;;;;;8789:38:0;;::::1;::::0;8810:6:::1;::::0;8789:38:::1;::::0;8810:6:::1;::::0;8789:38:::1;8838:6;:17:::0;;-1:-1:-1;;;;;;8838:17:0::1;-1:-1:-1::0;;;;;8838:17:0;;;::::1;::::0;;;::::1;::::0;;8582:281::o;14280:161::-;8339:6;;-1:-1:-1;;;;;8339:6:0;258:10;8339:22;8331:67;;;;-1:-1:-1;;;8331:67:0;;;;;;;:::i;:::-;14375:58:::1;::::0;14338:12:::1;::::0;14383:10:::1;::::0;14407:21:::1;::::0;14338:12;14375:58;14338:12;14375:58;14407:21;14383:10;14375:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;14280:161:0:o;17744:80::-;8339:6;;-1:-1:-1;;;;;8339:6:0;258:10;8339:22;8331:67;;;;-1:-1:-1;;;8331:67:0;;;;;;;:::i;:::-;17797:11:::1;:19:::0;;-1:-1:-1;;17797:19:0::1;::::0;;17744:80::o;7481:380::-;-1:-1:-1;;;;;7617:19:0;;7609:68;;;;-1:-1:-1;;;7609:68:0;;13583:2:1;7609:68:0;;;13565:21:1;13622:2;13602:18;;;13595:30;13661:34;13641:18;;;13634:62;-1:-1:-1;;;13712:18:1;;;13705:34;13756:19;;7609:68:0;13381:400:1;7609:68:0;-1:-1:-1;;;;;7696:21:0;;7688:68;;;;-1:-1:-1;;;7688:68:0;;13988:2:1;7688:68:0;;;13970:21:1;14027:2;14007:18;;;14000:30;14066:34;14046:18;;;14039:62;-1:-1:-1;;;14117:18:1;;;14110:32;14159:19;;7688:68:0;13786:398:1;7688:68:0;-1:-1:-1;;;;;7769:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7821:32;;160:25:1;;;7821:32:0;;133:18:1;7821:32:0;;;;;;;7481:380;;;:::o;13032:1240::-;-1:-1:-1;;;;;13164:18:0;;13156:68;;;;-1:-1:-1;;;13156:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13243:16:0;;13235:64;;;;-1:-1:-1;;;13235:64:0;;;;;;;:::i;:::-;13327:1;13318:6;:10;13310:52;;;;-1:-1:-1;;;13310:52:0;;15201:2:1;13310:52:0;;;15183:21:1;15240:2;15220:18;;;15213:30;15279:31;15259:18;;;15252:59;15328:18;;13310:52:0;14999:353:1;13310:52:0;13399:1;13379:17;;:21;:42;;;;-1:-1:-1;;;;;;13405:16:0;;;;;;:10;:16;;;;;;;;13404:17;13379:42;:61;;;;-1:-1:-1;;;;;;13426:14:0;;;;;;:10;:14;;;;;;;;13425:15;13379:61;13375:844;;;13467:12;13498:11;13512:13;:11;:13::i;:::-;13498:27;;13540:11;13554:12;:10;:12::i;:::-;13587:11;;13540:26;;-1:-1:-1;13587:11:0;;:24;;;;-1:-1:-1;13603:8:0;;-1:-1:-1;;;13603:8:0;;;;13602:9;13587:24;:37;;;;-1:-1:-1;;;;;;13615:9:0;;;;;;:5;:9;;;;;;;;13587:37;13583:163;;;13645:8;:15;;-1:-1:-1;;;;13645:15:0;-1:-1:-1;;;13645:15:0;;;13679:16;13688:6;13679:8;:16::i;:::-;13714:8;:16;;-1:-1:-1;;;;13714:16:0;;;13583:163;13772:1;13766:3;:7;:20;;;;-1:-1:-1;;;;;;13777:9:0;;;;;;:5;:9;;;;;;;;13766:20;13762:197;;;13831:3;13815:12;13824:3;13815:6;:12;:::i;:::-;13814:20;;;;:::i;:::-;13807:27;;13762:197;;;13879:1;13873:3;:7;:22;;;;-1:-1:-1;;;;;;13884:11:0;;;;;;:5;:11;;;;;;;;13873:22;13869:90;;;13940:3;13924:12;13933:3;13924:6;:12;:::i;:::-;13923:20;;;;:::i;:::-;13916:27;;13869:90;13979:8;;13975:91;;14008:42;14024:4;14038;14045;14008:15;:42::i;:::-;14082:14;14092:4;14082:14;;:::i;:::-;;;13452:656;;;13375:844;;;14127:17;;14148:1;14127:22;14123:96;;14175:11;;-1:-1:-1;;;14175:11:0;;;;14174:12;14166:41;;;;-1:-1:-1;;;14166:41:0;;15692:2:1;14166:41:0;;;15674:21:1;15731:2;15711:18;;;15704:30;-1:-1:-1;;;15750:18:1;;;15743:46;15806:18;;14166:41:0;15490:340:1;14166:41:0;14231:33;14247:4;14253:2;14257:6;14231:15;:33::i;:::-;13032:1240;;;:::o;16279:583::-;16399:16;;;16413:1;16399:16;;;;;;;;16375:21;;16399:16;;;;;;;;;;-1:-1:-1;16399:16:0;16375:40;;16436:9;-1:-1:-1;;;;;16436:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16426:4;16431:1;16426:7;;;;;;;;:::i;:::-;;;;;;:26;-1:-1:-1;;;;;16426:26:0;;;-1:-1:-1;;;;;16426:26:0;;;;;16481:4;16463;16468:1;16463:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16463:23:0;;;:7;;;;;;;;;;;:23;16502:19;;16499:356;;16542:9;16538:306;16557:19;;;16538:306;;;16602:9;-1:-1:-1;;;;;16602:31:0;;16641:21;16687:7;;16695:1;16687:10;;;;;;;:::i;:::-;;;;;;;16700;16687:23;;;;:::i;:::-;16733:4;16760:8;;16769:1;16760:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;16794:15;16602:226;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16602:226:0;;;;;;;;;;;;:::i;:::-;-1:-1:-1;16578:3:0;;;;:::i;:::-;;;;16538:306;;;;16364:498;16279:583;;;;:::o;6822:651::-;-1:-1:-1;;;;;6962:20:0;;6954:70;;;;-1:-1:-1;;;6954:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7043:23:0;;7035:71;;;;-1:-1:-1;;;7035:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7143:17:0;;7119:21;7143:17;;;;;;;;;;;7193:23;;;;7171:111;;;;-1:-1:-1;;;7171:111:0;;18252:2:1;7171:111:0;;;18234:21:1;18291:2;18271:18;;;18264:30;18330:34;18310:18;;;18303:62;-1:-1:-1;;;18381:18:1;;;18374:36;18427:19;;7171:111:0;18050:402:1;7171:111:0;-1:-1:-1;;;;;7318:17:0;;;:9;:17;;;;;;;;;;;7338:22;;;7318:42;;7382:20;;;;;;;;:30;;7354:6;;7318:9;7382:30;;7354:6;;7382:30;:::i;:::-;;;;;;;;7447:9;-1:-1:-1;;;;;7430:35:0;7439:6;-1:-1:-1;;;;;7430:35:0;;7458:6;7430:35;;;;160:25:1;;148:2;133:18;;14:177;7430:35:0;;;;;;;;6943:530;6822:651;;;:::o;14959:512::-;15053:4;15012:20;4714:18;;;;;;;;;;;15089;;15074:33;;15070:46;;;15109:7;14959:512;:::o;15070:46::-;15145:18;;:23;;15166:2;15145:23;:::i;:::-;15130:12;:38;15126:82;;;15185:18;;:23;;15206:2;15185:23;:::i;:::-;15170:38;;15126:82;15238:6;15223:12;:21;15219:59;;;15275:3;15261:11;15266:6;15261:2;:11;:::i;:::-;:17;;;;:::i;:::-;15246:32;;15219:59;15290:12;15306:1;15290:17;15286:30;;15309:7;14959:512;:::o;15286:30::-;15328;15345:12;15328:16;:30::i;:::-;15408:16;;:55;;15371:12;;-1:-1:-1;;;;;15408:16:0;;15437:21;;15371:12;15408:55;15371:12;15408:55;15437:21;15408:16;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14449:502;14599:16;;;14613:1;14599:16;;;;;;;;14575:21;;14599:16;;;;;;;;;;-1:-1:-1;14599:16:0;14575:40;;14644:4;14626;14631:1;14626:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;14626:23:0;;;-1:-1:-1;;;;;14626:23:0;;;;;14670:9;-1:-1:-1;;;;;14670:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14660:4;14665:1;14660:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14660:26:0;;;:7;;;;;;;;;:26;14725:218;;-1:-1:-1;;;14725:218:0;;:9;:60;;;;;;:218;;14800:11;;14826:1;;14870:4;;14897;;14917:15;;14725:218;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;196:548:1;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;975:131::-;-1:-1:-1;;;;;1050:31:1;;1040:42;;1030:70;;1096:1;1093;1086:12;1030:70;975:131;:::o;1111:315::-;1179:6;1187;1240:2;1228:9;1219:7;1215:23;1211:32;1208:52;;;1256:1;1253;1246:12;1208:52;1295:9;1282:23;1314:31;1339:5;1314:31;:::i;:::-;1364:5;1416:2;1401:18;;;;1388:32;;-1:-1:-1;;;1111:315:1:o;1831:456::-;1908:6;1916;1924;1977:2;1965:9;1956:7;1952:23;1948:32;1945:52;;;1993:1;1990;1983:12;1945:52;2032:9;2019:23;2051:31;2076:5;2051:31;:::i;:::-;2101:5;-1:-1:-1;2158:2:1;2143:18;;2130:32;2171:33;2130:32;2171:33;:::i;:::-;1831:456;;2223:7;;-1:-1:-1;;;2277:2:1;2262:18;;;;2249:32;;1831:456::o;2481:367::-;2544:8;2554:6;2608:3;2601:4;2593:6;2589:17;2585:27;2575:55;;2626:1;2623;2616:12;2575:55;-1:-1:-1;2649:20:1;;2692:18;2681:30;;2678:50;;;2724:1;2721;2714:12;2678:50;2761:4;2753:6;2749:17;2737:29;;2821:3;2814:4;2804:6;2801:1;2797:14;2789:6;2785:27;2781:38;2778:47;2775:67;;;2838:1;2835;2828:12;2775:67;2481:367;;;;;:::o;2853:908::-;2984:6;2992;3000;3008;3016;3069:2;3057:9;3048:7;3044:23;3040:32;3037:52;;;3085:1;3082;3075:12;3037:52;3124:9;3111:23;3143:31;3168:5;3143:31;:::i;:::-;3193:5;-1:-1:-1;3249:2:1;3234:18;;3221:32;3272:18;3302:14;;;3299:34;;;3329:1;3326;3319:12;3299:34;3368:70;3430:7;3421:6;3410:9;3406:22;3368:70;:::i;:::-;3457:8;;-1:-1:-1;3342:96:1;-1:-1:-1;3545:2:1;3530:18;;3517:32;;-1:-1:-1;3561:16:1;;;3558:36;;;3590:1;3587;3580:12;3558:36;;3629:72;3693:7;3682:8;3671:9;3667:24;3629:72;:::i;:::-;2853:908;;;;-1:-1:-1;2853:908:1;;-1:-1:-1;3720:8:1;;3603:98;2853:908;-1:-1:-1;;;2853:908:1:o;3766:773::-;3888:6;3896;3904;3912;3965:2;3953:9;3944:7;3940:23;3936:32;3933:52;;;3981:1;3978;3971:12;3933:52;4021:9;4008:23;4050:18;4091:2;4083:6;4080:14;4077:34;;;4107:1;4104;4097:12;4077:34;4146:70;4208:7;4199:6;4188:9;4184:22;4146:70;:::i;:::-;4235:8;;-1:-1:-1;4120:96:1;-1:-1:-1;4323:2:1;4308:18;;4295:32;;-1:-1:-1;4339:16:1;;;4336:36;;;4368:1;4365;4358:12;4336:36;;4407:72;4471:7;4460:8;4449:9;4445:24;4407:72;:::i;:::-;3766:773;;;;-1:-1:-1;4498:8:1;-1:-1:-1;;;;3766:773:1:o;4544:247::-;4603:6;4656:2;4644:9;4635:7;4631:23;4627:32;4624:52;;;4672:1;4669;4662:12;4624:52;4711:9;4698:23;4730:31;4755:5;4730:31;:::i;:::-;4780:5;4544:247;-1:-1:-1;;;4544:247:1:o;4796:416::-;4861:6;4869;4922:2;4910:9;4901:7;4897:23;4893:32;4890:52;;;4938:1;4935;4928:12;4890:52;4977:9;4964:23;4996:31;5021:5;4996:31;:::i;:::-;5046:5;-1:-1:-1;5103:2:1;5088:18;;5075:32;5145:15;;5138:23;5126:36;;5116:64;;5176:1;5173;5166:12;5116:64;5199:7;5189:17;;;4796:416;;;;;:::o;5217:180::-;5276:6;5329:2;5317:9;5308:7;5304:23;5300:32;5297:52;;;5345:1;5342;5335:12;5297:52;-1:-1:-1;5368:23:1;;5217:180;-1:-1:-1;5217:180:1:o;5402:388::-;5470:6;5478;5531:2;5519:9;5510:7;5506:23;5502:32;5499:52;;;5547:1;5544;5537:12;5499:52;5586:9;5573:23;5605:31;5630:5;5605:31;:::i;:::-;5655:5;-1:-1:-1;5712:2:1;5697:18;;5684:32;5725:33;5684:32;5725:33;:::i;5795:380::-;5874:1;5870:12;;;;5917;;;5938:61;;5992:4;5984:6;5980:17;5970:27;;5938:61;6045:2;6037:6;6034:14;6014:18;6011:38;6008:161;;6091:10;6086:3;6082:20;6079:1;6072:31;6126:4;6123:1;6116:15;6154:4;6151:1;6144:15;6008:161;;5795:380;;;:::o;6589:356::-;6791:2;6773:21;;;6810:18;;;6803:30;6869:34;6864:2;6849:18;;6842:62;6936:2;6921:18;;6589:356::o;6950:127::-;7011:10;7006:3;7002:20;6999:1;6992:31;7042:4;7039:1;7032:15;7066:4;7063:1;7056:15;7082:125;7147:9;;;7168:10;;;7165:36;;;7181:18;;:::i;7212:251::-;7282:6;7335:2;7323:9;7314:7;7310:23;7306:32;7303:52;;;7351:1;7348;7341:12;7303:52;7383:9;7377:16;7402:31;7427:5;7402:31;:::i;8389:306::-;8477:6;8485;8493;8546:2;8534:9;8525:7;8521:23;8517:32;8514:52;;;8562:1;8559;8552:12;8514:52;8591:9;8585:16;8575:26;;8641:2;8630:9;8626:18;8620:25;8610:35;;8685:2;8674:9;8670:18;8664:25;8654:35;;8389:306;;;;;:::o;9054:127::-;9115:10;9110:3;9106:20;9103:1;9096:31;9146:4;9143:1;9136:15;9170:4;9167:1;9160:15;9186:422;9275:1;9318:5;9275:1;9332:270;9353:7;9343:8;9340:21;9332:270;;;9412:4;9408:1;9404:6;9400:17;9394:4;9391:27;9388:53;;;9421:18;;:::i;:::-;9471:7;9461:8;9457:22;9454:55;;;9491:16;;;;9454:55;9570:22;;;;9530:15;;;;9332:270;;;9336:3;9186:422;;;;;:::o;9613:806::-;9662:5;9692:8;9682:80;;-1:-1:-1;9733:1:1;9747:5;;9682:80;9781:4;9771:76;;-1:-1:-1;9818:1:1;9832:5;;9771:76;9863:4;9881:1;9876:59;;;;9949:1;9944:130;;;;9856:218;;9876:59;9906:1;9897:10;;9920:5;;;9944:130;9981:3;9971:8;9968:17;9965:43;;;9988:18;;:::i;:::-;-1:-1:-1;;10044:1:1;10030:16;;10059:5;;9856:218;;10158:2;10148:8;10145:16;10139:3;10133:4;10130:13;10126:36;10120:2;10110:8;10107:16;10102:2;10096:4;10093:12;10089:35;10086:77;10083:159;;;-1:-1:-1;10195:19:1;;;10227:5;;10083:159;10274:34;10299:8;10293:4;10274:34;:::i;:::-;10344:6;10340:1;10336:6;10332:19;10323:7;10320:32;10317:58;;;10355:18;;:::i;:::-;10393:20;;9613:806;-1:-1:-1;;;9613:806:1:o;10424:140::-;10482:5;10511:47;10552:4;10542:8;10538:19;10532:4;10511:47;:::i;10569:168::-;10642:9;;;10673;;10690:15;;;10684:22;;10670:37;10660:71;;10711:18;;:::i;10742:135::-;10781:3;10802:17;;;10799:43;;10822:18;;:::i;:::-;-1:-1:-1;10869:1:1;10858:13;;10742:135::o;11699:217::-;11739:1;11765;11755:132;;11809:10;11804:3;11800:20;11797:1;11790:31;11844:4;11841:1;11834:15;11872:4;11869:1;11862:15;11755:132;-1:-1:-1;11901:9:1;;11699:217::o;14189:401::-;14391:2;14373:21;;;14430:2;14410:18;;;14403:30;14469:34;14464:2;14449:18;;14442:62;-1:-1:-1;;;14535:2:1;14520:18;;14513:35;14580:3;14565:19;;14189:401::o;14595:399::-;14797:2;14779:21;;;14836:2;14816:18;;;14809:30;14875:34;14870:2;14855:18;;14848:62;-1:-1:-1;;;14941:2:1;14926:18;;14919:33;14984:3;14969:19;;14595:399::o;15357:128::-;15424:9;;;15445:11;;;15442:37;;;15459:18;;:::i;15835:127::-;15896:10;15891:3;15887:20;15884:1;15877:31;15927:4;15924:1;15917:15;15951:4;15948:1;15941:15;15967:461;16020:3;16058:5;16052:12;16085:6;16080:3;16073:19;16111:4;16140:2;16135:3;16131:12;16124:19;;16177:2;16170:5;16166:14;16198:1;16208:195;16222:6;16219:1;16216:13;16208:195;;;16287:13;;-1:-1:-1;;;;;16283:39:1;16271:52;;16343:12;;;;16378:15;;;;16319:1;16237:9;16208:195;;;-1:-1:-1;16419:3:1;;15967:461;-1:-1:-1;;;;;15967:461:1:o;16433:502::-;16696:6;16685:9;16678:25;16739:3;16734:2;16723:9;16719:18;16712:31;16659:4;16760:57;16812:3;16801:9;16797:19;16789:6;16760:57;:::i;:::-;-1:-1:-1;;;;;16853:32:1;;;;16848:2;16833:18;;16826:60;-1:-1:-1;16917:2:1;16902:18;16895:34;16752:65;16433:502;-1:-1:-1;;16433:502:1:o;16940:1105::-;17035:6;17066:2;17109;17097:9;17088:7;17084:23;17080:32;17077:52;;;17125:1;17122;17115:12;17077:52;17158:9;17152:16;17187:18;17228:2;17220:6;17217:14;17214:34;;;17244:1;17241;17234:12;17214:34;17282:6;17271:9;17267:22;17257:32;;17327:7;17320:4;17316:2;17312:13;17308:27;17298:55;;17349:1;17346;17339:12;17298:55;17378:2;17372:9;17400:2;17396;17393:10;17390:36;;;17406:18;;:::i;:::-;17452:2;17449:1;17445:10;17484:2;17478:9;17547:2;17543:7;17538:2;17534;17530:11;17526:25;17518:6;17514:38;17602:6;17590:10;17587:22;17582:2;17570:10;17567:18;17564:46;17561:72;;;17613:18;;:::i;:::-;17649:2;17642:22;17699:18;;;17733:15;;;;-1:-1:-1;17775:11:1;;;17771:20;;;17803:19;;;17800:39;;;17835:1;17832;17825:12;17800:39;17859:11;;;;17879:135;17895:6;17890:3;17887:15;17879:135;;;17961:10;;17949:23;;17912:12;;;;17992;;;;17879:135;;;18033:6;16940:1105;-1:-1:-1;;;;;;;;16940:1105:1:o;18457:582::-;18756:6;18745:9;18738:25;18799:6;18794:2;18783:9;18779:18;18772:34;18842:3;18837:2;18826:9;18822:18;18815:31;18719:4;18863:57;18915:3;18904:9;18900:19;18892:6;18863:57;:::i;:::-;-1:-1:-1;;;;;18956:32:1;;;;18951:2;18936:18;;18929:60;-1:-1:-1;19020:3:1;19005:19;18998:35;18855:65;18457:582;-1:-1:-1;;;18457:582:1:o

Swarm Source

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