ETH Price: $2,885.16 (+7.23%)
 

Overview

ETH Balance

1.30060349544432374 ETH

Eth Value

$3,752.45 (@ $2,885.16/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve205712992024-08-20 17:22:5979 days ago1724174579IN
0x496d8284...4116ce43B
0 ETH0.000112872.42657476
Approve198927262024-05-17 22:40:47173 days ago1715985647IN
0x496d8284...4116ce43B
0 ETH0.000207544.46168395
Approve192529692024-02-18 6:40:11263 days ago1708238411IN
0x496d8284...4116ce43B
0 ETH0.0003927216.16620541
Approve179963012023-08-26 3:54:23439 days ago1693022063IN
0x496d8284...4116ce43B
0 ETH0.0005296311.38584979
Approve179673382023-08-22 2:41:47443 days ago1692672107IN
0x496d8284...4116ce43B
0 ETH0.0005571922.93651262
Approve179502232023-08-19 17:11:11446 days ago1692465071IN
0x496d8284...4116ce43B
0 ETH0.0009579620.56735528
Approve179500392023-08-19 16:34:23446 days ago1692462863IN
0x496d8284...4116ce43B
0 ETH0.001409830.26828156
Approve179488282023-08-19 12:30:23446 days ago1692448223IN
0x496d8284...4116ce43B
0 ETH0.0008533618.34519751
Transfer179487252023-08-19 12:09:11446 days ago1692446951IN
0x496d8284...4116ce43B
0 ETH0.0008458115.57762274
Approve179485522023-08-19 11:34:11446 days ago1692444851IN
0x496d8284...4116ce43B
0 ETH0.0005798212.54894576
Approve179482852023-08-19 10:40:23446 days ago1692441623IN
0x496d8284...4116ce43B
0 ETH0.0006846814.7
Approve179482302023-08-19 10:29:23446 days ago1692440963IN
0x496d8284...4116ce43B
0 ETH0.0006153913.21246429
Approve179476502023-08-19 8:32:11446 days ago1692433931IN
0x496d8284...4116ce43B
0 ETH0.0005097919.32715576
Approve179476502023-08-19 8:32:11446 days ago1692433931IN
0x496d8284...4116ce43B
0 ETH0.0006653314.37726547
Approve179475652023-08-19 8:14:59446 days ago1692432899IN
0x496d8284...4116ce43B
0 ETH0.0004215314.4474762
Approve179475502023-08-19 8:11:59446 days ago1692432719IN
0x496d8284...4116ce43B
0 ETH0.0005827512.60913933
Approve179475092023-08-19 8:03:47446 days ago1692432227IN
0x496d8284...4116ce43B
0 ETH0.0006131313.18093746
Approve179473532023-08-19 7:31:59446 days ago1692430319IN
0x496d8284...4116ce43B
0 ETH0.0006149613.22018312
Approve179472892023-08-19 7:19:11446 days ago1692429551IN
0x496d8284...4116ce43B
0 ETH0.0006014212.92911235
Approve179472642023-08-19 7:14:11446 days ago1692429251IN
0x496d8284...4116ce43B
0 ETH0.0006030313.03091982
Approve179472212023-08-19 7:05:23446 days ago1692428723IN
0x496d8284...4116ce43B
0 ETH0.0005877112.63432141
Approve179472172023-08-19 7:04:35446 days ago1692428675IN
0x496d8284...4116ce43B
0 ETH0.000662314.21967664
Approve179472142023-08-19 7:03:59446 days ago1692428639IN
0x496d8284...4116ce43B
0 ETH0.000629413.53059739
Approve179472142023-08-19 7:03:59446 days ago1692428639IN
0x496d8284...4116ce43B
0 ETH0.000629413.53059739
Approve179472062023-08-19 7:02:23446 days ago1692428543IN
0x496d8284...4116ce43B
0 ETH0.0007769516.68106387
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
205713112024-08-20 17:25:2379 days ago1724174723
0x496d8284...4116ce43B
0.00126167 ETH
205713112024-08-20 17:25:2379 days ago1724174723
0x496d8284...4116ce43B
0.00157709 ETH
198927272024-05-17 22:40:59173 days ago1715985659
0x496d8284...4116ce43B
0.00279225 ETH
198927272024-05-17 22:40:59173 days ago1715985659
0x496d8284...4116ce43B
0.00349031 ETH
197447142024-04-27 5:53:23194 days ago1714197203
0x496d8284...4116ce43B
0.00439488 ETH
197447142024-04-27 5:53:23194 days ago1714197203
0x496d8284...4116ce43B
0.0054936 ETH
179669662023-08-22 1:26:23443 days ago1692667583
0x496d8284...4116ce43B
0.00228123 ETH
179669662023-08-22 1:26:23443 days ago1692667583
0x496d8284...4116ce43B
0.00285153 ETH
179476462023-08-19 8:31:23446 days ago1692433883
0x496d8284...4116ce43B
0.00367914 ETH
179476462023-08-19 8:31:23446 days ago1692433883
0x496d8284...4116ce43B
0.00459893 ETH
179472272023-08-19 7:06:35446 days ago1692428795
0x496d8284...4116ce43B
0.00636879 ETH
179472272023-08-19 7:06:35446 days ago1692428795
0x496d8284...4116ce43B
0.00796099 ETH
179471992023-08-19 7:00:47446 days ago1692428447
0x496d8284...4116ce43B
0.01405267 ETH
179471992023-08-19 7:00:47446 days ago1692428447
0x496d8284...4116ce43B
0.01756584 ETH
179471882023-08-19 6:58:35446 days ago1692428315
0x496d8284...4116ce43B
0.00753543 ETH
179471882023-08-19 6:58:35446 days ago1692428315
0x496d8284...4116ce43B
0.00941929 ETH
179471612023-08-19 6:53:11446 days ago1692427991
0x496d8284...4116ce43B
0.01473563 ETH
179471612023-08-19 6:53:11446 days ago1692427991
0x496d8284...4116ce43B
0.01841953 ETH
179471132023-08-19 6:43:23446 days ago1692427403
0x496d8284...4116ce43B
0.02648738 ETH
179471132023-08-19 6:43:23446 days ago1692427403
0x496d8284...4116ce43B
0.03310923 ETH
179471122023-08-19 6:43:11446 days ago1692427391
0x496d8284...4116ce43B
0.02648738 ETH
179471122023-08-19 6:43:11446 days ago1692427391
0x496d8284...4116ce43B
0.03310923 ETH
179471122023-08-19 6:43:11446 days ago1692427391
0x496d8284...4116ce43B
0.02648738 ETH
179471122023-08-19 6:43:11446 days ago1692427391
0x496d8284...4116ce43B
0.03310923 ETH
179470602023-08-19 6:32:23446 days ago1692426743
0x496d8284...4116ce43B
0.04384586 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
cBITCOIN

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 9999 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-19
*/

/*
    Website: https://classichpos10i.com
    Twitter: https://twitter.com/ClassicHPOS10I
    Telegram: https://t.me/ClassicHPOS10I


░▒█▀▀▄░█░░█▀▀▄░█▀▀░█▀▀░░▀░░█▀▄░░░▒█▀▀▄░░▀░░▀█▀░█▀▄░▄▀▀▄░░▀░░█▀▀▄
░▒█░░░░█░░█▄▄█░▀▀▄░▀▀▄░░█▀░█░░░░░▒█▀▀▄░░█▀░░█░░█░░░█░░█░░█▀░█░▒█
░▒█▄▄▀░▀▀░▀░░▀░▀▀▀░▀▀▀░▀▀▀░▀▀▀░░░▒█▄▄█░▀▀▀░░▀░░▀▀▀░░▀▀░░▀▀▀░▀░░▀

*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.21;

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 cBITCOIN 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 => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    uint256 private _initialBuyTax = 20;
    uint256 private _initialSellTax = 20;
    uint256 private _reduceBuyTaxAt = 15;
    uint256 private _reduceSellTaxAt = 15;

    uint256 private _initialBuyTax2Time = 10;
    uint256 private _initialSellTax2Time = 10;
    uint256 private _reduceBuyTaxAt2Time = 25;

    uint256 private _finalBuyTax = 1;
    uint256 private _finalSellTax = 1;
    
    uint256 private _preventSwapBefore = 25;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"ClassicHarryPotterObamaShrek10Inu";
    string private constant _symbol = unicode"cBITCOIN";

    uint256 public _maxTxAmount =  2 * (_tTotal/100);   
    uint256 public _maxWalletSize =  2 * (_tTotal/100);
    uint256 public _taxSwapThreshold=  2 * (_tTotal/1000);
    uint256 public _maxTaxSwap=  1 * (_tTotal/100);

    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()) {
            taxAmount = amount.mul(_taxBuy()).div(100);

            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) { 
                    require(
                        _holderLastTransferTimestamp[tx.origin] < block.number,
                        "_transfer:: Transfer Delay enabled.  Only one purchase 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.");
                _buyCount++;
                if (_buyCount > _preventSwapBefore) {
                    transferDelayEnabled = false;
                }
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul(_taxSell()).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold) {
                uint256 initialETH = address(this).balance;
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 ethForTransfer = address(this).balance.sub(initialETH).mul(80).div(100);
                if(ethForTransfer > 0) {
                    sendETHToFee(ethForTransfer);
                }
            }
        }

        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 _taxBuy() private view returns (uint256) {
        if(_buyCount <= _reduceBuyTaxAt){
            return _initialBuyTax;
        }
        if(_buyCount > _reduceBuyTaxAt && _buyCount <= _reduceBuyTaxAt2Time){
            return _initialBuyTax2Time;
        }
         return _finalBuyTax;
    }

    function _taxSell() private view returns (uint256) {
        if(_buyCount <= _reduceBuyTaxAt){
            return _initialSellTax;
        }
        if(_buyCount > _reduceSellTaxAt && _buyCount <= _reduceBuyTaxAt2Time){
            return _initialSellTax2Time;
        }
         return _finalBuyTax;
    }

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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        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 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 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":"ManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":[],"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"}]

6080604052600160055f6101000a81548160ff02191690831515021790555060146006556014600755600f600855600f600955600a8055600a600b556019600c556001600d556001600e556019600f555f60105560646009600a620000659190620003d1565b6200007590633b9aca00620003e8565b62000081919062000402565b6200008e906002620003e8565b6011556064620000a16009600a620003d1565b620000b190633b9aca00620003e8565b620000bd919062000402565b620000ca906002620003e8565b6012556103e8620000de6009600a620003d1565b620000ee90633b9aca00620003e8565b620000fa919062000402565b62000107906002620003e8565b60135560646200011a6009600a620003d1565b6200012a90633b9aca00620003e8565b62000136919062000402565b62000143906001620003e8565b6014556016805461ffff60a81b1916905534801562000160575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b0319166101003302179055620001c66009600a620003d1565b620001d690633b9aca00620003e8565b335f908152600160208190526040822092909255600390620001ff5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005546101009004909116835291208054909216179055620002623390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200029b6009600a620003d1565b620002ab90633b9aca00620003e8565b60405190815260200160405180910390a362000422565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200031657815f1904821115620002fa57620002fa620002c2565b808516156200030857918102915b93841c9390800290620002db565b509250929050565b5f826200032e57506001620003cb565b816200033c57505f620003cb565b8160018114620003555760028114620003605762000380565b6001915050620003cb565b60ff841115620003745762000374620002c2565b50506001821b620003cb565b5060208310610133831016604e8410600b8410161715620003a5575081810a620003cb565b620003b18383620002d6565b805f1904821115620003c757620003c7620002c2565b0290505b92915050565b5f620003e160ff8416836200031e565b9392505050565b8082028115828204841417620003cb57620003cb620002c2565b5f826200041d57634e487b7160e01b5f52601260045260245ffd5b500490565b611c6680620004305f395ff3fe608060405260043610610140575f3560e01c80637d1db4a5116100bb578063a9059cbb11610071578063c876d0b911610057578063c876d0b914610350578063c9567bf914610369578063dd62ed3e1461037d575f80fd5b8063a9059cbb1461031c578063bf474bed1461033b575f80fd5b80638f9a55c0116100a15780638f9a55c0146102ae57806395d89b41146102c3578063a1780c1814610308575f80fd5b80637d1db4a5146102735780638da5cb5b14610288575f80fd5b806323b872dd1161011057806370a08231116100f657806370a0823114610215578063715018a614610249578063751039fc1461025f575f80fd5b806323b872dd146101db578063313ce567146101fa575f80fd5b806306fdde031461014b578063095ea7b3146101755780630faee56f146101a457806318160ddd146101c7575f80fd5b3661014757005b5f80fd5b348015610156575f80fd5b5061015f6103c1565b60405161016c91906117a7565b60405180910390f35b348015610180575f80fd5b5061019461018f366004611827565b6103e1565b604051901515815260200161016c565b3480156101af575f80fd5b506101b960145481565b60405190815260200161016c565b3480156101d2575f80fd5b506101b96103f7565b3480156101e6575f80fd5b506101946101f5366004611851565b610417565b348015610205575f80fd5b506040516009815260200161016c565b348015610220575f80fd5b506101b961022f36600461188f565b6001600160a01b03165f9081526001602052604090205490565b348015610254575f80fd5b5061025d61047e565b005b34801561026a575f80fd5b5061025d61053c565b34801561027e575f80fd5b506101b960115481565b348015610293575f80fd5b505f546040516001600160a01b03909116815260200161016c565b3480156102b9575f80fd5b506101b960125481565b3480156102ce575f80fd5b5060408051808201909152600881527f63424954434f494e000000000000000000000000000000000000000000000000602082015261015f565b348015610313575f80fd5b5061025d610645565b348015610327575f80fd5b50610194610336366004611827565b61069b565b348015610346575f80fd5b506101b960135481565b34801561035b575f80fd5b506005546101949060ff1681565b348015610374575f80fd5b5061025d6106a7565b348015610388575f80fd5b506101b96103973660046118aa565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b6060604051806060016040528060218152602001611be860219139905090565b5f6103ed338484610b53565b5060015b92915050565b5f6104046009600a611a2c565b61041290633b9aca00611a3a565b905090565b5f610423848484610caa565b610474843361046f85604051806060016040528060288152602001611c09602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611316565b610b53565b5060019392505050565b5f546001600160a01b031633146104dc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b5f546001600160a01b031633146105955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104d3565b6105a16009600a611a2c565b6105af90633b9aca00611a3a565b6011556105be6009600a611a2c565b6105cc90633b9aca00611a3a565b601255600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106246009600a611a2c565b61063290633b9aca00611a3a565b60405190815260200160405180910390a1565b60055461010090046001600160a01b0316336001600160a01b031614610669575f80fd5b305f908152600160205260409020548015610687576106878161134e565b4780156106975761069781611538565b5050565b5f6103ed338484610caa565b5f546001600160a01b031633146107005760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104d3565b60165474010000000000000000000000000000000000000000900460ff161561076b5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104d3565b601580547fffffffffffffffffffffffff000000000000000000000000000000000000000016737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107cc9030906107be6009600a611a2c565b61046f90633b9aca00611a3a565b60155f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108409190611a51565b6001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561089f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c39190611a51565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610925573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109499190611a51565b601680546001600160a01b039283167fffffffffffffffffffffffff00000000000000000000000000000000000000009091161790556015541663f305d71947306109a8816001600160a01b03165f9081526001602052604090205490565b5f806109bb5f546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a39573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a5e9190611a6c565b50506016546015546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201529116915063095ea7b3906044016020604051808303815f875af1158015610aeb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0f9190611a97565b50601680547fffffffffffffffffff00ff00ffffffffffffffffffffffffffffffffffffffff16760100010000000000000000000000000000000000000000179055565b6001600160a01b038316610bce5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104d3565b6001600160a01b038216610c4a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016104d3565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d265760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016104d3565b6001600160a01b038216610da25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016104d3565b5f8111610e175760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f000000000000000000000000000000000000000000000060648201526084016104d3565b5f80546001600160a01b03858116911614801590610e4257505f546001600160a01b03848116911614155b156111d957610e646064610e5e610e57611573565b85906115b0565b90611651565b60055490915060ff1615610f5e576015546001600160a01b03848116911614801590610e9e57506016546001600160a01b03848116911614155b15610f5e57325f908152600460205260409020544311610f4c5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60648201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000608482015260a4016104d3565b325f9081526004602052604090204390555b6016546001600160a01b038581169116148015610f8957506015546001600160a01b03848116911614155b8015610fad57506001600160a01b0383165f9081526003602052604090205460ff16155b156110c7576011548211156110045760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104d3565b60125482611026856001600160a01b03165f9081526001602052604090205490565b6110309190611ab6565b111561107e5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104d3565b60108054905f61108d83611ac9565b9190505550600f5460105411156110c757600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b6016546001600160a01b0384811691161480156110ed57506001600160a01b0384163014155b15611105576111026064610e5e610e57611692565b90505b305f908152600160205260409020546016547501000000000000000000000000000000000000000000900460ff1615801561114d57506016546001600160a01b038581169116145b80156111755750601654760100000000000000000000000000000000000000000000900460ff165b8015611182575060135481115b156111d7575f4790506111a86111a38561119e856014546116c8565b6116c8565b61134e565b5f6111c36064610e5e60506111bd47876116dc565b906115b0565b905080156111d4576111d481611538565b50505b505b801561125157305f908152600160205260409020546111f8908261171d565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112489085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461127390836116dc565b6001600160a01b0385165f908152600160205260409020556112b661129883836116dc565b6001600160a01b0385165f908152600160205260409020549061171d565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112ff85856116dc565b60405190815260200160405180910390a350505050565b5f81848411156113395760405162461bcd60e51b81526004016104d391906117a7565b505f6113458486611b00565b95945050505050565b601680547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106113c1576113c1611b13565b6001600160a01b03928316602091820292909201810191909152601554604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015611431573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114559190611a51565b8160018151811061146857611468611b13565b6001600160a01b03928316602091820292909201015260155461148e9130911684610b53565b6015546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac947906114df9085905f90869030904290600401611b40565b5f604051808303815f87803b1580156114f6575f80fd5b505af1158015611508573d5f803e3d5ffd5b5050601680547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610697573d5f803e3d5ffd5b5f60085460105411611586575060065490565b60085460105411801561159d5750600c5460105411155b156115a95750600a5490565b50600d5490565b5f825f036115bf57505f6103f1565b5f6115ca8385611a3a565b9050826115d78583611baf565b1461164a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f770000000000000000000000000000000000000000000000000000000000000060648201526084016104d3565b9392505050565b5f61164a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061177b565b5f600854601054116116a5575060075490565b6009546010541180156116bc5750600c5460105411155b156115a95750600b5490565b5f8183116116d6578261164a565b50919050565b5f61164a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611316565b5f806117298385611ab6565b90508381101561164a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104d3565b5f818361179b5760405162461bcd60e51b81526004016104d391906117a7565b505f6113458486611baf565b5f6020808352835180828501525f5b818110156117d2578581018301518582016040015282016117b6565b505f6040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b6001600160a01b0381168114611824575f80fd5b50565b5f8060408385031215611838575f80fd5b823561184381611810565b946020939093013593505050565b5f805f60608486031215611863575f80fd5b833561186e81611810565b9250602084013561187e81611810565b929592945050506040919091013590565b5f6020828403121561189f575f80fd5b813561164a81611810565b5f80604083850312156118bb575f80fd5b82356118c681611810565b915060208301356118d681611810565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b600181815b8085111561196757817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561194d5761194d6118e1565b8085161561195a57918102915b93841c9390800290611913565b509250929050565b5f8261197d575060016103f1565b8161198957505f6103f1565b816001811461199f57600281146119a9576119c5565b60019150506103f1565b60ff8411156119ba576119ba6118e1565b50506001821b6103f1565b5060208310610133831016604e8410600b84101617156119e8575081810a6103f1565b6119f2838361190e565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611a2457611a246118e1565b029392505050565b5f61164a60ff84168361196f565b80820281158282048414176103f1576103f16118e1565b5f60208284031215611a61575f80fd5b815161164a81611810565b5f805f60608486031215611a7e575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611aa7575f80fd5b8151801515811461164a575f80fd5b808201808211156103f1576103f16118e1565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611af957611af96118e1565b5060010190565b818103818111156103f1576103f16118e1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611b8e5784516001600160a01b031683529383019391830191600101611b69565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611be2577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fe436c61737369634861727279506f747465724f62616d61536872656b3130496e7545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206a20a019da7bb023456500e0902dbb894e6e9ac5f2697fd0b4a86dd5cd721b8b64736f6c63430008150033

Deployed Bytecode

0x608060405260043610610140575f3560e01c80637d1db4a5116100bb578063a9059cbb11610071578063c876d0b911610057578063c876d0b914610350578063c9567bf914610369578063dd62ed3e1461037d575f80fd5b8063a9059cbb1461031c578063bf474bed1461033b575f80fd5b80638f9a55c0116100a15780638f9a55c0146102ae57806395d89b41146102c3578063a1780c1814610308575f80fd5b80637d1db4a5146102735780638da5cb5b14610288575f80fd5b806323b872dd1161011057806370a08231116100f657806370a0823114610215578063715018a614610249578063751039fc1461025f575f80fd5b806323b872dd146101db578063313ce567146101fa575f80fd5b806306fdde031461014b578063095ea7b3146101755780630faee56f146101a457806318160ddd146101c7575f80fd5b3661014757005b5f80fd5b348015610156575f80fd5b5061015f6103c1565b60405161016c91906117a7565b60405180910390f35b348015610180575f80fd5b5061019461018f366004611827565b6103e1565b604051901515815260200161016c565b3480156101af575f80fd5b506101b960145481565b60405190815260200161016c565b3480156101d2575f80fd5b506101b96103f7565b3480156101e6575f80fd5b506101946101f5366004611851565b610417565b348015610205575f80fd5b506040516009815260200161016c565b348015610220575f80fd5b506101b961022f36600461188f565b6001600160a01b03165f9081526001602052604090205490565b348015610254575f80fd5b5061025d61047e565b005b34801561026a575f80fd5b5061025d61053c565b34801561027e575f80fd5b506101b960115481565b348015610293575f80fd5b505f546040516001600160a01b03909116815260200161016c565b3480156102b9575f80fd5b506101b960125481565b3480156102ce575f80fd5b5060408051808201909152600881527f63424954434f494e000000000000000000000000000000000000000000000000602082015261015f565b348015610313575f80fd5b5061025d610645565b348015610327575f80fd5b50610194610336366004611827565b61069b565b348015610346575f80fd5b506101b960135481565b34801561035b575f80fd5b506005546101949060ff1681565b348015610374575f80fd5b5061025d6106a7565b348015610388575f80fd5b506101b96103973660046118aa565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b6060604051806060016040528060218152602001611be860219139905090565b5f6103ed338484610b53565b5060015b92915050565b5f6104046009600a611a2c565b61041290633b9aca00611a3a565b905090565b5f610423848484610caa565b610474843361046f85604051806060016040528060288152602001611c09602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611316565b610b53565b5060019392505050565b5f546001600160a01b031633146104dc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b5f546001600160a01b031633146105955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104d3565b6105a16009600a611a2c565b6105af90633b9aca00611a3a565b6011556105be6009600a611a2c565b6105cc90633b9aca00611a3a565b601255600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106246009600a611a2c565b61063290633b9aca00611a3a565b60405190815260200160405180910390a1565b60055461010090046001600160a01b0316336001600160a01b031614610669575f80fd5b305f908152600160205260409020548015610687576106878161134e565b4780156106975761069781611538565b5050565b5f6103ed338484610caa565b5f546001600160a01b031633146107005760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104d3565b60165474010000000000000000000000000000000000000000900460ff161561076b5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104d3565b601580547fffffffffffffffffffffffff000000000000000000000000000000000000000016737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107cc9030906107be6009600a611a2c565b61046f90633b9aca00611a3a565b60155f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108409190611a51565b6001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561089f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c39190611a51565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610925573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109499190611a51565b601680546001600160a01b039283167fffffffffffffffffffffffff00000000000000000000000000000000000000009091161790556015541663f305d71947306109a8816001600160a01b03165f9081526001602052604090205490565b5f806109bb5f546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a39573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a5e9190611a6c565b50506016546015546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201529116915063095ea7b3906044016020604051808303815f875af1158015610aeb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0f9190611a97565b50601680547fffffffffffffffffff00ff00ffffffffffffffffffffffffffffffffffffffff16760100010000000000000000000000000000000000000000179055565b6001600160a01b038316610bce5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104d3565b6001600160a01b038216610c4a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016104d3565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d265760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016104d3565b6001600160a01b038216610da25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016104d3565b5f8111610e175760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f000000000000000000000000000000000000000000000060648201526084016104d3565b5f80546001600160a01b03858116911614801590610e4257505f546001600160a01b03848116911614155b156111d957610e646064610e5e610e57611573565b85906115b0565b90611651565b60055490915060ff1615610f5e576015546001600160a01b03848116911614801590610e9e57506016546001600160a01b03848116911614155b15610f5e57325f908152600460205260409020544311610f4c5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60648201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000608482015260a4016104d3565b325f9081526004602052604090204390555b6016546001600160a01b038581169116148015610f8957506015546001600160a01b03848116911614155b8015610fad57506001600160a01b0383165f9081526003602052604090205460ff16155b156110c7576011548211156110045760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104d3565b60125482611026856001600160a01b03165f9081526001602052604090205490565b6110309190611ab6565b111561107e5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104d3565b60108054905f61108d83611ac9565b9190505550600f5460105411156110c757600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b6016546001600160a01b0384811691161480156110ed57506001600160a01b0384163014155b15611105576111026064610e5e610e57611692565b90505b305f908152600160205260409020546016547501000000000000000000000000000000000000000000900460ff1615801561114d57506016546001600160a01b038581169116145b80156111755750601654760100000000000000000000000000000000000000000000900460ff165b8015611182575060135481115b156111d7575f4790506111a86111a38561119e856014546116c8565b6116c8565b61134e565b5f6111c36064610e5e60506111bd47876116dc565b906115b0565b905080156111d4576111d481611538565b50505b505b801561125157305f908152600160205260409020546111f8908261171d565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112489085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461127390836116dc565b6001600160a01b0385165f908152600160205260409020556112b661129883836116dc565b6001600160a01b0385165f908152600160205260409020549061171d565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112ff85856116dc565b60405190815260200160405180910390a350505050565b5f81848411156113395760405162461bcd60e51b81526004016104d391906117a7565b505f6113458486611b00565b95945050505050565b601680547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106113c1576113c1611b13565b6001600160a01b03928316602091820292909201810191909152601554604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015611431573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114559190611a51565b8160018151811061146857611468611b13565b6001600160a01b03928316602091820292909201015260155461148e9130911684610b53565b6015546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac947906114df9085905f90869030904290600401611b40565b5f604051808303815f87803b1580156114f6575f80fd5b505af1158015611508573d5f803e3d5ffd5b5050601680547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610697573d5f803e3d5ffd5b5f60085460105411611586575060065490565b60085460105411801561159d5750600c5460105411155b156115a95750600a5490565b50600d5490565b5f825f036115bf57505f6103f1565b5f6115ca8385611a3a565b9050826115d78583611baf565b1461164a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f770000000000000000000000000000000000000000000000000000000000000060648201526084016104d3565b9392505050565b5f61164a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061177b565b5f600854601054116116a5575060075490565b6009546010541180156116bc5750600c5460105411155b156115a95750600b5490565b5f8183116116d6578261164a565b50919050565b5f61164a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611316565b5f806117298385611ab6565b90508381101561164a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104d3565b5f818361179b5760405162461bcd60e51b81526004016104d391906117a7565b505f6113458486611baf565b5f6020808352835180828501525f5b818110156117d2578581018301518582016040015282016117b6565b505f6040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b6001600160a01b0381168114611824575f80fd5b50565b5f8060408385031215611838575f80fd5b823561184381611810565b946020939093013593505050565b5f805f60608486031215611863575f80fd5b833561186e81611810565b9250602084013561187e81611810565b929592945050506040919091013590565b5f6020828403121561189f575f80fd5b813561164a81611810565b5f80604083850312156118bb575f80fd5b82356118c681611810565b915060208301356118d681611810565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b600181815b8085111561196757817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561194d5761194d6118e1565b8085161561195a57918102915b93841c9390800290611913565b509250929050565b5f8261197d575060016103f1565b8161198957505f6103f1565b816001811461199f57600281146119a9576119c5565b60019150506103f1565b60ff8411156119ba576119ba6118e1565b50506001821b6103f1565b5060208310610133831016604e8410600b84101617156119e8575081810a6103f1565b6119f2838361190e565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611a2457611a246118e1565b029392505050565b5f61164a60ff84168361196f565b80820281158282048414176103f1576103f16118e1565b5f60208284031215611a61575f80fd5b815161164a81611810565b5f805f60608486031215611a7e575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611aa7575f80fd5b8151801515811461164a575f80fd5b808201808211156103f1576103f16118e1565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611af957611af96118e1565b5060010190565b818103818111156103f1576103f16118e1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611b8e5784516001600160a01b031683529383019391830191600101611b69565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611be2577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fe436c61737369634861727279506f747465724f62616d61536872656b3130496e7545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206a20a019da7bb023456500e0902dbb894e6e9ac5f2697fd0b4a86dd5cd721b8b64736f6c63430008150033

Deployed Bytecode Sourcemap

4202:8780:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6270:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7103:161;;;;;;;;;;-1:-1:-1;7103:161:0;;;;;:::i;:::-;;:::i;:::-;;;1270:14:1;;1263:22;1245:41;;1233:2;1218:18;7103:161:0;1105:187:1;5551:46:0;;;;;;;;;;;;;;;;;;;1443:25:1;;;1431:2;1416:18;5551:46:0;1297:177:1;6547:95:0;;;;;;;;;;;;;:::i;7272:313::-;;;;;;;;;;-1:-1:-1;7272:313:0;;;;;:::i;:::-;;:::i;6456:83::-;;;;;;;;;;-1:-1:-1;6456:83:0;;5159:1;2082:36:1;;2070:2;2055:18;6456:83:0;1940:184:1;6650:119:0;;;;;;;;;;-1:-1:-1;6650:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6743:18:0;6716:7;6743:18;;;:9;:18;;;;;;;6650:119;3283:148;;;;;;;;;;;;;:::i;:::-;;11611:196;;;;;;;;;;;;;:::i;5376:48::-;;;;;;;;;;;;;;;;3069:79;;;;;;;;;;-1:-1:-1;3107:7:0;3134:6;3069:79;;-1:-1:-1;;;;;3134:6:0;;;2527:74:1;;2515:2;2500:18;3069:79:0;2381:226:1;5434:50:0;;;;;;;;;;;;;;;;6361:87;;;;;;;;;;-1:-1:-1;6433:7:0;;;;;;;;;;;;;;;;;6361:87;;12631:348;;;;;;;;;;;;;:::i;6777:167::-;;;;;;;;;;-1:-1:-1;6777:167:0;;;;;:::i;:::-;;:::i;5491:53::-;;;;;;;;;;;;;;;;4547:39;;;;;;;;;;-1:-1:-1;4547:39:0;;;;;;;;11915:671;;;;;;;;;;;;;:::i;6952:143::-;;;;;;;;;;-1:-1:-1;6952:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7060:18:0;;;7033:7;7060:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6952:143;6270:83;6307:13;6340:5;;;;;;;;;;;;;;;;;6333:12;;6270:83;:::o;7103:161::-;7178:4;7195:39;904:10;7218:7;7227:6;7195:8;:39::i;:::-;-1:-1:-1;7252:4:0;7103:161;;;;;:::o;6547:95::-;6600:7;5215:13;5159:1;5215:2;:13;:::i;:::-;5202:26;;:10;:26;:::i;:::-;6620:14;;6547:95;:::o;7272:313::-;7370:4;7387:36;7397:6;7405:9;7416:6;7387:9;:36::i;:::-;7434:121;7443:6;904:10;7465:89;7503:6;7465:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7465:19:0;;;;;;:11;:19;;;;;;;;904:10;7465:33;;;;;;;;;;:37;:89::i;:::-;7434:8;:121::i;:::-;-1:-1:-1;7573:4:0;7272:313;;;;;:::o;3283:148::-;3196:6;;-1:-1:-1;;;;;3196:6:0;904:10;3196:22;3188:67;;;;-1:-1:-1;;;3188:67:0;;5072:2:1;3188:67:0;;;5054:21:1;;;5091:18;;;5084:30;5150:34;5130:18;;;5123:62;5202:18;;3188:67:0;;;;;;;;;3390:1:::1;3374:6:::0;;3353:40:::1;::::0;-1:-1:-1;;;;;3374:6:0;;::::1;::::0;3353:40:::1;::::0;3390:1;;3353:40:::1;3421:1;3404:19:::0;;;::::1;::::0;;3283:148::o;11611:196::-;3196:6;;-1:-1:-1;;;;;3196:6:0;904:10;3196:22;3188:67;;;;-1:-1:-1;;;3188:67:0;;5072:2:1;3188:67:0;;;5054:21:1;;;5091:18;;;5084:30;5150:34;5130:18;;;5123:62;5202:18;;3188:67:0;4870:356:1;3188:67:0;5215:13:::1;5159:1;5215:2;:13;:::i;:::-;5202:26;::::0;:10:::1;:26;:::i;:::-;11664:12;:22:::0;5215:13:::1;5159:1;5215:2;:13;:::i;:::-;5202:26;::::0;:10:::1;:26;:::i;:::-;11697:14;:22:::0;11730:20:::1;:26:::0;;;::::1;::::0;;11772:27:::1;5215:13;5159:1;5215:2;:13;:::i;:::-;5202:26;::::0;:10:::1;:26;:::i;:::-;11772:27;::::0;1443:25:1;;;1431:2;1416:18;11772:27:0::1;;;;;;;11611:196::o:0;12631:348::-;12695:10;;;;;-1:-1:-1;;;;;12695:10:0;904;-1:-1:-1;;;;;12681:24:0;;12673:33;;;;;;12756:4;12717:20;6743:18;;;:9;:18;;;;;;12776:14;;12773:73;;12804:30;12821:12;12804:16;:30::i;:::-;12875:21;12910:12;;12907:65;;12936:24;12949:10;12936:12;:24::i;:::-;12662:317;;12631:348::o;6777:167::-;6855:4;6872:42;904:10;6896:9;6907:6;6872:9;:42::i;11915:671::-;3196:6;;-1:-1:-1;;;;;3196:6:0;904:10;3196:22;3188:67;;;;-1:-1:-1;;;3188:67:0;;5072:2:1;3188:67:0;;;5054:21:1;;;5091:18;;;5084:30;5150:34;5130:18;;;5123:62;5202:18;;3188:67:0;4870:356:1;3188:67:0;11979:11:::1;::::0;;;::::1;;;11978:12;11970:47;;;::::0;-1:-1:-1;;;11970:47:0;;5433:2:1;11970:47:0::1;::::0;::::1;5415:21:1::0;5472:2;5452:18;;;5445:30;5511:25;5491:18;;;5484:53;5554:18;;11970:47:0::1;5231:347:1::0;11970:47:0::1;12028:15;:80:::0;;;::::1;12065:42;12028:80:::0;;::::1;::::0;;;12119:58:::1;::::0;12136:4:::1;::::0;5215:13:::1;5159:1;5215:2;:13;:::i;:::-;5202:26;::::0;:10:::1;:26;:::i;12119:58::-;12222:15;;;;;;;;;-1:-1:-1::0;;;;;12222:15:0::1;-1:-1:-1::0;;;;;12222:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12204:55:0::1;;12268:4;12275:15;;;;;;;;;-1:-1:-1::0;;;;;12275:15:0::1;-1:-1:-1::0;;;;;12275:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12204:94;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;6092:15:1;;;12204:94:0::1;::::0;::::1;6074:34:1::0;6144:15;;6124:18;;;6117:43;5986:18;;12204:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12188:13;:110:::0;;-1:-1:-1;;;;;12188:110:0;;::::1;::::0;;;::::1;;::::0;;12309:15:::1;::::0;::::1;:31;12348:21;12379:4;12385:24;12379:4:::0;-1:-1:-1;;;;;6743:18:0;6716:7;6743:18;;;:9;:18;;;;;;;6650:119;12385:24:::1;12410:1;12412::::0;12414:7:::1;3107::::0;3134:6;-1:-1:-1;;;;;3134:6:0;;3069:79;12414:7:::1;12309:129;::::0;::::1;::::0;;;;;;;-1:-1:-1;;;;;6553:15:1;;;12309:129:0::1;::::0;::::1;6535:34:1::0;6585:18;;;6578:34;;;;6628:18;;;6621:34;;;;6671:18;;;6664:34;6735:15;;;6714:19;;;6707:44;12422:15:0::1;6767:19:1::0;;;6760:35;6446:19;;12309:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12456:13:0::1;::::0;12487:15:::1;::::0;12449:71:::1;::::0;;;;-1:-1:-1;;;;;12487:15:0;;::::1;12449:71;::::0;::::1;7291:74:1::0;12505:14:0::1;7381:18:1::0;;;7374:34;12456:13:0;::::1;::::0;-1:-1:-1;12449:29:0::1;::::0;7264:18:1;;12449:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12531:11:0::1;:18:::0;;12560;;;;;;11915:671::o;7593:335::-;-1:-1:-1;;;;;7686:19:0;;7678:68;;;;-1:-1:-1;;;7678:68:0;;7903:2:1;7678:68:0;;;7885:21:1;7942:2;7922:18;;;7915:30;7981:34;7961:18;;;7954:62;8052:6;8032:18;;;8025:34;8076:19;;7678:68:0;7701:400:1;7678:68:0;-1:-1:-1;;;;;7765:21:0;;7757:68;;;;-1:-1:-1;;;7757:68:0;;8308:2:1;7757:68:0;;;8290:21:1;8347:2;8327:18;;;8320:30;8386:34;8366:18;;;8359:62;8457:4;8437:18;;;8430:32;8479:19;;7757:68:0;8106:398:1;7757:68:0;-1:-1:-1;;;;;7836:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7888:32;;1443:25:1;;;7888:32:0;;1416:18:1;7888:32:0;;;;;;;7593:335;;;:::o;7936:2430::-;-1:-1:-1;;;;;8024:18:0;;8016:68;;;;-1:-1:-1;;;8016:68:0;;8711:2:1;8016:68:0;;;8693:21:1;8750:2;8730:18;;;8723:30;8789:34;8769:18;;;8762:62;8860:7;8840:18;;;8833:35;8885:19;;8016:68:0;8509:401:1;8016:68:0;-1:-1:-1;;;;;8103:16:0;;8095:64;;;;-1:-1:-1;;;8095:64:0;;9117:2:1;8095:64:0;;;9099:21:1;9156:2;9136:18;;;9129:30;9195:34;9175:18;;;9168:62;9266:5;9246:18;;;9239:33;9289:19;;8095:64:0;8915:399:1;8095:64:0;8187:1;8178:6;:10;8170:64;;;;-1:-1:-1;;;8170:64:0;;9521:2:1;8170:64:0;;;9503:21:1;9560:2;9540:18;;;9533:30;9599:34;9579:18;;;9572:62;9670:11;9650:18;;;9643:39;9699:19;;8170:64:0;9319:405:1;8170:64:0;8245:17;3134:6;;-1:-1:-1;;;;;8279:15:0;;;3134:6;;8279:15;;;;:32;;-1:-1:-1;3107:7:0;3134:6;-1:-1:-1;;;;;8298:13:0;;;3134:6;;8298:13;;8279:32;8275:1735;;;8340:30;8366:3;8340:21;8351:9;:7;:9::i;:::-;8340:6;;:10;:21::i;:::-;:25;;:30::i;:::-;8391:20;;8328:42;;-1:-1:-1;8391:20:0;;8387:462;;;8450:15;;-1:-1:-1;;;;;8436:30:0;;;8450:15;;8436:30;;;;:62;;-1:-1:-1;8484:13:0;;-1:-1:-1;;;;;8470:28:0;;;8484:13;;8470:28;;8436:62;8432:402;;;8587:9;8558:39;;;;:28;:39;;;;;;8600:12;-1:-1:-1;8524:213:0;;;;-1:-1:-1;;;8524:213:0;;9931:2:1;8524:213:0;;;9913:21:1;9970:2;9950:18;;;9943:30;10009:34;9989:18;;;9982:62;10080:34;10060:18;;;10053:62;10152:11;10131:19;;;10124:40;10181:19;;8524:213:0;9729:477:1;8524:213:0;8789:9;8760:39;;;;:28;:39;;;;;8802:12;8760:54;;8432:402;8877:13;;-1:-1:-1;;;;;8869:21:0;;;8877:13;;8869:21;:55;;;;-1:-1:-1;8908:15:0;;-1:-1:-1;;;;;8894:30:0;;;8908:15;;8894:30;;8869:55;:83;;;;-1:-1:-1;;;;;;8930:22:0;;;;;;:18;:22;;;;;;;;8928:24;8869:83;8865:438;;;8992:12;;8982:6;:22;;8974:60;;;;-1:-1:-1;;;8974:60:0;;10413:2:1;8974:60:0;;;10395:21:1;10452:2;10432:18;;;10425:30;10491:27;10471:18;;;10464:55;10536:18;;8974:60:0;10211:349:1;8974:60:0;9087:14;;9077:6;9061:13;9071:2;-1:-1:-1;;;;;6743:18:0;6716:7;6743:18;;;:9;:18;;;;;;;6650:119;9061:13;:22;;;;:::i;:::-;:40;;9053:79;;;;-1:-1:-1;;;9053:79:0;;10897:2:1;9053:79:0;;;10879:21:1;10936:2;10916:18;;;10909:30;10975:28;10955:18;;;10948:56;11021:18;;9053:79:0;10695:350:1;9053:79:0;9151:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9197:18;;9185:9;;:30;9181:107;;;9240:20;:28;;;;;;9181:107;9328:13;;-1:-1:-1;;;;;9322:19:0;;;9328:13;;9322:19;:43;;;;-1:-1:-1;;;;;;9345:20:0;;9360:4;9345:20;;9322:43;9319:126;;;9398:31;9425:3;9398:22;9409:10;:8;:10::i;9398:31::-;9386:43;;9319:126;9510:4;9461:28;6743:18;;;:9;:18;;;;;;9536:6;;;;;;;9535:7;:30;;;;-1:-1:-1;9552:13:0;;-1:-1:-1;;;;;9546:19:0;;;9552:13;;9546:19;9535:30;:45;;;;-1:-1:-1;9569:11:0;;;;;;;9535:45;:89;;;;;9607:17;;9584:20;:40;9535:89;9531:468;;;9645:18;9666:21;9645:42;;9706:67;9723:49;9727:6;9734:37;9738:20;9759:11;;9734:3;:37::i;:::-;9723:3;:49::i;:::-;9706:16;:67::i;:::-;9792:22;9817:54;9867:3;9817:45;9859:2;9817:37;:21;9843:10;9817:25;:37::i;:::-;:41;;:45::i;:54::-;9792:79;-1:-1:-1;9893:18:0;;9890:94;;9936:28;9949:14;9936:12;:28::i;:::-;9626:373;;9531:468;8313:1697;8275:1735;10025:11;;10022:161;;10093:4;10075:24;;;;:9;:24;;;;;;:39;;10104:9;10075:28;:39::i;:::-;10068:4;10050:24;;;;:9;:24;;;;;;;:64;;;;10132:39;;-1:-1:-1;;;;;10132:39:0;;;;;;;10161:9;1443:25:1;;1431:2;1416:18;;1297:177;10132:39:0;;;;;;;;10022:161;-1:-1:-1;;;;;10209:15:0;;;;;;:9;:15;;;;;;:27;;10229:6;10209:19;:27::i;:::-;-1:-1:-1;;;;;10193:15:0;;;;;;:9;:15;;;;;:43;10261:40;10279:21;:6;10290:9;10279:10;:21::i;:::-;-1:-1:-1;;;;;10261:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10247:13:0;;;;;;;:9;:13;;;;;:54;;;;10317:41;;;10336:21;:6;10347:9;10336:10;:21::i;:::-;10317:41;;1443:25:1;;;1431:2;1416:18;10317:41:0;;;;;;;8005:2361;7936:2430;;;:::o;1961:190::-;2047:7;2083:12;2075:6;;;;2067:29;;;;-1:-1:-1;;;2067:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2107:9:0;2119:5;2123:1;2119;:5;:::i;:::-;2107:17;1961:190;-1:-1:-1;;;;;1961:190:0:o;11120:483::-;5879:6;:13;;;;;;;;11222:16:::1;::::0;;11236:1:::1;11222:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11222:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11222:16:0::1;11198:40;;11267:4;11249;11254:1;11249:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11249:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11293:15:::1;::::0;:22:::1;::::0;;;;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11249:7;;11293:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11283:4;11288:1;11283:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11283:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11358:15:::1;::::0;11326:62:::1;::::0;11343:4:::1;::::0;11358:15:::1;11376:11:::0;11326:8:::1;:62::i;:::-;11399:15;::::0;:196:::1;::::0;;;;-1:-1:-1;;;;;11399:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11480:11;;11399:15:::1;::::0;11522:4;;11549::::1;::::0;11569:15:::1;::::0;11399:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5915:6:0;:14;;;;;;-1:-1:-1;;;;11120:483:0:o;11815:92::-;11872:10;;:27;;:10;;;;-1:-1:-1;;;;;11872:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;10374:310;10415:7;10451:15;;10438:9;;:28;10435:80;;-1:-1:-1;10489:14:0;;;10374:310::o;10435:80::-;10540:15;;10528:9;;:27;:64;;;;;10572:20;;10559:9;;:33;;10528:64;10525:121;;;-1:-1:-1;10615:19:0;;;10374:310::o;10525:121::-;-1:-1:-1;10664:12:0;;;10374:310::o;2159:246::-;2217:7;2241:1;2246;2241:6;2237:47;;-1:-1:-1;2271:1:0;2264:8;;2237:47;2294:9;2306:5;2310:1;2306;:5;:::i;:::-;2294:17;-1:-1:-1;2339:1:0;2330:5;2334:1;2294:17;2330:5;:::i;:::-;:10;2322:56;;;;-1:-1:-1;;;2322:56:0;;13273:2:1;2322:56:0;;;13255:21:1;13312:2;13292:18;;;13285:30;13351:34;13331:18;;;13324:62;13422:3;13402:18;;;13395:31;13443:19;;2322:56:0;13071:397:1;2322:56:0;2396:1;2159:246;-1:-1:-1;;;2159:246:0:o;2413:132::-;2471:7;2498:39;2502:1;2505;2498:39;;;;;;;;;;;;;;;;;:3;:39::i;10692:314::-;10734:7;10770:15;;10757:9;;:28;10754:81;;-1:-1:-1;10808:15:0;;;10692:314::o;10754:81::-;10860:16;;10848:9;;:28;:65;;;;;10893:20;;10880:9;;:33;;10848:65;10845:123;;;-1:-1:-1;10936:20:0;;;10692:314::o;11014:98::-;11071:7;11098:1;11096;:3;11095:9;;11103:1;11095:9;;;-1:-1:-1;11101:1:0;11014:98;-1:-1:-1;11014:98:0:o;1817:136::-;1875:7;1902:43;1906:1;1909;1902:43;;;;;;;;;;;;;;;;;:3;:43::i;1630:179::-;1688:7;;1720:5;1724:1;1720;:5;:::i;:::-;1708:17;;1749:1;1744;:6;;1736:46;;;;-1:-1:-1;;;1736:46:0;;13675:2:1;1736:46:0;;;13657:21:1;13714:2;13694:18;;;13687:30;13753:29;13733:18;;;13726:57;13800:18;;1736:46:0;13473:351:1;2553:189:0;2639:7;2674:12;2667:5;2659:28;;;;-1:-1:-1;;;2659:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2698:9:0;2710:5;2714:1;2710;:5;:::i;14:607: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;612:2;542:66;537:2;529:6;525:15;521:88;510:9;506:104;502:113;494:121;;;;14:607;;;;:::o;626:154::-;-1:-1:-1;;;;;705:5:1;701:54;694:5;691:65;681:93;;770:1;767;760:12;681:93;626:154;:::o;785:315::-;853:6;861;914:2;902:9;893:7;889:23;885:32;882:52;;;930:1;927;920:12;882:52;969:9;956:23;988:31;1013:5;988:31;:::i;:::-;1038:5;1090:2;1075:18;;;;1062:32;;-1:-1:-1;;;785:315:1:o;1479:456::-;1556:6;1564;1572;1625:2;1613:9;1604:7;1600:23;1596:32;1593:52;;;1641:1;1638;1631:12;1593:52;1680:9;1667:23;1699:31;1724:5;1699:31;:::i;:::-;1749:5;-1:-1:-1;1806:2:1;1791:18;;1778:32;1819:33;1778:32;1819:33;:::i;:::-;1479:456;;1871:7;;-1:-1:-1;;;1925:2:1;1910:18;;;;1897:32;;1479:456::o;2129:247::-;2188:6;2241:2;2229:9;2220:7;2216:23;2212:32;2209:52;;;2257:1;2254;2247:12;2209:52;2296:9;2283:23;2315:31;2340:5;2315:31;:::i;2612:388::-;2680:6;2688;2741:2;2729:9;2720:7;2716:23;2712:32;2709:52;;;2757:1;2754;2747:12;2709:52;2796:9;2783:23;2815:31;2840:5;2815:31;:::i;:::-;2865:5;-1:-1:-1;2922:2:1;2907:18;;2894:32;2935:33;2894:32;2935:33;:::i;:::-;2987:7;2977:17;;;2612:388;;;;;:::o;3005:184::-;3057:77;3054:1;3047:88;3154:4;3151:1;3144:15;3178:4;3175:1;3168:15;3194:482;3283:1;3326:5;3283:1;3340:330;3361:7;3351:8;3348:21;3340:330;;;3480:4;3412:66;3408:77;3402:4;3399:87;3396:113;;;3489:18;;:::i;:::-;3539:7;3529:8;3525:22;3522:55;;;3559:16;;;;3522:55;3638:22;;;;3598:15;;;;3340:330;;;3344:3;3194:482;;;;;:::o;3681:866::-;3730:5;3760:8;3750:80;;-1:-1:-1;3801:1:1;3815:5;;3750:80;3849:4;3839:76;;-1:-1:-1;3886:1:1;3900:5;;3839:76;3931:4;3949:1;3944:59;;;;4017:1;4012:130;;;;3924:218;;3944:59;3974:1;3965:10;;3988:5;;;4012:130;4049:3;4039:8;4036:17;4033:43;;;4056:18;;:::i;:::-;-1:-1:-1;;4112:1:1;4098:16;;4127:5;;3924:218;;4226:2;4216:8;4213:16;4207:3;4201:4;4198:13;4194:36;4188:2;4178:8;4175:16;4170:2;4164:4;4161:12;4157:35;4154:77;4151:159;;;-1:-1:-1;4263:19:1;;;4295:5;;4151:159;4342:34;4367:8;4361:4;4342:34;:::i;:::-;4472:6;4404:66;4400:79;4391:7;4388:92;4385:118;;;4483:18;;:::i;:::-;4521:20;;3681:866;-1:-1:-1;;;3681:866:1:o;4552:140::-;4610:5;4639:47;4680:4;4670:8;4666:19;4660:4;4639:47;:::i;4697:168::-;4770:9;;;4801;;4818:15;;;4812:22;;4798:37;4788:71;;4839:18;;:::i;5583:251::-;5653:6;5706:2;5694:9;5685:7;5681:23;5677:32;5674:52;;;5722:1;5719;5712:12;5674:52;5754:9;5748:16;5773:31;5798:5;5773:31;:::i;6806:306::-;6894:6;6902;6910;6963:2;6951:9;6942:7;6938:23;6934:32;6931:52;;;6979:1;6976;6969:12;6931:52;7008:9;7002:16;6992:26;;7058:2;7047:9;7043:18;7037:25;7027:35;;7102:2;7091:9;7087:18;7081:25;7071:35;;6806:306;;;;;:::o;7419:277::-;7486:6;7539:2;7527:9;7518:7;7514:23;7510:32;7507:52;;;7555:1;7552;7545:12;7507:52;7587:9;7581:16;7640:5;7633:13;7626:21;7619:5;7616:32;7606:60;;7662:1;7659;7652:12;10565:125;10630:9;;;10651:10;;;10648:36;;;10664:18;;:::i;11050:195::-;11089:3;11120:66;11113:5;11110:77;11107:103;;11190:18;;:::i;:::-;-1:-1:-1;11237:1:1;11226:13;;11050:195::o;11250:128::-;11317:9;;;11338:11;;;11335:37;;;11352:18;;:::i;11572:184::-;11624:77;11621:1;11614:88;11721:4;11718:1;11711:15;11745:4;11742:1;11735:15;11761:1026;12023:4;12071:3;12060:9;12056:19;12102:6;12091:9;12084:25;12128:2;12166:6;12161:2;12150:9;12146:18;12139:34;12209:3;12204:2;12193:9;12189:18;12182:31;12233:6;12268;12262:13;12299:6;12291;12284:22;12337:3;12326:9;12322:19;12315:26;;12376:2;12368:6;12364:15;12350:29;;12397:1;12407:218;12421:6;12418:1;12415:13;12407:218;;;12486:13;;-1:-1:-1;;;;;12482:62:1;12470:75;;12600:15;;;;12565:12;;;;12443:1;12436:9;12407:218;;;-1:-1:-1;;;;;;;12681:55:1;;;;12676:2;12661:18;;12654:83;-1:-1:-1;;;12768:3:1;12753:19;12746:35;12642:3;11761:1026;-1:-1:-1;;;11761:1026:1:o;12792:274::-;12832:1;12858;12848:189;;12893:77;12890:1;12883:88;12994:4;12991:1;12984:15;13022:4;13019:1;13012:15;12848:189;-1:-1:-1;13051:9:1;;12792:274::o

Swarm Source

ipfs://6a20a019da7bb023456500e0902dbb894e6e9ac5f2697fd0b4a86dd5cd721b8b

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.