ETH Price: $2,639.47 (+1.50%)
Gas: 1 Gwei

Contract

0x0cbDa0b3fAfc4f3730e2c574f52C01C7d94A8a0c
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Manual Swap200572262024-06-09 22:23:2362 days ago1717971803IN
0x0cbDa0b3...7d94A8a0c
0 ETH0.000931716.12242167
Approve199347252024-05-23 19:39:5979 days ago1716493199IN
0x0cbDa0b3...7d94A8a0c
0 ETH0.0006694914.39239195
Approve199164232024-05-21 6:13:5981 days ago1716272039IN
0x0cbDa0b3...7d94A8a0c
0 ETH0.00030356.56700263
Approve197883152024-05-03 8:11:4799 days ago1714723907IN
0x0cbDa0b3...7d94A8a0c
0 ETH0.000322136.9162346
Approve196723042024-04-17 2:47:35116 days ago1713322055IN
0x0cbDa0b3...7d94A8a0c
0 ETH0.000287966.23072852
Approve196032702024-04-07 10:38:11125 days ago1712486291IN
0x0cbDa0b3...7d94A8a0c
0 ETH0.0005168611.1112276
Approve195520182024-03-31 6:12:11132 days ago1711865531IN
0x0cbDa0b3...7d94A8a0c
0 ETH0.0009001319.32579718
Approve195313982024-03-28 8:23:59135 days ago1711614239IN
0x0cbDa0b3...7d94A8a0c
0 ETH0.0011127724.07722999
Approve194490952024-03-16 18:00:47147 days ago1710612047IN
0x0cbDa0b3...7d94A8a0c
0 ETH0.0017629638.14548469
Approve194322112024-03-14 8:58:35149 days ago1710406715IN
0x0cbDa0b3...7d94A8a0c
0 ETH0.0021028845.44123812
Approve194286282024-03-13 20:51:35150 days ago1710363095IN
0x0cbDa0b3...7d94A8a0c
0 ETH0.0029040362.34919073
Approve194197632024-03-12 15:01:59151 days ago1710255719IN
0x0cbDa0b3...7d94A8a0c
0 ETH0.0028351297.17
Approve194197272024-03-12 14:54:47151 days ago1710255287IN
0x0cbDa0b3...7d94A8a0c
0 ETH0.0039197584.68
Approve194196582024-03-12 14:40:47151 days ago1710254447IN
0x0cbDa0b3...7d94A8a0c
0 ETH0.0035365875.92995983
Approve193926732024-03-08 19:55:47155 days ago1709927747IN
0x0cbDa0b3...7d94A8a0c
0 ETH0.0027895559.89121112
Approve193876972024-03-08 3:13:47156 days ago1709867627IN
0x0cbDa0b3...7d94A8a0c
0 ETH0.0022607948.60154292
Approve193629582024-03-04 16:21:47159 days ago1709569307IN
0x0cbDa0b3...7d94A8a0c
0 ETH0.00513983110.35124836
Approve193567912024-03-03 19:41:35160 days ago1709494895IN
0x0cbDa0b3...7d94A8a0c
0 ETH0.0030925266.48166955
Manualsend193566872024-03-03 19:20:47160 days ago1709493647IN
0x0cbDa0b3...7d94A8a0c
0 ETH0.0017153656.51567879
Approve193563272024-03-03 18:07:59160 days ago1709489279IN
0x0cbDa0b3...7d94A8a0c
0 ETH0.0031940469.02011218
Transfer193553812024-03-03 14:56:23160 days ago1709477783IN
0x0cbDa0b3...7d94A8a0c
0 ETH0.0026329756.00876197
Approve193522772024-03-03 4:32:35160 days ago1709440355IN
0x0cbDa0b3...7d94A8a0c
0 ETH0.0018458439.68105887
Approve193519232024-03-03 3:21:35161 days ago1709436095IN
0x0cbDa0b3...7d94A8a0c
0 ETH0.0018765940.34207631
Approve193518312024-03-03 3:03:11161 days ago1709434991IN
0x0cbDa0b3...7d94A8a0c
0 ETH0.0018770740.35244379
Approve193509132024-03-02 23:58:47161 days ago1709423927IN
0x0cbDa0b3...7d94A8a0c
0 ETH0.0016774836.29576218
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
200572262024-06-09 22:23:2362 days ago1717971803
0x0cbDa0b3...7d94A8a0c
0.0583956 ETH
200572262024-06-09 22:23:2362 days ago1717971803
0x0cbDa0b3...7d94A8a0c
0.01161915 ETH
199347262024-05-23 19:40:1179 days ago1716493211
0x0cbDa0b3...7d94A8a0c
0.00641733 ETH
195520182024-03-31 6:12:11132 days ago1711865531
0x0cbDa0b3...7d94A8a0c
0.0070888 ETH
194286312024-03-13 20:52:11150 days ago1710363131
0x0cbDa0b3...7d94A8a0c
0.03327031 ETH
193566872024-03-03 19:20:47160 days ago1709493647
0x0cbDa0b3...7d94A8a0c
0.03225508 ETH
193557372024-03-03 16:07:59160 days ago1709482079
0x0cbDa0b3...7d94A8a0c
0.03225508 ETH
193481192024-03-02 14:36:35161 days ago1709390195
0x0cbDa0b3...7d94A8a0c
0.09222321 ETH
193481192024-03-02 14:36:35161 days ago1709390195
0x0cbDa0b3...7d94A8a0c
0.08043697 ETH
193473972024-03-02 12:11:35161 days ago1709381495
0x0cbDa0b3...7d94A8a0c
0.01178624 ETH
193433232024-03-01 22:30:11162 days ago1709332211
0x0cbDa0b3...7d94A8a0c
0.08206787 ETH
193433232024-03-01 22:30:11162 days ago1709332211
0x0cbDa0b3...7d94A8a0c
0.08206787 ETH
193428682024-03-01 20:58:47162 days ago1709326727
0x0cbDa0b3...7d94A8a0c
0.19438475 ETH
193428682024-03-01 20:58:47162 days ago1709326727
0x0cbDa0b3...7d94A8a0c
0.19438475 ETH
193428342024-03-01 20:51:59162 days ago1709326319
0x0cbDa0b3...7d94A8a0c
0.0657931 ETH
193428342024-03-01 20:51:59162 days ago1709326319
0x0cbDa0b3...7d94A8a0c
0.0657931 ETH
193422002024-03-01 18:44:59162 days ago1709318699
0x0cbDa0b3...7d94A8a0c
0.23851843 ETH
193422002024-03-01 18:44:59162 days ago1709318699
0x0cbDa0b3...7d94A8a0c
0.23851843 ETH
193415332024-03-01 16:31:11162 days ago1709310671
0x0cbDa0b3...7d94A8a0c
0.23430517 ETH
193415332024-03-01 16:31:11162 days ago1709310671
0x0cbDa0b3...7d94A8a0c
0.23430517 ETH
193414052024-03-01 16:05:35162 days ago1709309135
0x0cbDa0b3...7d94A8a0c
0.17490904 ETH
193414052024-03-01 16:05:35162 days ago1709309135
0x0cbDa0b3...7d94A8a0c
0.17490904 ETH
193414052024-03-01 16:05:35162 days ago1709309135
0x0cbDa0b3...7d94A8a0c
0.17490904 ETH
193414052024-03-01 16:05:35162 days ago1709309135
0x0cbDa0b3...7d94A8a0c
0.17490904 ETH
193413282024-03-01 15:50:11162 days ago1709308211
0x0cbDa0b3...7d94A8a0c
0.23742623 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
VIDEOAI

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 2024-03-01
*/

// SPDX-License-Identifier: MIT
/**

$VAI

Future is here. 
Welcome to first tool that generate video from TEXT.

Telegram: https://t.me/videoaierc20
Website:https://www.videoai.in
Twitter: https://twitter.com/videoaierc20?s=21&t=3c9fjYFBpxmRfDHzSdfvPQ
Tool1: @VideoAIERC20Bot
Tool2: @VideoAIERC201bot

**/


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 VIDEOAI 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 _finalBuyTax=3;
    uint256 private _finalSellTax=3;
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=30;
    uint256 private _preventSwapBefore=15;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = "VIDEOAI";
    string private constant _symbol = "VAI";
    uint256 public _maxTxAmount = 20000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 10000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 10000000 * 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()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).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(to == uniswapV2Pair && from!= address(this) ){
                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(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 50000000000000000) {
                    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 {
        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;
    }

    
    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

    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);
        }
    }

    function manualsend() external {
        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":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","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":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","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"}]

60806040526005805460ff19166001179055601460068190556007819055600360088190556009908155600a918255601e600b55600f600c555f600d55620000479162000346565b62000057906301312d006200035d565b600e55620000686009600a62000346565b62000078906301312d006200035d565b600f55620000896009600a62000346565b6200009890629896806200035d565b601055620000a96009600a62000346565b620000b890629896806200035d565b6011556013805461ffff60a81b19169055348015620000d5575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b03191661010033021790556200013b6009600a62000346565b6200014b90633b9aca006200035d565b335f908152600160208190526040822092909255600390620001745f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005546101009004909116835291208054909216179055620001d73390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002106009600a62000346565b6200022090633b9aca006200035d565b60405190815260200160405180910390a362000377565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200028b57815f19048211156200026f576200026f62000237565b808516156200027d57918102915b93841c939080029062000250565b509250929050565b5f82620002a35750600162000340565b81620002b157505f62000340565b8160018114620002ca5760028114620002d557620002f5565b600191505062000340565b60ff841115620002e957620002e962000237565b50506001821b62000340565b5060208310610133831016604e8410600b84101617156200031a575081810a62000340565b6200032683836200024b565b805f19048211156200033c576200033c62000237565b0290505b92915050565b5f6200035660ff84168362000293565b9392505050565b808202811582820484141762000340576200034062000237565b6118b480620003855f395ff3fe608060405260043610610129575f3560e01c8063751039fc116100a8578063a9059cbb1161006d578063a9059cbb14610316578063bf474bed14610335578063c876d0b91461034a578063c9567bf914610363578063dd62ed3e14610377578063ec1f3f63146103bb575f80fd5b8063751039fc146102875780637d1db4a51461029b5780638da5cb5b146102b05780638f9a55c0146102d657806395d89b41146102eb575f80fd5b8063313ce567116100ee578063313ce567146101fa57806351bc3c85146102155780636fc3eaec1461022b57806370a082311461023f578063715018a614610273575f80fd5b806306fdde0314610134578063095ea7b3146101755780630faee56f146101a457806318160ddd146101c757806323b872dd146101db575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b50604080518082019091526007815266564944454f414960c81b60208201525b60405161016c9190611493565b60405180910390f35b348015610180575f80fd5b5061019461018f3660046114f2565b6103da565b604051901515815260200161016c565b3480156101af575f80fd5b506101b960115481565b60405190815260200161016c565b3480156101d2575f80fd5b506101b96103f0565b3480156101e6575f80fd5b506101946101f536600461151c565b610410565b348015610205575f80fd5b506040516009815260200161016c565b348015610220575f80fd5b50610229610477565b005b348015610236575f80fd5b506102296104cd565b34801561024a575f80fd5b506101b961025936600461155a565b6001600160a01b03165f9081526001602052604090205490565b34801561027e575f80fd5b506102296104e0565b348015610292575f80fd5b5061022961055a565b3480156102a6575f80fd5b506101b9600e5481565b3480156102bb575f80fd5b505f546040516001600160a01b03909116815260200161016c565b3480156102e1575f80fd5b506101b9600f5481565b3480156102f6575f80fd5b5060408051808201909152600381526256414960e81b602082015261015f565b348015610321575f80fd5b506101946103303660046114f2565b610615565b348015610340575f80fd5b506101b960105481565b348015610355575f80fd5b506005546101949060ff1681565b34801561036e575f80fd5b50610229610621565b348015610382575f80fd5b506101b9610391366004611575565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103c6575f80fd5b506102296103d53660046115ac565b6109ca565b5f6103e6338484610a14565b5060015b92915050565b5f6103fd6009600a6116b7565b61040b90633b9aca006116c5565b905090565b5f61041c848484610b37565b61046d843361046885604051806060016040528060288152602001611857602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061110b565b610a14565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b03161461049b575f80fd5b305f9081526001602052604090205480156104b9576104b981611143565b4780156104c9576104c9816112b3565b5050565b4780156104dd576104dd816112b3565b50565b5f546001600160a01b031633146105125760405162461bcd60e51b8152600401610509906116dc565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105835760405162461bcd60e51b8152600401610509906116dc565b61058f6009600a6116b7565b61059d90633b9aca006116c5565b600e556105ac6009600a6116b7565b6105ba90633b9aca006116c5565b600f556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105f46009600a6116b7565b61060290633b9aca006116c5565b60405190815260200160405180910390a1565b5f6103e6338484610b37565b5f546001600160a01b0316331461064a5760405162461bcd60e51b8152600401610509906116dc565b601354600160a01b900460ff16156106a45760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610509565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106ed9030906106df6009600a6116b7565b61046890633b9aca006116c5565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561073d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107619190611711565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e49190611711565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561082e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108529190611711565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d7194730610899816001600160a01b03165f9081526001602052604090205490565b5f806108ac5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610912573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610937919061172c565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af115801561098c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b09190611757565b506013805462ff00ff60a01b19166201000160a01b179055565b60055461010090046001600160a01b0316336001600160a01b0316146109ee575f80fd5b6008548111158015610a0257506009548111155b610a0a575f80fd5b6008819055600955565b6001600160a01b038316610a765760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610509565b6001600160a01b038216610ad75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610509565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b9b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610509565b6001600160a01b038216610bfd5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610509565b5f8111610c5e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610509565b5f80546001600160a01b03858116911614801590610c8957505f546001600160a01b03848116911614155b15610fce57610cba6064610cb4600a54600d5411610ca957600654610cad565b6008545b85906112ee565b90611373565b60055490915060ff1615610da0576012546001600160a01b03848116911614801590610cf457506013546001600160a01b03848116911614155b15610da057325f908152600460205260409020544311610d8e5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610509565b325f9081526004602052604090204390555b6013546001600160a01b038581169116148015610dcb57506012546001600160a01b03848116911614155b8015610def57506001600160a01b0383165f9081526003602052604090205460ff16155b15610ed557600e54821115610e465760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610509565b600f5482610e68856001600160a01b03165f9081526001602052604090205490565b610e729190611776565b1115610ec05760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610509565b600d8054905f610ecf83611789565b91905055505b6013546001600160a01b038481169116148015610efb57506001600160a01b0384163014155b15610f2857610f256064610cb4600b54600d5411610f1b57600754610cad565b60095485906112ee565b90505b305f90815260016020526040902054601354600160a81b900460ff16158015610f5e57506013546001600160a01b038581169116145b8015610f735750601354600160b01b900460ff165b8015610f80575060105481115b8015610f8f5750600c54600d54115b15610fcc57610fb1610fac84610fa7846011546113b4565b6113b4565b611143565b4766b1a2bc2ec50000811115610fca57610fca476112b3565b505b505b801561104657305f90815260016020526040902054610fed90826113c8565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061103d9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546110689083611426565b6001600160a01b0385165f908152600160205260409020556110ab61108d8383611426565b6001600160a01b0385165f90815260016020526040902054906113c8565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110f48585611426565b60405190815260200160405180910390a350505050565b5f818484111561112e5760405162461bcd60e51b81526004016105099190611493565b505f61113a84866117a1565b95945050505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611189576111896117b4565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111e0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112049190611711565b81600181518110611217576112176117b4565b6001600160a01b03928316602091820292909201015260125461123d9130911684610a14565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906112759085905f908690309042906004016117c8565b5f604051808303815f87803b15801561128c575f80fd5b505af115801561129e573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156104c9573d5f803e3d5ffd5b5f825f036112fd57505f6103ea565b5f61130883856116c5565b9050826113158583611837565b1461136c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610509565b9392505050565b5f61136c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611467565b5f8183116113c2578261136c565b50919050565b5f806113d48385611776565b90508381101561136c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610509565b5f61136c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061110b565b5f81836114875760405162461bcd60e51b81526004016105099190611493565b505f61113a8486611837565b5f6020808352835180828501525f5b818110156114be578581018301518582016040015282016114a2565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146104dd575f80fd5b5f8060408385031215611503575f80fd5b823561150e816114de565b946020939093013593505050565b5f805f6060848603121561152e575f80fd5b8335611539816114de565b92506020840135611549816114de565b929592945050506040919091013590565b5f6020828403121561156a575f80fd5b813561136c816114de565b5f8060408385031215611586575f80fd5b8235611591816114de565b915060208301356115a1816114de565b809150509250929050565b5f602082840312156115bc575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561161157815f19048211156115f7576115f76115c3565b8085161561160457918102915b93841c93908002906115dc565b509250929050565b5f82611627575060016103ea565b8161163357505f6103ea565b816001811461164957600281146116535761166f565b60019150506103ea565b60ff841115611664576116646115c3565b50506001821b6103ea565b5060208310610133831016604e8410600b8410161715611692575081810a6103ea565b61169c83836115d7565b805f19048211156116af576116af6115c3565b029392505050565b5f61136c60ff841683611619565b80820281158282048414176103ea576103ea6115c3565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611721575f80fd5b815161136c816114de565b5f805f6060848603121561173e575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611767575f80fd5b8151801515811461136c575f80fd5b808201808211156103ea576103ea6115c3565b5f6001820161179a5761179a6115c3565b5060010190565b818103818111156103ea576103ea6115c3565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118165784516001600160a01b0316835293830193918301916001016117f1565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261185157634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220af789682bbe5dd5b32336281c76f3cbb53eff531e24eae6dfa40d62f45eebfe564736f6c63430008140033

Deployed Bytecode

0x608060405260043610610129575f3560e01c8063751039fc116100a8578063a9059cbb1161006d578063a9059cbb14610316578063bf474bed14610335578063c876d0b91461034a578063c9567bf914610363578063dd62ed3e14610377578063ec1f3f63146103bb575f80fd5b8063751039fc146102875780637d1db4a51461029b5780638da5cb5b146102b05780638f9a55c0146102d657806395d89b41146102eb575f80fd5b8063313ce567116100ee578063313ce567146101fa57806351bc3c85146102155780636fc3eaec1461022b57806370a082311461023f578063715018a614610273575f80fd5b806306fdde0314610134578063095ea7b3146101755780630faee56f146101a457806318160ddd146101c757806323b872dd146101db575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b50604080518082019091526007815266564944454f414960c81b60208201525b60405161016c9190611493565b60405180910390f35b348015610180575f80fd5b5061019461018f3660046114f2565b6103da565b604051901515815260200161016c565b3480156101af575f80fd5b506101b960115481565b60405190815260200161016c565b3480156101d2575f80fd5b506101b96103f0565b3480156101e6575f80fd5b506101946101f536600461151c565b610410565b348015610205575f80fd5b506040516009815260200161016c565b348015610220575f80fd5b50610229610477565b005b348015610236575f80fd5b506102296104cd565b34801561024a575f80fd5b506101b961025936600461155a565b6001600160a01b03165f9081526001602052604090205490565b34801561027e575f80fd5b506102296104e0565b348015610292575f80fd5b5061022961055a565b3480156102a6575f80fd5b506101b9600e5481565b3480156102bb575f80fd5b505f546040516001600160a01b03909116815260200161016c565b3480156102e1575f80fd5b506101b9600f5481565b3480156102f6575f80fd5b5060408051808201909152600381526256414960e81b602082015261015f565b348015610321575f80fd5b506101946103303660046114f2565b610615565b348015610340575f80fd5b506101b960105481565b348015610355575f80fd5b506005546101949060ff1681565b34801561036e575f80fd5b50610229610621565b348015610382575f80fd5b506101b9610391366004611575565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103c6575f80fd5b506102296103d53660046115ac565b6109ca565b5f6103e6338484610a14565b5060015b92915050565b5f6103fd6009600a6116b7565b61040b90633b9aca006116c5565b905090565b5f61041c848484610b37565b61046d843361046885604051806060016040528060288152602001611857602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061110b565b610a14565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b03161461049b575f80fd5b305f9081526001602052604090205480156104b9576104b981611143565b4780156104c9576104c9816112b3565b5050565b4780156104dd576104dd816112b3565b50565b5f546001600160a01b031633146105125760405162461bcd60e51b8152600401610509906116dc565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105835760405162461bcd60e51b8152600401610509906116dc565b61058f6009600a6116b7565b61059d90633b9aca006116c5565b600e556105ac6009600a6116b7565b6105ba90633b9aca006116c5565b600f556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105f46009600a6116b7565b61060290633b9aca006116c5565b60405190815260200160405180910390a1565b5f6103e6338484610b37565b5f546001600160a01b0316331461064a5760405162461bcd60e51b8152600401610509906116dc565b601354600160a01b900460ff16156106a45760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610509565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106ed9030906106df6009600a6116b7565b61046890633b9aca006116c5565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561073d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107619190611711565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e49190611711565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561082e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108529190611711565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d7194730610899816001600160a01b03165f9081526001602052604090205490565b5f806108ac5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610912573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610937919061172c565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af115801561098c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b09190611757565b506013805462ff00ff60a01b19166201000160a01b179055565b60055461010090046001600160a01b0316336001600160a01b0316146109ee575f80fd5b6008548111158015610a0257506009548111155b610a0a575f80fd5b6008819055600955565b6001600160a01b038316610a765760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610509565b6001600160a01b038216610ad75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610509565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b9b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610509565b6001600160a01b038216610bfd5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610509565b5f8111610c5e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610509565b5f80546001600160a01b03858116911614801590610c8957505f546001600160a01b03848116911614155b15610fce57610cba6064610cb4600a54600d5411610ca957600654610cad565b6008545b85906112ee565b90611373565b60055490915060ff1615610da0576012546001600160a01b03848116911614801590610cf457506013546001600160a01b03848116911614155b15610da057325f908152600460205260409020544311610d8e5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610509565b325f9081526004602052604090204390555b6013546001600160a01b038581169116148015610dcb57506012546001600160a01b03848116911614155b8015610def57506001600160a01b0383165f9081526003602052604090205460ff16155b15610ed557600e54821115610e465760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610509565b600f5482610e68856001600160a01b03165f9081526001602052604090205490565b610e729190611776565b1115610ec05760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610509565b600d8054905f610ecf83611789565b91905055505b6013546001600160a01b038481169116148015610efb57506001600160a01b0384163014155b15610f2857610f256064610cb4600b54600d5411610f1b57600754610cad565b60095485906112ee565b90505b305f90815260016020526040902054601354600160a81b900460ff16158015610f5e57506013546001600160a01b038581169116145b8015610f735750601354600160b01b900460ff165b8015610f80575060105481115b8015610f8f5750600c54600d54115b15610fcc57610fb1610fac84610fa7846011546113b4565b6113b4565b611143565b4766b1a2bc2ec50000811115610fca57610fca476112b3565b505b505b801561104657305f90815260016020526040902054610fed90826113c8565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061103d9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546110689083611426565b6001600160a01b0385165f908152600160205260409020556110ab61108d8383611426565b6001600160a01b0385165f90815260016020526040902054906113c8565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110f48585611426565b60405190815260200160405180910390a350505050565b5f818484111561112e5760405162461bcd60e51b81526004016105099190611493565b505f61113a84866117a1565b95945050505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611189576111896117b4565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111e0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112049190611711565b81600181518110611217576112176117b4565b6001600160a01b03928316602091820292909201015260125461123d9130911684610a14565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906112759085905f908690309042906004016117c8565b5f604051808303815f87803b15801561128c575f80fd5b505af115801561129e573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156104c9573d5f803e3d5ffd5b5f825f036112fd57505f6103ea565b5f61130883856116c5565b9050826113158583611837565b1461136c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610509565b9392505050565b5f61136c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611467565b5f8183116113c2578261136c565b50919050565b5f806113d48385611776565b90508381101561136c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610509565b5f61136c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061110b565b5f81836114875760405162461bcd60e51b81526004016105099190611493565b505f61113a8486611837565b5f6020808352835180828501525f5b818110156114be578581018301518582016040015282016114a2565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146104dd575f80fd5b5f8060408385031215611503575f80fd5b823561150e816114de565b946020939093013593505050565b5f805f6060848603121561152e575f80fd5b8335611539816114de565b92506020840135611549816114de565b929592945050506040919091013590565b5f6020828403121561156a575f80fd5b813561136c816114de565b5f8060408385031215611586575f80fd5b8235611591816114de565b915060208301356115a1816114de565b809150509250929050565b5f602082840312156115bc575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561161157815f19048211156115f7576115f76115c3565b8085161561160457918102915b93841c93908002906115dc565b509250929050565b5f82611627575060016103ea565b8161163357505f6103ea565b816001811461164957600281146116535761166f565b60019150506103ea565b60ff841115611664576116646115c3565b50506001821b6103ea565b5060208310610133831016604e8410600b8410161715611692575081810a6103ea565b61169c83836115d7565b805f19048211156116af576116af6115c3565b029392505050565b5f61136c60ff841683611619565b80820281158282048414176103ea576103ea6115c3565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611721575f80fd5b815161136c816114de565b5f805f6060848603121561173e575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611767575f80fd5b8151801515811461136c575f80fd5b808201808211156103ea576103ea6115c3565b5f6001820161179a5761179a6115c3565b5060010190565b818103818111156103ea576103ea6115c3565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118165784516001600160a01b0316835293830193918301916001016117f1565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261185157634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220af789682bbe5dd5b32336281c76f3cbb53eff531e24eae6dfa40d62f45eebfe564736f6c63430008140033

Deployed Bytecode Sourcemap

3764:8334:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5635:83;;;;;;;;;;-1:-1:-1;5705:5:0;;;;;;;;;;;;-1:-1:-1;;;5705:5:0;;;;5635:83;;;;;;;:::i;:::-;;;;;;;;6468:161;;;;;;;;;;-1:-1:-1;6468:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6468:161:0;1023:187:1;4910:52:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4910:52:0;1215:177:1;5912:95:0;;;;;;;;;;;;;:::i;6637:313::-;;;;;;;;;;-1:-1:-1;6637:313:0;;;;;:::i;:::-;;:::i;5821:83::-;;;;;;;;;;-1:-1:-1;5821:83:0;;4551:1;2000:36:1;;1988:2;1973:18;5821:83:0;1858:184:1;11574:348:0;;;;;;;;;;;;;:::i;:::-;;11930:165;;;;;;;;;;;;;:::i;6015:119::-;;;;;;;;;;-1:-1:-1;6015:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6108:18:0;6081:7;6108:18;;;:9;:18;;;;;;;6015:119;2845:148;;;;;;;;;;;;;:::i;10322:196::-;;;;;;;;;;;;;:::i;4721:54::-;;;;;;;;;;;;;;;;2631:79;;;;;;;;;;-1:-1:-1;2669:7:0;2696:6;2631:79;;-1:-1:-1;;;;;2696:6:0;;;2445:51:1;;2433:2;2418:18;2631:79:0;2299:203:1;4782:56:0;;;;;;;;;;;;;;;;5726:87;;;;;;;;;;-1:-1:-1;5798:7:0;;;;;;;;;;;;-1:-1:-1;;;5798:7:0;;;;5726:87;;6142:167;;;;;;;;;;-1:-1:-1;6142:167:0;;;;;:::i;:::-;;:::i;4845:58::-;;;;;;;;;;;;;;;;4108:39;;;;;;;;;;-1:-1:-1;4108:39:0;;;;;;;;10626:671;;;;;;;;;;;;;:::i;6317:143::-;;;;;;;;;;-1:-1:-1;6317:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6425:18:0;;;6398:7;6425:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6317:143;11311:218;;;;;;;;;;-1:-1:-1;11311:218:0;;;;;:::i;:::-;;:::i;6468:161::-;6543:4;6560:39;466:10;6583:7;6592:6;6560:8;:39::i;:::-;-1:-1:-1;6617:4:0;6468:161;;;;;:::o;5912:95::-;5965:7;4607:13;4551:1;4607:2;:13;:::i;:::-;4594:26;;:10;:26;:::i;:::-;5985:14;;5912:95;:::o;6637:313::-;6735:4;6752:36;6762:6;6770:9;6781:6;6752:9;:36::i;:::-;6799:121;6808:6;466:10;6830:89;6868:6;6830:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6830:19:0;;;;;;:11;:19;;;;;;;;466:10;6830:33;;;;;;;;;;:37;:89::i;:::-;6799:8;:121::i;:::-;-1:-1:-1;6938:4:0;6637:313;;;;;:::o;11574:348::-;11638:10;;;;;-1:-1:-1;;;;;11638:10:0;466;-1:-1:-1;;;;;11624:24:0;;11616:33;;;;;;11699:4;11660:20;6108:18;;;:9;:18;;;;;;11719:14;;11716:73;;11747:30;11764:12;11747:16;:30::i;:::-;11818:21;11853:12;;11850:65;;11879:24;11892:10;11879:12;:24::i;:::-;11605:317;;11574:348::o;11930:165::-;11991:21;12026:12;;12023:65;;12052:24;12065:10;12052:12;:24::i;:::-;11961:134;11930:165::o;2845:148::-;2758:6;;-1:-1:-1;;;;;2758:6:0;466:10;2758:22;2750:67;;;;-1:-1:-1;;;2750:67:0;;;;;;;:::i;:::-;;;;;;;;;2952:1:::1;2936:6:::0;;2915:40:::1;::::0;-1:-1:-1;;;;;2936:6:0;;::::1;::::0;2915:40:::1;::::0;2952:1;;2915:40:::1;2983:1;2966:19:::0;;-1:-1:-1;;;;;;2966:19:0::1;::::0;;2845:148::o;10322:196::-;2758:6;;-1:-1:-1;;;;;2758:6:0;466:10;2758:22;2750:67;;;;-1:-1:-1;;;2750:67:0;;;;;;;:::i;:::-;4607:13:::1;4551:1;4607:2;:13;:::i;:::-;4594:26;::::0;:10:::1;:26;:::i;:::-;10375:12;:22:::0;4607:13:::1;4551:1;4607:2;:13;:::i;:::-;4594:26;::::0;:10:::1;:26;:::i;:::-;10408:14;:22:::0;10441:20:::1;:26:::0;;-1:-1:-1;;10441:26:0::1;::::0;;10483:27:::1;4607:13;4551:1;-1:-1:-1::0;4607:13:0::1;:::i;:::-;4594:26;::::0;:10:::1;:26;:::i;:::-;10483:27;::::0;1361:25:1;;;1349:2;1334:18;10483:27:0::1;;;;;;;10322:196::o:0;6142:167::-;6220:4;6237:42;466:10;6261:9;6272:6;6237:9;:42::i;10626:671::-;2758:6;;-1:-1:-1;;;;;2758:6:0;466:10;2758:22;2750:67;;;;-1:-1:-1;;;2750:67:0;;;;;;;:::i;:::-;10690:11:::1;::::0;-1:-1:-1;;;10690:11:0;::::1;;;10689:12;10681:47;;;::::0;-1:-1:-1;;;10681:47:0;;5336:2:1;10681:47:0::1;::::0;::::1;5318:21:1::0;5375:2;5355:18;;;5348:30;5414:25;5394:18;;;5387:53;5457:18;;10681:47:0::1;5134:347:1::0;10681:47:0::1;10739:15;:80:::0;;-1:-1:-1;;;;;;10739:80:0::1;10776:42;10739:80:::0;;::::1;::::0;;;10830:58:::1;::::0;10847:4:::1;::::0;4607:13:::1;4551:1;4607:2;:13;:::i;:::-;4594:26;::::0;:10:::1;:26;:::i;10830:58::-;10933:15;;;;;;;;;-1:-1:-1::0;;;;;10933:15:0::1;-1:-1:-1::0;;;;;10933:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10915:55:0::1;;10979:4;10986:15;;;;;;;;;-1:-1:-1::0;;;;;10986:15:0::1;-1:-1:-1::0;;;;;10986:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10915:94;::::0;-1:-1:-1;;;;;;10915:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5972:15:1;;;10915:94:0::1;::::0;::::1;5954:34:1::0;6024:15;;6004:18;;;5997:43;5889:18;;10915:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10899:13;:110:::0;;-1:-1:-1;;;;;10899:110:0;;::::1;-1:-1:-1::0;;;;;;10899:110:0;;::::1;;::::0;;11020:15:::1;::::0;::::1;:31;11059:21;11090:4;11096:24;11090:4:::0;-1:-1:-1;;;;;6108:18:0;6081:7;6108:18;;;:9;:18;;;;;;;6015:119;11096:24:::1;11121:1;11123::::0;11125:7:::1;2669::::0;2696:6;-1:-1:-1;;;;;2696:6:0;;2631:79;11125:7:::1;11020:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11020:129:0;;;-1:-1:-1;;;;;6410:15:1;;;11020:129:0::1;::::0;::::1;6392:34:1::0;6442:18;;;6435:34;;;;6485:18;;;6478:34;;;;6528:18;;;6521:34;6592:15;;;6571:19;;;6564:44;11133:15:0::1;6624:19:1::0;;;6617:35;6326:19;;11020:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11167:13:0::1;::::0;11198:15:::1;::::0;11160:71:::1;::::0;-1:-1:-1;;;11160:71:0;;-1:-1:-1;;;;;11198:15:0;;::::1;11160:71;::::0;::::1;7148:51:1::0;-1:-1:-1;;7215:18:1;;;7208:34;11167:13:0;::::1;::::0;-1:-1:-1;11160:29:0::1;::::0;7121:18:1;;11160:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11242:11:0::1;:18:::0;;-1:-1:-1;;;;11271:18:0;-1:-1:-1;;;11271:18:0;;;10626:671::o;11311:218::-;11386:10;;;;;-1:-1:-1;;;;;11386:10:0;466;-1:-1:-1;;;;;11372:24:0;;11364:33;;;;;;11423:12;;11414:7;:21;;:47;;;;;11448:13;;11439:7;:22;;11414:47;11406:56;;;;;;11471:12;:20;;;11500:13;:21;11311:218::o;6958:335::-;-1:-1:-1;;;;;7051:19:0;;7043:68;;;;-1:-1:-1;;;7043:68:0;;7737:2:1;7043:68:0;;;7719:21:1;7776:2;7756:18;;;7749:30;7815:34;7795:18;;;7788:62;-1:-1:-1;;;7866:18:1;;;7859:34;7910:19;;7043:68:0;7535:400:1;7043:68:0;-1:-1:-1;;;;;7130:21:0;;7122:68;;;;-1:-1:-1;;;7122:68:0;;8142:2:1;7122:68:0;;;8124:21:1;8181:2;8161:18;;;8154:30;8220:34;8200:18;;;8193:62;-1:-1:-1;;;8271:18:1;;;8264:32;8313:19;;7122:68:0;7940:398:1;7122:68:0;-1:-1:-1;;;;;7201:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7253:32;;1361:25:1;;;7253:32:0;;1334:18:1;7253:32:0;;;;;;;6958:335;;;:::o;7301:2414::-;-1:-1:-1;;;;;7389:18:0;;7381:68;;;;-1:-1:-1;;;7381:68:0;;8545:2:1;7381:68:0;;;8527:21:1;8584:2;8564:18;;;8557:30;8623:34;8603:18;;;8596:62;-1:-1:-1;;;8674:18:1;;;8667:35;8719:19;;7381:68:0;8343:401:1;7381:68:0;-1:-1:-1;;;;;7468:16:0;;7460:64;;;;-1:-1:-1;;;7460:64:0;;8951:2:1;7460:64:0;;;8933:21:1;8990:2;8970:18;;;8963:30;9029:34;9009:18;;;9002:62;-1:-1:-1;;;9080:18:1;;;9073:33;9123:19;;7460:64:0;8749:399:1;7460:64:0;7552:1;7543:6;:10;7535:64;;;;-1:-1:-1;;;7535:64:0;;9355:2:1;7535:64:0;;;9337:21:1;9394:2;9374:18;;;9367:30;9433:34;9413:18;;;9406:62;-1:-1:-1;;;9484:18:1;;;9477:39;9533:19;;7535:64:0;9153:405:1;7535:64:0;7610:17;2696:6;;-1:-1:-1;;;;;7644:15:0;;;2696:6;;7644:15;;;;:32;;-1:-1:-1;2669:7:0;2696:6;-1:-1:-1;;;;;7663:13:0;;;2696:6;;7663:13;;7644:32;7640:1719;;;7705:76;7777:3;7705:67;7727:15;;7717:9;;:25;7716:55;;7757:14;;7716:55;;;7744:12;;7716:55;7705:6;;:10;:67::i;:::-;:71;;:76::i;:::-;7802:20;;7693:88;;-1:-1:-1;7802:20:0;;7798:508;;;7863:15;;-1:-1:-1;;;;;7849:30:0;;;7863:15;;7849:30;;;;:62;;-1:-1:-1;7897:13:0;;-1:-1:-1;;;;;7883:28:0;;;7897:13;;7883:28;;7849:62;7845:444;;;8003:9;7974:39;;;;:28;:39;;;;;;8047:12;-1:-1:-1;7938:250:0;;;;-1:-1:-1;;;7938:250:0;;9765:2:1;7938:250:0;;;9747:21:1;9804:2;9784:18;;;9777:30;9843:34;9823:18;;;9816:62;9914:34;9894:18;;;9887:62;-1:-1:-1;;;9965:19:1;;;9958:40;10015:19;;7938:250:0;9563:477:1;7938:250:0;8242:9;8213:39;;;;:28;:39;;;;;8255:12;8213:54;;7845:444;8334:13;;-1:-1:-1;;;;;8326:21:0;;;8334:13;;8326:21;:55;;;;-1:-1:-1;8365:15:0;;-1:-1:-1;;;;;8351:30:0;;;8365:15;;8351:30;;8326:55;:83;;;;-1:-1:-1;;;;;;8387:22:0;;;;;;:18;:22;;;;;;;;8385:24;8326:83;8322:313;;;8449:12;;8439:6;:22;;8431:60;;;;-1:-1:-1;;;8431:60:0;;10247:2:1;8431:60:0;;;10229:21:1;10286:2;10266:18;;;10259:30;10325:27;10305:18;;;10298:55;10370:18;;8431:60:0;10045:349:1;8431:60:0;8544:14;;8534:6;8518:13;8528:2;-1:-1:-1;;;;;6108:18:0;6081:7;6108:18;;;:9;:18;;;;;;;6015:119;8518:13;:22;;;;:::i;:::-;:40;;8510:79;;;;-1:-1:-1;;;8510:79:0;;10731:2:1;8510:79:0;;;10713:21:1;10770:2;10750:18;;;10743:30;10809:28;10789:18;;;10782:56;10855:18;;8510:79:0;10529:350:1;8510:79:0;8608:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8322:313;8660:13;;-1:-1:-1;;;;;8654:19:0;;;8660:13;;8654:19;:43;;;;-1:-1:-1;;;;;;8677:20:0;;8692:4;8677:20;;8654:43;8651:174;;;8730:79;8805:3;8730:70;8752:16;;8742:9;;:26;8741:58;;8784:15;;8741:58;;;8770:13;;8730:6;;:10;:70::i;:79::-;8718:91;;8651:174;8890:4;8841:28;6108:18;;;:9;:18;;;;;;8916:6;;-1:-1:-1;;;8916:6:0;;;;8915:7;:32;;;;-1:-1:-1;8934:13:0;;-1:-1:-1;;;;;8926:21:0;;;8934:13;;8926:21;8915:32;:47;;;;-1:-1:-1;8951:11:0;;-1:-1:-1;;;8951:11:0;;;;8915:47;:89;;;;;8987:17;;8966:20;:38;8915:89;:121;;;;;9018:18;;9008:9;;:28;8915:121;8911:437;;;9057:67;9074:49;9078:6;9085:37;9089:20;9110:11;;9085:3;:37::i;:::-;9074:3;:49::i;:::-;9057:16;:67::i;:::-;9172:21;9236:17;9215:38;;9212:121;;;9278:35;9291:21;9278:12;:35::i;:::-;9038:310;8911:437;7678:1681;7640:1719;9374:11;;9371:161;;9442:4;9424:24;;;;:9;:24;;;;;;:39;;9453:9;9424:28;:39::i;:::-;9417:4;9399:24;;;;:9;:24;;;;;;;:64;;;;9481:39;;-1:-1:-1;;;;;9481:39:0;;;;;;;9510:9;1361:25:1;;1349:2;1334:18;;1215:177;9481:39:0;;;;;;;;9371:161;-1:-1:-1;;;;;9558:15:0;;;;;;:9;:15;;;;;;:27;;9578:6;9558:19;:27::i;:::-;-1:-1:-1;;;;;9542:15:0;;;;;;:9;:15;;;;;:43;9610:40;9628:21;:6;9639:9;9628:10;:21::i;:::-;-1:-1:-1;;;;;9610:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9596:13:0;;;;;;;:9;:13;;;;;:54;;;;9666:41;;;9685:21;:6;9696:9;9685:10;:21::i;:::-;9666:41;;1361:25:1;;;1349:2;1334:18;9666:41:0;;;;;;;7370:2345;7301:2414;;;:::o;1523:190::-;1609:7;1645:12;1637:6;;;;1629:29;;;;-1:-1:-1;;;1629:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1669:9:0;1681:5;1685:1;1681;:5;:::i;:::-;1669:17;1523:190;-1:-1:-1;;;;;1523:190:0:o;9831:483::-;5244:6;:13;;-1:-1:-1;;;;5244:13:0;-1:-1:-1;;;5244:13:0;;;9933:16:::1;::::0;;9947:1:::1;9933:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9933:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9933:16:0::1;9909:40;;9978:4;9960;9965:1;9960:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9960:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10004:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10004:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9960:7;;10004:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9994:4;9999:1;9994:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9994:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10069:15:::1;::::0;10037:62:::1;::::0;10054:4:::1;::::0;10069:15:::1;10087:11:::0;10037:8:::1;:62::i;:::-;10110:15;::::0;:196:::1;::::0;-1:-1:-1;;;10110:196:0;;-1:-1:-1;;;;;10110:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10191:11;;10110:15:::1;::::0;10233:4;;10260::::1;::::0;10280:15:::1;::::0;10110:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5280:6:0;:14;;-1:-1:-1;;;;5280:14:0;;;-1:-1:-1;;;;9831:483:0:o;10526:92::-;10583:10;;:27;;:10;;;;-1:-1:-1;;;;;10583:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;1721:246;1779:7;1803:1;1808;1803:6;1799:47;;-1:-1:-1;1833:1:0;1826:8;;1799:47;1856:9;1868:5;1872:1;1868;:5;:::i;:::-;1856:17;-1:-1:-1;1901:1:0;1892:5;1896:1;1856:17;1892:5;:::i;:::-;:10;1884:56;;;;-1:-1:-1;;;1884:56:0;;12830:2:1;1884:56:0;;;12812:21:1;12869:2;12849:18;;;12842:30;12908:34;12888:18;;;12881:62;-1:-1:-1;;;12959:18:1;;;12952:31;13000:19;;1884:56:0;12628:397:1;1884:56:0;1958:1;1721:246;-1:-1:-1;;;1721:246:0:o;1975:132::-;2033:7;2060:39;2064:1;2067;2060:39;;;;;;;;;;;;;;;;;:3;:39::i;9725:98::-;9782:7;9809:1;9807;:3;9806:9;;9814:1;9806:9;;;-1:-1:-1;9812:1:0;9725:98;-1:-1:-1;9725:98:0:o;1192:179::-;1250:7;;1282:5;1286:1;1282;:5;:::i;:::-;1270:17;;1311:1;1306;:6;;1298:46;;;;-1:-1:-1;;;1298:46:0;;13232:2:1;1298:46:0;;;13214:21:1;13271:2;13251:18;;;13244:30;13310:29;13290:18;;;13283:57;13357:18;;1298:46:0;13030:351:1;1379:136:0;1437:7;1464:43;1468:1;1471;1464:43;;;;;;;;;;;;;;;;;:3;:43::i;2115:189::-;2201:7;2236:12;2229:5;2221:28;;;;-1:-1:-1;;;2221:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2260:9:0;2272:5;2276:1;2272;: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;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:180::-;2959:6;3012:2;3000:9;2991:7;2987:23;2983:32;2980:52;;;3028:1;3025;3018:12;2980:52;-1:-1:-1;3051:23:1;;2900:180;-1:-1:-1;2900:180:1:o;3085:127::-;3146:10;3141:3;3137:20;3134:1;3127:31;3177:4;3174:1;3167:15;3201:4;3198:1;3191:15;3217:422;3306:1;3349:5;3306:1;3363:270;3384:7;3374:8;3371:21;3363:270;;;3443:4;3439:1;3435:6;3431:17;3425:4;3422:27;3419:53;;;3452:18;;:::i;:::-;3502:7;3492:8;3488:22;3485:55;;;3522:16;;;;3485:55;3601:22;;;;3561:15;;;;3363:270;;;3367:3;3217:422;;;;;:::o;3644:806::-;3693:5;3723:8;3713:80;;-1:-1:-1;3764:1:1;3778:5;;3713:80;3812:4;3802:76;;-1:-1:-1;3849:1:1;3863:5;;3802:76;3894:4;3912:1;3907:59;;;;3980:1;3975:130;;;;3887:218;;3907:59;3937:1;3928:10;;3951:5;;;3975:130;4012:3;4002:8;3999:17;3996:43;;;4019:18;;:::i;:::-;-1:-1:-1;;4075:1:1;4061:16;;4090:5;;3887:218;;4189:2;4179:8;4176:16;4170:3;4164:4;4161:13;4157:36;4151:2;4141:8;4138:16;4133:2;4127:4;4124:12;4120:35;4117:77;4114:159;;;-1:-1:-1;4226:19:1;;;4258:5;;4114:159;4305:34;4330:8;4324:4;4305:34;:::i;:::-;4375:6;4371:1;4367:6;4363:19;4354:7;4351:32;4348:58;;;4386:18;;:::i;:::-;4424:20;;3644:806;-1:-1:-1;;;3644:806:1:o;4455:140::-;4513:5;4542:47;4583:4;4573:8;4569:19;4563:4;4542:47;:::i;4600:168::-;4673:9;;;4704;;4721:15;;;4715:22;;4701:37;4691:71;;4742:18;;:::i;4773:356::-;4975:2;4957:21;;;4994:18;;;4987:30;5053:34;5048:2;5033:18;;5026:62;5120:2;5105:18;;4773:356::o;5486:251::-;5556:6;5609:2;5597:9;5588:7;5584:23;5580:32;5577:52;;;5625:1;5622;5615:12;5577:52;5657:9;5651:16;5676:31;5701:5;5676:31;:::i;6663:306::-;6751:6;6759;6767;6820:2;6808:9;6799:7;6795:23;6791:32;6788:52;;;6836:1;6833;6826:12;6788:52;6865:9;6859:16;6849:26;;6915:2;6904:9;6900:18;6894:25;6884:35;;6959:2;6948:9;6944:18;6938:25;6928:35;;6663:306;;;;;:::o;7253:277::-;7320:6;7373:2;7361:9;7352:7;7348:23;7344:32;7341:52;;;7389:1;7386;7379:12;7341:52;7421:9;7415:16;7474:5;7467:13;7460:21;7453:5;7450:32;7440:60;;7496:1;7493;7486:12;10399:125;10464:9;;;10485:10;;;10482:36;;;10498:18;;:::i;10884:135::-;10923:3;10944:17;;;10941:43;;10964:18;;:::i;:::-;-1:-1:-1;11011:1:1;11000:13;;10884:135::o;11024:128::-;11091:9;;;11112:11;;;11109:37;;;11126:18;;:::i;11289:127::-;11350:10;11345:3;11341:20;11338:1;11331:31;11381:4;11378:1;11371:15;11405:4;11402:1;11395:15;11421:980;11683:4;11731:3;11720:9;11716:19;11762:6;11751:9;11744:25;11788:2;11826:6;11821:2;11810:9;11806:18;11799:34;11869:3;11864:2;11853:9;11849:18;11842:31;11893:6;11928;11922:13;11959:6;11951;11944:22;11997:3;11986:9;11982:19;11975:26;;12036:2;12028:6;12024:15;12010:29;;12057:1;12067:195;12081:6;12078:1;12075:13;12067:195;;;12146:13;;-1:-1:-1;;;;;12142:39:1;12130:52;;12237:15;;;;12202:12;;;;12178:1;12096:9;12067:195;;;-1:-1:-1;;;;;;;12318:32:1;;;;12313:2;12298:18;;12291:60;-1:-1:-1;;;12382:3:1;12367:19;12360:35;12279:3;11421:980;-1:-1:-1;;;11421:980:1:o;12406:217::-;12446:1;12472;12462:132;;12516:10;12511:3;12507:20;12504:1;12497:31;12551:4;12548:1;12541:15;12579:4;12576:1;12569:15;12462:132;-1:-1:-1;12608:9:1;;12406:217::o

Swarm Source

ipfs://af789682bbe5dd5b32336281c76f3cbb53eff531e24eae6dfa40d62f45eebfe5

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.