ETH Price: $3,474.63 (+0.78%)

Token

Scope X (ScopeX)
 

Overview

Max Total Supply

1,000,000 ScopeX

Holders

161

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ScopeX

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-26
*/

/**        _____                    _____                   _______                   _____                    _____                                          
         /\    \                  /\    \                 /::\    \                 /\    \                  /\    \                         ______          
        /::\    \                /::\    \               /::::\    \               /::\    \                /::\    \                       |::|   |         
       /::::\    \              /::::\    \             /::::::\    \             /::::\    \              /::::\    \                      |::|   |         
      /::::::\    \            /::::::\    \           /::::::::\    \           /::::::\    \            /::::::\    \                     |::|   |         
     /:::/\:::\    \          /:::/\:::\    \         /:::/~~\:::\    \         /:::/\:::\    \          /:::/\:::\    \                    |::|   |         
    /:::/__\:::\    \        /:::/  \:::\    \       /:::/    \:::\    \       /:::/__\:::\    \        /:::/__\:::\    \                   |::|   |         
    \:::\   \:::\    \      /:::/    \:::\    \     /:::/    / \:::\    \     /::::\   \:::\    \      /::::\   \:::\    \                  |::|   |         
  ___\:::\   \:::\    \    /:::/    / \:::\    \   /:::/____/   \:::\____\   /::::::\   \:::\    \    /::::::\   \:::\    \                 |::|   |         
 /\   \:::\   \:::\    \  /:::/    /   \:::\    \ |:::|    |     |:::|    | /:::/\:::\   \:::\____\  /:::/\:::\   \:::\    \          ______|::|___|___ ____ 
/::\   \:::\   \:::\____\/:::/____/     \:::\____\|:::|____|     |:::|    |/:::/  \:::\   \:::|    |/:::/__\:::\   \:::\____\        |:::::::::::::::::|    |
\:::\   \:::\   \::/    /\:::\    \      \::/    / \:::\    \   /:::/    / \::/    \:::\  /:::|____|\:::\   \:::\   \::/    /        |:::::::::::::::::|____|
 \:::\   \:::\   \/____/  \:::\    \      \/____/   \:::\    \ /:::/    /   \/_____/\:::\/:::/    /  \:::\   \:::\   \/____/          ~~~~~~|::|~~~|~~~      
  \:::\   \:::\    \       \:::\    \                \:::\    /:::/    /             \::::::/    /    \:::\   \:::\    \                    |::|   |         
   \:::\   \:::\____\       \:::\    \                \:::\__/:::/    /               \::::/    /      \:::\   \:::\____\                   |::|   |         
    \:::\  /:::/    /        \:::\    \                \::::::::/    /                 \::/____/        \:::\   \::/    /                   |::|   |         
     \:::\/:::/    /          \:::\    \                \::::::/    /                   ~~               \:::\   \/____/                    |::|   |         
      \::::::/    /            \:::\    \                \::::/    /                                      \:::\    \                        |::|   |         
       \::::/    /              \:::\____\                \::/____/                                        \:::\____\                       |::|   |         
        \::/    /                \::/    /                 ~~                                               \::/    /                       |::|___|         
         \/____/                  \/____/                                                                    \/____/                         ~~              
                                                                                                                                                             
https://t.me/ScopeXTrading
https://www.ScopeX.vip
*/
// SPDX-License-Identifier: MIT
 
pragma solidity 0.8.18;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
 
    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}
 
abstract contract Ownable is Context {
    address private _owner;
 
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
 
    constructor() {
        _transferOwnership(_msgSender());
    }
 
    modifier onlyOwner() {
        _checkOwner();
        _;
    }
 
    function owner() public view virtual returns (address) {
        return _owner;
    }
 
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }
 
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }
 
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}
 
interface IERC20 {
 
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}
 
interface IERC20Metadata is IERC20 {
 
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}
 
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
 
    mapping(address => mapping(address => uint256)) private _allowances;
 
    uint256 private _totalSupply;
 
    string private _name;
    string private _symbol;

    uint256 internal immutable INITIAL_CHAIN_ID;
    bytes32 internal immutable INITIAL_DOMAIN_SEPARATOR;
    mapping(address => uint256) public nonces;
 
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;

        INITIAL_CHAIN_ID = block.chainid;
        INITIAL_DOMAIN_SEPARATOR = computeDomainSeparator();
    }
 
    function name() public view virtual override returns (string memory) {
        return _name;
    }
 
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }
 
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }
 
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }
 
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }
 
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }
 
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }
 
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }
 
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }
 
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }
 
        return true;
    }
 
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
 
        _beforeTokenTransfer(from, to, amount);
 
        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }
 
        emit Transfer(from, to, amount);
 
        _afterTokenTransfer(from, to, amount);
    }

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) public virtual {
        require(deadline >= block.timestamp, "PERMIT_DEADLINE_EXPIRED");

        // Unchecked because the only math done is incrementing
        // the owner's nonce which cannot realistically overflow.
        unchecked {
            address recoveredAddress = ecrecover(
                keccak256(
                    abi.encodePacked(
                        "\x19\x01",
                        DOMAIN_SEPARATOR(),
                        keccak256(
                            abi.encode(
                                keccak256(
                                    "Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"
                                ),
                                owner,
                                spender,
                                value,
                                nonces[owner]++,
                                deadline
                            )
                        )
                    )
                ),
                v,
                r,
                s
            );

            require(recoveredAddress != address(0) && recoveredAddress == owner, "INVALID_SIGNER");

            _allowances[recoveredAddress][spender] = value;
        }

        emit Approval(owner, spender, value);
    }

    function DOMAIN_SEPARATOR() public view virtual returns (bytes32) {
        return block.chainid == INITIAL_CHAIN_ID ? INITIAL_DOMAIN_SEPARATOR : computeDomainSeparator();
    }

    function computeDomainSeparator() internal view virtual returns (bytes32) {
        return
            keccak256(
                abi.encode(
                    keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
                    keccak256(bytes(_name)),
                    keccak256("1"),
                    block.chainid,
                    address(this)
                )
            );
    }
 
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");
 
        _beforeTokenTransfer(address(0), account, amount);
 
        _totalSupply += amount;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);
 
        _afterTokenTransfer(address(0), account, amount);
    }
 
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");
 
        _beforeTokenTransfer(account, address(0), amount);
 
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            _totalSupply -= amount;
        }
 
        emit Transfer(account, address(0), amount);
 
        _afterTokenTransfer(account, address(0), amount);
    }
 
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
 
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }
 
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}
 
interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
}
 
interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}
 
 
library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
 
        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}
 
contract ScopeX is ERC20, Ownable{
    using Address for address payable;
 
    mapping (address user => bool status) public isExcludedFromFees;
    mapping (address buyer => bool status) public whitelistedBuyer;
    mapping (address buyer => bool status) public earlyBuyer;
    mapping (address buyer => uint256 amount) public earlyBuyerDailySell;
    mapping (address user => bool status) public isBlacklisted;
    mapping (address user => uint256 timestamp) public lastTrade;
 
    IRouter public router;
    address public pair;
    address public marketingWallet = 0xb7304f1C158e5A0741458D95d0f9C4E1A1149a5B;
 
    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;
    bool public finalTaxSet;
 
    uint256 public swapThreshold;
    uint256 public maxWallet = 10000 * 10**9;
    uint256 public maxTx = 10000 * 10**9;
    uint256 public earlyBuyerDailyMaxSell;
    uint256 public delay;
    uint256 public deadBlocks = 1;
    uint256 public whitelistPeriod = 0 minutes;
    uint256 public launchBlock;
    uint256 public launchTimestamp;
    uint256 public finalTaxTimestamp = 1 hours;
 
 
    struct Taxes {
        uint256 buy;
        uint256 sell;
        uint256 transfer;
    }
 
    Taxes public taxes = Taxes(10,25,0);
 
    modifier mutexLock() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
 
    constructor(address _router) ERC20("Scope X", "ScopeX") {
        _mint(msg.sender, 1000000 * 10 ** 9);
 
        router = IRouter(_router);
        pair = IFactory(router.factory()).createPair(address(this), router.WETH());
 
 
        isExcludedFromFees[address(this)] = true;
        isExcludedFromFees[msg.sender] = true;
        isExcludedFromFees[marketingWallet] = true;
      
        swapThreshold = maxWallet;
        earlyBuyerDailyMaxSell = totalSupply() * 5 / 1000;
 
        _approve(address(this), address(router), type(uint256).max);
    }
 
    function decimals() public view virtual override returns (uint8) {
        return 9;
    }
 
    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
 
        if (swapping || isExcludedFromFees[sender] || isExcludedFromFees[recipient]) {
            super._transfer(sender, recipient, amount);
            return;
        }
 
        else{
            require(tradingEnabled, "Trading not enabled");
            require(!isBlacklisted[sender] && !isBlacklisted[recipient], "Blacklisted address");
            if(!finalTaxSet && finalTaxTimestamp + launchTimestamp < block.timestamp){
                finalTaxSet = true;
                taxes = Taxes(3, 3, 0); // set final tax after 1 hour
            }
 
            if(launchTimestamp + whitelistPeriod > block.timestamp){
                if(!whitelistedBuyer[sender] && !whitelistedBuyer[recipient]) require(amount <= maxTx, "MaxTx limit exceeded");
            }
            else require(amount <= maxTx, "MaxTx limit exceeded");
 
            if(sender != pair) {
                if(earlyBuyer[sender]){
                    if(block.timestamp - lastTrade[sender] >= 1 days){
                        earlyBuyerDailyMaxSell = 0;
                    }
                    require(earlyBuyerDailySell[sender] + amount <= earlyBuyerDailyMaxSell, "Early buyer sell limit exceeded");
                    earlyBuyerDailySell[sender] += amount;
                }
                require(lastTrade[sender] + delay <= block.timestamp, "WAIT PLEASE");
                lastTrade[sender] = block.timestamp;
            }
            if(recipient != pair){
                if(launchTimestamp + whitelistPeriod > block.timestamp && !whitelistedBuyer[recipient]){
                    isBlacklisted[recipient] == true;
                }
                require(balanceOf(recipient) + amount <= maxWallet, "Wallet limit exceeded");
                require(lastTrade[recipient] + delay <= block.timestamp, "WAIT PLEASE");
                lastTrade[recipient] = block.timestamp;
            }
        }
 
        if(whitelistedBuyer[recipient] && sender == pair && launchTimestamp + whitelistPeriod > block.timestamp){
            earlyBuyer[recipient] = true;
        }
 
        uint256 fees;
 
        if(recipient == pair) fees = amount * taxes.sell / 100;
        else if(sender == pair && !whitelistedBuyer[recipient]) fees = amount * taxes.buy / 100;
        else fees = amount * taxes.transfer / 100; 
 
        if (swapEnabled && recipient == pair && !swapping) swapFees();
 
        super._transfer(sender, recipient, amount - fees);
        if(fees > 0){
            super._transfer(sender, address(this), fees);
        }
    }
 
    function swapFees() private mutexLock {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {
            uint256 amountToSwap = swapThreshold;
            if(contractBalance >= maxTx && swapThreshold != maxWallet) amountToSwap = maxTx;
 
            if(swapThreshold == maxWallet) swapThreshold = totalSupply() * 25 / 10000; // 0.25%
 
            uint256 initialBalance = address(this).balance;
            swapTokensForEth(amountToSwap);
            uint256 deltaBalance = address(this).balance - initialBalance;
            payable(marketingWallet).sendValue(deltaBalance);
        }
    }
 
    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
 
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
    }
 
    function setSwapEnabled(bool status) external onlyOwner {
        swapEnabled = status;
    }
 
    function setSwapTreshhold(uint256 amount) external onlyOwner {
        swapThreshold = amount * 10**9;
    }
 
    function setTaxes(uint256 _buyTax, uint256 _sellTax, uint256 _transferTax) external onlyOwner {
        taxes = Taxes(_buyTax, _sellTax, _transferTax);
    }
 
    function setRouterAndPair(address newRouter, address newPair) external onlyOwner{
        router = IRouter(newRouter);
        pair = newPair;
        _approve(address(this), address(newRouter), type(uint256).max);
    }
 
    function enableTrading() external onlyOwner{
        require(!tradingEnabled, "Already enabled");
        tradingEnabled = true;
        swapEnabled = true;
        taxes.transfer = 50;
        launchBlock = block.number;
        launchTimestamp = block.timestamp;
    }
 
    function removeLimits() external onlyOwner{
        maxTx = totalSupply();
        maxWallet = totalSupply();
        taxes.transfer = 0;
    }
 
    function setDelay(uint256 time) external onlyOwner{
        delay = time;
    }
 
    function setLimits(uint256 _maxTx, uint256 _maxWallet) external onlyOwner{
        maxTx = _maxTx * 10**9;
        maxWallet = _maxWallet * 10**9;
    }
 
    function setMarketingWallet(address newWallet) external onlyOwner{
        marketingWallet = newWallet;
    }
 
    function setIsExcludedFromFees(address _address, bool state) external onlyOwner {
        isExcludedFromFees[_address] = state;
    }
 
    function bulkIsExcludedFromFees(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i = 0; i < accounts.length; i++){
            isExcludedFromFees[accounts[i]] = state;
        }
    }
 
    function setBlacklist(address[] memory accounts, bool status) external onlyOwner{
        for(uint256 i = 0; i < accounts.length; i++){
            isBlacklisted[accounts[i]] = status;
        }
    }
 
    function rescueETH(uint256 weiAmount) external{
        payable(marketingWallet).sendValue(weiAmount);
    }
 
    function rescueERC20(address tokenAdd, uint256 amount) external{
        IERC20(tokenAdd).transfer(marketingWallet, amount);
    }
 
    // fallbacks
    receive() external payable {}
 
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"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":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkIsExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"earlyBuyer","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"earlyBuyerDailyMaxSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"earlyBuyerDailySell","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalTaxSet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finalTaxTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"lastTrade","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"setDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setIsExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTx","type":"uint256"},{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"setRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyTax","type":"uint256"},{"internalType":"uint256","name":"_sellTax","type":"uint256"},{"internalType":"uint256","name":"_transferTax","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"transfer","type":"uint256"}],"stateMutability":"view","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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"whitelistPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"whitelistedBuyer","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

600f80546001600160a01b03191673b7304f1c158e5a0741458d95d0f9c4e1a1149a5b1790556509184e72a0006011819055601255600160155560006016819055610e106019908155610120604052600a60c081905260e0829052610100839052601a55601b55601c553480156200007657600080fd5b506040516200303e3803806200303e833981016040819052620000999162000638565b604051806040016040528060078152602001660a6c6dee0ca40b60cb1b815250604051806040016040528060068152602001650a6c6dee0cab60d31b8152508160039081620000e991906200070e565b506004620000f882826200070e565b50466080526200010762000356565b60a0525062000118905033620003f2565b6200012b3366038d7ea4c6800062000444565b600d80546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000185573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ab919062000638565b6001600160a01b031663c9c6539630600d60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200020e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000234919062000638565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000282573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a8919062000638565b600e80546001600160a01b0319166001600160a01b0392831617905530600090815260076020526040808220805460ff1990811660019081179092553384528284208054821683179055600f549094168352912080549092161790556011546010556103e86200031760025490565b62000324906005620007f0565b62000330919062000810565b601355600d546200034f9030906001600160a01b03166000196200050b565b50620008c7565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60036040516200038a919062000833565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620004a05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060026000828254620004b49190620008b1565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b0383166200056f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840162000497565b6001600160a01b038216620005d25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000497565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b505050565b6000602082840312156200064b57600080fd5b81516001600160a01b03811681146200066357600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200069557607f821691505b602082108103620006b657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200063357600081815260208120601f850160051c81016020861015620006e55750805b601f850160051c820191505b818110156200070657828155600101620006f1565b505050505050565b81516001600160401b038111156200072a576200072a6200066a565b62000742816200073b845462000680565b84620006bc565b602080601f8311600181146200077a5760008415620007615750858301515b600019600386901b1c1916600185901b17855562000706565b600085815260208120601f198616915b82811015620007ab578886015182559484019460019091019084016200078a565b5085821015620007ca5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200080a576200080a620007da565b92915050565b6000826200082e57634e487b7160e01b600052601260045260246000fd5b500490565b6000808354620008438162000680565b600182811680156200085e57600181146200087457620008a5565b60ff1984168752821515830287019450620008a5565b8760005260208060002060005b858110156200089c5781548a82015290840190820162000881565b50505082870194505b50929695505050505050565b808201808211156200080a576200080a620007da565b60805160a051612751620008ed6000396000610bf801526000610bc301526127516000f3fe6080604052600436106103395760003560e01c80638cd4426d116101ab578063c26d7be0116100f7578063e25c392311610095578063f887ea401161006f578063f887ea40146109b6578063f8b45b05146109d6578063fabb0b4f146109ec578063fe575a8714610a0257600080fd5b8063e25c392314610960578063e9dae5ed14610976578063f2fde38b1461099657600080fd5b8063d505accf116100d1578063d505accf146108e0578063dd62ed3e14610900578063e01af92c14610920578063e177246e1461094057600080fd5b8063c26d7be01461087d578063c4590d3f146108aa578063d00efb2f146108ca57600080fd5b8063a457c2d711610164578063a9059cbb1161013e578063a9059cbb14610807578063adf1869314610827578063b48e665e14610847578063b5d7ab9a1461085d57600080fd5b8063a457c2d7146107a7578063a8aa1b31146107c7578063a8f43a60146107e757600080fd5b80638cd4426d146106fd5780638da5cb5b1461071d578063950e40501461073b57806395d89b41146107515780639ccde992146107665780639e252f001461078757600080fd5b80634d2ff7c111610285578063715018a611610223578063751039fc116101fd578063751039fc1461066e57806375f0a874146106835780637ecebe00146106bb5780638a8c523c146106e857600080fd5b8063715018a614610609578063728f8eea1461061e5780637437681e1461065857600080fd5b806365cf7c9b1161025f57806365cf7c9b146105865780636a42b8f81461059c5780636ddd1713146105b257806370a08231146105d357600080fd5b80634d2ff7c1146105065780634fbee193146105365780635d098b381461056657600080fd5b8063255f40b6116102f257806339509351116102cc578063395093511461046857806339937cde14610488578063445418ce146104b85780634ada218b146104e557600080fd5b8063255f40b614610417578063313ce567146104375780633644e5151461045357600080fd5b80630445b6671461034557806306fdde031461036e578063095ea7b3146103905780630e85d1e3146103c057806318160ddd146103e257806323b872dd146103f757600080fd5b3661034057005b600080fd5b34801561035157600080fd5b5061035b60105481565b6040519081526020015b60405180910390f35b34801561037a57600080fd5b50610383610a32565b6040516103659190612187565b34801561039c57600080fd5b506103b06103ab3660046121fa565b610ac4565b6040519015158152602001610365565b3480156103cc57600080fd5b506103e06103db366004612255565b610ade565b005b3480156103ee57600080fd5b5060025461035b565b34801561040357600080fd5b506103b061041236600461232c565b610b52565b34801561042357600080fd5b506103e061043236600461236d565b610b76565b34801561044357600080fd5b5060405160098152602001610365565b34801561045f57600080fd5b5061035b610bbf565b34801561047457600080fd5b506103b06104833660046121fa565b610c1a565b34801561049457600080fd5b506103b06104a33660046123a6565b60096020526000908152604090205460ff1681565b3480156104c457600080fd5b5061035b6104d33660046123a6565b600a6020526000908152604090205481565b3480156104f157600080fd5b50600f546103b090600160b01b900460ff1681565b34801561051257600080fd5b506103b06105213660046123a6565b60086020526000908152604090205460ff1681565b34801561054257600080fd5b506103b06105513660046123a6565b60076020526000908152604090205460ff1681565b34801561057257600080fd5b506103e06105813660046123a6565b610c3c565b34801561059257600080fd5b5061035b60185481565b3480156105a857600080fd5b5061035b60145481565b3480156105be57600080fd5b50600f546103b090600160a81b900460ff1681565b3480156105df57600080fd5b5061035b6105ee3660046123a6565b6001600160a01b031660009081526020819052604090205490565b34801561061557600080fd5b506103e0610c66565b34801561062a57600080fd5b50601a54601b54601c5461063d92919083565b60408051938452602084019290925290820152606001610365565b34801561066457600080fd5b5061035b60125481565b34801561067a57600080fd5b506103e0610c7a565b34801561068f57600080fd5b50600f546106a3906001600160a01b031681565b6040516001600160a01b039091168152602001610365565b3480156106c757600080fd5b5061035b6106d63660046123a6565b60056020526000908152604090205481565b3480156106f457600080fd5b506103e0610c95565b34801561070957600080fd5b506103e06107183660046121fa565b610d12565b34801561072957600080fd5b506006546001600160a01b03166106a3565b34801561074757600080fd5b5061035b60195481565b34801561075d57600080fd5b50610383610d89565b34801561077257600080fd5b50600f546103b090600160b81b900460ff1681565b34801561079357600080fd5b506103e06107a23660046123ca565b610d98565b3480156107b357600080fd5b506103b06107c23660046121fa565b610db1565b3480156107d357600080fd5b50600e546106a3906001600160a01b031681565b3480156107f357600080fd5b506103e0610802366004612255565b610e2c565b34801561081357600080fd5b506103b06108223660046121fa565b610e9b565b34801561083357600080fd5b506103e06108423660046123e3565b610ea9565b34801561085357600080fd5b5061035b60165481565b34801561086957600080fd5b506103e06108783660046123ca565b610edc565b34801561088957600080fd5b5061035b6108983660046123a6565b600c6020526000908152604090205481565b3480156108b657600080fd5b506103e06108c5366004612411565b610ef8565b3480156108d657600080fd5b5061035b60175481565b3480156108ec57600080fd5b506103e06108fb366004612433565b610f26565b34801561090c57600080fd5b5061035b61091b36600461236d565b61116a565b34801561092c57600080fd5b506103e061093b3660046124aa565b611195565b34801561094c57600080fd5b506103e061095b3660046123ca565b6111bb565b34801561096c57600080fd5b5061035b60135481565b34801561098257600080fd5b506103e06109913660046124c7565b6111c8565b3480156109a257600080fd5b506103e06109b13660046123a6565b6111f6565b3480156109c257600080fd5b50600d546106a3906001600160a01b031681565b3480156109e257600080fd5b5061035b60115481565b3480156109f857600080fd5b5061035b60155481565b348015610a0e57600080fd5b506103b0610a1d3660046123a6565b600b6020526000908152604090205460ff1681565b606060038054610a41906124f3565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6d906124f3565b8015610aba5780601f10610a8f57610100808354040283529160200191610aba565b820191906000526020600020905b815481529060010190602001808311610a9d57829003601f168201915b5050505050905090565b600033610ad281858561126c565b60019150505b92915050565b610ae6611390565b60005b8251811015610b4d5781600b6000858481518110610b0957610b0961252d565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b4581612559565b915050610ae9565b505050565b600033610b608582856113ea565b610b6b858585611464565b506001949350505050565b610b7e611390565b600d80546001600160a01b038085166001600160a01b031992831617909255600e805492841692909116919091179055610bbb308360001961126c565b5050565b60007f00000000000000000000000000000000000000000000000000000000000000004614610bf557610bf0611bc8565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b600033610ad2818585610c2d838361116a565b610c379190612572565b61126c565b610c44611390565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b610c6e611390565b610c786000611c62565b565b610c82611390565b6002546012556002546011556000601c55565b610c9d611390565b600f54600160b01b900460ff1615610cee5760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e48195b98589b1959608a1b60448201526064015b60405180910390fd5b600f805461ffff60a81b191661010160a81b1790556032601c554360175542601855565b600f5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4d9190612585565b606060048054610a41906124f3565b600f54610dae906001600160a01b031682611cb4565b50565b60003381610dbf828661116a565b905083811015610e1f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610ce5565b610b6b828686840361126c565b610e34611390565b60005b8251811015610b4d578160076000858481518110610e5757610e5761252d565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610e9381612559565b915050610e37565b600033610ad2818585611464565b610eb1611390565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b610ee4611390565b610ef281633b9aca006125a2565b60105550565b610f00611390565b610f0e82633b9aca006125a2565b601255610f1f81633b9aca006125a2565b6011555050565b42841015610f765760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606401610ce5565b60006001610f82610bbf565b6001600160a01b038a811660008181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa15801561108e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906110c45750876001600160a01b0316816001600160a01b0316145b6111015760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610ce5565b6001600160a01b0390811660009081526001602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61119d611390565b600f8054911515600160a81b0260ff60a81b19909216919091179055565b6111c3611390565b601455565b6111d0611390565b604080516060810182528481526020810184905201819052601a92909255601b55601c55565b6111fe611390565b6001600160a01b0381166112635760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ce5565b610dae81611c62565b6001600160a01b0383166112ce5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610ce5565b6001600160a01b03821661132f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610ce5565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6006546001600160a01b03163314610c785760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ce5565b60006113f6848461116a565b9050600019811461145e57818110156114515760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610ce5565b61145e848484840361126c565b50505050565b600081116114c65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610ce5565b600f54600160a01b900460ff16806114f657506001600160a01b03831660009081526007602052604090205460ff165b8061151957506001600160a01b03821660009081526007602052604090205460ff165b1561152957610b4d838383611dcd565b600f54600160b01b900460ff166115785760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610ce5565b6001600160a01b0383166000908152600b602052604090205460ff161580156115ba57506001600160a01b0382166000908152600b602052604090205460ff16155b6115fc5760405162461bcd60e51b8152602060048201526013602482015272426c61636b6c6973746564206164647265737360681b6044820152606401610ce5565b600f54600160b81b900460ff161580156116245750426018546019546116229190612572565b105b1561166a57600f805460ff60b81b1916600160b81b17905560408051606081018252600380825260208201819052600091909201819052601a829055601b91909155601c555b4260165460185461167b9190612572565b1115611716576001600160a01b03831660009081526008602052604090205460ff161580156116c357506001600160a01b03821660009081526008602052604090205460ff16155b15611711576012548111156117115760405162461bcd60e51b815260206004820152601460248201527313585e151e081b1a5b5a5d08195e18d95959195960621b6044820152606401610ce5565b61175f565b60125481111561175f5760405162461bcd60e51b815260206004820152601460248201527313585e151e081b1a5b5a5d08195e18d95959195960621b6044820152606401610ce5565b600e546001600160a01b038481169116146118ea576001600160a01b03831660009081526009602052604090205460ff161561186b576001600160a01b0383166000908152600c602052604090205462015180906117bd90426125b9565b106117c85760006013555b6013546001600160a01b0384166000908152600a60205260409020546117ef908390612572565b111561183d5760405162461bcd60e51b815260206004820152601f60248201527f4561726c792062757965722073656c6c206c696d6974206578636565646564006044820152606401610ce5565b6001600160a01b0383166000908152600a602052604081208054839290611865908490612572565b90915550505b6014546001600160a01b0384166000908152600c6020526040902054429161189291612572565b11156118ce5760405162461bcd60e51b815260206004820152600b60248201526a5741495420504c4541534560a81b6044820152606401610ce5565b6001600160a01b0383166000908152600c602052604090204290555b600e546001600160a01b03838116911614611a4057426016546018546119109190612572565b11801561193657506001600160a01b03821660009081526008602052604090205460ff16155b1561194e576001600160a01b038216600052600b6020525b60115481611971846001600160a01b031660009081526020819052604090205490565b61197b9190612572565b11156119c15760405162461bcd60e51b815260206004820152601560248201527415d85b1b195d081b1a5b5a5d08195e18d959591959605a1b6044820152606401610ce5565b6014546001600160a01b0383166000908152600c602052604090205442916119e891612572565b1115611a245760405162461bcd60e51b815260206004820152600b60248201526a5741495420504c4541534560a81b6044820152606401610ce5565b6001600160a01b0382166000908152600c602052604090204290555b6001600160a01b03821660009081526008602052604090205460ff168015611a755750600e546001600160a01b038481169116145b8015611a8f575042601654601854611a8d9190612572565b115b15611ab8576001600160a01b0382166000908152600960205260409020805460ff191660011790555b600e546000906001600160a01b0390811690841603611af257601b54606490611ae190846125a2565b611aeb91906125cc565b9050611b5a565b600e546001600160a01b038581169116148015611b2857506001600160a01b03831660009081526008602052604090205460ff16155b15611b3d57601a54606490611ae190846125a2565b601c54606490611b4d90846125a2565b611b5791906125cc565b90505b600f54600160a81b900460ff168015611b805750600e546001600160a01b038481169116145b8015611b965750600f54600160a01b900460ff16155b15611ba357611ba3611f71565b611bb78484611bb284866125b9565b611dcd565b801561145e5761145e843083611dcd565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6003604051611bfa91906125ee565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80471015611d045760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610ce5565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611d51576040519150601f19603f3d011682016040523d82523d6000602084013e611d56565b606091505b5050905080610b4d5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610ce5565b6001600160a01b038316611e315760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610ce5565b6001600160a01b038216611e935760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610ce5565b6001600160a01b03831660009081526020819052604090205481811015611f0b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610ce5565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361145e565b600f54600160a01b900460ff16610c7857600f805460ff60a01b1916600160a01b1790553060009081526020819052604081205490506010548110612036576010546012548210801590611fc9575060115460105414155b15611fd357506012545b6011546010540361200357612710611fea60025490565b611ff59060196125a2565b611fff91906125cc565b6010555b4761200d82612046565b600061201982476125b9565b600f54909150612032906001600160a01b031682611cb4565b5050505b50600f805460ff60a01b19169055565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061207b5761207b61252d565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156120d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120f8919061268d565b8160018151811061210b5761210b61252d565b6001600160a01b039283166020918202929092010152600d5460405163791ac94760e01b815291169063791ac947906121519085906000908690309042906004016126aa565b600060405180830381600087803b15801561216b57600080fd5b505af115801561217f573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b818110156121b457858101830151858201604001528201612198565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610dae57600080fd5b80356121f5816121d5565b919050565b6000806040838503121561220d57600080fd5b8235612218816121d5565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b8015158114610dae57600080fd5b80356121f58161223c565b6000806040838503121561226857600080fd5b823567ffffffffffffffff8082111561228057600080fd5b818501915085601f83011261229457600080fd5b81356020828211156122a8576122a8612226565b8160051b604051601f19603f830116810181811086821117156122cd576122cd612226565b6040529283528183019350848101820192898411156122eb57600080fd5b948201945b8386101561231057612301866121ea565b855294820194938201936122f0565b965061231f905087820161224a565b9450505050509250929050565b60008060006060848603121561234157600080fd5b833561234c816121d5565b9250602084013561235c816121d5565b929592945050506040919091013590565b6000806040838503121561238057600080fd5b823561238b816121d5565b9150602083013561239b816121d5565b809150509250929050565b6000602082840312156123b857600080fd5b81356123c3816121d5565b9392505050565b6000602082840312156123dc57600080fd5b5035919050565b600080604083850312156123f657600080fd5b8235612401816121d5565b9150602083013561239b8161223c565b6000806040838503121561242457600080fd5b50508035926020909101359150565b600080600080600080600060e0888a03121561244e57600080fd5b8735612459816121d5565b96506020880135612469816121d5565b95506040880135945060608801359350608088013560ff8116811461248d57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000602082840312156124bc57600080fd5b81356123c38161223c565b6000806000606084860312156124dc57600080fd5b505081359360208301359350604090920135919050565b600181811c9082168061250757607f821691505b60208210810361252757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161256b5761256b612543565b5060010190565b80820180821115610ad857610ad8612543565b60006020828403121561259757600080fd5b81516123c38161223c565b8082028115828204841417610ad857610ad8612543565b81810381811115610ad857610ad8612543565b6000826125e957634e487b7160e01b600052601260045260246000fd5b500490565b600080835481600182811c91508083168061260a57607f831692505b6020808410820361262957634e487b7160e01b86526022600452602486fd5b81801561263d57600181146126525761267f565b60ff198616895284151585028901965061267f565b60008a81526020902060005b868110156126775781548b82015290850190830161265e565b505084890196505b509498975050505050505050565b60006020828403121561269f57600080fd5b81516123c3816121d5565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156126fa5784516001600160a01b0316835293830193918301916001016126d5565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212204bc4b876a5966854248709ae6960dfbdc116c77084616aaadf84296fa0ee91d664736f6c634300081200330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106103395760003560e01c80638cd4426d116101ab578063c26d7be0116100f7578063e25c392311610095578063f887ea401161006f578063f887ea40146109b6578063f8b45b05146109d6578063fabb0b4f146109ec578063fe575a8714610a0257600080fd5b8063e25c392314610960578063e9dae5ed14610976578063f2fde38b1461099657600080fd5b8063d505accf116100d1578063d505accf146108e0578063dd62ed3e14610900578063e01af92c14610920578063e177246e1461094057600080fd5b8063c26d7be01461087d578063c4590d3f146108aa578063d00efb2f146108ca57600080fd5b8063a457c2d711610164578063a9059cbb1161013e578063a9059cbb14610807578063adf1869314610827578063b48e665e14610847578063b5d7ab9a1461085d57600080fd5b8063a457c2d7146107a7578063a8aa1b31146107c7578063a8f43a60146107e757600080fd5b80638cd4426d146106fd5780638da5cb5b1461071d578063950e40501461073b57806395d89b41146107515780639ccde992146107665780639e252f001461078757600080fd5b80634d2ff7c111610285578063715018a611610223578063751039fc116101fd578063751039fc1461066e57806375f0a874146106835780637ecebe00146106bb5780638a8c523c146106e857600080fd5b8063715018a614610609578063728f8eea1461061e5780637437681e1461065857600080fd5b806365cf7c9b1161025f57806365cf7c9b146105865780636a42b8f81461059c5780636ddd1713146105b257806370a08231146105d357600080fd5b80634d2ff7c1146105065780634fbee193146105365780635d098b381461056657600080fd5b8063255f40b6116102f257806339509351116102cc578063395093511461046857806339937cde14610488578063445418ce146104b85780634ada218b146104e557600080fd5b8063255f40b614610417578063313ce567146104375780633644e5151461045357600080fd5b80630445b6671461034557806306fdde031461036e578063095ea7b3146103905780630e85d1e3146103c057806318160ddd146103e257806323b872dd146103f757600080fd5b3661034057005b600080fd5b34801561035157600080fd5b5061035b60105481565b6040519081526020015b60405180910390f35b34801561037a57600080fd5b50610383610a32565b6040516103659190612187565b34801561039c57600080fd5b506103b06103ab3660046121fa565b610ac4565b6040519015158152602001610365565b3480156103cc57600080fd5b506103e06103db366004612255565b610ade565b005b3480156103ee57600080fd5b5060025461035b565b34801561040357600080fd5b506103b061041236600461232c565b610b52565b34801561042357600080fd5b506103e061043236600461236d565b610b76565b34801561044357600080fd5b5060405160098152602001610365565b34801561045f57600080fd5b5061035b610bbf565b34801561047457600080fd5b506103b06104833660046121fa565b610c1a565b34801561049457600080fd5b506103b06104a33660046123a6565b60096020526000908152604090205460ff1681565b3480156104c457600080fd5b5061035b6104d33660046123a6565b600a6020526000908152604090205481565b3480156104f157600080fd5b50600f546103b090600160b01b900460ff1681565b34801561051257600080fd5b506103b06105213660046123a6565b60086020526000908152604090205460ff1681565b34801561054257600080fd5b506103b06105513660046123a6565b60076020526000908152604090205460ff1681565b34801561057257600080fd5b506103e06105813660046123a6565b610c3c565b34801561059257600080fd5b5061035b60185481565b3480156105a857600080fd5b5061035b60145481565b3480156105be57600080fd5b50600f546103b090600160a81b900460ff1681565b3480156105df57600080fd5b5061035b6105ee3660046123a6565b6001600160a01b031660009081526020819052604090205490565b34801561061557600080fd5b506103e0610c66565b34801561062a57600080fd5b50601a54601b54601c5461063d92919083565b60408051938452602084019290925290820152606001610365565b34801561066457600080fd5b5061035b60125481565b34801561067a57600080fd5b506103e0610c7a565b34801561068f57600080fd5b50600f546106a3906001600160a01b031681565b6040516001600160a01b039091168152602001610365565b3480156106c757600080fd5b5061035b6106d63660046123a6565b60056020526000908152604090205481565b3480156106f457600080fd5b506103e0610c95565b34801561070957600080fd5b506103e06107183660046121fa565b610d12565b34801561072957600080fd5b506006546001600160a01b03166106a3565b34801561074757600080fd5b5061035b60195481565b34801561075d57600080fd5b50610383610d89565b34801561077257600080fd5b50600f546103b090600160b81b900460ff1681565b34801561079357600080fd5b506103e06107a23660046123ca565b610d98565b3480156107b357600080fd5b506103b06107c23660046121fa565b610db1565b3480156107d357600080fd5b50600e546106a3906001600160a01b031681565b3480156107f357600080fd5b506103e0610802366004612255565b610e2c565b34801561081357600080fd5b506103b06108223660046121fa565b610e9b565b34801561083357600080fd5b506103e06108423660046123e3565b610ea9565b34801561085357600080fd5b5061035b60165481565b34801561086957600080fd5b506103e06108783660046123ca565b610edc565b34801561088957600080fd5b5061035b6108983660046123a6565b600c6020526000908152604090205481565b3480156108b657600080fd5b506103e06108c5366004612411565b610ef8565b3480156108d657600080fd5b5061035b60175481565b3480156108ec57600080fd5b506103e06108fb366004612433565b610f26565b34801561090c57600080fd5b5061035b61091b36600461236d565b61116a565b34801561092c57600080fd5b506103e061093b3660046124aa565b611195565b34801561094c57600080fd5b506103e061095b3660046123ca565b6111bb565b34801561096c57600080fd5b5061035b60135481565b34801561098257600080fd5b506103e06109913660046124c7565b6111c8565b3480156109a257600080fd5b506103e06109b13660046123a6565b6111f6565b3480156109c257600080fd5b50600d546106a3906001600160a01b031681565b3480156109e257600080fd5b5061035b60115481565b3480156109f857600080fd5b5061035b60155481565b348015610a0e57600080fd5b506103b0610a1d3660046123a6565b600b6020526000908152604090205460ff1681565b606060038054610a41906124f3565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6d906124f3565b8015610aba5780601f10610a8f57610100808354040283529160200191610aba565b820191906000526020600020905b815481529060010190602001808311610a9d57829003601f168201915b5050505050905090565b600033610ad281858561126c565b60019150505b92915050565b610ae6611390565b60005b8251811015610b4d5781600b6000858481518110610b0957610b0961252d565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b4581612559565b915050610ae9565b505050565b600033610b608582856113ea565b610b6b858585611464565b506001949350505050565b610b7e611390565b600d80546001600160a01b038085166001600160a01b031992831617909255600e805492841692909116919091179055610bbb308360001961126c565b5050565b60007f00000000000000000000000000000000000000000000000000000000000000014614610bf557610bf0611bc8565b905090565b507fa793eb380a542256cb9d50ee5ea0ef43042019b681330dc1de96f8697da3ed2790565b600033610ad2818585610c2d838361116a565b610c379190612572565b61126c565b610c44611390565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b610c6e611390565b610c786000611c62565b565b610c82611390565b6002546012556002546011556000601c55565b610c9d611390565b600f54600160b01b900460ff1615610cee5760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e48195b98589b1959608a1b60448201526064015b60405180910390fd5b600f805461ffff60a81b191661010160a81b1790556032601c554360175542601855565b600f5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4d9190612585565b606060048054610a41906124f3565b600f54610dae906001600160a01b031682611cb4565b50565b60003381610dbf828661116a565b905083811015610e1f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610ce5565b610b6b828686840361126c565b610e34611390565b60005b8251811015610b4d578160076000858481518110610e5757610e5761252d565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610e9381612559565b915050610e37565b600033610ad2818585611464565b610eb1611390565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b610ee4611390565b610ef281633b9aca006125a2565b60105550565b610f00611390565b610f0e82633b9aca006125a2565b601255610f1f81633b9aca006125a2565b6011555050565b42841015610f765760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606401610ce5565b60006001610f82610bbf565b6001600160a01b038a811660008181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa15801561108e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906110c45750876001600160a01b0316816001600160a01b0316145b6111015760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610ce5565b6001600160a01b0390811660009081526001602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61119d611390565b600f8054911515600160a81b0260ff60a81b19909216919091179055565b6111c3611390565b601455565b6111d0611390565b604080516060810182528481526020810184905201819052601a92909255601b55601c55565b6111fe611390565b6001600160a01b0381166112635760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ce5565b610dae81611c62565b6001600160a01b0383166112ce5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610ce5565b6001600160a01b03821661132f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610ce5565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6006546001600160a01b03163314610c785760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ce5565b60006113f6848461116a565b9050600019811461145e57818110156114515760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610ce5565b61145e848484840361126c565b50505050565b600081116114c65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610ce5565b600f54600160a01b900460ff16806114f657506001600160a01b03831660009081526007602052604090205460ff165b8061151957506001600160a01b03821660009081526007602052604090205460ff165b1561152957610b4d838383611dcd565b600f54600160b01b900460ff166115785760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610ce5565b6001600160a01b0383166000908152600b602052604090205460ff161580156115ba57506001600160a01b0382166000908152600b602052604090205460ff16155b6115fc5760405162461bcd60e51b8152602060048201526013602482015272426c61636b6c6973746564206164647265737360681b6044820152606401610ce5565b600f54600160b81b900460ff161580156116245750426018546019546116229190612572565b105b1561166a57600f805460ff60b81b1916600160b81b17905560408051606081018252600380825260208201819052600091909201819052601a829055601b91909155601c555b4260165460185461167b9190612572565b1115611716576001600160a01b03831660009081526008602052604090205460ff161580156116c357506001600160a01b03821660009081526008602052604090205460ff16155b15611711576012548111156117115760405162461bcd60e51b815260206004820152601460248201527313585e151e081b1a5b5a5d08195e18d95959195960621b6044820152606401610ce5565b61175f565b60125481111561175f5760405162461bcd60e51b815260206004820152601460248201527313585e151e081b1a5b5a5d08195e18d95959195960621b6044820152606401610ce5565b600e546001600160a01b038481169116146118ea576001600160a01b03831660009081526009602052604090205460ff161561186b576001600160a01b0383166000908152600c602052604090205462015180906117bd90426125b9565b106117c85760006013555b6013546001600160a01b0384166000908152600a60205260409020546117ef908390612572565b111561183d5760405162461bcd60e51b815260206004820152601f60248201527f4561726c792062757965722073656c6c206c696d6974206578636565646564006044820152606401610ce5565b6001600160a01b0383166000908152600a602052604081208054839290611865908490612572565b90915550505b6014546001600160a01b0384166000908152600c6020526040902054429161189291612572565b11156118ce5760405162461bcd60e51b815260206004820152600b60248201526a5741495420504c4541534560a81b6044820152606401610ce5565b6001600160a01b0383166000908152600c602052604090204290555b600e546001600160a01b03838116911614611a4057426016546018546119109190612572565b11801561193657506001600160a01b03821660009081526008602052604090205460ff16155b1561194e576001600160a01b038216600052600b6020525b60115481611971846001600160a01b031660009081526020819052604090205490565b61197b9190612572565b11156119c15760405162461bcd60e51b815260206004820152601560248201527415d85b1b195d081b1a5b5a5d08195e18d959591959605a1b6044820152606401610ce5565b6014546001600160a01b0383166000908152600c602052604090205442916119e891612572565b1115611a245760405162461bcd60e51b815260206004820152600b60248201526a5741495420504c4541534560a81b6044820152606401610ce5565b6001600160a01b0382166000908152600c602052604090204290555b6001600160a01b03821660009081526008602052604090205460ff168015611a755750600e546001600160a01b038481169116145b8015611a8f575042601654601854611a8d9190612572565b115b15611ab8576001600160a01b0382166000908152600960205260409020805460ff191660011790555b600e546000906001600160a01b0390811690841603611af257601b54606490611ae190846125a2565b611aeb91906125cc565b9050611b5a565b600e546001600160a01b038581169116148015611b2857506001600160a01b03831660009081526008602052604090205460ff16155b15611b3d57601a54606490611ae190846125a2565b601c54606490611b4d90846125a2565b611b5791906125cc565b90505b600f54600160a81b900460ff168015611b805750600e546001600160a01b038481169116145b8015611b965750600f54600160a01b900460ff16155b15611ba357611ba3611f71565b611bb78484611bb284866125b9565b611dcd565b801561145e5761145e843083611dcd565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6003604051611bfa91906125ee565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80471015611d045760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610ce5565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611d51576040519150601f19603f3d011682016040523d82523d6000602084013e611d56565b606091505b5050905080610b4d5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610ce5565b6001600160a01b038316611e315760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610ce5565b6001600160a01b038216611e935760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610ce5565b6001600160a01b03831660009081526020819052604090205481811015611f0b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610ce5565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361145e565b600f54600160a01b900460ff16610c7857600f805460ff60a01b1916600160a01b1790553060009081526020819052604081205490506010548110612036576010546012548210801590611fc9575060115460105414155b15611fd357506012545b6011546010540361200357612710611fea60025490565b611ff59060196125a2565b611fff91906125cc565b6010555b4761200d82612046565b600061201982476125b9565b600f54909150612032906001600160a01b031682611cb4565b5050505b50600f805460ff60a01b19169055565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061207b5761207b61252d565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156120d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120f8919061268d565b8160018151811061210b5761210b61252d565b6001600160a01b039283166020918202929092010152600d5460405163791ac94760e01b815291169063791ac947906121519085906000908690309042906004016126aa565b600060405180830381600087803b15801561216b57600080fd5b505af115801561217f573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b818110156121b457858101830151858201604001528201612198565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610dae57600080fd5b80356121f5816121d5565b919050565b6000806040838503121561220d57600080fd5b8235612218816121d5565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b8015158114610dae57600080fd5b80356121f58161223c565b6000806040838503121561226857600080fd5b823567ffffffffffffffff8082111561228057600080fd5b818501915085601f83011261229457600080fd5b81356020828211156122a8576122a8612226565b8160051b604051601f19603f830116810181811086821117156122cd576122cd612226565b6040529283528183019350848101820192898411156122eb57600080fd5b948201945b8386101561231057612301866121ea565b855294820194938201936122f0565b965061231f905087820161224a565b9450505050509250929050565b60008060006060848603121561234157600080fd5b833561234c816121d5565b9250602084013561235c816121d5565b929592945050506040919091013590565b6000806040838503121561238057600080fd5b823561238b816121d5565b9150602083013561239b816121d5565b809150509250929050565b6000602082840312156123b857600080fd5b81356123c3816121d5565b9392505050565b6000602082840312156123dc57600080fd5b5035919050565b600080604083850312156123f657600080fd5b8235612401816121d5565b9150602083013561239b8161223c565b6000806040838503121561242457600080fd5b50508035926020909101359150565b600080600080600080600060e0888a03121561244e57600080fd5b8735612459816121d5565b96506020880135612469816121d5565b95506040880135945060608801359350608088013560ff8116811461248d57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000602082840312156124bc57600080fd5b81356123c38161223c565b6000806000606084860312156124dc57600080fd5b505081359360208301359350604090920135919050565b600181811c9082168061250757607f821691505b60208210810361252757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161256b5761256b612543565b5060010190565b80820180821115610ad857610ad8612543565b60006020828403121561259757600080fd5b81516123c38161223c565b8082028115828204841417610ad857610ad8612543565b81810381811115610ad857610ad8612543565b6000826125e957634e487b7160e01b600052601260045260246000fd5b500490565b600080835481600182811c91508083168061260a57607f831692505b6020808410820361262957634e487b7160e01b86526022600452602486fd5b81801561263d57600181146126525761267f565b60ff198616895284151585028901965061267f565b60008a81526020902060005b868110156126775781548b82015290850190830161265e565b505084890196505b509498975050505050505050565b60006020828403121561269f57600080fd5b81516123c3816121d5565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156126fa5784516001600160a01b0316835293830193918301916001016126d5565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212204bc4b876a5966854248709ae6960dfbdc116c77084616aaadf84296fa0ee91d664736f6c63430008120033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

14554:8219:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15312:28;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;15312:28:0;;;;;;;;6543:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;7482:201::-;;;;;;;;;;-1:-1:-1;7482:201:0;;;;;:::i;:::-;;:::i;:::-;;;1509:14:1;;1502:22;1484:41;;1472:2;1457:18;7482:201:0;1344:187:1;22247:204:0;;;;;;;;;;-1:-1:-1;22247:204:0;;;;;:::i;:::-;;:::i;:::-;;6867:108;;;;;;;;;;-1:-1:-1;6955:12:0;;6867:108;;7692:295;;;;;;;;;;-1:-1:-1;7692:295:0;;;;;:::i;:::-;;:::i;20828:224::-;;;;;;;;;;-1:-1:-1;20828:224:0;;;;;:::i;:::-;;:::i;16596:92::-;;;;;;;;;;-1:-1:-1;16596:92:0;;16679:1;4116:36:1;;4104:2;4089:18;16596:92:0;3974:184:1;10913:179:0;;;;;;;;;;;;;:::i;7996:238::-;;;;;;;;;;-1:-1:-1;7996:238:0;;;;;:::i;:::-;;:::i;14776:56::-;;;;;;;;;;-1:-1:-1;14776:56:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14839:68;;;;;;;;;;-1:-1:-1;14839:68:0;;;;;:::i;:::-;;;;;;;;;;;;;;15246:26;;;;;;;;;;-1:-1:-1;15246:26:0;;;;-1:-1:-1;;;15246:26:0;;;;;;14707:62;;;;;;;;;;-1:-1:-1;14707:62:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14637:63;;;;;;;;;;-1:-1:-1;14637:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21757:111;;;;;;;;;;-1:-1:-1;21757:111:0;;;;;:::i;:::-;;:::i;15626:30::-;;;;;;;;;;;;;;;;15481:20;;;;;;;;;;;;;;;;15216:23;;;;;;;;;;-1:-1:-1;15216:23:0;;;;-1:-1:-1;;;15216:23:0;;;;;;6984:127;;;;;;;;;;-1:-1:-1;6984:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7085:18:0;7058:7;7085:18;;;;;;;;;;;;6984:127;4422:103;;;;;;;;;;;;;:::i;15820:35::-;;;;;;;;;;-1:-1:-1;15820:35:0;;;;;;;;;;;;;;;;4799:25:1;;;4855:2;4840:18;;4833:34;;;;4883:18;;;4876:34;4787:2;4772:18;15820:35:0;4597:319:1;15394:36:0;;;;;;;;;;;;;;;;21347:147;;;;;;;;;;;;;:::i;15103:75::-;;;;;;;;;;-1:-1:-1;15103:75:0;;;;-1:-1:-1;;;;;15103:75:0;;;;;;-1:-1:-1;;;;;5085:32:1;;;5067:51;;5055:2;5040:18;15103:75:0;4921:203:1;6260:41:0;;;;;;;;;;-1:-1:-1;6260:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;21061:277;;;;;;;;;;;;;:::i;22579:132::-;;;;;;;;;;-1:-1:-1;22579:132:0;;;;;:::i;:::-;;:::i;4185:87::-;;;;;;;;;;-1:-1:-1;4258:6:0;;-1:-1:-1;;;;;4258:6:0;4185:87;;15663:42;;;;;;;;;;;;;;;;6652:104;;;;;;;;;;;;;:::i;15279:23::-;;;;;;;;;;-1:-1:-1;15279:23:0;;;;-1:-1:-1;;;15279:23:0;;;;;;22460:110;;;;;;;;;;-1:-1:-1;22460:110:0;;;;;:::i;:::-;;:::i;8243:437::-;;;;;;;;;;-1:-1:-1;8243:437:0;;;;;:::i;:::-;;:::i;15077:19::-;;;;;;;;;;-1:-1:-1;15077:19:0;;;;-1:-1:-1;;;;;15077:19:0;;;22021:217;;;;;;;;;;-1:-1:-1;22021:217:0;;;;;:::i;:::-;;:::i;7120:193::-;;;;;;;;;;-1:-1:-1;7120:193:0;;;;;:::i;:::-;;:::i;21877:135::-;;;;;;;;;;-1:-1:-1;21877:135:0;;;;;:::i;:::-;;:::i;15544:42::-;;;;;;;;;;;;;;;;20541:110;;;;;;;;;;-1:-1:-1;20541:110:0;;;;;:::i;:::-;;:::i;14979:60::-;;;;;;;;;;-1:-1:-1;14979:60:0;;;;;:::i;:::-;;;;;;;;;;;;;;21593:155;;;;;;;;;;-1:-1:-1;21593:155:0;;;;;:::i;:::-;;:::i;15593:26::-;;;;;;;;;;;;;;;;9376:1529;;;;;;;;;;-1:-1:-1;9376:1529:0;;;;;:::i;:::-;;:::i;7322:151::-;;;;;;;;;;-1:-1:-1;7322:151:0;;;;;:::i;:::-;;:::i;20437:95::-;;;;;;;;;;-1:-1:-1;20437:95:0;;;;;:::i;:::-;;:::i;21503:81::-;;;;;;;;;;-1:-1:-1;21503:81:0;;;;;:::i;:::-;;:::i;15437:37::-;;;;;;;;;;;;;;;;20660:159;;;;;;;;;;-1:-1:-1;20660:159:0;;;;;:::i;:::-;;:::i;4534:201::-;;;;;;;;;;-1:-1:-1;4534:201:0;;;;;:::i;:::-;;:::i;15049:21::-;;;;;;;;;;-1:-1:-1;15049:21:0;;;;-1:-1:-1;;;;;15049:21:0;;;15347:40;;;;;;;;;;;;;;;;15508:29;;;;;;;;;;;;;;;;14914:58;;;;;;;;;;-1:-1:-1;14914:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6543:100;6597:13;6630:5;6623:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6543:100;:::o;7482:201::-;7565:4;3732:10;7621:32;3732:10;7637:7;7646:6;7621:8;:32::i;:::-;7671:4;7664:11;;;7482:201;;;;;:::o;22247:204::-;4143:13;:11;:13::i;:::-;22342:9:::1;22338:106;22361:8;:15;22357:1;:19;22338:106;;;22426:6;22397:13;:26;22411:8;22420:1;22411:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;22397:26:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;22397:26:0;:35;;-1:-1:-1;;22397:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22378:3;::::1;::::0;::::1;:::i;:::-;;;;22338:106;;;;22247:204:::0;;:::o;7692:295::-;7823:4;3732:10;7881:38;7897:4;3732:10;7912:6;7881:15;:38::i;:::-;7930:27;7940:4;7946:2;7950:6;7930:9;:27::i;:::-;-1:-1:-1;7975:4:0;;7692:295;-1:-1:-1;;;;7692:295:0:o;20828:224::-;4143:13;:11;:13::i;:::-;20919:6:::1;:27:::0;;-1:-1:-1;;;;;20919:27:0;;::::1;-1:-1:-1::0;;;;;;20919:27:0;;::::1;;::::0;;;20957:4:::1;:14:::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;20982:62:::1;20999:4;20936:9:::0;-1:-1:-1;;20982:8:0::1;:62::i;:::-;20828:224:::0;;:::o;10913:179::-;10970:7;11014:16;10997:13;:33;:87;;11060:24;:22;:24::i;:::-;10990:94;;10913:179;:::o;10997:87::-;-1:-1:-1;11033:24:0;;10913:179::o;7996:238::-;8084:4;3732:10;8140:64;3732:10;8156:7;8193:10;8165:25;3732:10;8156:7;8165:9;:25::i;:::-;:38;;;;:::i;:::-;8140:8;:64::i;21757:111::-;4143:13;:11;:13::i;:::-;21833:15:::1;:27:::0;;-1:-1:-1;;;;;;21833:27:0::1;-1:-1:-1::0;;;;;21833:27:0;;;::::1;::::0;;;::::1;::::0;;21757:111::o;4422:103::-;4143:13;:11;:13::i;:::-;4487:30:::1;4514:1;4487:18;:30::i;:::-;4422:103::o:0;21347:147::-;4143:13;:11;:13::i;:::-;6955:12;;21400:5:::1;:21:::0;6955:12;;21432:9:::1;:25:::0;21485:1:::1;21468:14:::0;:18;21347:147::o;21061:277::-;4143:13;:11;:13::i;:::-;21124:14:::1;::::0;-1:-1:-1;;;21124:14:0;::::1;;;21123:15;21115:43;;;::::0;-1:-1:-1;;;21115:43:0;;8699:2:1;21115:43:0::1;::::0;::::1;8681:21:1::0;8738:2;8718:18;;;8711:30;-1:-1:-1;;;8757:18:1;;;8750:45;8812:18;;21115:43:0::1;;;;;;;;;21169:14;:21:::0;;-1:-1:-1;;;;21201:18:0;-1:-1:-1;;;21201:18:0;;;21247:2:::1;21230:14:::0;:19;21274:12:::1;21260:11;:26:::0;21315:15:::1;21297;:33:::0;21061:277::o;22579:132::-;22679:15;;22653:50;;-1:-1:-1;;;22653:50:0;;-1:-1:-1;;;;;22679:15:0;;;22653:50;;;9015:51:1;9082:18;;;9075:34;;;22653:25:0;;;;;;8988:18:1;;22653:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6652:104::-;6708:13;6741:7;6734:14;;;;;:::i;22460:110::-;22525:15;;22517:45;;-1:-1:-1;;;;;22525:15:0;22552:9;22517:34;:45::i;:::-;22460:110;:::o;8243:437::-;8336:4;3732:10;8336:4;8419:25;3732:10;8436:7;8419:9;:25::i;:::-;8392:52;;8483:15;8463:16;:35;;8455:85;;;;-1:-1:-1;;;8455:85:0;;9572:2:1;8455:85:0;;;9554:21:1;9611:2;9591:18;;;9584:30;9650:34;9630:18;;;9623:62;-1:-1:-1;;;9701:18:1;;;9694:35;9746:19;;8455:85:0;9370:401:1;8455:85:0;8576:60;8585:5;8592:7;8620:15;8601:16;:34;8576:8;:60::i;22021:217::-;4143:13;:11;:13::i;:::-;22125:9:::1;22121:110;22144:8;:15;22140:1;:19;22121:110;;;22214:5;22180:18;:31;22199:8;22208:1;22199:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;22180:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;22180:31:0;:39;;-1:-1:-1;;22180:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22161:3;::::1;::::0;::::1;:::i;:::-;;;;22121:110;;7120:193:::0;7199:4;3732:10;7255:28;3732:10;7272:2;7276:6;7255:9;:28::i;21877:135::-;4143:13;:11;:13::i;:::-;-1:-1:-1;;;;;21968:28:0;;;::::1;;::::0;;;:18:::1;:28;::::0;;;;:36;;-1:-1:-1;;21968:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21877:135::o;20541:110::-;4143:13;:11;:13::i;:::-;20629:14:::1;:6:::0;20638:5:::1;20629:14;:::i;:::-;20613:13;:30:::0;-1:-1:-1;20541:110:0:o;21593:155::-;4143:13;:11;:13::i;:::-;21685:14:::1;:6:::0;21694:5:::1;21685:14;:::i;:::-;21677:5;:22:::0;21722:18:::1;:10:::0;21735:5:::1;21722:18;:::i;:::-;21710:9;:30:::0;-1:-1:-1;;21593:155:0:o;9376:1529::-;9604:15;9592:8;:27;;9584:63;;;;-1:-1:-1;;;9584:63:0;;10151:2:1;9584:63:0;;;10133:21:1;10190:2;10170:18;;;10163:30;10229:25;10209:18;;;10202:53;10272:18;;9584:63:0;9949:347:1;9584:63:0;9817:24;9844:827;9984:18;:16;:18::i;:::-;-1:-1:-1;;;;;10438:13:0;;;;;;;:6;:13;;;;;;;;;:15;;;;;;;;10069:458;;10114:167;10069:458;;;10588:25:1;10667:18;;;10660:43;;;;10739:15;;;10719:18;;;10712:43;10771:18;;;10764:34;;;10814:19;;;10807:35;;;;10858:19;;;;10851:35;;;10069:458:0;;;;;;;;;;10560:19:1;;;10069:458:0;;;10029:525;;;;;;;;-1:-1:-1;;;9904:673:0;;;11155:27:1;11198:11;;;11191:27;;;;11234:12;;;11227:28;;;;11271:12;;9904:673:0;;;-1:-1:-1;;9904:673:0;;;;;;;;;9872:724;;9904:673;9872:724;;;;9844:827;;;;;;;;;11521:25:1;11594:4;11582:17;;11562:18;;;11555:45;11616:18;;;11609:34;;;11659:18;;;11652:34;;;11493:19;;9844:827:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9844:827:0;;-1:-1:-1;;9844:827:0;;;-1:-1:-1;;;;;;;10696:30:0;;;;;;:59;;;10750:5;-1:-1:-1;;;;;10730:25:0;:16;-1:-1:-1;;;;;10730:25:0;;10696:59;10688:86;;;;-1:-1:-1;;;10688:86:0;;11899:2:1;10688:86:0;;;11881:21:1;11938:2;11918:18;;;11911:30;-1:-1:-1;;;11957:18:1;;;11950:44;12011:18;;10688:86:0;11697:338:1;10688:86:0;-1:-1:-1;;;;;10791:29:0;;;;;;;:11;:29;;;;;;;;:38;;;;;;;;;;;;;:46;;;10866:31;160:25:1;;;10791:38:0;;10866:31;;;;;133:18:1;10866:31:0;;;;;;;9376:1529;;;;;;;:::o;7322:151::-;-1:-1:-1;;;;;7438:18:0;;;7411:7;7438:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7322:151::o;20437:95::-;4143:13;:11;:13::i;:::-;20504:11:::1;:20:::0;;;::::1;;-1:-1:-1::0;;;20504:20:0::1;-1:-1:-1::0;;;;20504:20:0;;::::1;::::0;;;::::1;::::0;;20437:95::o;21503:81::-;4143:13;:11;:13::i;:::-;21564:5:::1;:12:::0;21503:81::o;20660:159::-;4143:13;:11;:13::i;:::-;20773:38:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;20765:5:::1;:46:::0;;;;;;;;20660:159::o;4534:201::-;4143:13;:11;:13::i;:::-;-1:-1:-1;;;;;4623:22:0;::::1;4615:73;;;::::0;-1:-1:-1;;;4615:73:0;;12242:2:1;4615:73:0::1;::::0;::::1;12224:21:1::0;12281:2;12261:18;;;12254:30;12320:34;12300:18;;;12293:62;-1:-1:-1;;;12371:18:1;;;12364:36;12417:19;;4615:73:0::1;12040:402:1::0;4615:73:0::1;4699:28;4718:8;4699:18;:28::i;12622:381::-:0;-1:-1:-1;;;;;12758:19:0;;12750:68;;;;-1:-1:-1;;;12750:68:0;;12649:2:1;12750:68:0;;;12631:21:1;12688:2;12668:18;;;12661:30;12727:34;12707:18;;;12700:62;-1:-1:-1;;;12778:18:1;;;12771:34;12822:19;;12750:68:0;12447:400:1;12750:68:0;-1:-1:-1;;;;;12837:21:0;;12829:68;;;;-1:-1:-1;;;12829:68:0;;13054:2:1;12829:68:0;;;13036:21:1;13093:2;13073:18;;;13066:30;13132:34;13112:18;;;13105:62;-1:-1:-1;;;13183:18:1;;;13176:32;13225:19;;12829:68:0;12852:398:1;12829:68:0;-1:-1:-1;;;;;12911:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12963:32;;160:25:1;;;12963:32:0;;133:18:1;12963:32:0;;;;;;;12622:381;;;:::o;4281:132::-;4258:6;;-1:-1:-1;;;;;4258:6:0;3732:10;4345:23;4337:68;;;;-1:-1:-1;;;4337:68:0;;13457:2:1;4337:68:0;;;13439:21:1;;;13476:18;;;13469:30;13535:34;13515:18;;;13508:62;13587:18;;4337:68:0;13255:356:1;13012:453:0;13147:24;13174:25;13184:5;13191:7;13174:9;:25::i;:::-;13147:52;;-1:-1:-1;;13214:16:0;:37;13210:248;;13296:6;13276:16;:26;;13268:68;;;;-1:-1:-1;;;13268:68:0;;13818:2:1;13268:68:0;;;13800:21:1;13857:2;13837:18;;;13830:30;13896:31;13876:18;;;13869:59;13945:18;;13268:68:0;13616:353:1;13268:68:0;13380:51;13389:5;13396:7;13424:6;13405:16;:25;13380:8;:51::i;:::-;13136:329;13012:453;;;:::o;16697:2746::-;16813:1;16804:6;:10;16796:64;;;;-1:-1:-1;;;16796:64:0;;14176:2:1;16796:64:0;;;14158:21:1;14215:2;14195:18;;;14188:30;14254:34;14234:18;;;14227:62;-1:-1:-1;;;14305:18:1;;;14298:39;14354:19;;16796:64:0;13974:405:1;16796:64:0;16878:8;;-1:-1:-1;;;16878:8:0;;;;;:38;;-1:-1:-1;;;;;;16890:26:0;;;;;;:18;:26;;;;;;;;16878:38;:71;;;-1:-1:-1;;;;;;16920:29:0;;;;;;:18;:29;;;;;;;;16878:71;16874:1914;;;16966:42;16982:6;16990:9;17001:6;16966:15;:42::i;16874:1914::-;17081:14;;-1:-1:-1;;;17081:14:0;;;;17073:46;;;;-1:-1:-1;;;17073:46:0;;14586:2:1;17073:46:0;;;14568:21:1;14625:2;14605:18;;;14598:30;-1:-1:-1;;;14644:18:1;;;14637:49;14703:18;;17073:46:0;14384:343:1;17073:46:0;-1:-1:-1;;;;;17143:21:0;;;;;;:13;:21;;;;;;;;17142:22;:51;;;;-1:-1:-1;;;;;;17169:24:0;;;;;;:13;:24;;;;;;;;17168:25;17142:51;17134:83;;;;-1:-1:-1;;;17134:83:0;;14934:2:1;17134:83:0;;;14916:21:1;14973:2;14953:18;;;14946:30;-1:-1:-1;;;14992:18:1;;;14985:49;15051:18;;17134:83:0;14732:343:1;17134:83:0;17236:11;;-1:-1:-1;;;17236:11:0;;;;17235:12;:69;;;;;17289:15;17271;;17251:17;;:35;;;;:::i;:::-;:53;17235:69;17232:197;;;17324:11;:18;;-1:-1:-1;;;;17324:18:0;-1:-1:-1;;;17324:18:0;;;17369:14;;;;;;;;17375:1;17369:14;;;;;;;;;17324:18;17369:14;;;;;;;17361:5;:22;;;;;;;;;;17232:197;17485:15;17467;;17449;;:33;;;;:::i;:::-;:51;17446:267;;;-1:-1:-1;;;;;17524:24:0;;;;;;:16;:24;;;;;;;;17523:25;:57;;;;-1:-1:-1;;;;;;17553:27:0;;;;;;:16;:27;;;;;;;;17552:28;17523:57;17520:110;;;17600:5;;17590:6;:15;;17582:48;;;;-1:-1:-1;;;17582:48:0;;15282:2:1;17582:48:0;;;15264:21:1;15321:2;15301:18;;;15294:30;-1:-1:-1;;;15340:18:1;;;15333:50;15400:18;;17582:48:0;15080:344:1;17582:48:0;17446:267;;;17683:5;;17673:6;:15;;17665:48;;;;-1:-1:-1;;;17665:48:0;;15282:2:1;17665:48:0;;;15264:21:1;15321:2;15301:18;;;15294:30;-1:-1:-1;;;15340:18:1;;;15333:50;15400:18;;17665:48:0;15080:344:1;17665:48:0;17744:4;;-1:-1:-1;;;;;17734:14:0;;;17744:4;;17734:14;17731:573;;-1:-1:-1;;;;;17772:18:0;;;;;;:10;:18;;;;;;;;17769:379;;;-1:-1:-1;;;;;17835:17:0;;;;;;:9;:17;;;;;;17856:6;;17817:35;;:15;:35;:::i;:::-;:45;17814:126;;17915:1;17890:22;:26;17814:126;18010:22;;-1:-1:-1;;;;;17970:27:0;;;;;;:19;:27;;;;;;:36;;18000:6;;17970:36;:::i;:::-;:62;;17962:106;;;;-1:-1:-1;;;17962:106:0;;15764:2:1;17962:106:0;;;15746:21:1;15803:2;15783:18;;;15776:30;15842:33;15822:18;;;15815:61;15893:18;;17962:106:0;15562:355:1;17962:106:0;-1:-1:-1;;;;;18091:27:0;;;;;;:19;:27;;;;;:37;;18122:6;;18091:27;:37;;18122:6;;18091:37;:::i;:::-;;;;-1:-1:-1;;17769:379:0;18194:5;;-1:-1:-1;;;;;18174:17:0;;;;;;:9;:17;;;;;;18203:15;;18174:25;;;:::i;:::-;:44;;18166:68;;;;-1:-1:-1;;;18166:68:0;;16124:2:1;18166:68:0;;;16106:21:1;16163:2;16143:18;;;16136:30;-1:-1:-1;;;16182:18:1;;;16175:41;16233:18;;18166:68:0;15922:335:1;18166:68:0;-1:-1:-1;;;;;18253:17:0;;;;;;:9;:17;;;;;18273:15;18253:35;;17731:573;18334:4;;-1:-1:-1;;;;;18321:17:0;;;18334:4;;18321:17;18318:459;;18397:15;18379;;18361;;:33;;;;:::i;:::-;:51;:83;;;;-1:-1:-1;;;;;;18417:27:0;;;;;;:16;:27;;;;;;;;18416:28;18361:83;18358:162;;;-1:-1:-1;;;;;18468:24:0;;;;:13;:24;;18358:162;18579:9;;18569:6;18546:20;18556:9;-1:-1:-1;;;;;7085:18:0;7058:7;7085:18;;;;;;;;;;;;6984:127;18546:20;:29;;;;:::i;:::-;:42;;18538:76;;;;-1:-1:-1;;;18538:76:0;;16464:2:1;18538:76:0;;;16446:21:1;16503:2;16483:18;;;16476:30;-1:-1:-1;;;16522:18:1;;;16515:51;16583:18;;18538:76:0;16262:345:1;18538:76:0;18664:5;;-1:-1:-1;;;;;18641:20:0;;;;;;:9;:20;;;;;;18673:15;;18641:28;;;:::i;:::-;:47;;18633:71;;;;-1:-1:-1;;;18633:71:0;;16124:2:1;18633:71:0;;;16106:21:1;16163:2;16143:18;;;16136:30;-1:-1:-1;;;16182:18:1;;;16175:41;16233:18;;18633:71:0;15922:335:1;18633:71:0;-1:-1:-1;;;;;18723:20:0;;;;;;:9;:20;;;;;18746:15;18723:38;;18318:459;-1:-1:-1;;;;;18804:27:0;;;;;;:16;:27;;;;;;;;:45;;;;-1:-1:-1;18845:4:0;;-1:-1:-1;;;;;18835:14:0;;;18845:4;;18835:14;18804:45;:100;;;;;18889:15;18871;;18853;;:33;;;;:::i;:::-;:51;18804:100;18801:159;;;-1:-1:-1;;;;;18920:21:0;;;;;;:10;:21;;;;;:28;;-1:-1:-1;;18920:28:0;18944:4;18920:28;;;18801:159;19015:4;;18973:12;;-1:-1:-1;;;;;19015:4:0;;;19002:17;;;;18999:204;;19037:10;;19050:3;;19028:19;;:6;:19;:::i;:::-;:25;;;;:::i;:::-;19021:32;;18999:204;;;19082:4;;-1:-1:-1;;;;;19072:14:0;;;19082:4;;19072:14;:46;;;;-1:-1:-1;;;;;;19091:27:0;;;;;;:16;:27;;;;;;;;19090:28;19072:46;19069:134;;;19136:5;:9;19148:3;;19127:18;;:6;:18;:::i;19069:134::-;19183:14;;19200:3;;19174:23;;:6;:23;:::i;:::-;:29;;;;:::i;:::-;19167:36;;19069:134;19222:11;;-1:-1:-1;;;19222:11:0;;;;:32;;;;-1:-1:-1;19250:4:0;;-1:-1:-1;;;;;19237:17:0;;;19250:4;;19237:17;19222:32;:45;;;;-1:-1:-1;19259:8:0;;-1:-1:-1;;;19259:8:0;;;;19258:9;19222:45;19218:61;;;19269:10;:8;:10::i;:::-;19293:49;19309:6;19317:9;19328:13;19337:4;19328:6;:13;:::i;:::-;19293:15;:49::i;:::-;19356:8;;19353:83;;19380:44;19396:6;19412:4;19419;19380:15;:44::i;11100:458::-;11165:7;11266:95;11400:5;11384:23;;;;;;:::i;:::-;;;;;;;;;;11233:302;;;18360:25:1;;;;18401:18;;18394:34;;;;11430:14:0;18444:18:1;;;18437:34;11467:13:0;18487:18:1;;;18480:34;11511:4:0;18530:19:1;;;18523:61;18332:19;;11233:302:0;;;;;;;;;;;;11205:345;;;;;;11185:365;;11100:458;:::o;4744:191::-;4837:6;;;-1:-1:-1;;;;;4854:17:0;;;-1:-1:-1;;;;;;4854:17:0;;;;;;;4887:40;;4837:6;;;4854:17;4837:6;;4887:40;;4818:16;;4887:40;4807:128;4744:191;:::o;14228:318::-;14343:6;14318:21;:31;;14310:73;;;;-1:-1:-1;;;14310:73:0;;18797:2:1;14310:73:0;;;18779:21:1;18836:2;18816:18;;;18809:30;18875:31;18855:18;;;18848:59;18924:18;;14310:73:0;18595:353:1;14310:73:0;14398:12;14416:9;-1:-1:-1;;;;;14416:14:0;14438:6;14416:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14397:52;;;14468:7;14460:78;;;;-1:-1:-1;;;14460:78:0;;19365:2:1;14460:78:0;;;19347:21:1;19404:2;19384:18;;;19377:30;19443:34;19423:18;;;19416:62;19514:28;19494:18;;;19487:56;19560:19;;14460:78:0;19163:422:1;8689:679:0;-1:-1:-1;;;;;8820:18:0;;8812:68;;;;-1:-1:-1;;;8812:68:0;;19792:2:1;8812:68:0;;;19774:21:1;19831:2;19811:18;;;19804:30;19870:34;19850:18;;;19843:62;-1:-1:-1;;;19921:18:1;;;19914:35;19966:19;;8812:68:0;19590:401:1;8812:68:0;-1:-1:-1;;;;;8899:16:0;;8891:64;;;;-1:-1:-1;;;8891:64:0;;20198:2:1;8891:64:0;;;20180:21:1;20237:2;20217:18;;;20210:30;20276:34;20256:18;;;20249:62;-1:-1:-1;;;20327:18:1;;;20320:33;20370:19;;8891:64:0;19996:399:1;8891:64:0;-1:-1:-1;;;;;9043:15:0;;9021:19;9043:15;;;;;;;;;;;9077:21;;;;9069:72;;;;-1:-1:-1;;;9069:72:0;;20602:2:1;9069:72:0;;;20584:21:1;20641:2;20621:18;;;20614:30;20680:34;20660:18;;;20653:62;-1:-1:-1;;;20731:18:1;;;20724:36;20777:19;;9069:72:0;20400:402:1;9069:72:0;-1:-1:-1;;;;;9177:15:0;;;:9;:15;;;;;;;;;;;9195:20;;;9177:38;;9230:13;;;;;;;;;;:23;;;;;;9283:26;;160:25:1;;;9230:13:0;;9283:26;;133:18:1;9283:26:0;;;;;;;9323:37;22247:204;19452:660;15902:8;;-1:-1:-1;;;15902:8:0;;;;15897:104;;15927:8;:15;;-1:-1:-1;;;;15927:15:0;-1:-1:-1;;;15927:15:0;;;19545:4:::1;-1:-1:-1::0;7085:18:0;;;;;;;;;;;19501:50:::1;;19585:13;;19566:15;:32;19562:543;;19638:13;::::0;19688:5:::1;::::0;19669:24;::::1;::::0;::::1;::::0;:54:::1;;;19714:9;;19697:13;;:26;;19669:54;19666:79;;;-1:-1:-1::0;19740:5:0::1;::::0;19666:79:::1;19783:9;;19766:13;;:26:::0;19763:73:::1;;19831:5;19810:13;6955:12:::0;;;6867:108;19810:13:::1;:18;::::0;19826:2:::1;19810:18;:::i;:::-;:26;;;;:::i;:::-;19794:13;:42:::0;19763:73:::1;19888:21;19924:30;19941:12:::0;19924:16:::1;:30::i;:::-;19969:20;19992:38;20016:14:::0;19992:21:::1;:38;:::i;:::-;20053:15;::::0;19969:61;;-1:-1:-1;20045:48:0::1;::::0;-1:-1:-1;;;;;20053:15:0::1;19969:61:::0;20045:34:::1;:48::i;:::-;19600:505;;;19562:543;-1:-1:-1::0;15973:8:0;:16;;-1:-1:-1;;;;15973:16:0;;;19452:660::o;20121:307::-;20211:16;;;20225:1;20211:16;;;;;;;;20187:21;;20211:16;;;;;;;;;;-1:-1:-1;20211:16:0;20187:40;;20256:4;20238;20243:1;20238:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20238:23:0;;;:7;;;;;;;;;;:23;;;;20282:6;;:13;;;-1:-1:-1;;;20282:13:0;;;;:6;;;;;:11;;:13;;;;;20238:7;;20282:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20272:4;20277:1;20272:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20272:23:0;;;:7;;;;;;;;;:23;20309:6;;:111;;-1:-1:-1;;;20309:111:0;;:6;;;:57;;:111;;20367:11;;20309:6;;20383:4;;20397;;20404:15;;20309:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20176:252;20121:307;:::o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:134;953:20;;982:31;953:20;982:31;:::i;:::-;885:134;;;:::o;1024:315::-;1092:6;1100;1153:2;1141:9;1132:7;1128:23;1124:32;1121:52;;;1169:1;1166;1159:12;1121:52;1208:9;1195:23;1227:31;1252:5;1227:31;:::i;:::-;1277:5;1329:2;1314:18;;;;1301:32;;-1:-1:-1;;;1024:315:1:o;1536:127::-;1597:10;1592:3;1588:20;1585:1;1578:31;1628:4;1625:1;1618:15;1652:4;1649:1;1642:15;1668:118;1754:5;1747:13;1740:21;1733:5;1730:32;1720:60;;1776:1;1773;1766:12;1791:128;1856:20;;1885:28;1856:20;1885:28;:::i;1924:1191::-;2014:6;2022;2075:2;2063:9;2054:7;2050:23;2046:32;2043:52;;;2091:1;2088;2081:12;2043:52;2131:9;2118:23;2160:18;2201:2;2193:6;2190:14;2187:34;;;2217:1;2214;2207:12;2187:34;2255:6;2244:9;2240:22;2230:32;;2300:7;2293:4;2289:2;2285:13;2281:27;2271:55;;2322:1;2319;2312:12;2271:55;2358:2;2345:16;2380:4;2403:2;2399;2396:10;2393:36;;;2409:18;;:::i;:::-;2455:2;2452:1;2448:10;2487:2;2481:9;2550:2;2546:7;2541:2;2537;2533:11;2529:25;2521:6;2517:38;2605:6;2593:10;2590:22;2585:2;2573:10;2570:18;2567:46;2564:72;;;2616:18;;:::i;:::-;2652:2;2645:22;2702:18;;;2736:15;;;;-1:-1:-1;2778:11:1;;;2774:20;;;2806:19;;;2803:39;;;2838:1;2835;2828:12;2803:39;2862:11;;;;2882:148;2898:6;2893:3;2890:15;2882:148;;;2964:23;2983:3;2964:23;:::i;:::-;2952:36;;2915:12;;;;3008;;;;2882:148;;;3049:6;-1:-1:-1;3074:35:1;;-1:-1:-1;3090:18:1;;;3074:35;:::i;:::-;3064:45;;;;;;1924:1191;;;;;:::o;3120:456::-;3197:6;3205;3213;3266:2;3254:9;3245:7;3241:23;3237:32;3234:52;;;3282:1;3279;3272:12;3234:52;3321:9;3308:23;3340:31;3365:5;3340:31;:::i;:::-;3390:5;-1:-1:-1;3447:2:1;3432:18;;3419:32;3460:33;3419:32;3460:33;:::i;:::-;3120:456;;3512:7;;-1:-1:-1;;;3566:2:1;3551:18;;;;3538:32;;3120:456::o;3581:388::-;3649:6;3657;3710:2;3698:9;3689:7;3685:23;3681:32;3678:52;;;3726:1;3723;3716:12;3678:52;3765:9;3752:23;3784:31;3809:5;3784:31;:::i;:::-;3834:5;-1:-1:-1;3891:2:1;3876:18;;3863:32;3904:33;3863:32;3904:33;:::i;:::-;3956:7;3946:17;;;3581:388;;;;;:::o;4345:247::-;4404:6;4457:2;4445:9;4436:7;4432:23;4428:32;4425:52;;;4473:1;4470;4463:12;4425:52;4512:9;4499:23;4531:31;4556:5;4531:31;:::i;:::-;4581:5;4345:247;-1:-1:-1;;;4345:247:1:o;5129:180::-;5188:6;5241:2;5229:9;5220:7;5216:23;5212:32;5209:52;;;5257:1;5254;5247:12;5209:52;-1:-1:-1;5280:23:1;;5129:180;-1:-1:-1;5129:180:1:o;5314:382::-;5379:6;5387;5440:2;5428:9;5419:7;5415:23;5411:32;5408:52;;;5456:1;5453;5446:12;5408:52;5495:9;5482:23;5514:31;5539:5;5514:31;:::i;:::-;5564:5;-1:-1:-1;5621:2:1;5606:18;;5593:32;5634:30;5593:32;5634:30;:::i;5701:248::-;5769:6;5777;5830:2;5818:9;5809:7;5805:23;5801:32;5798:52;;;5846:1;5843;5836:12;5798:52;-1:-1:-1;;5869:23:1;;;5939:2;5924:18;;;5911:32;;-1:-1:-1;5701:248:1:o;5954:829::-;6065:6;6073;6081;6089;6097;6105;6113;6166:3;6154:9;6145:7;6141:23;6137:33;6134:53;;;6183:1;6180;6173:12;6134:53;6222:9;6209:23;6241:31;6266:5;6241:31;:::i;:::-;6291:5;-1:-1:-1;6348:2:1;6333:18;;6320:32;6361:33;6320:32;6361:33;:::i;:::-;6413:7;-1:-1:-1;6467:2:1;6452:18;;6439:32;;-1:-1:-1;6518:2:1;6503:18;;6490:32;;-1:-1:-1;6574:3:1;6559:19;;6546:33;6623:4;6610:18;;6598:31;;6588:59;;6643:1;6640;6633:12;6588:59;5954:829;;;;-1:-1:-1;5954:829:1;;;;6666:7;6720:3;6705:19;;6692:33;;-1:-1:-1;6772:3:1;6757:19;;;6744:33;;5954:829;-1:-1:-1;;5954:829:1:o;6788:241::-;6844:6;6897:2;6885:9;6876:7;6872:23;6868:32;6865:52;;;6913:1;6910;6903:12;6865:52;6952:9;6939:23;6971:28;6993:5;6971:28;:::i;7034:316::-;7111:6;7119;7127;7180:2;7168:9;7159:7;7155:23;7151:32;7148:52;;;7196:1;7193;7186:12;7148:52;-1:-1:-1;;7219:23:1;;;7289:2;7274:18;;7261:32;;-1:-1:-1;7340:2:1;7325:18;;;7312:32;;7034:316;-1:-1:-1;7034:316:1:o;7578:380::-;7657:1;7653:12;;;;7700;;;7721:61;;7775:4;7767:6;7763:17;7753:27;;7721:61;7828:2;7820:6;7817:14;7797:18;7794:38;7791:161;;7874:10;7869:3;7865:20;7862:1;7855:31;7909:4;7906:1;7899:15;7937:4;7934:1;7927:15;7791:161;;7578:380;;;:::o;7963:127::-;8024:10;8019:3;8015:20;8012:1;8005:31;8055:4;8052:1;8045:15;8079:4;8076:1;8069:15;8095:127;8156:10;8151:3;8147:20;8144:1;8137:31;8187:4;8184:1;8177:15;8211:4;8208:1;8201:15;8227:135;8266:3;8287:17;;;8284:43;;8307:18;;:::i;:::-;-1:-1:-1;8354:1:1;8343:13;;8227:135::o;8367:125::-;8432:9;;;8453:10;;;8450:36;;;8466:18;;:::i;9120:245::-;9187:6;9240:2;9228:9;9219:7;9215:23;9211:32;9208:52;;;9256:1;9253;9246:12;9208:52;9288:9;9282:16;9307:28;9329:5;9307:28;:::i;9776:168::-;9849:9;;;9880;;9897:15;;;9891:22;;9877:37;9867:71;;9918:18;;:::i;15429:128::-;15496:9;;;15517:11;;;15514:37;;;15531:18;;:::i;16612:217::-;16652:1;16678;16668:132;;16722:10;16717:3;16713:20;16710:1;16703:31;16757:4;16754:1;16747:15;16785:4;16782:1;16775:15;16668:132;-1:-1:-1;16814:9:1;;16612:217::o;16963:1133::-;17093:3;17122:1;17155:6;17149:13;17185:3;17207:1;17235:9;17231:2;17227:18;17217:28;;17295:2;17284:9;17280:18;17317;17307:61;;17361:4;17353:6;17349:17;17339:27;;17307:61;17387:2;17435;17427:6;17424:14;17404:18;17401:38;17398:165;;-1:-1:-1;;;17462:33:1;;17518:4;17515:1;17508:15;17548:4;17469:3;17536:17;17398:165;17579:18;17606:133;;;;17753:1;17748:323;;;;17572:499;;17606:133;-1:-1:-1;;17639:24:1;;17627:37;;17712:14;;17705:22;17693:35;;17684:45;;;-1:-1:-1;17606:133:1;;17748:323;16910:1;16903:14;;;16947:4;16934:18;;17846:1;17860:165;17874:6;17871:1;17868:13;17860:165;;;17952:14;;17939:11;;;17932:35;17995:16;;;;17889:10;;17860:165;;;17864:3;;18054:6;18049:3;18045:16;18038:23;;17572:499;-1:-1:-1;18087:3:1;;16963:1133;-1:-1:-1;;;;;;;;16963:1133:1:o;20807:251::-;20877:6;20930:2;20918:9;20909:7;20905:23;20901:32;20898:52;;;20946:1;20943;20936:12;20898:52;20978:9;20972:16;20997:31;21022:5;20997:31;:::i;21063:980::-;21325:4;21373:3;21362:9;21358:19;21404:6;21393:9;21386:25;21430:2;21468:6;21463:2;21452:9;21448:18;21441:34;21511:3;21506:2;21495:9;21491:18;21484:31;21535:6;21570;21564:13;21601:6;21593;21586:22;21639:3;21628:9;21624:19;21617:26;;21678:2;21670:6;21666:15;21652:29;;21699:1;21709:195;21723:6;21720:1;21717:13;21709:195;;;21788:13;;-1:-1:-1;;;;;21784:39:1;21772:52;;21879:15;;;;21844:12;;;;21820:1;21738:9;21709:195;;;-1:-1:-1;;;;;;;21960:32:1;;;;21955:2;21940:18;;21933:60;-1:-1:-1;;;22024:3:1;22009:19;22002:35;21921:3;21063:980;-1:-1:-1;;;21063:980:1:o

Swarm Source

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