ETH Price: $3,698.85 (+2.99%)

Token

YDragon (YDR)
 

Overview

Max Total Supply

400,000,000 YDR

Holders

1,029 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$74,624.00

Circulating Supply Market Cap

$23,465.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,567.5404000000005 YDR

Value
$0.29 ( ~7.84027344202418E-05 Eth) [0.0004%]
0xc75f1Ad2EAef79b729c8dD8bCBAeddd893F5a761
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

YDragon is a crypto index platform with cross-chain capabilities and yield-generation opportunities. This combination of market-leading features allows us to offer you a seamless, cross-chain, multi-asset experience. Made by investors, for investors.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
YDR

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-08-18
*/

// SPDX-License-Identifier: MIT

// File: contracts/LERC20.sol

pragma solidity ^0.8.0;

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 {
    function totalSupply() external view returns (uint256);

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

interface ILosslessController {
    function beforeTransfer(address sender, address recipient, uint256 amount) external;

    function beforeTransferFrom(address msgSender, address sender, address recipient, uint256 amount) external;

    function beforeApprove(address sender, address spender, uint256 amount) external;

    function beforeIncreaseAllowance(address msgSender, address spender, uint256 addedValue) external;

    function beforeDecreaseAllowance(address msgSender, address spender, uint256 subtractedValue) external;

    function afterApprove(address sender, address spender, uint256 amount) external;

    function afterTransfer(address sender, address recipient, uint256 amount) external;

    function afterTransferFrom(address msgSender, address sender, address recipient, uint256 amount) external;

    function afterIncreaseAllowance(address sender, address spender, uint256 addedValue) external;

    function afterDecreaseAllowance(address sender, address spender, uint256 subtractedValue) external;
}

contract LERC20 is Context, IERC20 {
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

    address public recoveryAdmin;
    address private recoveryAdminCanditate;
    bytes32 private recoveryAdminKeyHash;
    address public admin;
    uint256 public timelockPeriod;
    uint256 public losslessTurnOffTimestamp;
    bool public isLosslessTurnOffProposed;
    bool public isLosslessOn = true;
    ILosslessController private lossless;

    event AdminChanged(address indexed previousAdmin, address indexed newAdmin);
    event RecoveryAdminChangeProposed(address indexed candidate);
    event RecoveryAdminChanged(address indexed previousAdmin, address indexed newAdmin);
    event LosslessTurnOffProposed(uint256 turnOffDate);
    event LosslessTurnedOff();
    event LosslessTurnedOn();

    constructor(uint256 totalSupply_, string memory name_, string memory symbol_, address admin_, address recoveryAdmin_, uint256 timelockPeriod_, address lossless_) {
        _name = name_;
        _symbol = symbol_;
        admin = admin_;
        _mint(admin, totalSupply_);
        recoveryAdmin = recoveryAdmin_;
        timelockPeriod = timelockPeriod_;
        lossless = ILosslessController(lossless_);
    }

    // --- LOSSLESS modifiers ---

    modifier lssAprove(address spender, uint256 amount) {
        if (isLosslessOn) {
            lossless.beforeApprove(_msgSender(), spender, amount);
            _;
            lossless.afterApprove(_msgSender(), spender, amount);
        } else {
            _;
        }
    }

    modifier lssTransfer(address recipient, uint256 amount) {
        if (isLosslessOn) {
            lossless.beforeTransfer(_msgSender(), recipient, amount);
            _;
            lossless.afterTransfer(_msgSender(), recipient, amount);
        } else {
            _;
        }
    }

    modifier lssTransferFrom(address sender, address recipient, uint256 amount) {
        if (isLosslessOn) {
            lossless.beforeTransferFrom(_msgSender(),sender, recipient, amount);
            _;
            lossless.afterTransferFrom(_msgSender(), sender, recipient, amount);
        } else {
            _;
        }
    }

    modifier lssIncreaseAllowance(address spender, uint256 addedValue) {
        if (isLosslessOn) {
            lossless.beforeIncreaseAllowance(_msgSender(), spender, addedValue);
            _;
            lossless.afterIncreaseAllowance(_msgSender(), spender, addedValue);
        } else {
            _;
        }
    }

    modifier lssDecreaseAllowance(address spender, uint256 subtractedValue) {
        if (isLosslessOn) {
            lossless.beforeDecreaseAllowance(_msgSender(), spender, subtractedValue);
            _;
            lossless.afterDecreaseAllowance(_msgSender(), spender, subtractedValue);
        } else {
            _;
        }
    }

    modifier onlyRecoveryAdmin() {
        require(_msgSender() == recoveryAdmin, "LERC20: Must be recovery admin");
        _;
    }

    // --- LOSSLESS management ---

    function getAdmin() external view returns (address) {
        return admin;
    }

    function transferOutBlacklistedFunds(address[] calldata from) external {
        require(_msgSender() == address(lossless), "LERC20: Only lossless contract");
        for (uint i = 0; i < from.length; i++) {
            _transfer(from[i], address(lossless), balanceOf(from[i]));
        }
    }

    function setLosslessAdmin(address newAdmin) public onlyRecoveryAdmin {
        emit AdminChanged(admin, newAdmin);
        admin = newAdmin;
    }

    function transferRecoveryAdminOwnership(address candidate, bytes32 keyHash) public onlyRecoveryAdmin {
        recoveryAdminCanditate = candidate;
        recoveryAdminKeyHash = keyHash;
        emit RecoveryAdminChangeProposed(candidate);
    }

    function acceptRecoveryAdminOwnership(bytes memory key) external {
        require(_msgSender() == recoveryAdminCanditate, "LERC20: Must be canditate");
        require(keccak256(key) == recoveryAdminKeyHash, "LERC20: Invalid key");
        emit RecoveryAdminChanged(recoveryAdmin, recoveryAdminCanditate);
        recoveryAdmin = recoveryAdminCanditate;
    }

    function proposeLosslessTurnOff() public onlyRecoveryAdmin {
        losslessTurnOffTimestamp = block.timestamp + timelockPeriod;
        isLosslessTurnOffProposed = true;
        emit LosslessTurnOffProposed(losslessTurnOffTimestamp);
    }

    function executeLosslessTurnOff() public onlyRecoveryAdmin {
        require(isLosslessTurnOffProposed, "LERC20: TurnOff not proposed");
        require(losslessTurnOffTimestamp <= block.timestamp, "LERC20: Time lock in progress");
        isLosslessOn = false;
        isLosslessTurnOffProposed = false;
        emit LosslessTurnedOff();
    }

    function executeLosslessTurnOn() public onlyRecoveryAdmin {
        isLosslessTurnOffProposed = false;
        isLosslessOn = true;
        emit LosslessTurnedOn();
    }

    // --- ERC20 methods ---

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

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

    function decimals() public view virtual 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 lssTransfer(recipient, amount) 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 lssAprove(spender, amount) returns (bool) {
        require((amount == 0) || (_allowances[_msgSender()][spender] == 0), "LERC20: Cannot change non zero allowance");
        _approve(_msgSender(), spender, amount);
        return true;
    }

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

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "LERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "LERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

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

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

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}

// File: contracts/external/UniswapV2Library.sol

pragma solidity ^0.8.0;

// Exempt from the original UniswapV2Library.
library UniswapV2Library {
    // returns sorted token addresses, used to handle return values from pairs sorted in this order
    function sortTokens(address tokenA, address tokenB) internal pure returns (address token0, address token1) {
        require(tokenA != tokenB, 'UniswapV2Library: IDENTICAL_ADDRESSES');
        (token0, token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);
        require(token0 != address(0), 'UniswapV2Library: ZERO_ADDRESS');
    }

    // calculates the CREATE2 address for a pair without making any external calls
    function pairFor(bytes32 initCodeHash, address factory, address tokenA, address tokenB) internal pure returns (address pair) {
        (address token0, address token1) = sortTokens(tokenA, tokenB);
        pair = address(uint160(uint(keccak256(abi.encodePacked(
                hex'ff',
                factory,
                keccak256(abi.encodePacked(token0, token1)),
                initCodeHash // init code hash
            )))));
    }
}

// File: contracts/external/UniswapV3Library.sol

pragma solidity ^0.8.0;

/// @notice based on https://github.com/Uniswap/uniswap-v3-periphery/blob/v1.0.0/contracts/libraries/PoolAddress.sol
/// @notice changed compiler version and lib name.

/// @title Provides functions for deriving a pool address from the factory, tokens, and the fee
library UniswapV3Library {
    bytes32 internal constant POOL_INIT_CODE_HASH = 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54;

    /// @notice The identifying key of the pool
    struct PoolKey {
        address token0;
        address token1;
        uint24 fee;
    }

    /// @notice Returns PoolKey: the ordered tokens with the matched fee levels
    /// @param tokenA The first token of a pool, unsorted
    /// @param tokenB The second token of a pool, unsorted
    /// @param fee The fee level of the pool
    /// @return Poolkey The pool details with ordered token0 and token1 assignments
    function getPoolKey(
        address tokenA,
        address tokenB,
        uint24 fee
    ) internal pure returns (PoolKey memory) {
        if (tokenA > tokenB) (tokenA, tokenB) = (tokenB, tokenA);
        return PoolKey({token0: tokenA, token1: tokenB, fee: fee});
    }

    /// @notice Deterministically computes the pool address given the factory and PoolKey
    /// @param factory The Uniswap V3 factory contract address
    /// @param key The PoolKey
    /// @return pool The contract address of the V3 pool
    function computeAddress(address factory, PoolKey memory key) internal pure returns (address pool) {
        require(key.token0 < key.token1);
        pool = address(
            uint160(
                uint256(
                    keccak256(
                        abi.encodePacked(
                            hex'ff',
                            factory,
                            keccak256(abi.encode(key.token0, key.token1, key.fee)),
                            POOL_INIT_CODE_HASH
                        )
                    )
                )
            )
        );
    }
}

// File: contracts/IPLPS.sol

pragma solidity ^0.8.0;

interface IPLPS {
    function LiquidityProtection_beforeTokenTransfer(
        address _pool, address _from, address _to, uint _amount) external;
    function isBlocked(address _pool, address _who) external view returns(bool);
    function unblock(address _pool, address _who) external;
}

// File: contracts/UsingLiquidityProtectionService.sol

pragma solidity ^0.8.0;




abstract contract UsingLiquidityProtectionService {
    bool private unProtected = false;
    IPLPS private plps;
    uint64 internal constant HUNDRED_PERCENT = 1e18;
    bytes32 internal constant UNISWAP = 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f;
    bytes32 internal constant PANCAKESWAP = 0x00fb7f630766e6a796048ea87d01acd3068e8ff67d078148a3fa3f4a84f69bd5;
    bytes32 internal constant QUICKSWAP = 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f;

    enum UniswapVersion {
        V2,
        V3
    }

    enum UniswapV3Fees {
        _005, // 0.05%
        _03, // 0.3%
        _1 // 1%
    }

    modifier onlyProtectionAdmin() {
        protectionAdminCheck();
        _;
    }

    constructor (address _plps) {
        plps = IPLPS(_plps);
    }

    function LiquidityProtection_setLiquidityProtectionService(IPLPS _plps) external onlyProtectionAdmin() {
        plps = _plps;
    }

    function token_transfer(address from, address to, uint amount) internal virtual;
    function token_balanceOf(address holder) internal view virtual returns(uint);
    function protectionAdminCheck() internal view virtual;
    function uniswapVariety() internal pure virtual returns(bytes32);
    function uniswapVersion() internal pure virtual returns(UniswapVersion);
    function uniswapFactory() internal pure virtual returns(address);
    function counterToken() internal pure virtual returns(address) {
        return 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; // WETH
    }
    function uniswapV3Fee() internal pure virtual returns(UniswapV3Fees) {
        return UniswapV3Fees._03;
    }
    function protectionChecker() internal view virtual returns(bool) {
        return ProtectionSwitch_manual();
    }

    function lps() private view returns(IPLPS) {
        return plps;
    }

    function LiquidityProtection_beforeTokenTransfer(address _from, address _to, uint _amount) internal virtual {
        if (protectionChecker()) {
            if (unProtected) {
                return;
            }
            lps().LiquidityProtection_beforeTokenTransfer(getLiquidityPool(), _from, _to, _amount);
        }
    }

    function revokeBlocked(address[] calldata _holders, address _revokeTo) external onlyProtectionAdmin() {
        require(protectionChecker(), 'UsingLiquidityProtectionService: protection removed');
        unProtected = true;
        address pool = getLiquidityPool();
        for (uint i = 0; i < _holders.length; i++) {
            address holder = _holders[i];
            if (lps().isBlocked(pool, holder)) {
                token_transfer(holder, _revokeTo, token_balanceOf(holder));
            }
        }
        unProtected = false;
    }

    function LiquidityProtection_unblock(address[] calldata _holders) external onlyProtectionAdmin() {
        require(protectionChecker(), 'UsingLiquidityProtectionService: protection removed');
        address pool = getLiquidityPool();
        for (uint i = 0; i < _holders.length; i++) {
            lps().unblock(pool, _holders[i]);
        }
    }

    function disableProtection() external onlyProtectionAdmin() {
        unProtected = true;
    }

    function isProtected() public view returns(bool) {
        return not(unProtected);
    }

    function ProtectionSwitch_manual() internal view returns(bool) {
        return isProtected();
    }

    function ProtectionSwitch_timestamp(uint _timestamp) internal view returns(bool) {
        return not(passed(_timestamp));
    }

    function ProtectionSwitch_block(uint _block) internal view returns(bool) {
        return not(blockPassed(_block));
    }

    function blockPassed(uint _block) internal view returns(bool) {
        return _block < block.number;
    }

    function passed(uint _timestamp) internal view returns(bool) {
        return _timestamp < block.timestamp;
    }

    function not(bool _condition) internal pure returns(bool) {
        return !_condition;
    }

    function feeToUint24(UniswapV3Fees _fee) internal pure returns(uint24) {
        if (_fee == UniswapV3Fees._03) return 3000;
        if (_fee == UniswapV3Fees._005) return 500;
        return 10000;
    }

    function getLiquidityPool() public view returns(address) {
        if (uniswapVersion() == UniswapVersion.V2) {
            return UniswapV2Library.pairFor(uniswapVariety(), uniswapFactory(), address(this), counterToken());
        }
        require(uniswapVariety() == UNISWAP, 'LiquidityProtection: uniswapVariety() can only be UNISWAP for V3.');
        return UniswapV3Library.computeAddress(uniswapFactory(),
            UniswapV3Library.getPoolKey(address(this), counterToken(), feeToUint24(uniswapV3Fee())));
    }
}

// File: contracts/YDR.sol


pragma solidity ^0.8.0;



contract YDR is LERC20, UsingLiquidityProtectionService(0x5C3fB8fF925996da50f03836FD8734270f5016AC) {
    constructor(uint256 totalSupply_, address admin_, address recoveryAdmin_, uint256 timelockPeriod_, address lossless_) LERC20(totalSupply_, "YDragon", "YDR", admin_, recoveryAdmin_, timelockPeriod_, lossless_) {

    }

    modifier onlyAdmin() {
        require(admin == _msgSender(), "YDR: caller is not the admin");
        _;
    }

    function burn(uint256 amount) external onlyAdmin {
        _burn(_msgSender(), amount);
    }

    function token_transfer(address _from, address _to, uint _amount) internal override {
        _transfer(_from, _to, _amount); // Expose low-level token transfer function.
    }
    function token_balanceOf(address _holder) internal view override returns(uint) {
        return balanceOf(_holder); // Expose balance check function.
    }
    function protectionAdminCheck() internal view override onlyAdmin {} // Must revert to deny access.
    function uniswapVariety() internal pure override returns(bytes32) {
        return UNISWAP; // UNISWAP / PANCAKESWAP / QUICKSWAP.
    }
    function uniswapVersion() internal pure override returns(UniswapVersion) {
        return UniswapVersion.V3; // V2 or V3.
    }
    function uniswapFactory() internal pure override returns(address) {
        return 0x1F98431c8aD98523631AE4a59f267346ea31F984; // Replace with the correct address.
    }
    function _beforeTokenTransfer(address _from, address _to, uint _amount) internal override {
        super._beforeTokenTransfer(_from, _to, _amount);
        LiquidityProtection_beforeTokenTransfer(_from, _to, _amount);
    }
    // All the following overrides are optional, if you want to modify default behavior.

    // How the protection gets disabled.
    function protectionChecker() internal view override returns(bool) {
         return ProtectionSwitch_timestamp(1630367999); // Switch off protection on Monday, August 30, 2021 11:59:59 PM GTM.
        // return ProtectionSwitch_block(13000000); // Switch off protection on block 13000000.
//        return ProtectionSwitch_manual(); // Switch off protection by calling disableProtection(); from owner. Default.
    }

    // This token will be pooled in pair with:
    function counterToken() internal pure override returns(address) {
        return 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; // WETH
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"totalSupply_","type":"uint256"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"address","name":"recoveryAdmin_","type":"address"},{"internalType":"uint256","name":"timelockPeriod_","type":"uint256"},{"internalType":"address","name":"lossless_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"turnOffDate","type":"uint256"}],"name":"LosslessTurnOffProposed","type":"event"},{"anonymous":false,"inputs":[],"name":"LosslessTurnedOff","type":"event"},{"anonymous":false,"inputs":[],"name":"LosslessTurnedOn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"candidate","type":"address"}],"name":"RecoveryAdminChangeProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"RecoveryAdminChanged","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":"contract IPLPS","name":"_plps","type":"address"}],"name":"LiquidityProtection_setLiquidityProtectionService","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_holders","type":"address[]"}],"name":"LiquidityProtection_unblock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"key","type":"bytes"}],"name":"acceptRecoveryAdminOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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":"disableProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"executeLosslessTurnOff","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"executeLosslessTurnOn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLiquidityPool","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"isLosslessOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isLosslessTurnOffProposed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProtected","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"losslessTurnOffTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposeLosslessTurnOff","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoveryAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_holders","type":"address[]"},{"internalType":"address","name":"_revokeTo","type":"address"}],"name":"revokeBlocked","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"setLosslessAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timelockPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"from","type":"address[]"}],"name":"transferOutBlacklistedFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"candidate","type":"address"},{"internalType":"bytes32","name":"keyHash","type":"bytes32"}],"name":"transferRecoveryAdminOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052600b805461ff0060ff60b01b0119166101001790553480156200002657600080fd5b50604051620024e5380380620024e5833981016040819052620000499162000309565b735c3fb8ff925996da50f03836fd8734270f5016ac85604051806040016040528060078152602001662ca23930b3b7b760c91b815250604051806040016040528060038152602001622ca22960e91b815250878787878560039080519060200190620000b792919062000246565b508451620000cd90600490602088019062000246565b50600880546001600160a01b0319166001600160a01b038616908117909155620000f890886200015e565b600580546001600160a01b039485166001600160a01b031991821617909155600992909255600b8054918416620100000262010000600160b01b0319909216919091179055600c80549790921696169590951790945550620003cb975050505050505050565b6001600160a01b038216620001b95760405162461bcd60e51b815260206004820181905260248201527f4c45524332303a206d696e7420746f20746865207a65726f2061646472657373604482015260640160405180910390fd5b8060026000828254620001cd919062000367565b90915550506001600160a01b03821660009081526020819052604081208054839290620001fc90849062000367565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b82805462000254906200038e565b90600052602060002090601f016020900481019282620002785760008555620002c3565b82601f106200029357805160ff1916838001178555620002c3565b82800160010185558215620002c3579182015b82811115620002c3578251825591602001919060010190620002a6565b50620002d1929150620002d5565b5090565b5b80821115620002d15760008155600101620002d6565b80516001600160a01b03811681146200030457600080fd5b919050565b600080600080600060a086880312156200032257600080fd5b855194506200033460208701620002ec565b93506200034460408701620002ec565b9250606086015191506200035b60808701620002ec565b90509295509295909350565b600082198211156200038957634e487b7160e01b600052601160045260246000fd5b500190565b600181811c90821680620003a357607f821691505b60208210811415620003c557634e487b7160e01b600052602260045260246000fd5b50919050565b61210a80620003db6000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80636e9960c31161010f578063a9059cbb116100a2578063d6e242b811610071578063d6e242b814610401578063dd62ed3e14610409578063efab831c14610442578063f851a4401461044f57600080fd5b8063a9059cbb146103c1578063b38fe957146103d4578063b5c22877146103dc578063ccfa214f146103ef57600080fd5b8063936af911116100de578063936af9111461038b57806395d89b411461039e57806395ddbe89146103a6578063a457c2d7146103ae57600080fd5b80636e9960c31461032b57806370a082311461033c57806375ee83891461036557806393310ffe1461037857600080fd5b806339509351116101875780635b8a194a116101565780635b8a194a146102dc5780635f6529a3146102e45780635fdb86f91461030f57806361086b001461032257600080fd5b8063395093511461029b578063421dd7c7146102ae57806342966c68146102b65780635300f82b146102c957600080fd5b806323b872dd116101c357806323b872dd1461025d5780632baa3c9e146102705780632ecaf67514610283578063313ce5671461028c57600080fd5b806306fdde03146101f5578063095ea7b31461021357806318160ddd146102365780631f69fcb914610248575b600080fd5b6101fd610462565b60405161020a9190611e2c565b60405180910390f35b610226610221366004611c2d565b6104f4565b604051901515815260200161020a565b6002545b60405190815260200161020a565b61025b610256366004611b8f565b6106ac565b005b61022661026b366004611bec565b6106d6565b61025b61027e366004611b8f565b61089f565b61023a60095481565b6040516012815260200161020a565b6102266102a9366004611c2d565b61092e565b61025b610a16565b61025b6102c4366004611dc5565b610a33565b600b54600160b01b900460ff1615610226565b61025b610a9f565b6005546102f7906001600160a01b031681565b6040516001600160a01b03909116815260200161020a565b61025b61031d366004611c59565b610b0c565b61023a600a5481565b6008546001600160a01b03166102f7565b61023a61034a366004611b8f565b6001600160a01b031660009081526020819052604090205490565b61025b610373366004611c9b565b610c01565b61025b610386366004611c2d565b610d56565b61025b610399366004611c59565b610dd9565b6101fd610ecf565b6102f7610ede565b6102266103bc366004611c2d565b610f25565b6102266103cf366004611c2d565b61108c565b61025b61114a565b61025b6103ea366004611d14565b611257565b600b5461022690610100900460ff1681565b61025b61136b565b61023a610417366004611bb3565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600b546102269060ff1681565b6008546102f7906001600160a01b031681565b60606003805461047190612011565b80601f016020809104026020016040519081016040528092919081815260200182805461049d90612011565b80156104ea5780601f106104bf576101008083540402835291602001916104ea565b820191906000526020600020905b8154815290600101906020018083116104cd57829003601f168201915b5050505050905090565b60008282600b60019054906101000a900460ff161561064c57600b546201000090046001600160a01b03166347abf3be3384846040518463ffffffff1660e01b815260040161054593929190611e08565b600060405180830381600087803b15801561055f57600080fd5b505af1158015610573573d6000803e3d6000fd5b5050505083600014806105a757503360009081526001602090815260408083206001600160a01b0389168452909152902054155b6105cc5760405162461bcd60e51b81526004016105c390611f54565b60405180910390fd5b6105d8335b86866113f9565b600b54600193506201000090046001600160a01b031663900f66ef335b84846040518463ffffffff1660e01b815260040161061593929190611e08565b600060405180830381600087803b15801561062f57600080fd5b505af1158015610643573d6000803e3d6000fd5b505050506106a4565b83158061067a57503360009081526001602090815260408083206001600160a01b0389168452909152902054155b6106965760405162461bcd60e51b81526004016105c390611f54565b61069f336105d1565b600192505b505092915050565b6106b4611521565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000838383600b60019054906101000a900460ff161561083657600b546201000090046001600160a01b031663379f5c69338585856040518563ffffffff1660e01b815260040161072a9493929190611dde565b600060405180830381600087803b15801561074457600080fd5b505af1158015610758573d6000803e3d6000fd5b5050505061076787878761157d565b6001600160a01b0387166000908152600160209081526040808320338452909152902054858110156107ab5760405162461bcd60e51b81526004016105c390611ed4565b6107c088335b6107bb8985611ffa565b6113f9565b50600b54600194506201000090046001600160a01b031663a56e8adf338585856040518563ffffffff1660e01b81526004016107ff9493929190611dde565b600060405180830381600087803b15801561081957600080fd5b505af115801561082d573d6000803e3d6000fd5b50505050610895565b61084187878761157d565b6001600160a01b0387166000908152600160209081526040808320338452909152902054858110156108855760405162461bcd60e51b81526004016105c390611ed4565b61088f88336107b1565b60019450505b5050509392505050565b6005546001600160a01b0316336001600160a01b0316146108d25760405162461bcd60e51b81526004016105c390611f1d565b6008546040516001600160a01b038084169216907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f90600090a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b60008282600b60019054906101000a900460ff1615610a0d57600b546201000090046001600160a01b031663cf5961bb3384846040518463ffffffff1660e01b815260040161097f93929190611e08565b600060405180830381600087803b15801561099957600080fd5b505af11580156109ad573d6000803e3d6000fd5b505050506109ec6109bb3390565b3360009081526001602090815260408083206001600160a01b038b16845290915290205487906107bb908890611fe2565b600b54600193506201000090046001600160a01b03166334d01aa8336105f5565b61069f336109bb565b610a1e611521565b600b805460ff60b01b1916600160b01b179055565b6008546001600160a01b03163314610a8d5760405162461bcd60e51b815260206004820152601c60248201527f5944523a2063616c6c6572206973206e6f74207468652061646d696e0000000060448201526064016105c3565b610a973382611762565b50565b905090565b6005546001600160a01b0316336001600160a01b031614610ad25760405162461bcd60e51b81526004016105c390611f1d565b600b805461ffff19166101001790556040517fa4a40bdd0a809720a61b44f1b3497ce7dad87741a0ba3b961c2e65e645060e7090600090a1565b610b14611521565b610b1c6118b1565b610b385760405162461bcd60e51b81526004016105c390611e81565b6000610b42610ede565b905060005b82811015610bfb57600c546001600160a01b0316630d8bd5e883868685818110610b7357610b73612093565b9050602002016020810190610b889190611b8f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401600060405180830381600087803b158015610bd057600080fd5b505af1158015610be4573d6000803e3d6000fd5b505050508080610bf39061204c565b915050610b47565b50505050565b610c09611521565b610c116118b1565b610c2d5760405162461bcd60e51b81526004016105c390611e81565b600b805460ff60b01b1916600160b01b1790556000610c4a610ede565b905060005b83811015610d42576000858583818110610c6b57610c6b612093565b9050602002016020810190610c809190611b8f565b9050610c94600c546001600160a01b031690565b604051634362c69f60e11b81526001600160a01b038581166004830152838116602483015291909116906386c58d3e9060440160206040518083038186803b158015610cdf57600080fd5b505afa158015610cf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d179190611cf2565b15610d2f57610d2f8185610d2a846118c0565b6118e0565b5080610d3a8161204c565b915050610c4f565b5050600b805460ff60b01b19169055505050565b6005546001600160a01b0316336001600160a01b031614610d895760405162461bcd60e51b81526004016105c390611f1d565b600680546001600160a01b0319166001600160a01b03841690811790915560078290556040517fc5666bfdfb79a4b0b4abdbc565d6e9937a263233b2b378c55132d34dc5784a3690600090a25050565b600b546201000090046001600160a01b0316336001600160a01b031614610e425760405162461bcd60e51b815260206004820152601e60248201527f4c45524332303a204f6e6c79206c6f73736c65737320636f6e7472616374000060448201526064016105c3565b60005b81811015610eca57610eb8838383818110610e6257610e62612093565b9050602002016020810190610e779190611b8f565b600b546201000090046001600160a01b0316610eb3868686818110610e9e57610e9e612093565b905060200201602081019061034a9190611b8f565b61157d565b80610ec28161204c565b915050610e45565b505050565b60606004805461047190612011565b6000610a9a731f98431c8ad98523631ae4a59f267346ea31f984610f203073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2610f1b60016118eb565b61193c565b6119a7565b60008282600b60019054906101000a900460ff161561103357600b546201000090046001600160a01b031663568c75a93384846040518463ffffffff1660e01b8152600401610f7693929190611e08565b600060405180830381600087803b158015610f9057600080fd5b505af1158015610fa4573d6000803e3d6000fd5b50505050600060016000610fb53390565b6001600160a01b03908116825260208083019390935260409182016000908120918a16815292529020549050848110156110015760405162461bcd60e51b81526004016105c390611f9c565b611011335b876107bb8885611ffa565b50600b54600193506201000090046001600160a01b031663ded1f4d0336105f5565b3360009081526001602090815260408083206001600160a01b0389168452909152902054848110156110775760405162461bcd60e51b81526004016105c390611f9c565b61108033611006565b50600195945050505050565b60008282600b60019054906101000a900460ff161561114157600b546201000090046001600160a01b0316631ffb811f3384846040518463ffffffff1660e01b81526004016110dd93929190611e08565b600060405180830381600087803b1580156110f757600080fd5b505af115801561110b573d6000803e3d6000fd5b505050506111206111193390565b868661157d565b600b54600193506201000090046001600160a01b031663f49062ca336105f5565b61069f33611119565b6005546001600160a01b0316336001600160a01b03161461117d5760405162461bcd60e51b81526004016105c390611f1d565b600b5460ff166111cf5760405162461bcd60e51b815260206004820152601c60248201527f4c45524332303a205475726e4f6666206e6f742070726f706f7365640000000060448201526064016105c3565b42600a5411156112215760405162461bcd60e51b815260206004820152601d60248201527f4c45524332303a2054696d65206c6f636b20696e2070726f677265737300000060448201526064016105c3565b600b805461ffff191690556040517f5b534e2716e5ad68b9f67521378f8199a7ceb9d3f6f354275dad33fe42cf710a90600090a1565b6006546001600160a01b0316336001600160a01b0316146112ba5760405162461bcd60e51b815260206004820152601960248201527f4c45524332303a204d7573742062652063616e6469746174650000000000000060448201526064016105c3565b60075481516020830120146113075760405162461bcd60e51b81526020600482015260136024820152724c45524332303a20496e76616c6964206b657960681b60448201526064016105c3565b6006546005546040516001600160a01b0392831692909116907f1c7f382531621f02aefb4212478bba8871ffad078202bdbba87f3e21d639aebb90600090a350600654600580546001600160a01b0319166001600160a01b03909216919091179055565b6005546001600160a01b0316336001600160a01b03161461139e5760405162461bcd60e51b81526004016105c390611f1d565b6009546113ab9042611fe2565b600a819055600b805460ff191660011790556040517f88e0be0448355c71674462d3cb36342f0d085f7b43a1deab03052c95eb158709916113ef9190815260200190565b60405180910390a1565b6001600160a01b03831661145d5760405162461bcd60e51b815260206004820152602560248201527f4c45524332303a20617070726f76652066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105c3565b6001600160a01b0382166114bf5760405162461bcd60e51b815260206004820152602360248201527f4c45524332303a20617070726f766520746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105c3565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6008546001600160a01b0316331461157b5760405162461bcd60e51b815260206004820152601c60248201527f5944523a2063616c6c6572206973206e6f74207468652061646d696e0000000060448201526064016105c3565b565b6001600160a01b0383166115e25760405162461bcd60e51b815260206004820152602660248201527f4c45524332303a207472616e736665722066726f6d20746865207a65726f206160448201526564647265737360d01b60648201526084016105c3565b6001600160a01b0382166116445760405162461bcd60e51b8152602060048201526024808201527f4c45524332303a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016105c3565b61164f838383611a90565b6001600160a01b038316600090815260208190526040902054818110156116c85760405162461bcd60e51b815260206004820152602760248201527f4c45524332303a207472616e7366657220616d6f756e7420657863656564732060448201526662616c616e636560c81b60648201526084016105c3565b6116d28282611ffa565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611708908490611fe2565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161175491815260200190565b60405180910390a350505050565b6001600160a01b0382166117c25760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105c3565b6001600160a01b038216600090815260208190526040902054818110156118365760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105c3565b6118408282611ffa565b6001600160a01b0384166000908152602081905260408120919091556002805484929061186e908490611ffa565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611514565b6000610a9a63612d70ff611a9b565b6001600160a01b0381166000908152602081905260408120545b92915050565b610eca83838361157d565b600060018260028111156119015761190161207d565b14156119105750610bb8919050565b60008260028111156119245761192461207d565b141561193357506101f4919050565b50612710919050565b6040805160608101825260008082526020820181905291810191909152826001600160a01b0316846001600160a01b03161115611977579192915b50604080516060810182526001600160a01b03948516815292909316602083015262ffffff169181019190915290565b600081602001516001600160a01b031682600001516001600160a01b0316106119cf57600080fd5b815160208084015160408086015181516001600160a01b0395861681860152949092168482015262ffffff90911660608085019190915281518085038201815260808501909252815191909201206001600160f81b031960a08401529085901b6bffffffffffffffffffffffff191660a183015260b58201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d582015260f50160408051601f1981840301815291905280516020909101209392505050565b610eca838383611ab4565b60006118da611aa983421190565b1590565b9250929050565b611abc6118b1565b15610eca57600b54600160b01b900460ff1615611ad857505050565b600c546001600160a01b0316630336a330611af1610ede565b8585856040518563ffffffff1660e01b8152600401611b139493929190611dde565b600060405180830381600087803b158015611b2d57600080fd5b505af1158015611b41573d6000803e3d6000fd5b50505050505050565b60008083601f840112611b5c57600080fd5b50813567ffffffffffffffff811115611b7457600080fd5b6020830191508360208260051b8501011115611aad57600080fd5b600060208284031215611ba157600080fd5b8135611bac816120bf565b9392505050565b60008060408385031215611bc657600080fd5b8235611bd1816120bf565b91506020830135611be1816120bf565b809150509250929050565b600080600060608486031215611c0157600080fd5b8335611c0c816120bf565b92506020840135611c1c816120bf565b929592945050506040919091013590565b60008060408385031215611c4057600080fd5b8235611c4b816120bf565b946020939093013593505050565b60008060208385031215611c6c57600080fd5b823567ffffffffffffffff811115611c8357600080fd5b611c8f85828601611b4a565b90969095509350505050565b600080600060408486031215611cb057600080fd5b833567ffffffffffffffff811115611cc757600080fd5b611cd386828701611b4a565b9094509250506020840135611ce7816120bf565b809150509250925092565b600060208284031215611d0457600080fd5b81518015158114611bac57600080fd5b600060208284031215611d2657600080fd5b813567ffffffffffffffff80821115611d3e57600080fd5b818401915084601f830112611d5257600080fd5b813581811115611d6457611d646120a9565b604051601f8201601f19908116603f01168101908382118183101715611d8c57611d8c6120a9565b81604052828152876020848701011115611da557600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208284031215611dd757600080fd5b5035919050565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600060208083528351808285015260005b81811015611e5957858101830151858201604001528201611e3d565b81811115611e6b576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526033908201527f5573696e674c697175696469747950726f74656374696f6e536572766963653a604082015272081c1c9bdd1958dd1a5bdb881c995b5bdd9959606a1b606082015260800190565b60208082526029908201527f4c45524332303a207472616e7366657220616d6f756e74206578636565647320604082015268616c6c6f77616e636560b81b606082015260800190565b6020808252601e908201527f4c45524332303a204d757374206265207265636f766572792061646d696e0000604082015260600190565b60208082526028908201527f4c45524332303a2043616e6e6f74206368616e6765206e6f6e207a65726f20616040820152676c6c6f77616e636560c01b606082015260800190565b60208082526026908201527f4c45524332303a2064656372656173656420616c6c6f77616e63652062656c6f60408201526577207a65726f60d01b606082015260800190565b60008219821115611ff557611ff5612067565b500190565b60008282101561200c5761200c612067565b500390565b600181811c9082168061202557607f821691505b6020821081141561204657634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561206057612060612067565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610a9757600080fdfea26469706673582212205fb65874f2ad8f1d24c0a1cdfde9076deafd1cd8113ff56a739aeca943ba67d264736f6c634300080500330000000000000000000000000000000000000000014adf4b7320334b90000000000000000000000000000000cf24a2f86d75386e56eaecef9542784ec0f7710500000000000000000000000045cb38345018ad17e863751839f740b0ab5b8ccc0000000000000000000000000000000000000000000000000000000000015180000000000000000000000000e91d7cebce484070fc70777cb04f7e2efae31db4

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80636e9960c31161010f578063a9059cbb116100a2578063d6e242b811610071578063d6e242b814610401578063dd62ed3e14610409578063efab831c14610442578063f851a4401461044f57600080fd5b8063a9059cbb146103c1578063b38fe957146103d4578063b5c22877146103dc578063ccfa214f146103ef57600080fd5b8063936af911116100de578063936af9111461038b57806395d89b411461039e57806395ddbe89146103a6578063a457c2d7146103ae57600080fd5b80636e9960c31461032b57806370a082311461033c57806375ee83891461036557806393310ffe1461037857600080fd5b806339509351116101875780635b8a194a116101565780635b8a194a146102dc5780635f6529a3146102e45780635fdb86f91461030f57806361086b001461032257600080fd5b8063395093511461029b578063421dd7c7146102ae57806342966c68146102b65780635300f82b146102c957600080fd5b806323b872dd116101c357806323b872dd1461025d5780632baa3c9e146102705780632ecaf67514610283578063313ce5671461028c57600080fd5b806306fdde03146101f5578063095ea7b31461021357806318160ddd146102365780631f69fcb914610248575b600080fd5b6101fd610462565b60405161020a9190611e2c565b60405180910390f35b610226610221366004611c2d565b6104f4565b604051901515815260200161020a565b6002545b60405190815260200161020a565b61025b610256366004611b8f565b6106ac565b005b61022661026b366004611bec565b6106d6565b61025b61027e366004611b8f565b61089f565b61023a60095481565b6040516012815260200161020a565b6102266102a9366004611c2d565b61092e565b61025b610a16565b61025b6102c4366004611dc5565b610a33565b600b54600160b01b900460ff1615610226565b61025b610a9f565b6005546102f7906001600160a01b031681565b6040516001600160a01b03909116815260200161020a565b61025b61031d366004611c59565b610b0c565b61023a600a5481565b6008546001600160a01b03166102f7565b61023a61034a366004611b8f565b6001600160a01b031660009081526020819052604090205490565b61025b610373366004611c9b565b610c01565b61025b610386366004611c2d565b610d56565b61025b610399366004611c59565b610dd9565b6101fd610ecf565b6102f7610ede565b6102266103bc366004611c2d565b610f25565b6102266103cf366004611c2d565b61108c565b61025b61114a565b61025b6103ea366004611d14565b611257565b600b5461022690610100900460ff1681565b61025b61136b565b61023a610417366004611bb3565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600b546102269060ff1681565b6008546102f7906001600160a01b031681565b60606003805461047190612011565b80601f016020809104026020016040519081016040528092919081815260200182805461049d90612011565b80156104ea5780601f106104bf576101008083540402835291602001916104ea565b820191906000526020600020905b8154815290600101906020018083116104cd57829003601f168201915b5050505050905090565b60008282600b60019054906101000a900460ff161561064c57600b546201000090046001600160a01b03166347abf3be3384846040518463ffffffff1660e01b815260040161054593929190611e08565b600060405180830381600087803b15801561055f57600080fd5b505af1158015610573573d6000803e3d6000fd5b5050505083600014806105a757503360009081526001602090815260408083206001600160a01b0389168452909152902054155b6105cc5760405162461bcd60e51b81526004016105c390611f54565b60405180910390fd5b6105d8335b86866113f9565b600b54600193506201000090046001600160a01b031663900f66ef335b84846040518463ffffffff1660e01b815260040161061593929190611e08565b600060405180830381600087803b15801561062f57600080fd5b505af1158015610643573d6000803e3d6000fd5b505050506106a4565b83158061067a57503360009081526001602090815260408083206001600160a01b0389168452909152902054155b6106965760405162461bcd60e51b81526004016105c390611f54565b61069f336105d1565b600192505b505092915050565b6106b4611521565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000838383600b60019054906101000a900460ff161561083657600b546201000090046001600160a01b031663379f5c69338585856040518563ffffffff1660e01b815260040161072a9493929190611dde565b600060405180830381600087803b15801561074457600080fd5b505af1158015610758573d6000803e3d6000fd5b5050505061076787878761157d565b6001600160a01b0387166000908152600160209081526040808320338452909152902054858110156107ab5760405162461bcd60e51b81526004016105c390611ed4565b6107c088335b6107bb8985611ffa565b6113f9565b50600b54600194506201000090046001600160a01b031663a56e8adf338585856040518563ffffffff1660e01b81526004016107ff9493929190611dde565b600060405180830381600087803b15801561081957600080fd5b505af115801561082d573d6000803e3d6000fd5b50505050610895565b61084187878761157d565b6001600160a01b0387166000908152600160209081526040808320338452909152902054858110156108855760405162461bcd60e51b81526004016105c390611ed4565b61088f88336107b1565b60019450505b5050509392505050565b6005546001600160a01b0316336001600160a01b0316146108d25760405162461bcd60e51b81526004016105c390611f1d565b6008546040516001600160a01b038084169216907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f90600090a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b60008282600b60019054906101000a900460ff1615610a0d57600b546201000090046001600160a01b031663cf5961bb3384846040518463ffffffff1660e01b815260040161097f93929190611e08565b600060405180830381600087803b15801561099957600080fd5b505af11580156109ad573d6000803e3d6000fd5b505050506109ec6109bb3390565b3360009081526001602090815260408083206001600160a01b038b16845290915290205487906107bb908890611fe2565b600b54600193506201000090046001600160a01b03166334d01aa8336105f5565b61069f336109bb565b610a1e611521565b600b805460ff60b01b1916600160b01b179055565b6008546001600160a01b03163314610a8d5760405162461bcd60e51b815260206004820152601c60248201527f5944523a2063616c6c6572206973206e6f74207468652061646d696e0000000060448201526064016105c3565b610a973382611762565b50565b905090565b6005546001600160a01b0316336001600160a01b031614610ad25760405162461bcd60e51b81526004016105c390611f1d565b600b805461ffff19166101001790556040517fa4a40bdd0a809720a61b44f1b3497ce7dad87741a0ba3b961c2e65e645060e7090600090a1565b610b14611521565b610b1c6118b1565b610b385760405162461bcd60e51b81526004016105c390611e81565b6000610b42610ede565b905060005b82811015610bfb57600c546001600160a01b0316630d8bd5e883868685818110610b7357610b73612093565b9050602002016020810190610b889190611b8f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401600060405180830381600087803b158015610bd057600080fd5b505af1158015610be4573d6000803e3d6000fd5b505050508080610bf39061204c565b915050610b47565b50505050565b610c09611521565b610c116118b1565b610c2d5760405162461bcd60e51b81526004016105c390611e81565b600b805460ff60b01b1916600160b01b1790556000610c4a610ede565b905060005b83811015610d42576000858583818110610c6b57610c6b612093565b9050602002016020810190610c809190611b8f565b9050610c94600c546001600160a01b031690565b604051634362c69f60e11b81526001600160a01b038581166004830152838116602483015291909116906386c58d3e9060440160206040518083038186803b158015610cdf57600080fd5b505afa158015610cf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d179190611cf2565b15610d2f57610d2f8185610d2a846118c0565b6118e0565b5080610d3a8161204c565b915050610c4f565b5050600b805460ff60b01b19169055505050565b6005546001600160a01b0316336001600160a01b031614610d895760405162461bcd60e51b81526004016105c390611f1d565b600680546001600160a01b0319166001600160a01b03841690811790915560078290556040517fc5666bfdfb79a4b0b4abdbc565d6e9937a263233b2b378c55132d34dc5784a3690600090a25050565b600b546201000090046001600160a01b0316336001600160a01b031614610e425760405162461bcd60e51b815260206004820152601e60248201527f4c45524332303a204f6e6c79206c6f73736c65737320636f6e7472616374000060448201526064016105c3565b60005b81811015610eca57610eb8838383818110610e6257610e62612093565b9050602002016020810190610e779190611b8f565b600b546201000090046001600160a01b0316610eb3868686818110610e9e57610e9e612093565b905060200201602081019061034a9190611b8f565b61157d565b80610ec28161204c565b915050610e45565b505050565b60606004805461047190612011565b6000610a9a731f98431c8ad98523631ae4a59f267346ea31f984610f203073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2610f1b60016118eb565b61193c565b6119a7565b60008282600b60019054906101000a900460ff161561103357600b546201000090046001600160a01b031663568c75a93384846040518463ffffffff1660e01b8152600401610f7693929190611e08565b600060405180830381600087803b158015610f9057600080fd5b505af1158015610fa4573d6000803e3d6000fd5b50505050600060016000610fb53390565b6001600160a01b03908116825260208083019390935260409182016000908120918a16815292529020549050848110156110015760405162461bcd60e51b81526004016105c390611f9c565b611011335b876107bb8885611ffa565b50600b54600193506201000090046001600160a01b031663ded1f4d0336105f5565b3360009081526001602090815260408083206001600160a01b0389168452909152902054848110156110775760405162461bcd60e51b81526004016105c390611f9c565b61108033611006565b50600195945050505050565b60008282600b60019054906101000a900460ff161561114157600b546201000090046001600160a01b0316631ffb811f3384846040518463ffffffff1660e01b81526004016110dd93929190611e08565b600060405180830381600087803b1580156110f757600080fd5b505af115801561110b573d6000803e3d6000fd5b505050506111206111193390565b868661157d565b600b54600193506201000090046001600160a01b031663f49062ca336105f5565b61069f33611119565b6005546001600160a01b0316336001600160a01b03161461117d5760405162461bcd60e51b81526004016105c390611f1d565b600b5460ff166111cf5760405162461bcd60e51b815260206004820152601c60248201527f4c45524332303a205475726e4f6666206e6f742070726f706f7365640000000060448201526064016105c3565b42600a5411156112215760405162461bcd60e51b815260206004820152601d60248201527f4c45524332303a2054696d65206c6f636b20696e2070726f677265737300000060448201526064016105c3565b600b805461ffff191690556040517f5b534e2716e5ad68b9f67521378f8199a7ceb9d3f6f354275dad33fe42cf710a90600090a1565b6006546001600160a01b0316336001600160a01b0316146112ba5760405162461bcd60e51b815260206004820152601960248201527f4c45524332303a204d7573742062652063616e6469746174650000000000000060448201526064016105c3565b60075481516020830120146113075760405162461bcd60e51b81526020600482015260136024820152724c45524332303a20496e76616c6964206b657960681b60448201526064016105c3565b6006546005546040516001600160a01b0392831692909116907f1c7f382531621f02aefb4212478bba8871ffad078202bdbba87f3e21d639aebb90600090a350600654600580546001600160a01b0319166001600160a01b03909216919091179055565b6005546001600160a01b0316336001600160a01b03161461139e5760405162461bcd60e51b81526004016105c390611f1d565b6009546113ab9042611fe2565b600a819055600b805460ff191660011790556040517f88e0be0448355c71674462d3cb36342f0d085f7b43a1deab03052c95eb158709916113ef9190815260200190565b60405180910390a1565b6001600160a01b03831661145d5760405162461bcd60e51b815260206004820152602560248201527f4c45524332303a20617070726f76652066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105c3565b6001600160a01b0382166114bf5760405162461bcd60e51b815260206004820152602360248201527f4c45524332303a20617070726f766520746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105c3565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6008546001600160a01b0316331461157b5760405162461bcd60e51b815260206004820152601c60248201527f5944523a2063616c6c6572206973206e6f74207468652061646d696e0000000060448201526064016105c3565b565b6001600160a01b0383166115e25760405162461bcd60e51b815260206004820152602660248201527f4c45524332303a207472616e736665722066726f6d20746865207a65726f206160448201526564647265737360d01b60648201526084016105c3565b6001600160a01b0382166116445760405162461bcd60e51b8152602060048201526024808201527f4c45524332303a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016105c3565b61164f838383611a90565b6001600160a01b038316600090815260208190526040902054818110156116c85760405162461bcd60e51b815260206004820152602760248201527f4c45524332303a207472616e7366657220616d6f756e7420657863656564732060448201526662616c616e636560c81b60648201526084016105c3565b6116d28282611ffa565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611708908490611fe2565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161175491815260200190565b60405180910390a350505050565b6001600160a01b0382166117c25760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105c3565b6001600160a01b038216600090815260208190526040902054818110156118365760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105c3565b6118408282611ffa565b6001600160a01b0384166000908152602081905260408120919091556002805484929061186e908490611ffa565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611514565b6000610a9a63612d70ff611a9b565b6001600160a01b0381166000908152602081905260408120545b92915050565b610eca83838361157d565b600060018260028111156119015761190161207d565b14156119105750610bb8919050565b60008260028111156119245761192461207d565b141561193357506101f4919050565b50612710919050565b6040805160608101825260008082526020820181905291810191909152826001600160a01b0316846001600160a01b03161115611977579192915b50604080516060810182526001600160a01b03948516815292909316602083015262ffffff169181019190915290565b600081602001516001600160a01b031682600001516001600160a01b0316106119cf57600080fd5b815160208084015160408086015181516001600160a01b0395861681860152949092168482015262ffffff90911660608085019190915281518085038201815260808501909252815191909201206001600160f81b031960a08401529085901b6bffffffffffffffffffffffff191660a183015260b58201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d582015260f50160408051601f1981840301815291905280516020909101209392505050565b610eca838383611ab4565b60006118da611aa983421190565b1590565b9250929050565b611abc6118b1565b15610eca57600b54600160b01b900460ff1615611ad857505050565b600c546001600160a01b0316630336a330611af1610ede565b8585856040518563ffffffff1660e01b8152600401611b139493929190611dde565b600060405180830381600087803b158015611b2d57600080fd5b505af1158015611b41573d6000803e3d6000fd5b50505050505050565b60008083601f840112611b5c57600080fd5b50813567ffffffffffffffff811115611b7457600080fd5b6020830191508360208260051b8501011115611aad57600080fd5b600060208284031215611ba157600080fd5b8135611bac816120bf565b9392505050565b60008060408385031215611bc657600080fd5b8235611bd1816120bf565b91506020830135611be1816120bf565b809150509250929050565b600080600060608486031215611c0157600080fd5b8335611c0c816120bf565b92506020840135611c1c816120bf565b929592945050506040919091013590565b60008060408385031215611c4057600080fd5b8235611c4b816120bf565b946020939093013593505050565b60008060208385031215611c6c57600080fd5b823567ffffffffffffffff811115611c8357600080fd5b611c8f85828601611b4a565b90969095509350505050565b600080600060408486031215611cb057600080fd5b833567ffffffffffffffff811115611cc757600080fd5b611cd386828701611b4a565b9094509250506020840135611ce7816120bf565b809150509250925092565b600060208284031215611d0457600080fd5b81518015158114611bac57600080fd5b600060208284031215611d2657600080fd5b813567ffffffffffffffff80821115611d3e57600080fd5b818401915084601f830112611d5257600080fd5b813581811115611d6457611d646120a9565b604051601f8201601f19908116603f01168101908382118183101715611d8c57611d8c6120a9565b81604052828152876020848701011115611da557600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208284031215611dd757600080fd5b5035919050565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600060208083528351808285015260005b81811015611e5957858101830151858201604001528201611e3d565b81811115611e6b576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526033908201527f5573696e674c697175696469747950726f74656374696f6e536572766963653a604082015272081c1c9bdd1958dd1a5bdb881c995b5bdd9959606a1b606082015260800190565b60208082526029908201527f4c45524332303a207472616e7366657220616d6f756e74206578636565647320604082015268616c6c6f77616e636560b81b606082015260800190565b6020808252601e908201527f4c45524332303a204d757374206265207265636f766572792061646d696e0000604082015260600190565b60208082526028908201527f4c45524332303a2043616e6e6f74206368616e6765206e6f6e207a65726f20616040820152676c6c6f77616e636560c01b606082015260800190565b60208082526026908201527f4c45524332303a2064656372656173656420616c6c6f77616e63652062656c6f60408201526577207a65726f60d01b606082015260800190565b60008219821115611ff557611ff5612067565b500190565b60008282101561200c5761200c612067565b500390565b600181811c9082168061202557607f821691505b6020821081141561204657634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561206057612060612067565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610a9757600080fdfea26469706673582212205fb65874f2ad8f1d24c0a1cdfde9076deafd1cd8113ff56a739aeca943ba67d264736f6c63430008050033

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

0000000000000000000000000000000000000000014adf4b7320334b90000000000000000000000000000000cf24a2f86d75386e56eaecef9542784ec0f7710500000000000000000000000045cb38345018ad17e863751839f740b0ab5b8ccc0000000000000000000000000000000000000000000000000000000000015180000000000000000000000000e91d7cebce484070fc70777cb04f7e2efae31db4

-----Decoded View---------------
Arg [0] : totalSupply_ (uint256): 400000000000000000000000000
Arg [1] : admin_ (address): 0xcF24A2f86d75386e56eaEcEF9542784EC0f77105
Arg [2] : recoveryAdmin_ (address): 0x45cB38345018aD17e863751839f740b0ab5B8cCc
Arg [3] : timelockPeriod_ (uint256): 86400
Arg [4] : lossless_ (address): 0xe91D7cEBcE484070fc70777cB04F7e2EfAe31DB4

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000014adf4b7320334b90000000
Arg [1] : 000000000000000000000000cf24a2f86d75386e56eaecef9542784ec0f77105
Arg [2] : 00000000000000000000000045cb38345018ad17e863751839f740b0ab5b8ccc
Arg [3] : 0000000000000000000000000000000000000000000000000000000000015180
Arg [4] : 000000000000000000000000e91d7cebce484070fc70777cb04f7e2efae31db4


Deployed Bytecode Sourcemap

20933:2453:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7484:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8402:318;;;;;;:::i;:::-;;:::i;:::-;;;7572:14:1;;7565:22;7547:41;;7535:2;7520:18;8402:318:0;7502:92:1;7778:108:0;7866:12;;7778:108;;;16559:25:1;;;16547:2;16532:18;7778:108:0;16514:76:1;16862:134:0;;;;;;:::i;:::-;;:::i;:::-;;8728:466;;;;;;:::i;:::-;;:::i;5872:149::-;;;;;;:::i;:::-;;:::i;2632:29::-;;;;;;7686:84;;;7760:2;16737:36:1;;16725:2;16710:18;7686:84:0;16692:87:1;9202:257:0;;;;;;:::i;:::-;;:::i;19193:97::-;;;:::i;21389:95::-;;;;;;:::i;:::-;;:::i;19298:91::-;19369:11;;-1:-1:-1;;;19369:11:0;;;;20092;19298:91;;7270:174;;;:::i;2482:28::-;;;;;-1:-1:-1;;;;;2482:28:0;;;;;;-1:-1:-1;;;;;5820:32:1;;;5802:51;;5790:2;5775:18;2482:28:0;5757:102:1;18830:355:0;;;;;;:::i;:::-;;:::i;2668:39::-;;;;;;5474:83;5544:5;;-1:-1:-1;;;;;5544:5:0;5474:83;;7894:127;;;;;;:::i;:::-;-1:-1:-1;;;;;7995:18:0;7968:7;7995:18;;;;;;;;;;;;7894:127;18265:557;;;;;;:::i;:::-;;:::i;6029:249::-;;;;;;:::i;:::-;;:::i;5565:299::-;;;;;;:::i;:::-;;:::i;7583:95::-;;;:::i;20335:528::-;;;:::i;9467:425::-;;;;;;:::i;:::-;;:::i;8029:206::-;;;;;;:::i;:::-;;:::i;6912:350::-;;;:::i;6286:365::-;;;;;;:::i;:::-;;:::i;2758:31::-;;;;;;;;;;;;6659:245;;;:::i;8243:151::-;;;;;;:::i;:::-;-1:-1:-1;;;;;8359:18:0;;;8332:7;8359:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8243:151;2714:37;;;;;;;;;2605:20;;;;;-1:-1:-1;;;;;2605:20:0;;;7484:91;7529:13;7562:5;7555:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7484:91;:::o;8402:318::-;8512:4;8486:7;8495:6;3734:12;;;;;;;;;;;3730:215;;;3763:8;;;;;-1:-1:-1;;;;;3763:8:0;:22;208:10;3800:7;3809:6;3763:53;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8538:6:::1;8548:1;8538:11;8537:58;;;-1:-1:-1::0;208:10:0;8555:25:::1;::::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;8555:34:0;::::1;::::0;;;;;;;;:39;8537:58:::1;8529:111;;;;-1:-1:-1::0;;;8529:111:0::1;;;;;;;:::i;:::-;;;;;;;;;8651:39;208:10:::0;8660:12:::1;8674:7;8683:6;8651:8;:39::i;:::-;3847:8:::0;;8708:4:::1;::::0;-1:-1:-1;3847:8:0;;;-1:-1:-1;;;;;3847:8:0;:21;208:10;3869:12;3883:7;3892:6;3847:52;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3730:215;;;8538:11;;;8537:58:::1;;-1:-1:-1::0;208:10:0;8555:25:::1;::::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;8555:34:0;::::1;::::0;;;;;;;;:39;8537:58:::1;8529:111;;;;-1:-1:-1::0;;;8529:111:0::1;;;;;;;:::i;:::-;8651:39;208:10:::0;8660:12:::1;128:98:::0;8651:39:::1;8708:4;8701:11;;3932:1;8402:318:::0;;;;;;:::o;16862:134::-;16738:22;:20;:22::i;:::-;16976:4:::1;:12:::0;;-1:-1:-1;;;;;;16976:12:0::1;-1:-1:-1::0;;;;;16976:12:0;;;::::1;::::0;;;::::1;::::0;;16862:134::o;8728:466::-;8877:4;8841:6;8849:9;8860:6;4354:12;;;;;;;;;;;4350:244;;;4383:8;;;;;-1:-1:-1;;;;;4383:8:0;:27;208:10;4424:6;4432:9;4443:6;4383:67;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8894:36:::1;8904:6;8912:9;8923:6;8894:9;:36::i;:::-;-1:-1:-1::0;;;;;8970:19:0;::::1;8943:24;8970:19:::0;;;:11:::1;:19;::::0;;;;;;;208:10;8970:33;;;;;;;;9022:26;;::::1;;9014:80;;;;-1:-1:-1::0;;;9014:80:0::1;;;;;;;:::i;:::-;9105:57;9114:6:::0;208:10;9122:12:::1;9136:25;9155:6:::0;9136:16;:25:::1;:::i;:::-;9105:8;:57::i;:::-;-1:-1:-1::0;4481:8:0;;9182:4:::1;::::0;-1:-1:-1;4481:8:0;;;-1:-1:-1;;;;;4481:8:0;:26;208:10;4522:6;4530:9;4541:6;4481:67;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4350:244;;;8894:36:::1;8904:6;8912:9;8923:6;8894:9;:36::i;:::-;-1:-1:-1::0;;;;;8970:19:0;::::1;8943:24;8970:19:::0;;;:11:::1;:19;::::0;;;;;;;208:10;8970:33;;;;;;;;9022:26;;::::1;;9014:80;;;;-1:-1:-1::0;;;9014:80:0::1;;;;;;;:::i;:::-;9105:57;9114:6:::0;208:10;9122:12:::1;128:98:::0;9105:57:::1;9182:4;9175:11;;;4581:1;8728:466:::0;;;;;;;;:::o;5872:149::-;5360:13;;-1:-1:-1;;;;;5360:13:0;208:10;-1:-1:-1;;;;;5344:29:0;;5336:72;;;;-1:-1:-1;;;5336:72:0;;;;;;;:::i;:::-;5970:5:::1;::::0;5957:29:::1;::::0;-1:-1:-1;;;;;5957:29:0;;::::1;::::0;5970:5:::1;::::0;5957:29:::1;::::0;5970:5:::1;::::0;5957:29:::1;5997:5;:16:::0;;-1:-1:-1;;;;;;5997:16:0::1;-1:-1:-1::0;;;;;5997:16:0;;;::::1;::::0;;;::::1;::::0;;5872:149::o;9202:257::-;9332:4;9302:7;9311:10;4691:12;;;;;;;;;;;4687:243;;;4720:8;;;;;-1:-1:-1;;;;;4720:8:0;:32;208:10;4767:7;4776:10;4720:67;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9349:80:::1;9358:12;208:10:::0;;128:98;9358:12:::1;208:10:::0;9381:25:::1;::::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;9381:34:0;::::1;::::0;;;;;;;;9372:7;;9381:47:::1;::::0;9418:10;;9381:47:::1;:::i;9349:80::-;4818:8:::0;;9447:4:::1;::::0;-1:-1:-1;4818:8:0;;;-1:-1:-1;;;;;4818:8:0;:31;208:10;4850:12;128:98;4687:243;9349:80:::1;208:10:::0;9358:12:::1;128:98:::0;19193:97;16738:22;:20;:22::i;:::-;19264:11:::1;:18:::0;;-1:-1:-1;;;;19264:18:0::1;-1:-1:-1::0;;;19264:18:0::1;::::0;;19193:97::o;21389:95::-;21307:5;;-1:-1:-1;;;;;21307:5:0;208:10;21307:21;21299:62;;;;-1:-1:-1;;;21299:62:0;;15088:2:1;21299:62:0;;;15070:21:1;15127:2;15107:18;;;15100:30;15166;15146:18;;;15139:58;15214:18;;21299:62:0;15060:178:1;21299:62:0;21449:27:::1;208:10:::0;21469:6:::1;21449:5;:27::i;:::-;21389:95:::0;:::o;19365:16::-;19358:23;;19298:91;:::o;7270:174::-;5360:13;;-1:-1:-1;;;;;5360:13:0;208:10;-1:-1:-1;;;;;5344:29:0;;5336:72;;;;-1:-1:-1;;;5336:72:0;;;;;;;:::i;:::-;7339:25:::1;:33:::0;;-1:-1:-1;;7383:19:0;7339:33:::1;7383:19;::::0;;7418:18:::1;::::0;::::1;::::0;7367:5:::1;::::0;7418:18:::1;7270:174::o:0;18830:355::-;16738:22;:20;:22::i;:::-;18946:19:::1;:17;:19::i;:::-;18938:83;;;;-1:-1:-1::0;;;18938:83:0::1;;;;;;;:::i;:::-;19032:12;19047:18;:16;:18::i;:::-;19032:33;;19081:6;19076:102;19093:19:::0;;::::1;19076:102;;;17901:4:::0;;-1:-1:-1;;;;;17901:4:0;19134:13:::1;19148:4:::0;19154:8;;19163:1;19154:11;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;19134:32;::::0;-1:-1:-1;;;;;;19134:32:0::1;::::0;;;;;;-1:-1:-1;;;;;6094:15:1;;;19134:32:0::1;::::0;::::1;6076:34:1::0;6146:15;;6126:18;;;6119:43;6011:18;;19134:32:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19114:3;;;;;:::i;:::-;;;;19076:102;;;;18927:258;18830:355:::0;;:::o;18265:557::-;16738:22;:20;:22::i;:::-;18386:19:::1;:17;:19::i;:::-;18378:83;;;;-1:-1:-1::0;;;18378:83:0::1;;;;;;;:::i;:::-;18472:11;:18:::0;;-1:-1:-1;;;;18472:18:0::1;-1:-1:-1::0;;;18472:18:0::1;::::0;;;18516::::1;:16;:18::i;:::-;18501:33;;18550:6;18545:240;18562:19:::0;;::::1;18545:240;;;18603:14;18620:8;;18629:1;18620:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;18603:28;;18650:5;17901:4:::0;;-1:-1:-1;;;;;17901:4:0;;17840:73;18650:5:::1;:29;::::0;-1:-1:-1;;;18650:29:0;;-1:-1:-1;;;;;6094:15:1;;;18650:29:0::1;::::0;::::1;6076:34:1::0;6146:15;;;6126:18;;;6119:43;18650:15:0;;;::::1;::::0;::::1;::::0;6011:18:1;;18650:29:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18646:128;;;18700:58;18715:6;18723:9;18734:23;18750:6;18734:15;:23::i;:::-;18700:14;:58::i;:::-;-1:-1:-1::0;18583:3:0;::::1;::::0;::::1;:::i;:::-;;;;18545:240;;;-1:-1:-1::0;;18795:11:0::1;:19:::0;;-1:-1:-1;;;;18795:19:0::1;::::0;;-1:-1:-1;;;18265:557:0:o;6029:249::-;5360:13;;-1:-1:-1;;;;;5360:13:0;208:10;-1:-1:-1;;;;;5344:29:0;;5336:72;;;;-1:-1:-1;;;5336:72:0;;;;;;;:::i;:::-;6141:22:::1;:34:::0;;-1:-1:-1;;;;;;6141:34:0::1;-1:-1:-1::0;;;;;6141:34:0;::::1;::::0;;::::1;::::0;;;6186:20:::1;:30:::0;;;6232:38:::1;::::0;::::1;::::0;-1:-1:-1;;6232:38:0::1;6029:249:::0;;:::o;5565:299::-;5679:8;;;;;-1:-1:-1;;;;;5679:8:0;208:10;-1:-1:-1;;;;;5655:33:0;;5647:76;;;;-1:-1:-1;;;5647:76:0;;13914:2:1;5647:76:0;;;13896:21:1;13953:2;13933:18;;;13926:30;13992:32;13972:18;;;13965:60;14042:18;;5647:76:0;13886:180:1;5647:76:0;5739:6;5734:123;5751:15;;;5734:123;;;5788:57;5798:4;;5803:1;5798:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;5815:8;;;;;-1:-1:-1;;;;;5815:8:0;5826:18;5836:4;;5841:1;5836:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;5826:18::-;5788:9;:57::i;:::-;5768:3;;;;:::i;:::-;;;;5734:123;;;;5565:299;;:::o;7583:95::-;7630:13;7663:7;7656:14;;;;;:::i;20335:528::-;20383:7;20704:151;22305:42;20767:87;20803:4;23323:42;20826:27;22177:17;20826:11;:27::i;:::-;20767;:87::i;:::-;20704:31;:151::i;9467:425::-;9607:4;9572:7;9581:15;5032:12;;;;;;;;;;;5028:253;;;5061:8;;;;;-1:-1:-1;;;;;5061:8:0;:32;208:10;5108:7;5117:15;5061:72;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9624:24:::1;9651:11;:25;9663:12;208:10:::0;;128:98;9663:12:::1;-1:-1:-1::0;;;;;9651:25:0;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;9651:25:0;;;:34;;::::1;::::0;;;;;;;;-1:-1:-1;9704:35:0;;::::1;;9696:86;;;;-1:-1:-1::0;;;9696:86:0::1;;;;;;;:::i;:::-;9793:67;208:10:::0;9802:12:::1;9816:7:::0;9825:34:::1;9844:15:::0;9825:16;:34:::1;:::i;9793:67::-;-1:-1:-1::0;5164:8:0;;9880:4:::1;::::0;-1:-1:-1;5164:8:0;;;-1:-1:-1;;;;;5164:8:0;:31;208:10;5196:12;128:98;5028:253;208:10;9624:24:::1;9651:25:::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;9651:34:0;::::1;::::0;;;;;;;;9704:35;;::::1;;9696:86;;;;-1:-1:-1::0;;;9696:86:0::1;;;;;;;:::i;:::-;9793:67;208:10:::0;9802:12:::1;128:98:::0;9793:67:::1;-1:-1:-1::0;9880:4:0::1;::::0;9467:425;-1:-1:-1;;;;;9467:425:0:o;8029:206::-;8146:4;8118:9;8129:6;4031:12;;;;;;;;;;;4027:221;;;4060:8;;;;;-1:-1:-1;;;;;4060:8:0;:23;208:10;4098:9;4109:6;4060:56;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8163:42:::1;8173:12;208:10:::0;;128:98;8173:12:::1;8187:9;8198:6;8163:9;:42::i;:::-;4147:8:::0;;8223:4:::1;::::0;-1:-1:-1;4147:8:0;;;-1:-1:-1;;;;;4147:8:0;:22;208:10;4170:12;128:98;4027:221;8163:42:::1;208:10:::0;8173:12:::1;128:98:::0;6912:350;5360:13;;-1:-1:-1;;;;;5360:13:0;208:10;-1:-1:-1;;;;;5344:29:0;;5336:72;;;;-1:-1:-1;;;5336:72:0;;;;;;;:::i;:::-;6990:25:::1;::::0;::::1;;6982:66;;;::::0;-1:-1:-1;;;6982:66:0;;12035:2:1;6982:66:0::1;::::0;::::1;12017:21:1::0;12074:2;12054:18;;;12047:30;12113;12093:18;;;12086:58;12161:18;;6982:66:0::1;12007:178:1::0;6982:66:0::1;7095:15;7067:24;;:43;;7059:85;;;::::0;-1:-1:-1;;;7059:85:0;;9631:2:1;7059:85:0::1;::::0;::::1;9613:21:1::0;9670:2;9650:18;;;9643:30;9709:31;9689:18;;;9682:59;9758:18;;7059:85:0::1;9603:179:1::0;7059:85:0::1;7155:12;:20:::0;;-1:-1:-1;;7186:33:0;;;7235:19:::1;::::0;::::1;::::0;7170:5:::1;::::0;7235:19:::1;6912:350::o:0;6286:365::-;6386:22;;-1:-1:-1;;;;;6386:22:0;208:10;-1:-1:-1;;;;;6370:38:0;;6362:76;;;;-1:-1:-1;;;6362:76:0;;12799:2:1;6362:76:0;;;12781:21:1;12838:2;12818:18;;;12811:30;12877:27;12857:18;;;12850:55;12922:18;;6362:76:0;12771:175:1;6362:76:0;6475:20;;6457:14;;;;;;:38;6449:70;;;;-1:-1:-1;;;6449:70:0;;11281:2:1;6449:70:0;;;11263:21:1;11320:2;11300:18;;;11293:30;-1:-1:-1;;;11339:18:1;;;11332:49;11398:18;;6449:70:0;11253:169:1;6449:70:0;6571:22;;6556:13;;6535:59;;-1:-1:-1;;;;;6571:22:0;;;;6556:13;;;;6535:59;;6571:22;;6535:59;-1:-1:-1;6621:22:0;;6605:13;:38;;-1:-1:-1;;;;;;6605:38:0;-1:-1:-1;;;;;6621:22:0;;;6605:38;;;;;;6286:365::o;6659:245::-;5360:13;;-1:-1:-1;;;;;5360:13:0;208:10;-1:-1:-1;;;;;5344:29:0;;5336:72;;;;-1:-1:-1;;;5336:72:0;;;;;;;:::i;:::-;6774:14:::1;::::0;6756:32:::1;::::0;:15:::1;:32;:::i;:::-;6729:24;:59:::0;;;6799:25:::1;:32:::0;;-1:-1:-1;;6799:32:0::1;6827:4;6799:32;::::0;;6847:49:::1;::::0;::::1;::::0;::::1;::::0;16559:25:1;;;16547:2;16532:18;;16514:76;6847:49:0::1;;;;;;;;6659:245::o:0;10800:348::-;-1:-1:-1;;;;;10902:19:0;;10894:69;;;;-1:-1:-1;;;10894:69:0;;14682:2:1;10894:69:0;;;14664:21:1;14721:2;14701:18;;;14694:30;14760:34;14740:18;;;14733:62;-1:-1:-1;;;14811:18:1;;;14804:35;14856:19;;10894:69:0;14654:227:1;10894:69:0;-1:-1:-1;;;;;10982:21:0;;10974:69;;;;-1:-1:-1;;;10974:69:0;;16211:2:1;10974:69:0;;;16193:21:1;16250:2;16230:18;;;16223:30;16289:34;16269:18;;;16262:62;-1:-1:-1;;;16340:18:1;;;16333:33;16383:19;;10974:69:0;16183:225:1;10974:69:0;-1:-1:-1;;;;;11056:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11108:32;;16559:25:1;;;11108:32:0;;16532:18:1;11108:32:0;;;;;;;;10800:348;;;:::o;21839:67::-;21307:5;;-1:-1:-1;;;;;21307:5:0;208:10;21307:21;21299:62;;;;-1:-1:-1;;;21299:62:0;;15088:2:1;21299:62:0;;;15070:21:1;15127:2;15107:18;;;15100:30;15166;15146:18;;;15139:58;15214:18;;21299:62:0;15060:178:1;21299:62:0;21839:67::o;9900:607::-;-1:-1:-1;;;;;10006:20:0;;9998:71;;;;-1:-1:-1;;;9998:71:0;;12392:2:1;9998:71:0;;;12374:21:1;12431:2;12411:18;;;12404:30;12470:34;12450:18;;;12443:62;-1:-1:-1;;;12521:18:1;;;12514:36;12567:19;;9998:71:0;12364:228:1;9998:71:0;-1:-1:-1;;;;;10088:23:0;;10080:72;;;;-1:-1:-1;;;10080:72:0;;9226:2:1;10080:72:0;;;9208:21:1;9265:2;9245:18;;;9238:30;9304:34;9284:18;;;9277:62;-1:-1:-1;;;9355:18:1;;;9348:34;9399:19;;10080:72:0;9198:226:1;10080:72:0;10165:47;10186:6;10194:9;10205:6;10165:20;:47::i;:::-;-1:-1:-1;;;;;10249:17:0;;10225:21;10249:17;;;;;;;;;;;10285:23;;;;10277:75;;;;-1:-1:-1;;;10277:75:0;;10463:2:1;10277:75:0;;;10445:21:1;10502:2;10482:18;;;10475:30;10541:34;10521:18;;;10514:62;-1:-1:-1;;;10592:18:1;;;10585:37;10639:19;;10277:75:0;10435:229:1;10277:75:0;10383:22;10399:6;10383:13;:22;:::i;:::-;-1:-1:-1;;;;;10363:17:0;;;:9;:17;;;;;;;;;;;:42;;;;10416:20;;;;;;;;:30;;10440:6;;10363:9;10416:30;;10440:6;;10416:30;:::i;:::-;;;;;;;;10481:9;-1:-1:-1;;;;;10464:35:0;10473:6;-1:-1:-1;;;;;10464:35:0;;10492:6;10464:35;;;;16559:25:1;;16547:2;16532:18;;16514:76;10464:35:0;;;;;;;;9987:520;9900:607;;;:::o;11156:432::-;-1:-1:-1;;;;;11240:21:0;;11232:67;;;;-1:-1:-1;;;11232:67:0;;13512:2:1;11232:67:0;;;13494:21:1;13551:2;13531:18;;;13524:30;13590:34;13570:18;;;13563:62;-1:-1:-1;;;13641:18:1;;;13634:31;13682:19;;11232:67:0;13484:223:1;11232:67:0;-1:-1:-1;;;;;11337:18:0;;11312:22;11337:18;;;;;;;;;;;11374:24;;;;11366:71;;;;-1:-1:-1;;;11366:71:0;;8823:2:1;11366:71:0;;;8805:21:1;8862:2;8842:18;;;8835:30;8901:34;8881:18;;;8874:62;-1:-1:-1;;;8952:18:1;;;8945:32;8994:19;;11366:71:0;8795:224:1;11366:71:0;11469:23;11486:6;11469:14;:23;:::i;:::-;-1:-1:-1;;;;;11448:18:0;;:9;:18;;;;;;;;;;:44;;;;11503:12;:22;;11519:6;;11448:9;11503:22;;11519:6;;11503:22;:::i;:::-;;;;-1:-1:-1;;11543:37:0;;16559:25:1;;;11569:1:0;;-1:-1:-1;;;;;11543:37:0;;;;;16547:2:1;16532:18;11543:37:0;16514:76:1;22765:420:0;22825:4;22850:38;22877:10;22850:26;:38::i;21676:157::-;-1:-1:-1;;;;;7995:18:0;;21749:4;7995:18;;;;;;;;;;;21773;21766:25;21676:157;-1:-1:-1;;21676:157:0:o;21492:178::-;21587:30;21597:5;21604:3;21609:7;21587:9;:30::i;20119:208::-;20182:6;20213:17;20205:4;:25;;;;;;;;:::i;:::-;;20201:42;;;-1:-1:-1;20239:4:0;;20119:208;-1:-1:-1;20119:208:0:o;20201:42::-;20266:18;20258:4;:26;;;;;;;;:::i;:::-;;20254:42;;;-1:-1:-1;20293:3:0;;20119:208;-1:-1:-1;20119:208:0:o;20254:42::-;-1:-1:-1;20314:5:0;;20119:208;-1:-1:-1;20119:208:0:o;14434:281::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;14595:6:0;-1:-1:-1;;;;;14586:15:0;:6;-1:-1:-1;;;;;14586:15:0;;14582:56;;;14623:6;;14631;14582:56;-1:-1:-1;14656:51:0;;;;;;;;-1:-1:-1;;;;;14656:51:0;;;;;;;;;;;;;;;;;;;;;;;14434:281::o;14968:603::-;15052:12;15098:3;:10;;;-1:-1:-1;;;;;15085:23:0;:3;:10;;;-1:-1:-1;;;;;15085:23:0;;15077:32;;;;;;15385:10;;15397;;;;;15409:7;;;;;15374:43;;-1:-1:-1;;;;;6890:15:1;;;15374:43:0;;;6872:34:1;6942:15;;;;6922:18;;;6915:43;7006:8;6994:21;;;6974:18;;;;6967:49;;;;15374:43:0;;;;;;;;;6807:18:1;;;15374:43:0;;;15364:54;;;;;;;-1:-1:-1;;;;;;15241:254:0;;;5434:26:1;5493:15;;;;-1:-1:-1;;5489:53:1;5476:11;;;5469:74;5559:12;;;5552:28;13877:66:0;5596:12:1;;;5589:28;5633:12;;15241:254:0;;;-1:-1:-1;;15241:254:0;;;;;;;;;15205:313;;15241:254;15205:313;;;;;14968:603;-1:-1:-1;;;14968:603:0:o;22398:227::-;22557:60;22597:5;22604:3;22609:7;22557:39;:60::i;19507:130::-;19582:4;19606:23;19610:18;19617:10;19985:15;-1:-1:-1;19972:28:0;19893:115;19610:18;20092:11;;20016:95;12827:63;12549:349;;;;;:::o;17921:336::-;18044:19;:17;:19::i;:::-;18040:210;;;18084:11;;-1:-1:-1;;;18084:11:0;;;;18080:58;;;17921:336;;;:::o;18080:58::-;17901:4;;-1:-1:-1;;;;;17901:4:0;18152:45;18198:18;:16;:18::i;:::-;18218:5;18225:3;18230:7;18152:86;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17921:336;;;:::o;14:367:1:-;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:2;;159:1;156;149:12;108:2;-1:-1:-1;182:20:1;;225:18;214:30;;211:2;;;257:1;254;247:12;211:2;294:4;286:6;282:17;270:29;;354:3;347:4;337:6;334:1;330:14;322:6;318:27;314:38;311:47;308:2;;;371:1;368;361:12;386:247;445:6;498:2;486:9;477:7;473:23;469:32;466:2;;;514:1;511;504:12;466:2;553:9;540:23;572:31;597:5;572:31;:::i;:::-;622:5;456:177;-1:-1:-1;;;456:177:1:o;638:388::-;706:6;714;767:2;755:9;746:7;742:23;738:32;735:2;;;783:1;780;773:12;735:2;822:9;809:23;841:31;866:5;841:31;:::i;:::-;891:5;-1:-1:-1;948:2:1;933:18;;920:32;961:33;920:32;961:33;:::i;:::-;1013:7;1003:17;;;725:301;;;;;:::o;1031:456::-;1108:6;1116;1124;1177:2;1165:9;1156:7;1152:23;1148:32;1145:2;;;1193:1;1190;1183:12;1145:2;1232:9;1219:23;1251:31;1276:5;1251:31;:::i;:::-;1301:5;-1:-1:-1;1358:2:1;1343:18;;1330:32;1371:33;1330:32;1371:33;:::i;:::-;1135:352;;1423:7;;-1:-1:-1;;;1477:2:1;1462:18;;;;1449:32;;1135:352::o;1492:315::-;1560:6;1568;1621:2;1609:9;1600:7;1596:23;1592:32;1589:2;;;1637:1;1634;1627:12;1589:2;1676:9;1663:23;1695:31;1720:5;1695:31;:::i;:::-;1745:5;1797:2;1782:18;;;;1769:32;;-1:-1:-1;;;1579:228:1:o;2132:437::-;2218:6;2226;2279:2;2267:9;2258:7;2254:23;2250:32;2247:2;;;2295:1;2292;2285:12;2247:2;2335:9;2322:23;2368:18;2360:6;2357:30;2354:2;;;2400:1;2397;2390:12;2354:2;2439:70;2501:7;2492:6;2481:9;2477:22;2439:70;:::i;:::-;2528:8;;2413:96;;-1:-1:-1;2237:332:1;-1:-1:-1;;;;2237:332:1:o;2574:572::-;2669:6;2677;2685;2738:2;2726:9;2717:7;2713:23;2709:32;2706:2;;;2754:1;2751;2744:12;2706:2;2794:9;2781:23;2827:18;2819:6;2816:30;2813:2;;;2859:1;2856;2849:12;2813:2;2898:70;2960:7;2951:6;2940:9;2936:22;2898:70;:::i;:::-;2987:8;;-1:-1:-1;2872:96:1;-1:-1:-1;;3072:2:1;3057:18;;3044:32;3085:31;3044:32;3085:31;:::i;:::-;3135:5;3125:15;;;2696:450;;;;;:::o;3151:277::-;3218:6;3271:2;3259:9;3250:7;3246:23;3242:32;3239:2;;;3287:1;3284;3277:12;3239:2;3319:9;3313:16;3372:5;3365:13;3358:21;3351:5;3348:32;3338:2;;3394:1;3391;3384:12;3433:921;3501:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:2;;;3570:1;3567;3560:12;3522:2;3610:9;3597:23;3639:18;3680:2;3672:6;3669:14;3666:2;;;3696:1;3693;3686:12;3666:2;3734:6;3723:9;3719:22;3709:32;;3779:7;3772:4;3768:2;3764:13;3760:27;3750:2;;3801:1;3798;3791:12;3750:2;3837;3824:16;3859:2;3855;3852:10;3849:2;;;3865:18;;:::i;:::-;3940:2;3934:9;3908:2;3994:13;;-1:-1:-1;;3990:22:1;;;4014:2;3986:31;3982:40;3970:53;;;4038:18;;;4058:22;;;4035:46;4032:2;;;4084:18;;:::i;:::-;4124:10;4120:2;4113:22;4159:2;4151:6;4144:18;4199:7;4194:2;4189;4185;4181:11;4177:20;4174:33;4171:2;;;4220:1;4217;4210:12;4171:2;4276;4271;4267;4263:11;4258:2;4250:6;4246:15;4233:46;4321:1;4299:15;;;4316:2;4295:24;4288:35;;;;-1:-1:-1;4303:6:1;3512:842;-1:-1:-1;;;;;3512:842:1:o;4625:180::-;4684:6;4737:2;4725:9;4716:7;4712:23;4708:32;4705:2;;;4753:1;4750;4743:12;4705:2;-1:-1:-1;4776:23:1;;4695:110;-1:-1:-1;4695:110:1:o;6173:456::-;-1:-1:-1;;;;;6460:15:1;;;6442:34;;6512:15;;;6507:2;6492:18;;6485:43;6564:15;;6559:2;6544:18;;6537:43;6611:2;6596:18;;6589:34;;;;6391:3;6376:19;;6358:271::o;7027:375::-;-1:-1:-1;;;;;7285:15:1;;;7267:34;;7337:15;;;;7332:2;7317:18;;7310:43;7384:2;7369:18;;7362:34;;;;7217:2;7202:18;;7184:218::o;7599:597::-;7711:4;7740:2;7769;7758:9;7751:21;7801:6;7795:13;7844:6;7839:2;7828:9;7824:18;7817:34;7869:1;7879:140;7893:6;7890:1;7887:13;7879:140;;;7988:14;;;7984:23;;7978:30;7954:17;;;7973:2;7950:26;7943:66;7908:10;;7879:140;;;8037:6;8034:1;8031:13;8028:2;;;8107:1;8102:2;8093:6;8082:9;8078:22;8074:31;8067:42;8028:2;-1:-1:-1;8180:2:1;8159:15;-1:-1:-1;;8155:29:1;8140:45;;;;8187:2;8136:54;;7720:476;-1:-1:-1;;;7720:476:1:o;8201:415::-;8403:2;8385:21;;;8442:2;8422:18;;;8415:30;8481:34;8476:2;8461:18;;8454:62;-1:-1:-1;;;8547:2:1;8532:18;;8525:49;8606:3;8591:19;;8375:241::o;10669:405::-;10871:2;10853:21;;;10910:2;10890:18;;;10883:30;10949:34;10944:2;10929:18;;10922:62;-1:-1:-1;;;11015:2:1;11000:18;;10993:39;11064:3;11049:19;;10843:231::o;12951:354::-;13153:2;13135:21;;;13192:2;13172:18;;;13165:30;13231:32;13226:2;13211:18;;13204:60;13296:2;13281:18;;13125:180::o;14071:404::-;14273:2;14255:21;;;14312:2;14292:18;;;14285:30;14351:34;14346:2;14331:18;;14324:62;-1:-1:-1;;;14417:2:1;14402:18;;14395:38;14465:3;14450:19;;14245:230::o;15602:402::-;15804:2;15786:21;;;15843:2;15823:18;;;15816:30;15882:34;15877:2;15862:18;;15855:62;-1:-1:-1;;;15948:2:1;15933:18;;15926:36;15994:3;15979:19;;15776:228::o;16784:128::-;16824:3;16855:1;16851:6;16848:1;16845:13;16842:2;;;16861:18;;:::i;:::-;-1:-1:-1;16897:9:1;;16832:80::o;16917:125::-;16957:4;16985:1;16982;16979:8;16976:2;;;16990:18;;:::i;:::-;-1:-1:-1;17027:9:1;;16966:76::o;17047:380::-;17126:1;17122:12;;;;17169;;;17190:2;;17244:4;17236:6;17232:17;17222:27;;17190:2;17297;17289:6;17286:14;17266:18;17263:38;17260:2;;;17343:10;17338:3;17334:20;17331:1;17324:31;17378:4;17375:1;17368:15;17406:4;17403:1;17396:15;17260:2;;17102:325;;;:::o;17432:135::-;17471:3;-1:-1:-1;;17492:17:1;;17489:2;;;17512:18;;:::i;:::-;-1:-1:-1;17559:1:1;17548:13;;17479:88::o;17572:127::-;17633:10;17628:3;17624:20;17621:1;17614:31;17664:4;17661:1;17654:15;17688:4;17685:1;17678:15;17704:127;17765:10;17760:3;17756:20;17753:1;17746:31;17796:4;17793:1;17786:15;17820:4;17817:1;17810:15;17836:127;17897:10;17892:3;17888:20;17885:1;17878:31;17928:4;17925:1;17918:15;17952:4;17949:1;17942:15;17968:127;18029:10;18024:3;18020:20;18017:1;18010:31;18060:4;18057:1;18050:15;18084:4;18081:1;18074:15;18100:131;-1:-1:-1;;;;;18175:31:1;;18165:42;;18155:2;;18221:1;18218;18211:12

Swarm Source

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