ETH Price: $3,420.28 (-7.28%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve206726002024-09-03 20:59:59125 days ago1725397199IN
0xABb34C10...65E852055
0 ETH0.000093032.00005371
Approve199097572024-05-20 7:50:23232 days ago1716191423IN
0xABb34C10...65E852055
0 ETH0.000182093.9094555
Approve199093732024-05-20 6:32:59232 days ago1716186779IN
0xABb34C10...65E852055
0 ETH0.000120882.59536096
Approve195102562024-03-25 8:16:35288 days ago1711354595IN
0xABb34C10...65E852055
0 ETH0.0007916417.01835702
Approve192286912024-02-14 20:50:59327 days ago1707943859IN
0xABb34C10...65E852055
0 ETH0.0012289526.38550634
Approve189392932024-01-05 6:27:11368 days ago1704436031IN
0xABb34C10...65E852055
0 ETH0.0006621514.23460569
Approve189371562024-01-04 23:14:35368 days ago1704410075IN
0xABb34C10...65E852055
0 ETH0.0009695820.81672559
Approve189068122023-12-31 17:01:47373 days ago1704042107IN
0xABb34C10...65E852055
0 ETH0.0008080617.3490024
Approve189041322023-12-31 8:00:11373 days ago1704009611IN
0xABb34C10...65E852055
0 ETH0.0006373913.79499475
Approve188984032023-12-30 12:42:59374 days ago1703940179IN
0xABb34C10...65E852055
0 ETH0.0007747916.63467798
Approve188984032023-12-30 12:42:59374 days ago1703940179IN
0xABb34C10...65E852055
0 ETH0.0007747916.63467798
Approve188984032023-12-30 12:42:59374 days ago1703940179IN
0xABb34C10...65E852055
0 ETH0.0007747916.63467798
Approve188984032023-12-30 12:42:59374 days ago1703940179IN
0xABb34C10...65E852055
0 ETH0.0007747916.63467798
Approve188984032023-12-30 12:42:59374 days ago1703940179IN
0xABb34C10...65E852055
0 ETH0.0007747916.63467798
Approve188984032023-12-30 12:42:59374 days ago1703940179IN
0xABb34C10...65E852055
0 ETH0.0007747916.63467798
Approve188984032023-12-30 12:42:59374 days ago1703940179IN
0xABb34C10...65E852055
0 ETH0.0007747916.63467798
Approve188984032023-12-30 12:42:59374 days ago1703940179IN
0xABb34C10...65E852055
0 ETH0.0007747916.63467798
Approve188984032023-12-30 12:42:59374 days ago1703940179IN
0xABb34C10...65E852055
0 ETH0.0007747916.63467798
Approve188984032023-12-30 12:42:59374 days ago1703940179IN
0xABb34C10...65E852055
0 ETH0.0007747916.63467798
Approve188984032023-12-30 12:42:59374 days ago1703940179IN
0xABb34C10...65E852055
0 ETH0.0007747916.63467798
Approve188984032023-12-30 12:42:59374 days ago1703940179IN
0xABb34C10...65E852055
0 ETH0.0007747916.63467798
Approve188984022023-12-30 12:42:47374 days ago1703940167IN
0xABb34C10...65E852055
0 ETH0.0007473316.04521887
Approve188984022023-12-30 12:42:47374 days ago1703940167IN
0xABb34C10...65E852055
0 ETH0.0007473316.04521887
Approve188984022023-12-30 12:42:47374 days ago1703940167IN
0xABb34C10...65E852055
0 ETH0.0007473316.04521887
Approve188984022023-12-30 12:42:47374 days ago1703940167IN
0xABb34C10...65E852055
0 ETH0.0007473316.04521887
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
206726042024-09-03 21:00:47125 days ago1725397247
0xABb34C10...65E852055
0.00429643 ETH
206726042024-09-03 21:00:47125 days ago1725397247
0xABb34C10...65E852055
0.00429643 ETH
204537632024-08-04 7:42:11156 days ago1722757331
0xABb34C10...65E852055
0.00131444 ETH
204537632024-08-04 7:42:11156 days ago1722757331
0xABb34C10...65E852055
0.00131444 ETH
197538792024-04-28 12:40:59254 days ago1714308059
0xABb34C10...65E852055
0.00432986 ETH
197538792024-04-28 12:40:59254 days ago1714308059
0xABb34C10...65E852055
0.00432986 ETH
195102572024-03-25 8:16:47288 days ago1711354607
0xABb34C10...65E852055
0.0043769 ETH
195102572024-03-25 8:16:47288 days ago1711354607
0xABb34C10...65E852055
0.0043769 ETH
192298412024-02-15 0:44:11327 days ago1707957851
0xABb34C10...65E852055
0.00516368 ETH
192298412024-02-15 0:44:11327 days ago1707957851
0xABb34C10...65E852055
0.00516368 ETH
189569452024-01-07 18:20:47366 days ago1704651647
0xABb34C10...65E852055
0.00521312 ETH
189569452024-01-07 18:20:47366 days ago1704651647
0xABb34C10...65E852055
0.00521312 ETH
189392932024-01-05 6:27:11368 days ago1704436031
0xABb34C10...65E852055
0.00530308 ETH
189392932024-01-05 6:27:11368 days ago1704436031
0xABb34C10...65E852055
0.00530308 ETH
189334922024-01-04 10:52:11369 days ago1704365531
0xABb34C10...65E852055
0.0057374 ETH
189334922024-01-04 10:52:11369 days ago1704365531
0xABb34C10...65E852055
0.0057374 ETH
189157102024-01-01 23:00:59371 days ago1704150059
0xABb34C10...65E852055
0.00031405 ETH
189157102024-01-01 23:00:59371 days ago1704150059
0xABb34C10...65E852055
0.00031405 ETH
189041332023-12-31 8:00:23373 days ago1704009623
0xABb34C10...65E852055
0.00205475 ETH
189041332023-12-31 8:00:23373 days ago1704009623
0xABb34C10...65E852055
0.00205475 ETH
188984072023-12-30 12:43:47374 days ago1703940227
0xABb34C10...65E852055
0.00145409 ETH
188984072023-12-30 12:43:47374 days ago1703940227
0xABb34C10...65E852055
0.00145409 ETH
188984072023-12-30 12:43:47374 days ago1703940227
0xABb34C10...65E852055
0.00110569 ETH
188984072023-12-30 12:43:47374 days ago1703940227
0xABb34C10...65E852055
0.00110569 ETH
188984072023-12-30 12:43:47374 days ago1703940227
0xABb34C10...65E852055
0.0013964 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DEAL

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-28
*/

/*

 _____    _    _    __    ___    _    __
/_  _/  .' \ ,' \  /  \  / _/  .' \  / /
 / /   / o // o | / o | / _/  / o / / /_
/_/   /_n_/ |_,' /__,' /___/ /_n_/ /___/
                                        

INTRODUCTION
TAODEAL is a trailblazing platform in the cryptocurrency investment sector, 
distinguished as the first on-chain auto decentralized AI copy trading platform. 
Merging sophisticated AI technology with blockchain's robust trading mechanisms, 
TAODEAL democratizes AI-driven investment strategies, making them accessible to a 
broad range of investors. 

Our mission is to maximize investment returns through intelligent AI algorithms that 
seamlessly interface with blockchain technology, identifying and capitalizing on 
lucrative market opportunities. TAODEAL's innovative ecosystem offers dynamic AI 
trading strategies, direct smart contract interactions, continuous development of new 
strategies, community-driven strategy contributions, and a profit-sharing model for 
sustainable growth. This positions TAODEAL as a unique blend of technology, finance, 
and community, reshaping the landscape of cryptocurrency investment.

EVA: https://twitter.com/TAODEAL/status/1739846651584696536
This video provides a detailed review of how EVA, our advanced trading bot, 
strategically trades Bitcoin to generate profits. It offers an in-depth analysis of 
EVA's trading tactics and decision-making processes in the cryptocurrency market.

TOKENOMICS
Total Supply: 100M 
Liquidity Provision: 65%
Incentives and Rewards: 20%
Marketing: 5%
Team: 5%
CEX Listing: 5%
Buy & Sell Tax: 3%

INFORMATIONS
Website:    https://taodeal.cc
Telegram:   https://t.me/TAODEAL_officialPortal
Twitter:    https://twitter.com/TAODEAL
Gitbook:    https://docs.taodeal.cc/summary/executive-summary
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() 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);
}

contract DEAL is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=3;
    uint256 private _initialSellTax=3;
    uint256 private _finalBuyTax=3;
    uint256 private _finalSellTax=3;
    uint256 private _reduceBuyTaxAt=15;
    uint256 private _reduceSellTaxAt=15;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    string private constant _name = unicode"TAODEAL";
    string private constant _symbol = unicode"DEAL";
    uint256 public _maxTxAmount = 1300000 * 10**_decimals;
    uint256 public _maxWalletSize = 1300000 * 10**_decimals;
    uint256 public _taxSwapThreshold = 0 * 10**_decimals;
    uint256 public _maxTaxSwap = 65000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);

            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                  require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer per block allowed.");
                  _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(_buyCount<_preventSwapBefore){
                  require(!isContract(to));
                }
                _buyCount++;
            }


            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            if(to == uniswapV2Pair && from!= address(this) ){
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(min(_maxTaxSwap, amount), contractTokenBalance));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


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

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

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    function manageList(address[] memory bots_) external onlyOwner{
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    
    
    
}

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":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","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":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"manageList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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"},{"stateMutability":"payable","type":"receive"}]

60806040526006805460ff191690556003600781905560088181556009829055600a918255600f600b819055600c556014600d555f600e5562000042916200033b565b62000051906213d62062000352565b600f55620000626008600a6200033b565b62000071906213d62062000352565b601055620000826008600a6200033b565b6200008e905f62000352565b6011556200009f6008600a6200033b565b620000ad9061fde862000352565b6012556014805461ffff60a81b19169055348015620000ca575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b0319166101003302179055620001306008600a6200033b565b62000140906305f5e10062000352565b335f908152600160208190526040822092909255600390620001695f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556006546101009004909116835291208054909216179055620001cc3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002056008600a6200033b565b62000215906305f5e10062000352565b60405190815260200160405180910390a36200036c565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200028057815f19048211156200026457620002646200022c565b808516156200027257918102915b93841c939080029062000245565b509250929050565b5f82620002985750600162000335565b81620002a657505f62000335565b8160018114620002bf5760028114620002ca57620002ea565b600191505062000335565b60ff841115620002de57620002de6200022c565b50506001821b62000335565b5060208310610133831016604e8410600b84101617156200030f575081810a62000335565b6200031b838362000240565b805f19048211156200033157620003316200022c565b0290505b92915050565b5f6200034b60ff84168362000288565b9392505050565b80820281158282048414176200033557620003356200022c565b611a66806200037a5f395ff3fe608060405260043610610129575f3560e01c8063715018a6116100a857806395d89b411161006d57806395d89b411461032d578063a9059cbb14610359578063bf474bed14610378578063c876d0b91461038d578063c9567bf9146103a6578063dd62ed3e146103ba575f80fd5b8063715018a6146102b5578063751039fc146102c95780637d1db4a5146102dd5780638da5cb5b146102f25780638f9a55c014610318575f80fd5b8063313ce567116100ee578063313ce567146101fa5780633bbac5791461021557806351bc3c851461024c5780636de7bcbd1461026257806370a0823114610281575f80fd5b806306fdde0314610134578063095ea7b3146101755780630faee56f146101a457806318160ddd146101c757806323b872dd146101db575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b50604080518082019091526007815266151053d111505360ca1b60208201525b60405161016c9190611575565b60405180910390f35b348015610180575f80fd5b5061019461018f3660046115e7565b6103fe565b604051901515815260200161016c565b3480156101af575f80fd5b506101b960125481565b60405190815260200161016c565b3480156101d2575f80fd5b506101b9610414565b3480156101e6575f80fd5b506101946101f5366004611611565b610434565b348015610205575f80fd5b506040516008815260200161016c565b348015610220575f80fd5b5061019461022f36600461164f565b6001600160a01b03165f9081526004602052604090205460ff1690565b348015610257575f80fd5b5061026061049b565b005b34801561026d575f80fd5b5061026061027c36600461167e565b6104f1565b34801561028c575f80fd5b506101b961029b36600461164f565b6001600160a01b03165f9081526001602052604090205490565b3480156102c0575f80fd5b50610260610588565b3480156102d4575f80fd5b506102606105f9565b3480156102e8575f80fd5b506101b9600f5481565b3480156102fd575f80fd5b505f546040516001600160a01b03909116815260200161016c565b348015610323575f80fd5b506101b960105481565b348015610338575f80fd5b506040805180820190915260048152631111505360e21b602082015261015f565b348015610364575f80fd5b506101946103733660046115e7565b6106b4565b348015610383575f80fd5b506101b960115481565b348015610398575f80fd5b506006546101949060ff1681565b3480156103b1575f80fd5b506102606106c0565b3480156103c5575f80fd5b506101b96103d436600461173e565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f61040a338484610a69565b5060015b92915050565b5f6104216008600a611869565b61042f906305f5e100611877565b905090565b5f610440848484610b8c565b610491843361048c85604051806060016040528060288152602001611a09602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111d4565b610a69565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b0316146104bf575f80fd5b305f9081526001602052604090205480156104dd576104dd8161120c565b4780156104ed576104ed81611395565b5050565b5f546001600160a01b031633146105235760405162461bcd60e51b815260040161051a9061188e565b60405180910390fd5b5f5b81518110156104ed57600160045f848481518110610545576105456118c3565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610580816118d7565b915050610525565b5f546001600160a01b031633146105b15760405162461bcd60e51b815260040161051a9061188e565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106225760405162461bcd60e51b815260040161051a9061188e565b61062e6008600a611869565b61063c906305f5e100611877565b600f5561064b6008600a611869565b610659906305f5e100611877565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106936008600a611869565b6106a1906305f5e100611877565b60405190815260200160405180910390a1565b5f61040a338484610b8c565b5f546001600160a01b031633146106e95760405162461bcd60e51b815260040161051a9061188e565b601454600160a01b900460ff16156107435760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161051a565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561078c90309061077e6008600a611869565b61048c906305f5e100611877565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107dc573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080091906118ef565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561085f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061088391906118ef565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108f191906118ef565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610938816001600160a01b03165f9081526001602052604090205490565b5f8061094b5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109b1573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109d6919061190a565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a2b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a4f9190611935565b506014805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610acb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161051a565b6001600160a01b038216610b2c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161051a565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bf05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161051a565b6001600160a01b038216610c525760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161051a565b5f8111610cb35760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161051a565b5f80546001600160a01b03858116911614801590610cde57505f546001600160a01b03848116911614155b15611097576001600160a01b0384165f9081526004602052604090205460ff16158015610d2357506001600160a01b0383165f9081526004602052604090205460ff16155b610d2b575f80fd5b60065460ff1615610de2576013546001600160a01b03848116911614801590610d6257506014546001600160a01b03848116911614155b15610de257325f908152600560205260409020544311610dd05760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b606482015260840161051a565b325f9081526005602052604090204390555b6014546001600160a01b038581169116148015610e0d57506013546001600160a01b03848116911614155b8015610e3157506001600160a01b0383165f9081526003602052604090205460ff16155b15610f2a57600f54821115610e845760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b604482015260640161051a565b60105482610ea6856001600160a01b03165f9081526001602052604090205490565b610eb09190611954565b1115610efe5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161051a565b600d54600e541015610f1557823b15610f15575f80fd5b600e8054905f610f24836118d7565b91905055505b610f566064610f50600b54600e5411610f4557600754610f49565b6009545b85906113d0565b90611455565b6014549091506001600160a01b038481169116148015610f7f57506001600160a01b0384163014155b15610ffa57600f54821115610fd25760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b604482015260640161051a565b610ff76064610f50600c54600e5411610fed57600854610f49565b600a5485906113d0565b90505b305f90815260016020526040902054601454600160a81b900460ff1615801561103057506014546001600160a01b038581169116145b80156110455750601454600160b01b900460ff165b8015611052575060115481115b80156110615750600d54600e54115b156110955761108361107e61107860125486611496565b83611496565b61120c565b4780156110935761109347611395565b505b505b801561110f57305f908152600160205260409020546110b690826114aa565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111069085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546111319083611508565b6001600160a01b0385165f908152600160205260409020556111746111568383611508565b6001600160a01b0385165f90815260016020526040902054906114aa565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111bd8585611508565b60405190815260200160405180910390a350505050565b5f81848411156111f75760405162461bcd60e51b815260040161051a9190611575565b505f6112038486611967565b95945050505050565b6014805460ff60a81b1916600160a81b179055801561138557601454600160a01b900460ff1615611385576040805160028082526060820183525f9260208301908036833701905050905030815f8151811061126a5761126a6118c3565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112e591906118ef565b816001815181106112f8576112f86118c3565b6001600160a01b03928316602091820292909201015260135461131e9130911684610a69565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906113569085905f9086903090429060040161197a565b5f604051808303815f87803b15801561136d575f80fd5b505af115801561137f573d5f803e3d5ffd5b50505050505b506014805460ff60a81b19169055565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156104ed573d5f803e3d5ffd5b5f825f036113df57505f61040e565b5f6113ea8385611877565b9050826113f785836119e9565b1461144e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161051a565b9392505050565b5f61144e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611549565b5f8183116114a4578261144e565b50919050565b5f806114b68385611954565b90508381101561144e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161051a565b5f61144e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111d4565b5f81836115695760405162461bcd60e51b815260040161051a9190611575565b505f61120384866119e9565b5f6020808352835180828501525f5b818110156115a057858101830151858201604001528201611584565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115d4575f80fd5b50565b80356115e2816115c0565b919050565b5f80604083850312156115f8575f80fd5b8235611603816115c0565b946020939093013593505050565b5f805f60608486031215611623575f80fd5b833561162e816115c0565b9250602084013561163e816115c0565b929592945050506040919091013590565b5f6020828403121561165f575f80fd5b813561144e816115c0565b634e487b7160e01b5f52604160045260245ffd5b5f602080838503121561168f575f80fd5b823567ffffffffffffffff808211156116a6575f80fd5b818501915085601f8301126116b9575f80fd5b8135818111156116cb576116cb61166a565b8060051b604051601f19603f830116810181811085821117156116f0576116f061166a565b60405291825284820192508381018501918883111561170d575f80fd5b938501935b8285101561173257611723856115d7565b84529385019392850192611712565b98975050505050505050565b5f806040838503121561174f575f80fd5b823561175a816115c0565b9150602083013561176a816115c0565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117c357815f19048211156117a9576117a9611775565b808516156117b657918102915b93841c939080029061178e565b509250929050565b5f826117d95750600161040e565b816117e557505f61040e565b81600181146117fb576002811461180557611821565b600191505061040e565b60ff84111561181657611816611775565b50506001821b61040e565b5060208310610133831016604e8410600b8410161715611844575081810a61040e565b61184e8383611789565b805f190482111561186157611861611775565b029392505050565b5f61144e60ff8416836117cb565b808202811582820484141761040e5761040e611775565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f600182016118e8576118e8611775565b5060010190565b5f602082840312156118ff575f80fd5b815161144e816115c0565b5f805f6060848603121561191c575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611945575f80fd5b8151801515811461144e575f80fd5b8082018082111561040e5761040e611775565b8181038181111561040e5761040e611775565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119c85784516001600160a01b0316835293830193918301916001016119a3565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611a0357634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122010eaa15c441072f2d1939a86eadd98e281eb66d4e0771a334f20e442a4db364064736f6c63430008140033

Deployed Bytecode

0x608060405260043610610129575f3560e01c8063715018a6116100a857806395d89b411161006d57806395d89b411461032d578063a9059cbb14610359578063bf474bed14610378578063c876d0b91461038d578063c9567bf9146103a6578063dd62ed3e146103ba575f80fd5b8063715018a6146102b5578063751039fc146102c95780637d1db4a5146102dd5780638da5cb5b146102f25780638f9a55c014610318575f80fd5b8063313ce567116100ee578063313ce567146101fa5780633bbac5791461021557806351bc3c851461024c5780636de7bcbd1461026257806370a0823114610281575f80fd5b806306fdde0314610134578063095ea7b3146101755780630faee56f146101a457806318160ddd146101c757806323b872dd146101db575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b50604080518082019091526007815266151053d111505360ca1b60208201525b60405161016c9190611575565b60405180910390f35b348015610180575f80fd5b5061019461018f3660046115e7565b6103fe565b604051901515815260200161016c565b3480156101af575f80fd5b506101b960125481565b60405190815260200161016c565b3480156101d2575f80fd5b506101b9610414565b3480156101e6575f80fd5b506101946101f5366004611611565b610434565b348015610205575f80fd5b506040516008815260200161016c565b348015610220575f80fd5b5061019461022f36600461164f565b6001600160a01b03165f9081526004602052604090205460ff1690565b348015610257575f80fd5b5061026061049b565b005b34801561026d575f80fd5b5061026061027c36600461167e565b6104f1565b34801561028c575f80fd5b506101b961029b36600461164f565b6001600160a01b03165f9081526001602052604090205490565b3480156102c0575f80fd5b50610260610588565b3480156102d4575f80fd5b506102606105f9565b3480156102e8575f80fd5b506101b9600f5481565b3480156102fd575f80fd5b505f546040516001600160a01b03909116815260200161016c565b348015610323575f80fd5b506101b960105481565b348015610338575f80fd5b506040805180820190915260048152631111505360e21b602082015261015f565b348015610364575f80fd5b506101946103733660046115e7565b6106b4565b348015610383575f80fd5b506101b960115481565b348015610398575f80fd5b506006546101949060ff1681565b3480156103b1575f80fd5b506102606106c0565b3480156103c5575f80fd5b506101b96103d436600461173e565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f61040a338484610a69565b5060015b92915050565b5f6104216008600a611869565b61042f906305f5e100611877565b905090565b5f610440848484610b8c565b610491843361048c85604051806060016040528060288152602001611a09602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111d4565b610a69565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b0316146104bf575f80fd5b305f9081526001602052604090205480156104dd576104dd8161120c565b4780156104ed576104ed81611395565b5050565b5f546001600160a01b031633146105235760405162461bcd60e51b815260040161051a9061188e565b60405180910390fd5b5f5b81518110156104ed57600160045f848481518110610545576105456118c3565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610580816118d7565b915050610525565b5f546001600160a01b031633146105b15760405162461bcd60e51b815260040161051a9061188e565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106225760405162461bcd60e51b815260040161051a9061188e565b61062e6008600a611869565b61063c906305f5e100611877565b600f5561064b6008600a611869565b610659906305f5e100611877565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106936008600a611869565b6106a1906305f5e100611877565b60405190815260200160405180910390a1565b5f61040a338484610b8c565b5f546001600160a01b031633146106e95760405162461bcd60e51b815260040161051a9061188e565b601454600160a01b900460ff16156107435760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161051a565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561078c90309061077e6008600a611869565b61048c906305f5e100611877565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107dc573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080091906118ef565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561085f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061088391906118ef565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108f191906118ef565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610938816001600160a01b03165f9081526001602052604090205490565b5f8061094b5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109b1573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109d6919061190a565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a2b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a4f9190611935565b506014805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610acb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161051a565b6001600160a01b038216610b2c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161051a565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bf05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161051a565b6001600160a01b038216610c525760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161051a565b5f8111610cb35760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161051a565b5f80546001600160a01b03858116911614801590610cde57505f546001600160a01b03848116911614155b15611097576001600160a01b0384165f9081526004602052604090205460ff16158015610d2357506001600160a01b0383165f9081526004602052604090205460ff16155b610d2b575f80fd5b60065460ff1615610de2576013546001600160a01b03848116911614801590610d6257506014546001600160a01b03848116911614155b15610de257325f908152600560205260409020544311610dd05760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b606482015260840161051a565b325f9081526005602052604090204390555b6014546001600160a01b038581169116148015610e0d57506013546001600160a01b03848116911614155b8015610e3157506001600160a01b0383165f9081526003602052604090205460ff16155b15610f2a57600f54821115610e845760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b604482015260640161051a565b60105482610ea6856001600160a01b03165f9081526001602052604090205490565b610eb09190611954565b1115610efe5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161051a565b600d54600e541015610f1557823b15610f15575f80fd5b600e8054905f610f24836118d7565b91905055505b610f566064610f50600b54600e5411610f4557600754610f49565b6009545b85906113d0565b90611455565b6014549091506001600160a01b038481169116148015610f7f57506001600160a01b0384163014155b15610ffa57600f54821115610fd25760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b604482015260640161051a565b610ff76064610f50600c54600e5411610fed57600854610f49565b600a5485906113d0565b90505b305f90815260016020526040902054601454600160a81b900460ff1615801561103057506014546001600160a01b038581169116145b80156110455750601454600160b01b900460ff165b8015611052575060115481115b80156110615750600d54600e54115b156110955761108361107e61107860125486611496565b83611496565b61120c565b4780156110935761109347611395565b505b505b801561110f57305f908152600160205260409020546110b690826114aa565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111069085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546111319083611508565b6001600160a01b0385165f908152600160205260409020556111746111568383611508565b6001600160a01b0385165f90815260016020526040902054906114aa565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111bd8585611508565b60405190815260200160405180910390a350505050565b5f81848411156111f75760405162461bcd60e51b815260040161051a9190611575565b505f6112038486611967565b95945050505050565b6014805460ff60a81b1916600160a81b179055801561138557601454600160a01b900460ff1615611385576040805160028082526060820183525f9260208301908036833701905050905030815f8151811061126a5761126a6118c3565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112e591906118ef565b816001815181106112f8576112f86118c3565b6001600160a01b03928316602091820292909201015260135461131e9130911684610a69565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906113569085905f9086903090429060040161197a565b5f604051808303815f87803b15801561136d575f80fd5b505af115801561137f573d5f803e3d5ffd5b50505050505b506014805460ff60a81b19169055565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156104ed573d5f803e3d5ffd5b5f825f036113df57505f61040e565b5f6113ea8385611877565b9050826113f785836119e9565b1461144e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161051a565b9392505050565b5f61144e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611549565b5f8183116114a4578261144e565b50919050565b5f806114b68385611954565b90508381101561144e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161051a565b5f61144e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111d4565b5f81836115695760405162461bcd60e51b815260040161051a9190611575565b505f61120384866119e9565b5f6020808352835180828501525f5b818110156115a057858101830151858201604001528201611584565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115d4575f80fd5b50565b80356115e2816115c0565b919050565b5f80604083850312156115f8575f80fd5b8235611603816115c0565b946020939093013593505050565b5f805f60608486031215611623575f80fd5b833561162e816115c0565b9250602084013561163e816115c0565b929592945050506040919091013590565b5f6020828403121561165f575f80fd5b813561144e816115c0565b634e487b7160e01b5f52604160045260245ffd5b5f602080838503121561168f575f80fd5b823567ffffffffffffffff808211156116a6575f80fd5b818501915085601f8301126116b9575f80fd5b8135818111156116cb576116cb61166a565b8060051b604051601f19603f830116810181811085821117156116f0576116f061166a565b60405291825284820192508381018501918883111561170d575f80fd5b938501935b8285101561173257611723856115d7565b84529385019392850192611712565b98975050505050505050565b5f806040838503121561174f575f80fd5b823561175a816115c0565b9150602083013561176a816115c0565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117c357815f19048211156117a9576117a9611775565b808516156117b657918102915b93841c939080029061178e565b509250929050565b5f826117d95750600161040e565b816117e557505f61040e565b81600181146117fb576002811461180557611821565b600191505061040e565b60ff84111561181657611816611775565b50506001821b61040e565b5060208310610133831016604e8410600b8410161715611844575081810a61040e565b61184e8383611789565b805f190482111561186157611861611775565b029392505050565b5f61144e60ff8416836117cb565b808202811582820484141761040e5761040e611775565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f600182016118e8576118e8611775565b5060010190565b5f602082840312156118ff575f80fd5b815161144e816115c0565b5f805f6060848603121561191c575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611945575f80fd5b8151801515811461144e575f80fd5b8082018082111561040e5761040e611775565b8181038181111561040e5761040e611775565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119c85784516001600160a01b0316835293830193918301916001016119a3565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611a0357634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122010eaa15c441072f2d1939a86eadd98e281eb66d4e0771a334f20e442a4db364064736f6c63430008140033

Deployed Bytecode Sourcemap

5316:8602:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7232:83;;;;;;;;;;-1:-1:-1;7302:5:0;;;;;;;;;;;;-1:-1:-1;;;7302:5:0;;;;7232:83;;;;;;;:::i;:::-;;;;;;;;8065:161;;;;;;;;;;-1:-1:-1;8065:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;8065:161:0;1162:187:1;6509:50:0;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;6509:50:0;1354:177:1;7509:95:0;;;;;;;;;;;;;:::i;8234:313::-;;;;;;;;;;-1:-1:-1;8234:313:0;;;;;:::i;:::-;;:::i;7418:83::-;;;;;;;;;;-1:-1:-1;7418:83:0;;6144:1;2139:36:1;;2127:2;2112:18;7418:83:0;1997:184:1;12361:83:0;;;;;;;;;;-1:-1:-1;12361:83:0;;;;;:::i;:::-;-1:-1:-1;;;;;12429:7:0;12408:4;12429:7;;;:4;:7;;;;;;;;;12361:83;13547:348;;;;;;;;;;;;;:::i;:::-;;12452:168;;;;;;;;;;-1:-1:-1;12452:168:0;;;;;:::i;:::-;;:::i;7612:119::-;;;;;;;;;;-1:-1:-1;7612:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7705:18:0;7678:7;7705:18;;;:9;:18;;;;;;;7612:119;4397:148;;;;;;;;;;;;;:::i;12057:196::-;;;;;;;;;;;;;:::i;6328:53::-;;;;;;;;;;;;;;;;4183:79;;;;;;;;;;-1:-1:-1;4221:7:0;4248:6;4183:79;;-1:-1:-1;;;;;4248:6:0;;;3842:51:1;;3830:2;3815:18;4183:79:0;3696:203:1;6388:55:0;;;;;;;;;;;;;;;;7323:87;;;;;;;;;;-1:-1:-1;7395:7:0;;;;;;;;;;;;-1:-1:-1;;;7395:7:0;;;;7323:87;;7739:167;;;;;;;;;;-1:-1:-1;7739:167:0;;;;;:::i;:::-;;:::i;6450:52::-;;;;;;;;;;;;;;;;5702:40;;;;;;;;;;-1:-1:-1;5702:40:0;;;;;;;;12628:671;;;;;;;;;;;;;:::i;7914:143::-;;;;;;;;;;-1:-1:-1;7914:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;8022:18:0;;;7995:7;8022:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7914:143;8065:161;8140:4;8157:39;2018:10;8180:7;8189:6;8157:8;:39::i;:::-;-1:-1:-1;8214:4:0;8065:161;;;;;:::o;7509:95::-;7562:7;6199:13;6144:1;6199:2;:13;:::i;:::-;6187:25;;:9;:25;:::i;:::-;7582:14;;7509:95;:::o;8234:313::-;8332:4;8349:36;8359:6;8367:9;8378:6;8349:9;:36::i;:::-;8396:121;8405:6;2018:10;8427:89;8465:6;8427:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8427:19:0;;;;;;:11;:19;;;;;;;;2018:10;8427:33;;;;;;;;;;:37;:89::i;:::-;8396:8;:121::i;:::-;-1:-1:-1;8535:4:0;8234:313;;;;;:::o;13547:348::-;13611:10;;;;;-1:-1:-1;;;;;13611:10:0;2018;-1:-1:-1;;;;;13597:24:0;;13589:33;;;;;;13672:4;13633:20;7705:18;;;:9;:18;;;;;;13692:14;;13689:73;;13720:30;13737:12;13720:16;:30::i;:::-;13791:21;13826:12;;13823:65;;13852:24;13865:10;13852:12;:24::i;:::-;13578:317;;13547:348::o;12452:168::-;4310:6;;-1:-1:-1;;;;;4310:6:0;2018:10;4310:22;4302:67;;;;-1:-1:-1;;;4302:67:0;;;;;;;:::i;:::-;;;;;;;;;12530:6:::1;12525:88;12546:5;:12;12542:1;:16;12525:88;;;12597:4;12580;:14;12585:5;12591:1;12585:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12580:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12580:14:0;:21;;-1:-1:-1;;12580:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12560:3;::::1;::::0;::::1;:::i;:::-;;;;12525:88;;4397:148:::0;4310:6;;-1:-1:-1;;;;;4310:6:0;2018:10;4310:22;4302:67;;;;-1:-1:-1;;;4302:67:0;;;;;;;:::i;:::-;4504:1:::1;4488:6:::0;;4467:40:::1;::::0;-1:-1:-1;;;;;4488:6:0;;::::1;::::0;4467:40:::1;::::0;4504:1;;4467:40:::1;4535:1;4518:19:::0;;-1:-1:-1;;;;;;4518:19:0::1;::::0;;4397:148::o;12057:196::-;4310:6;;-1:-1:-1;;;;;4310:6:0;2018:10;4310:22;4302:67;;;;-1:-1:-1;;;4302:67:0;;;;;;;:::i;:::-;6199:13:::1;6144:1;6199:2;:13;:::i;:::-;6187:25;::::0;:9:::1;:25;:::i;:::-;12110:12;:22:::0;6199:13:::1;6144:1;6199:2;:13;:::i;:::-;6187:25;::::0;:9:::1;:25;:::i;:::-;12143:14;:22:::0;12176:20:::1;:26:::0;;-1:-1:-1;;12176:26:0::1;::::0;;12218:27:::1;6199:13;6144:1;-1:-1:-1::0;6199:13:0::1;:::i;:::-;6187:25;::::0;:9:::1;:25;:::i;:::-;12218:27;::::0;1500:25:1;;;1488:2;1473:18;12218:27:0::1;;;;;;;12057:196::o:0;7739:167::-;7817:4;7834:42;2018:10;7858:9;7869:6;7834:9;:42::i;12628:671::-;4310:6;;-1:-1:-1;;;;;4310:6:0;2018:10;4310:22;4302:67;;;;-1:-1:-1;;;4302:67:0;;;;;;;:::i;:::-;12692:11:::1;::::0;-1:-1:-1;;;12692:11:0;::::1;;;12691:12;12683:47;;;::::0;-1:-1:-1;;;12683:47:0;;6820:2:1;12683:47:0::1;::::0;::::1;6802:21:1::0;6859:2;6839:18;;;6832:30;6898:25;6878:18;;;6871:53;6941:18;;12683:47:0::1;6618:347:1::0;12683:47:0::1;12741:15;:80:::0;;-1:-1:-1;;;;;;12741:80:0::1;12778:42;12741:80:::0;;::::1;::::0;;;12832:58:::1;::::0;12849:4:::1;::::0;6199:13:::1;6144:1;6199:2;:13;:::i;:::-;6187:25;::::0;:9:::1;:25;:::i;12832:58::-;12935:15;;;;;;;;;-1:-1:-1::0;;;;;12935:15:0::1;-1:-1:-1::0;;;;;12935:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12917:55:0::1;;12981:4;12988:15;;;;;;;;;-1:-1:-1::0;;;;;12988:15:0::1;-1:-1:-1::0;;;;;12988:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12917:94;::::0;-1:-1:-1;;;;;;12917:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7456:15:1;;;12917:94:0::1;::::0;::::1;7438:34:1::0;7508:15;;7488:18;;;7481:43;7373:18;;12917:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12901:13;:110:::0;;-1:-1:-1;;;;;12901:110:0;;::::1;-1:-1:-1::0;;;;;;12901:110:0;;::::1;;::::0;;13022:15:::1;::::0;::::1;:31;13061:21;13092:4;13098:24;13092:4:::0;-1:-1:-1;;;;;7705:18:0;7678:7;7705:18;;;:9;:18;;;;;;;7612:119;13098:24:::1;13123:1;13125::::0;13127:7:::1;4221::::0;4248:6;-1:-1:-1;;;;;4248:6:0;;4183:79;13127:7:::1;13022:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13022:129:0;;;-1:-1:-1;;;;;7894:15:1;;;13022:129:0::1;::::0;::::1;7876:34:1::0;7926:18;;;7919:34;;;;7969:18;;;7962:34;;;;8012:18;;;8005:34;8076:15;;;8055:19;;;8048:44;13135:15:0::1;8108:19:1::0;;;8101:35;7810:19;;13022:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13169:13:0::1;::::0;13200:15:::1;::::0;13162:71:::1;::::0;-1:-1:-1;;;13162:71:0;;-1:-1:-1;;;;;13200:15:0;;::::1;13162:71;::::0;::::1;8632:51:1::0;-1:-1:-1;;8699:18:1;;;8692:34;13169:13:0;::::1;::::0;-1:-1:-1;13162:29:0::1;::::0;8605:18:1;;13162:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13244:11:0::1;:18:::0;;-1:-1:-1;;;;13273:18:0;-1:-1:-1;;;13273:18:0;;;12628:671::o;8555:335::-;-1:-1:-1;;;;;8648:19:0;;8640:68;;;;-1:-1:-1;;;8640:68:0;;9221:2:1;8640:68:0;;;9203:21:1;9260:2;9240:18;;;9233:30;9299:34;9279:18;;;9272:62;-1:-1:-1;;;9350:18:1;;;9343:34;9394:19;;8640:68:0;9019:400:1;8640:68:0;-1:-1:-1;;;;;8727:21:0;;8719:68;;;;-1:-1:-1;;;8719:68:0;;9626:2:1;8719:68:0;;;9608:21:1;9665:2;9645:18;;;9638:30;9704:34;9684:18;;;9677:62;-1:-1:-1;;;9755:18:1;;;9748:32;9797:19;;8719:68:0;9424:398:1;8719:68:0;-1:-1:-1;;;;;8798:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8850:32;;1500:25:1;;;8850:32:0;;1473:18:1;8850:32:0;;;;;;;8555:335;;;:::o;8898:2480::-;-1:-1:-1;;;;;8986:18:0;;8978:68;;;;-1:-1:-1;;;8978:68:0;;10029:2:1;8978:68:0;;;10011:21:1;10068:2;10048:18;;;10041:30;10107:34;10087:18;;;10080:62;-1:-1:-1;;;10158:18:1;;;10151:35;10203:19;;8978:68:0;9827:401:1;8978:68:0;-1:-1:-1;;;;;9065:16:0;;9057:64;;;;-1:-1:-1;;;9057:64:0;;10435:2:1;9057:64:0;;;10417:21:1;10474:2;10454:18;;;10447:30;10513:34;10493:18;;;10486:62;-1:-1:-1;;;10564:18:1;;;10557:33;10607:19;;9057:64:0;10233:399:1;9057:64:0;9149:1;9140:6;:10;9132:64;;;;-1:-1:-1;;;9132:64:0;;10839:2:1;9132:64:0;;;10821:21:1;10878:2;10858:18;;;10851:30;10917:34;10897:18;;;10890:62;-1:-1:-1;;;10968:18:1;;;10961:39;11017:19;;9132:64:0;10637:405:1;9132:64:0;9207:17;4248:6;;-1:-1:-1;;;;;9241:15:0;;;4248:6;;9241:15;;;;:32;;-1:-1:-1;4221:7:0;4248:6;-1:-1:-1;;;;;9260:13:0;;;4248:6;;9260:13;;9241:32;9237:1785;;;-1:-1:-1;;;;;9299:10:0;;;;;;:4;:10;;;;;;;;9298:11;:24;;;;-1:-1:-1;;;;;;9314:8:0;;;;;;:4;:8;;;;;;;;9313:9;9298:24;9290:33;;;;;;9344:20;;;;9340:346;;;9403:15;;-1:-1:-1;;;;;9389:30:0;;;9403:15;;9389:30;;;;:62;;-1:-1:-1;9437:13:0;;-1:-1:-1;;;;;9423:28:0;;;9437:13;;9423:28;;9389:62;9385:286;;;9511:9;9482:39;;;;:28;:39;;;;;;9524:12;-1:-1:-1;9474:102:0;;;;-1:-1:-1;;;9474:102:0;;11249:2:1;9474:102:0;;;11231:21:1;11288:2;11268:18;;;11261:30;11327:34;11307:18;;;11300:62;-1:-1:-1;;;11378:18:1;;;11371:34;11422:19;;9474:102:0;11047:400:1;9474:102:0;9626:9;9597:39;;;;:28;:39;;;;;9639:12;9597:54;;9385:286;9714:13;;-1:-1:-1;;;;;9706:21:0;;;9714:13;;9706:21;:55;;;;-1:-1:-1;9745:15:0;;-1:-1:-1;;;;;9731:30:0;;;9745:15;;9731:30;;9706:55;:83;;;;-1:-1:-1;;;;;;9767:22:0;;;;;;:18;:22;;;;;;;;9765:24;9706:83;9702:428;;;9829:12;;9819:6;:22;;9811:60;;;;-1:-1:-1;;;9811:60:0;;11654:2:1;9811:60:0;;;11636:21:1;11693:2;11673:18;;;11666:30;-1:-1:-1;;;11712:18:1;;;11705:55;11777:18;;9811:60:0;11452:349:1;9811:60:0;9924:14;;9914:6;9898:13;9908:2;-1:-1:-1;;;;;7705:18:0;7678:7;7705:18;;;:9;:18;;;;;;;7612:119;9898:13;:22;;;;:::i;:::-;:40;;9890:79;;;;-1:-1:-1;;;9890:79:0;;12138:2:1;9890:79:0;;;12120:21:1;12177:2;12157:18;;;12150:30;12216:28;12196:18;;;12189:56;12262:18;;9890:79:0;11936:350:1;9890:79:0;10001:18;;9991:9;;:28;9988:97;;;13475:20;;13523:8;10041:24;;;;;;10103:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9702:428;10160:76;10232:3;10160:67;10182:15;;10172:9;;:25;10171:55;;10212:14;;10171:55;;;10199:12;;10171:55;10160:6;;:10;:67::i;:::-;:71;;:76::i;:::-;10260:13;;10148:88;;-1:-1:-1;;;;;;10254:19:0;;;10260:13;;10254:19;:43;;;;-1:-1:-1;;;;;;10277:20:0;;10292:4;10277:20;;10254:43;10251:253;;;10336:12;;10326:6;:22;;10318:60;;;;-1:-1:-1;;;10318:60:0;;11654:2:1;10318:60:0;;;11636:21:1;11693:2;11673:18;;;11666:30;-1:-1:-1;;;11712:18:1;;;11705:55;11777:18;;10318:60:0;11452:349:1;10318:60:0;10409:79;10484:3;10409:70;10431:16;;10421:9;;:26;10420:58;;10463:15;;10420:58;;;10449:13;;10409:6;;:10;:70::i;:79::-;10397:91;;10251:253;10569:4;10520:28;7705:18;;;:9;:18;;;;;;10595:6;;-1:-1:-1;;;10595:6:0;;;;10594:7;:30;;;;-1:-1:-1;10611:13:0;;-1:-1:-1;;;;;10605:19:0;;;10611:13;;10605:19;10594:30;:45;;;;-1:-1:-1;10628:11:0;;-1:-1:-1;;;10628:11:0;;;;10594:45;:87;;;;;10664:17;;10643:20;:38;10594:87;:119;;;;;10695:18;;10685:9;;:28;10594:119;10590:421;;;10734:69;10751:51;10755:24;10759:11;;10772:6;10755:3;:24::i;:::-;10781:20;10751:3;:51::i;:::-;10734:16;:69::i;:::-;10851:21;10894:22;;10891:105;;10941:35;10954:21;10941:12;:35::i;:::-;10715:296;10590:421;9275:1747;9237:1785;11037:11;;11034:161;;11105:4;11087:24;;;;:9;:24;;;;;;:39;;11116:9;11087:28;:39::i;:::-;11080:4;11062:24;;;;:9;:24;;;;;;;:64;;;;11144:39;;-1:-1:-1;;;;;11144:39:0;;;;;;;11173:9;1500:25:1;;1488:2;1473:18;;1354:177;11144:39:0;;;;;;;;11034:161;-1:-1:-1;;;;;11221:15:0;;;;;;:9;:15;;;;;;:27;;11241:6;11221:19;:27::i;:::-;-1:-1:-1;;;;;11205:15:0;;;;;;:9;:15;;;;;:43;11273:40;11291:21;:6;11302:9;11291:10;:21::i;:::-;-1:-1:-1;;;;;11273:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;11259:13:0;;;;;;;:9;:13;;;;;:54;;;;11329:41;;;11348:21;:6;11359:9;11348:10;:21::i;:::-;11329:41;;1500:25:1;;;1488:2;1473:18;11329:41:0;;;;;;;8967:2411;8898:2480;;;:::o;3075:190::-;3161:7;3197:12;3189:6;;;;3181:29;;;;-1:-1:-1;;;3181:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3221:9:0;3233:5;3237:1;3233;:5;:::i;:::-;3221:17;3075:190;-1:-1:-1;;;;;3075:190:0:o;11494:555::-;6841:6;:13;;-1:-1:-1;;;;6841:13:0;-1:-1:-1;;;6841:13:0;;;11572:27;;11591:7:::1;11572:27;11613:11;::::0;-1:-1:-1;;;11613:11:0;::::1;;;11609:25:::0;11626:7:::1;11609:25;11668:16;::::0;;11682:1:::1;11668:16:::0;;;;;::::1;::::0;;11644:21:::1;::::0;11668:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11668:16:0::1;11644:40;;11713:4;11695;11700:1;11695:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11695:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11739:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11739:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11695:7;;11739:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11729:4;11734:1;11729:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11729:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11804:15:::1;::::0;11772:62:::1;::::0;11789:4:::1;::::0;11804:15:::1;11822:11:::0;11772:8:::1;:62::i;:::-;11845:15;::::0;:196:::1;::::0;-1:-1:-1;;;11845:196:0;;-1:-1:-1;;;;;11845:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11926:11;;11845:15:::1;::::0;11968:4;;11995::::1;::::0;12015:15:::1;::::0;11845:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11561:488;6865:1;-1:-1:-1::0;6877:6:0;:14;;-1:-1:-1;;;;6877:14:0;;;11494:555::o;12261:92::-;12318:10;;:27;;:10;;;;-1:-1:-1;;;;;12318:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;3273:246;3331:7;3355:1;3360;3355:6;3351:47;;-1:-1:-1;3385:1:0;3378:8;;3351:47;3408:9;3420:5;3424:1;3420;:5;:::i;:::-;3408:17;-1:-1:-1;3453:1:0;3444:5;3448:1;3408:17;3444:5;:::i;:::-;:10;3436:56;;;;-1:-1:-1;;;3436:56:0;;13833:2:1;3436:56:0;;;13815:21:1;13872:2;13852:18;;;13845:30;13911:34;13891:18;;;13884:62;-1:-1:-1;;;13962:18:1;;;13955:31;14003:19;;3436:56:0;13631:397:1;3436:56:0;3510:1;3273:246;-1:-1:-1;;;3273:246:0:o;3527:132::-;3585:7;3612:39;3616:1;3619;3612:39;;;;;;;;;;;;;;;;;:3;:39::i;11388:98::-;11445:7;11472:1;11470;:3;11469:9;;11477:1;11469:9;;;-1:-1:-1;11475:1:0;11388:98;-1:-1:-1;11388:98:0:o;2744:179::-;2802:7;;2834:5;2838:1;2834;:5;:::i;:::-;2822:17;;2863:1;2858;:6;;2850:46;;;;-1:-1:-1;;;2850:46:0;;14235:2:1;2850:46:0;;;14217:21:1;14274:2;14254:18;;;14247:30;14313:29;14293:18;;;14286:57;14360:18;;2850:46:0;14033:351:1;2931:136:0;2989:7;3016:43;3020:1;3023;3016:43;;;;;;;;;;;;;;;;;:3;:43::i;3667:189::-;3753:7;3788:12;3781:5;3773:28;;;;-1:-1:-1;;;3773:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3812:9:0;3824:5;3828:1;3824;:5;:::i;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;622:70;567:131;:::o;703:134::-;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2186:247::-;2245:6;2298:2;2286:9;2277:7;2273:23;2269:32;2266:52;;;2314:1;2311;2304:12;2266:52;2353:9;2340:23;2372:31;2397:5;2372:31;:::i;2438:127::-;2499:10;2494:3;2490:20;2487:1;2480:31;2530:4;2527:1;2520:15;2554:4;2551:1;2544:15;2570:1121;2654:6;2685:2;2728;2716:9;2707:7;2703:23;2699:32;2696:52;;;2744:1;2741;2734:12;2696:52;2784:9;2771:23;2813:18;2854:2;2846:6;2843:14;2840:34;;;2870:1;2867;2860:12;2840:34;2908:6;2897:9;2893:22;2883:32;;2953:7;2946:4;2942:2;2938:13;2934:27;2924:55;;2975:1;2972;2965:12;2924:55;3011:2;2998:16;3033:2;3029;3026:10;3023:36;;;3039:18;;:::i;:::-;3085:2;3082:1;3078:10;3117:2;3111:9;3180:2;3176:7;3171:2;3167;3163:11;3159:25;3151:6;3147:38;3235:6;3223:10;3220:22;3215:2;3203:10;3200:18;3197:46;3194:72;;;3246:18;;:::i;:::-;3282:2;3275:22;3332:18;;;3366:15;;;;-1:-1:-1;3408:11:1;;;3404:20;;;3436:19;;;3433:39;;;3468:1;3465;3458:12;3433:39;3492:11;;;;3512:148;3528:6;3523:3;3520:15;3512:148;;;3594:23;3613:3;3594:23;:::i;:::-;3582:36;;3545:12;;;;3638;;;;3512:148;;;3679:6;2570:1121;-1:-1:-1;;;;;;;;2570:1121:1:o;3904:388::-;3972:6;3980;4033:2;4021:9;4012:7;4008:23;4004:32;4001:52;;;4049:1;4046;4039:12;4001:52;4088:9;4075:23;4107:31;4132:5;4107:31;:::i;:::-;4157:5;-1:-1:-1;4214:2:1;4199:18;;4186:32;4227:33;4186:32;4227:33;:::i;:::-;4279:7;4269:17;;;3904:388;;;;;:::o;4297:127::-;4358:10;4353:3;4349:20;4346:1;4339:31;4389:4;4386:1;4379:15;4413:4;4410:1;4403:15;4429:422;4518:1;4561:5;4518:1;4575:270;4596:7;4586:8;4583:21;4575:270;;;4655:4;4651:1;4647:6;4643:17;4637:4;4634:27;4631:53;;;4664:18;;:::i;:::-;4714:7;4704:8;4700:22;4697:55;;;4734:16;;;;4697:55;4813:22;;;;4773:15;;;;4575:270;;;4579:3;4429:422;;;;;:::o;4856:806::-;4905:5;4935:8;4925:80;;-1:-1:-1;4976:1:1;4990:5;;4925:80;5024:4;5014:76;;-1:-1:-1;5061:1:1;5075:5;;5014:76;5106:4;5124:1;5119:59;;;;5192:1;5187:130;;;;5099:218;;5119:59;5149:1;5140:10;;5163:5;;;5187:130;5224:3;5214:8;5211:17;5208:43;;;5231:18;;:::i;:::-;-1:-1:-1;;5287:1:1;5273:16;;5302:5;;5099:218;;5401:2;5391:8;5388:16;5382:3;5376:4;5373:13;5369:36;5363:2;5353:8;5350:16;5345:2;5339:4;5336:12;5332:35;5329:77;5326:159;;;-1:-1:-1;5438:19:1;;;5470:5;;5326:159;5517:34;5542:8;5536:4;5517:34;:::i;:::-;5587:6;5583:1;5579:6;5575:19;5566:7;5563:32;5560:58;;;5598:18;;:::i;:::-;5636:20;;4856:806;-1:-1:-1;;;4856:806:1:o;5667:140::-;5725:5;5754:47;5795:4;5785:8;5781:19;5775:4;5754:47;:::i;5812:168::-;5885:9;;;5916;;5933:15;;;5927:22;;5913:37;5903:71;;5954:18;;:::i;5985:356::-;6187:2;6169:21;;;6206:18;;;6199:30;6265:34;6260:2;6245:18;;6238:62;6332:2;6317:18;;5985:356::o;6346:127::-;6407:10;6402:3;6398:20;6395:1;6388:31;6438:4;6435:1;6428:15;6462:4;6459:1;6452:15;6478:135;6517:3;6538:17;;;6535:43;;6558:18;;:::i;:::-;-1:-1:-1;6605:1:1;6594:13;;6478:135::o;6970:251::-;7040:6;7093:2;7081:9;7072:7;7068:23;7064:32;7061:52;;;7109:1;7106;7099:12;7061:52;7141:9;7135:16;7160:31;7185:5;7160:31;:::i;8147:306::-;8235:6;8243;8251;8304:2;8292:9;8283:7;8279:23;8275:32;8272:52;;;8320:1;8317;8310:12;8272:52;8349:9;8343:16;8333:26;;8399:2;8388:9;8384:18;8378:25;8368:35;;8443:2;8432:9;8428:18;8422:25;8412:35;;8147:306;;;;;:::o;8737:277::-;8804:6;8857:2;8845:9;8836:7;8832:23;8828:32;8825:52;;;8873:1;8870;8863:12;8825:52;8905:9;8899:16;8958:5;8951:13;8944:21;8937:5;8934:32;8924:60;;8980:1;8977;8970:12;11806:125;11871:9;;;11892:10;;;11889:36;;;11905:18;;:::i;12291:128::-;12358:9;;;12379:11;;;12376:37;;;12393:18;;:::i;12424:980::-;12686:4;12734:3;12723:9;12719:19;12765:6;12754:9;12747:25;12791:2;12829:6;12824:2;12813:9;12809:18;12802:34;12872:3;12867:2;12856:9;12852:18;12845:31;12896:6;12931;12925:13;12962:6;12954;12947:22;13000:3;12989:9;12985:19;12978:26;;13039:2;13031:6;13027:15;13013:29;;13060:1;13070:195;13084:6;13081:1;13078:13;13070:195;;;13149:13;;-1:-1:-1;;;;;13145:39:1;13133:52;;13240:15;;;;13205:12;;;;13181:1;13099:9;13070:195;;;-1:-1:-1;;;;;;;13321:32:1;;;;13316:2;13301:18;;13294:60;-1:-1:-1;;;13385:3:1;13370:19;13363:35;13282:3;12424:980;-1:-1:-1;;;12424:980:1:o;13409:217::-;13449:1;13475;13465:132;;13519:10;13514:3;13510:20;13507:1;13500:31;13554:4;13551:1;13544:15;13582:4;13579:1;13572:15;13465:132;-1:-1:-1;13611:9:1;;13409:217::o

Swarm Source

ipfs://10eaa15c441072f2d1939a86eadd98e281eb66d4e0771a334f20e442a4db3640

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.