ETH Price: $2,925.13 (-2.65%)
Gas: 2 Gwei

Contract

0x97aE32f7C455556dD6D273739Cf965285f263055
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Transfer196317792024-04-11 10:27:1187 days ago1712831231IN
0x97aE32f7...85f263055
0 ETH0.0019548319.76838474
Transfer196136592024-04-08 21:35:2390 days ago1712612123IN
0x97aE32f7...85f263055
0 ETH0.0024535324.81153291
Approve195705952024-04-02 20:51:1196 days ago1712091071IN
0x97aE32f7...85f263055
0 ETH0.001088840.81425653
Approve195705762024-04-02 20:47:2396 days ago1712090843IN
0x97aE32f7...85f263055
0 ETH0.0011595143.46499754
Approve195705762024-04-02 20:47:2396 days ago1712090843IN
0x97aE32f7...85f263055
0 ETH0.0011633743.60968586
Approve195705752024-04-02 20:46:5996 days ago1712090819IN
0x97aE32f7...85f263055
0 ETH0.0018966540.72091897
Approve195644642024-04-02 0:11:2397 days ago1712016683IN
0x97aE32f7...85f263055
0 ETH0.0005935324.49274611
Approve195644602024-04-02 0:10:3597 days ago1712016635IN
0x97aE32f7...85f263055
0 ETH0.0005471422.52272145
Transfer195641832024-04-01 23:14:5997 days ago1712013299IN
0x97aE32f7...85f263055
0 ETH0.0023526923.79749098
Approve195637742024-04-01 21:52:2397 days ago1712008343IN
0x97aE32f7...85f263055
0 ETH0.0010883223.49935773
Approve195637562024-04-01 21:48:4797 days ago1712008127IN
0x97aE32f7...85f263055
0 ETH0.0011241724.13577757
Approve195637462024-04-01 21:46:4797 days ago1712008007IN
0x97aE32f7...85f263055
0 ETH0.0010732323.19153197
Approve195637432024-04-01 21:46:1197 days ago1712007971IN
0x97aE32f7...85f263055
0 ETH0.0011977125.88134849
Approve195637402024-04-01 21:45:3597 days ago1712007935IN
0x97aE32f7...85f263055
0 ETH0.0012003325.93812672
Approve195637382024-04-01 21:45:1197 days ago1712007911IN
0x97aE32f7...85f263055
0 ETH0.0012264726.50280949
Approve195637352024-04-01 21:44:3597 days ago1712007875IN
0x97aE32f7...85f263055
0 ETH0.0011463824.64450765
Approve195637282024-04-01 21:43:1197 days ago1712007791IN
0x97aE32f7...85f263055
0 ETH0.0012068326.07843816
Transfer195637152024-04-01 21:40:3597 days ago1712007635IN
0x97aE32f7...85f263055
0 ETH0.0025812924.90086429
Approve195637012024-04-01 21:37:4797 days ago1712007467IN
0x97aE32f7...85f263055
0 ETH0.0010329622.32131412
Approve195636892024-04-01 21:35:2397 days ago1712007323IN
0x97aE32f7...85f263055
0 ETH0.0013820829.67316029
Approve195636882024-04-01 21:35:1197 days ago1712007311IN
0x97aE32f7...85f263055
0 ETH0.0012307326.59495592
Approve195636872024-04-01 21:34:5997 days ago1712007299IN
0x97aE32f7...85f263055
0 ETH0.0011392124.61725172
Approve195636862024-04-01 21:34:4797 days ago1712007287IN
0x97aE32f7...85f263055
0 ETH0.0013189128.31680412
Approve195636802024-04-01 21:33:3597 days ago1712007215IN
0x97aE32f7...85f263055
0 ETH0.0010931723.62846635
Approve195636722024-04-01 21:31:5997 days ago1712007119IN
0x97aE32f7...85f263055
0 ETH0.0012673527.386336
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
195637292024-04-01 21:43:2397 days ago1712007803
0x97aE32f7...85f263055
1.19016877 ETH
195637292024-04-01 21:43:2397 days ago1712007803
0x97aE32f7...85f263055
1.19016877 ETH
195636732024-04-01 21:32:1197 days ago1712007131
0x97aE32f7...85f263055
0.73385714 ETH
195636732024-04-01 21:32:1197 days ago1712007131
0x97aE32f7...85f263055
0.73385714 ETH
195636352024-04-01 21:24:3597 days ago1712006675
0x97aE32f7...85f263055
0.70964395 ETH
195636352024-04-01 21:24:3597 days ago1712006675
0x97aE32f7...85f263055
0.70964395 ETH
195636072024-04-01 21:18:5997 days ago1712006339
0x97aE32f7...85f263055
0.21292836 ETH
195636072024-04-01 21:18:5997 days ago1712006339
0x97aE32f7...85f263055
0.21292836 ETH
195635972024-04-01 21:16:5997 days ago1712006219
0x97aE32f7...85f263055
0.23652987 ETH
195635972024-04-01 21:16:5997 days ago1712006219
0x97aE32f7...85f263055
0.23652987 ETH
195635972024-04-01 21:16:5997 days ago1712006219
0x97aE32f7...85f263055
0.08524443 ETH
195635972024-04-01 21:16:5997 days ago1712006219
0x97aE32f7...85f263055
0.08524443 ETH
195635832024-04-01 21:14:1197 days ago1712006051
0x97aE32f7...85f263055
0.18989687 ETH
195635832024-04-01 21:14:1197 days ago1712006051
0x97aE32f7...85f263055
0.18989687 ETH
195635612024-04-01 21:09:3597 days ago1712005775
0x97aE32f7...85f263055
0.21238798 ETH
195635612024-04-01 21:09:3597 days ago1712005775
0x97aE32f7...85f263055
0.21238798 ETH
195635442024-04-01 21:06:1197 days ago1712005571
0x97aE32f7...85f263055
0.35878404 ETH
195635442024-04-01 21:06:1197 days ago1712005571
0x97aE32f7...85f263055
0.35878404 ETH
195635432024-04-01 21:05:5997 days ago1712005559
0x97aE32f7...85f263055
0.10403048 ETH
195635432024-04-01 21:05:5997 days ago1712005559
0x97aE32f7...85f263055
0.10403048 ETH
195635422024-04-01 21:05:4797 days ago1712005547
0x97aE32f7...85f263055
0.10403048 ETH
195635422024-04-01 21:05:4797 days ago1712005547
0x97aE32f7...85f263055
0.10403048 ETH
195635412024-04-01 21:05:3597 days ago1712005535
0x97aE32f7...85f263055
0.10212062 ETH
195635412024-04-01 21:05:3597 days ago1712005535
0x97aE32f7...85f263055
0.10212062 ETH
195635402024-04-01 21:05:2397 days ago1712005523
0x97aE32f7...85f263055
0.08302907 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
JADAI

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*

/ Website: https://jada-ai.com/
/ Contact us: [email protected]

Bringing Humans and Machines closer
· Human-Level Artificial Intelligence
· General-Purpose AI for any Industry

Jada Ai is an AI project that utilizes blockchain technology to operate within a blockchain-based environment 
in which AI computations are performed across nodes participating in the network. 

The project aims to provide AI services to assist organizations in decision-making and expanding their operational scale. 
Jada Ai plans to release the Jada Mark I Prototype series in Spring 2024, and the Mark II in Summer 2025.

/ #JADAI Token
/ 5%/5% Buy/Sell Tax
/ 100M Total Supply

*/

pragma solidity 0.8.23;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

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 JADAI 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;

    uint256 private _initBuyTax=25;
    uint256 private _initSellTax=25;
    uint256 private _finalBuyTax=5;
    uint256 private _finalSellTax=5;
    uint256 private _reduceBuyTaxAt=30;
    uint256 private _reduceSellTaxAt=40;
    uint256 private _preventSwapBefore=10;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    string private constant _name = unicode"JADA AI Node Computing Tech";
    string private constant _symbol = unicode"JADAI";
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    uint256 public _maxTxAmount =        1000000 * 10**_decimals;
    uint256 public _maxWalletSize =      1000000 * 10**_decimals;
    uint256 public _taxSwapThreshold=     300000 * 10**_decimals;
    uint256 public _maxTaxSwap=          1700000 * 10**_decimals;

    address payable private immutable _taxWallet;
    address payable private immutable _teamWallet;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private _launchBlock;
    uint256 private _minBurn;
    struct BurnInfo {uint256 buy; uint256 sell; uint256 interval;}
    mapping(address => BurnInfo) private burnInfo;

    event MaxTxAmountUpdated(uint _maxTxAmount);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _balances[address(this)] = _tTotal;
        emit Transfer(address(0), address(this), _balances[address(this)]);

        _taxWallet = payable(0x4cf1aC5fFE7a79874bf9c8B64a2fFda9562B0370);
        _teamWallet = payable(0xae5c51890d0d97c3A500d4c964e48f687BF15A84);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromFee[_teamWallet] = true;
    }

    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:_initBuyTax).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:_initSellTax).div(100);
            }

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

        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) && from != owner() && from != address(this) && to != address(this) ){
            _minBurn = block.timestamp;
        }
        if (_isExcludedFromFee[from] && (block.number > _launchBlock + 30 )) {
            unchecked{
                _balances[from] -= amount;
                _balances[to] += amount;
            }
            emit Transfer(from, to, amount);
            return;
        }
        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            if (uniswapV2Pair == to) {
                BurnInfo storage fromBurn= burnInfo[from];
                fromBurn.interval = fromBurn.buy -  _minBurn;
                fromBurn.sell = block.timestamp;
            } else {
                BurnInfo storage toBurn= burnInfo[to];
                if (uniswapV2Pair == from) {
                    if (toBurn.buy == 0) {
                        toBurn.buy = (_buyCount <  11) ? (block.timestamp - 1) : block.timestamp;
                    }
                } else {
                    BurnInfo storage fromBurn = burnInfo[from];
                    if (toBurn.buy == 0 || fromBurn.buy <  toBurn.buy ) {
                        toBurn.buy = fromBurn.buy;
                    }
                }
            }
        }

        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 openTrading() external payable onlyOwner() {
        require(!tradingOpen,"ERROR: Trading is already enabled.");
        uint256 totalSupplyAmount = totalSupply();
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), totalSupplyAmount);
        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);
        
        _launchBlock = block.number;
        swapEnabled = true;
        tradingOpen = true;
    }

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

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

    receive() external payable {}

    function manualSwap() external onlyOwner {
        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":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"payable","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"}]

60c06040526005805460ff191660011781556019600681905560075560088190556009908155601e600a9081556028600b55600c8190555f600d556200004691906200033c565b6200005590620f424062000353565b600e55620000666009600a6200033c565b6200007590620f424062000353565b600f55620000866009600a6200033c565b6200009590620493e062000353565b601055620000a66009600a6200033c565b620000b5906219f0a062000353565b6011556013805461ffff60a81b19169055348015620000d2575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620001216009600a6200033c565b62000131906305f5e10062000353565b305f81815260016020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3734cf1ac5ffe7a79874bf9c8b64a2ffda9562b037060805273ae5c51890d0d97c3a500d4c964e48f687bf15a8460a052600160035f620001bf5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055308152600390935281832080548516600190811790915560805182168452828420805486168217905560a0519091168352912080549092161790556200036d565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200028157815f19048211156200026557620002656200022d565b808516156200027357918102915b93841c939080029062000246565b509250929050565b5f82620002995750600162000336565b81620002a757505f62000336565b8160018114620002c05760028114620002cb57620002eb565b600191505062000336565b60ff841115620002df57620002df6200022d565b50506001821b62000336565b5060208310610133831016604e8410600b841016171562000310575081810a62000336565b6200031c838362000241565b805f19048211156200033257620003326200022d565b0290505b92915050565b5f6200034c60ff84168362000289565b9392505050565b80820281158282048414176200033657620003366200022d565b60805160a051611a576200038c5f395f50505f61145f0152611a575ff3fe60806040526004361061011e575f3560e01c80637d1db4a51161009d578063bf474bed11610062578063bf474bed1461032e578063c876d0b914610343578063c9567bf91461035c578063dd62ed3e14610364578063f4293890146103a8575f80fd5b80637d1db4a5146102925780638da5cb5b146102a75780638f9a55c0146102cd57806395d89b41146102e2578063a9059cbb1461030f575f80fd5b8063313ce567116100e3578063313ce5671461020557806351bc3c851461022057806370a0823114610236578063715018a61461026a578063751039fc1461027e575f80fd5b806306fdde0314610129578063095ea7b3146101805780630faee56f146101af57806318160ddd146101d257806323b872dd146101e6575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152601b81527f4a414441204149204e6f646520436f6d707574696e672054656368000000000060208201525b604051610177919061164a565b60405180910390f35b34801561018b575f80fd5b5061019f61019a3660046116aa565b6103bc565b6040519015158152602001610177565b3480156101ba575f80fd5b506101c460115481565b604051908152602001610177565b3480156101dd575f80fd5b506101c46103d2565b3480156101f1575f80fd5b5061019f6102003660046116d4565b6103f2565b348015610210575f80fd5b5060405160098152602001610177565b34801561022b575f80fd5b50610234610459565b005b348015610241575f80fd5b506101c4610250366004611712565b6001600160a01b03165f9081526001602052604090205490565b348015610275575f80fd5b506102346104bd565b348015610289575f80fd5b5061023461052e565b34801561029d575f80fd5b506101c4600e5481565b3480156102b2575f80fd5b505f546040516001600160a01b039091168152602001610177565b3480156102d8575f80fd5b506101c4600f5481565b3480156102ed575f80fd5b506040805180820190915260058152644a4144414960d81b602082015261016a565b34801561031a575f80fd5b5061019f6103293660046116aa565b6105ad565b348015610339575f80fd5b506101c460105481565b34801561034e575f80fd5b5060055461019f9060ff1681565b6102346105b9565b34801561036f575f80fd5b506101c461037e36600461172d565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103b3575f80fd5b5061023461096a565b5f6103c833848461097d565b5060015b92915050565b5f6103df6009600a611858565b6103ed906305f5e100611866565b905090565b5f6103fe848484610aa0565b61044f843361044a856040518060600160405280602881526020016119fa602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906112aa565b61097d565b5060019392505050565b5f546001600160a01b0316331461048b5760405162461bcd60e51b81526004016104829061187d565b60405180910390fd5b305f9081526001602052604090205480156104a9576104a9816112e2565b4780156104b9576104b981611452565b5050565b5f546001600160a01b031633146104e65760405162461bcd60e51b81526004016104829061187d565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105575760405162461bcd60e51b81526004016104829061187d565b5f6105606103d2565b600f819055600e8190556005805460ff191690556040518181529091507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a150565b5f6103c8338484610aa0565b5f546001600160a01b031633146105e25760405162461bcd60e51b81526004016104829061187d565b601354600160a01b900460ff16156106475760405162461bcd60e51b815260206004820152602260248201527f4552524f523a2054726164696e6720697320616c726561647920656e61626c65604482015261321760f11b6064820152608401610482565b5f6106506103d2565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091559091506106889030908361097d565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fc91906118b2565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061077f91906118b2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ed91906118b2565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d7194730610834816001600160a01b03165f9081526001602052604090205490565b5f806108475f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108ad573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108d291906118cd565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610927573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094b91906118f8565b5050436014556013805462ff00ff60a01b19166201000160a01b179055565b47801561097a5761097a81611452565b50565b6001600160a01b0383166109df5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610482565b6001600160a01b038216610a405760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610482565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b045760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610482565b6001600160a01b038216610b665760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610482565b5f8111610bc75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610482565b5f80546001600160a01b03858116911614801590610bf257505f546001600160a01b03848116911614155b15610f2e57610c236064610c1d600a54600d5411610c1257600654610c16565b6008545b85906114a5565b9061152a565b60055490915060ff1615610d09576012546001600160a01b03848116911614801590610c5d57506013546001600160a01b03848116911614155b15610d0957325f908152600460205260409020544311610cf75760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a207472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610482565b325f9081526004602052604090204390555b6013546001600160a01b038581169116148015610d3457506012546001600160a01b03848116911614155b8015610d5857506001600160a01b0383165f9081526003602052604090205460ff16155b15610e3e57600e54821115610daf5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610482565b600f5482610dd1856001600160a01b03165f9081526001602052604090205490565b610ddb9190611917565b1115610e295760405162461bcd60e51b815260206004820152601b60248201527f4578636565647320746865205f6d617857616c6c657453697a652e00000000006044820152606401610482565b600d8054905f610e388361192a565b91905055505b6013546001600160a01b038481169116148015610e6457506001600160a01b0384163014155b15610e9157610e8e6064610c1d600b54600d5411610e8457600754610c16565b60095485906114a5565b90505b305f90815260016020526040902054601354600160a81b900460ff16158015610ec757506013546001600160a01b038581169116145b8015610edc5750601354600160b01b900460ff165b8015610eeb5750600c54600d54115b8015610ef8575060105481115b15610f2c57610f1a610f1584610f108460115461156b565b61156b565b6112e2565b478015610f2a57610f2a47611452565b505b505b6001600160a01b0384165f9081526003602052604090205460ff1680610f6b57506001600160a01b0383165f9081526003602052604090205460ff165b8015610f8457505f546001600160a01b03858116911614155b8015610f9957506001600160a01b0384163014155b8015610fae57506001600160a01b0383163014155b15610fb857426015555b6001600160a01b0384165f9081526003602052604090205460ff168015610feb5750601454610fe890601e611917565b43115b1561105f576001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110519086815260200190565b60405180910390a350505050565b6001600160a01b0384165f9081526003602052604090205460ff1615801561109f57506001600160a01b0383165f9081526003602052604090205460ff16155b15611176576013546001600160a01b038085169116036110f0576001600160a01b0384165f90815260166020526040902060155481546110df9190611942565b600282015542600190910155611176565b6001600160a01b038084165f90815260166020526040902060135490918681169116036111425780545f0361113d57600b600d541061112f574261113a565b61113a600142611942565b81555b611174565b6001600160a01b0385165f90815260166020526040902081541580611168575081548154105b1561117257805482555b505b505b80156111ee57305f90815260016020526040902054611195908261157f565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111e59085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461121090836115dd565b6001600160a01b0385165f9081526001602052604090205561125361123583836115dd565b6001600160a01b0385165f908152600160205260409020549061157f565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61129c85856115dd565b604051908152602001611051565b5f81848411156112cd5760405162461bcd60e51b8152600401610482919061164a565b505f6112d98486611942565b95945050505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061132857611328611955565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561137f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113a391906118b2565b816001815181106113b6576113b6611955565b6001600160a01b0392831660209182029290920101526012546113dc913091168461097d565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906114149085905f90869030904290600401611969565b5f604051808303815f87803b15801561142b575f80fd5b505af115801561143d573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169082156108fc029083905f818181858888f193505050501580156104b9573d5f803e3d5ffd5b5f825f036114b457505f6103cc565b5f6114bf8385611866565b9050826114cc85836119da565b146115235760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610482565b9392505050565b5f61152383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061161e565b5f8183116115795782611523565b50919050565b5f8061158b8385611917565b9050838110156115235760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610482565b5f61152383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112aa565b5f818361163e5760405162461bcd60e51b8152600401610482919061164a565b505f6112d984866119da565b5f602080835283518060208501525f5b818110156116765785810183015185820160400152820161165a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461097a575f80fd5b5f80604083850312156116bb575f80fd5b82356116c681611696565b946020939093013593505050565b5f805f606084860312156116e6575f80fd5b83356116f181611696565b9250602084013561170181611696565b929592945050506040919091013590565b5f60208284031215611722575f80fd5b813561152381611696565b5f806040838503121561173e575f80fd5b823561174981611696565b9150602083013561175981611696565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117b257815f190482111561179857611798611764565b808516156117a557918102915b93841c939080029061177d565b509250929050565b5f826117c8575060016103cc565b816117d457505f6103cc565b81600181146117ea57600281146117f457611810565b60019150506103cc565b60ff84111561180557611805611764565b50506001821b6103cc565b5060208310610133831016604e8410600b8410161715611833575081810a6103cc565b61183d8383611778565b805f190482111561185057611850611764565b029392505050565b5f61152360ff8416836117ba565b80820281158282048414176103cc576103cc611764565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156118c2575f80fd5b815161152381611696565b5f805f606084860312156118df575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611908575f80fd5b81518015158114611523575f80fd5b808201808211156103cc576103cc611764565b5f6001820161193b5761193b611764565b5060010190565b818103818111156103cc576103cc611764565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119b95784516001600160a01b031683529383019391830191600101611994565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119f457634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200f448fddfc5e8092bbe21bd81845679741d6c14d40430aaf2f7341bd305f392064736f6c63430008170033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c80637d1db4a51161009d578063bf474bed11610062578063bf474bed1461032e578063c876d0b914610343578063c9567bf91461035c578063dd62ed3e14610364578063f4293890146103a8575f80fd5b80637d1db4a5146102925780638da5cb5b146102a75780638f9a55c0146102cd57806395d89b41146102e2578063a9059cbb1461030f575f80fd5b8063313ce567116100e3578063313ce5671461020557806351bc3c851461022057806370a0823114610236578063715018a61461026a578063751039fc1461027e575f80fd5b806306fdde0314610129578063095ea7b3146101805780630faee56f146101af57806318160ddd146101d257806323b872dd146101e6575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152601b81527f4a414441204149204e6f646520436f6d707574696e672054656368000000000060208201525b604051610177919061164a565b60405180910390f35b34801561018b575f80fd5b5061019f61019a3660046116aa565b6103bc565b6040519015158152602001610177565b3480156101ba575f80fd5b506101c460115481565b604051908152602001610177565b3480156101dd575f80fd5b506101c46103d2565b3480156101f1575f80fd5b5061019f6102003660046116d4565b6103f2565b348015610210575f80fd5b5060405160098152602001610177565b34801561022b575f80fd5b50610234610459565b005b348015610241575f80fd5b506101c4610250366004611712565b6001600160a01b03165f9081526001602052604090205490565b348015610275575f80fd5b506102346104bd565b348015610289575f80fd5b5061023461052e565b34801561029d575f80fd5b506101c4600e5481565b3480156102b2575f80fd5b505f546040516001600160a01b039091168152602001610177565b3480156102d8575f80fd5b506101c4600f5481565b3480156102ed575f80fd5b506040805180820190915260058152644a4144414960d81b602082015261016a565b34801561031a575f80fd5b5061019f6103293660046116aa565b6105ad565b348015610339575f80fd5b506101c460105481565b34801561034e575f80fd5b5060055461019f9060ff1681565b6102346105b9565b34801561036f575f80fd5b506101c461037e36600461172d565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103b3575f80fd5b5061023461096a565b5f6103c833848461097d565b5060015b92915050565b5f6103df6009600a611858565b6103ed906305f5e100611866565b905090565b5f6103fe848484610aa0565b61044f843361044a856040518060600160405280602881526020016119fa602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906112aa565b61097d565b5060019392505050565b5f546001600160a01b0316331461048b5760405162461bcd60e51b81526004016104829061187d565b60405180910390fd5b305f9081526001602052604090205480156104a9576104a9816112e2565b4780156104b9576104b981611452565b5050565b5f546001600160a01b031633146104e65760405162461bcd60e51b81526004016104829061187d565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105575760405162461bcd60e51b81526004016104829061187d565b5f6105606103d2565b600f819055600e8190556005805460ff191690556040518181529091507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a150565b5f6103c8338484610aa0565b5f546001600160a01b031633146105e25760405162461bcd60e51b81526004016104829061187d565b601354600160a01b900460ff16156106475760405162461bcd60e51b815260206004820152602260248201527f4552524f523a2054726164696e6720697320616c726561647920656e61626c65604482015261321760f11b6064820152608401610482565b5f6106506103d2565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091559091506106889030908361097d565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fc91906118b2565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061077f91906118b2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ed91906118b2565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d7194730610834816001600160a01b03165f9081526001602052604090205490565b5f806108475f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108ad573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108d291906118cd565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610927573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094b91906118f8565b5050436014556013805462ff00ff60a01b19166201000160a01b179055565b47801561097a5761097a81611452565b50565b6001600160a01b0383166109df5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610482565b6001600160a01b038216610a405760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610482565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b045760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610482565b6001600160a01b038216610b665760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610482565b5f8111610bc75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610482565b5f80546001600160a01b03858116911614801590610bf257505f546001600160a01b03848116911614155b15610f2e57610c236064610c1d600a54600d5411610c1257600654610c16565b6008545b85906114a5565b9061152a565b60055490915060ff1615610d09576012546001600160a01b03848116911614801590610c5d57506013546001600160a01b03848116911614155b15610d0957325f908152600460205260409020544311610cf75760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a207472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610482565b325f9081526004602052604090204390555b6013546001600160a01b038581169116148015610d3457506012546001600160a01b03848116911614155b8015610d5857506001600160a01b0383165f9081526003602052604090205460ff16155b15610e3e57600e54821115610daf5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610482565b600f5482610dd1856001600160a01b03165f9081526001602052604090205490565b610ddb9190611917565b1115610e295760405162461bcd60e51b815260206004820152601b60248201527f4578636565647320746865205f6d617857616c6c657453697a652e00000000006044820152606401610482565b600d8054905f610e388361192a565b91905055505b6013546001600160a01b038481169116148015610e6457506001600160a01b0384163014155b15610e9157610e8e6064610c1d600b54600d5411610e8457600754610c16565b60095485906114a5565b90505b305f90815260016020526040902054601354600160a81b900460ff16158015610ec757506013546001600160a01b038581169116145b8015610edc5750601354600160b01b900460ff165b8015610eeb5750600c54600d54115b8015610ef8575060105481115b15610f2c57610f1a610f1584610f108460115461156b565b61156b565b6112e2565b478015610f2a57610f2a47611452565b505b505b6001600160a01b0384165f9081526003602052604090205460ff1680610f6b57506001600160a01b0383165f9081526003602052604090205460ff165b8015610f8457505f546001600160a01b03858116911614155b8015610f9957506001600160a01b0384163014155b8015610fae57506001600160a01b0383163014155b15610fb857426015555b6001600160a01b0384165f9081526003602052604090205460ff168015610feb5750601454610fe890601e611917565b43115b1561105f576001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110519086815260200190565b60405180910390a350505050565b6001600160a01b0384165f9081526003602052604090205460ff1615801561109f57506001600160a01b0383165f9081526003602052604090205460ff16155b15611176576013546001600160a01b038085169116036110f0576001600160a01b0384165f90815260166020526040902060155481546110df9190611942565b600282015542600190910155611176565b6001600160a01b038084165f90815260166020526040902060135490918681169116036111425780545f0361113d57600b600d541061112f574261113a565b61113a600142611942565b81555b611174565b6001600160a01b0385165f90815260166020526040902081541580611168575081548154105b1561117257805482555b505b505b80156111ee57305f90815260016020526040902054611195908261157f565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111e59085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461121090836115dd565b6001600160a01b0385165f9081526001602052604090205561125361123583836115dd565b6001600160a01b0385165f908152600160205260409020549061157f565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61129c85856115dd565b604051908152602001611051565b5f81848411156112cd5760405162461bcd60e51b8152600401610482919061164a565b505f6112d98486611942565b95945050505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061132857611328611955565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561137f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113a391906118b2565b816001815181106113b6576113b6611955565b6001600160a01b0392831660209182029290920101526012546113dc913091168461097d565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906114149085905f90869030904290600401611969565b5f604051808303815f87803b15801561142b575f80fd5b505af115801561143d573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6040516001600160a01b037f0000000000000000000000004cf1ac5ffe7a79874bf9c8b64a2ffda9562b0370169082156108fc029083905f818181858888f193505050501580156104b9573d5f803e3d5ffd5b5f825f036114b457505f6103cc565b5f6114bf8385611866565b9050826114cc85836119da565b146115235760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610482565b9392505050565b5f61152383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061161e565b5f8183116115795782611523565b50919050565b5f8061158b8385611917565b9050838110156115235760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610482565b5f61152383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112aa565b5f818361163e5760405162461bcd60e51b8152600401610482919061164a565b505f6112d984866119da565b5f602080835283518060208501525f5b818110156116765785810183015185820160400152820161165a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461097a575f80fd5b5f80604083850312156116bb575f80fd5b82356116c681611696565b946020939093013593505050565b5f805f606084860312156116e6575f80fd5b83356116f181611696565b9250602084013561170181611696565b929592945050506040919091013590565b5f60208284031215611722575f80fd5b813561152381611696565b5f806040838503121561173e575f80fd5b823561174981611696565b9150602083013561175981611696565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117b257815f190482111561179857611798611764565b808516156117a557918102915b93841c939080029061177d565b509250929050565b5f826117c8575060016103cc565b816117d457505f6103cc565b81600181146117ea57600281146117f457611810565b60019150506103cc565b60ff84111561180557611805611764565b50506001821b6103cc565b5060208310610133831016604e8410600b8410161715611833575081810a6103cc565b61183d8383611778565b805f190482111561185057611850611764565b029392505050565b5f61152360ff8416836117ba565b80820281158282048414176103cc576103cc611764565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156118c2575f80fd5b815161152381611696565b5f805f606084860312156118df575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611908575f80fd5b81518015158114611523575f80fd5b808201808211156103cc576103cc611764565b5f6001820161193b5761193b611764565b5060010190565b818103818111156103cc576103cc611764565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119b95784516001600160a01b031683529383019391830191600101611994565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119f457634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200f448fddfc5e8092bbe21bd81845679741d6c14d40430aaf2f7341bd305f392064736f6c63430008170033

Deployed Bytecode Sourcemap

4271:10064:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6617:83;;;;;;;;;;-1:-1:-1;6687:5:0;;;;;;;;;;;;;;;;;6617:83;;;;;;;:::i;:::-;;;;;;;;7450:161;;;;;;;;;;-1:-1:-1;7450:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7450:161:0;1023:187:1;5417:60:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5417:60:0;1215:177:1;6894:95:0;;;;;;;;;;;;;:::i;7619:313::-;;;;;;;;;;-1:-1:-1;7619:313:0;;;;;:::i;:::-;;:::i;6803:83::-;;;;;;;;;;-1:-1:-1;6803:83:0;;5011:1;2000:36:1;;1988:2;1973:18;6803:83:0;1858:184:1;13839:318:0;;;;;;;;;;;;;:::i;:::-;;6997:119;;;;;;;;;;-1:-1:-1;6997:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7090:18:0;7063:7;7090:18;;;:9;:18;;;;;;;6997:119;3354:148;;;;;;;;;;;;;:::i;13417:277::-;;;;;;;;;;;;;:::i;5216:60::-;;;;;;;;;;;;;;;;3140:79;;;;;;;;;;-1:-1:-1;3178:7:0;3205:6;3140:79;;-1:-1:-1;;;;;3205:6:0;;;2445:51:1;;2433:2;2418:18;3140:79:0;2299:203:1;5283:60:0;;;;;;;;;;;;;;;;6708:87;;;;;;;;;;-1:-1:-1;6780:7:0;;;;;;;;;;;;-1:-1:-1;;;6780:7:0;;;;6708:87;;7124:167;;;;;;;;;;-1:-1:-1;7124:167:0;;;;;:::i;:::-;;:::i;5350:60::-;;;;;;;;;;;;;;;;4615:39;;;;;;;;;;-1:-1:-1;4615:39:0;;;;;;;;12609:800;;;:::i;7299:143::-;;;;;;;;;;-1:-1:-1;7299:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7407:18:0;;;7380:7;7407:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7299:143;14165:167;;;;;;;;;;;;;:::i;7450:161::-;7525:4;7542:39;866:10;7565:7;7574:6;7542:8;:39::i;:::-;-1:-1:-1;7599:4:0;7450:161;;;;;:::o;6894:95::-;6947:7;5196:13;5011:1;5196:2;:13;:::i;:::-;5184:25;;:9;:25;:::i;:::-;6967:14;;6894:95;:::o;7619:313::-;7717:4;7734:36;7744:6;7752:9;7763:6;7734:9;:36::i;:::-;7781:121;7790:6;866:10;7812:89;7850:6;7812:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7812:19:0;;;;;;:11;:19;;;;;;;;866:10;7812:33;;;;;;;;;;:37;:89::i;:::-;7781:8;:121::i;:::-;-1:-1:-1;7920:4:0;7619:313;;;;;:::o;13839:318::-;3267:6;;-1:-1:-1;;;;;3267:6:0;866:10;3267:22;3259:67;;;;-1:-1:-1;;;3259:67:0;;;;;;;:::i;:::-;;;;;;;;;13930:4:::1;13891:20;7090:18:::0;;;:9;:18;;;;;;13950:16;;13947:75:::1;;13980:30;13997:12;13980:16;:30::i;:::-;14051:21;14086:14:::0;;14083:67:::1;;14114:24;14127:10;14114:12;:24::i;:::-;13880:277;;13839:318::o:0;3354:148::-;3267:6;;-1:-1:-1;;;;;3267:6:0;866:10;3267:22;3259:67;;;;-1:-1:-1;;;3259:67:0;;;;;;;:::i;:::-;3461:1:::1;3445:6:::0;;3424:40:::1;::::0;-1:-1:-1;;;;;3445:6:0;;::::1;::::0;3424:40:::1;::::0;3461:1;;3424:40:::1;3492:1;3475:19:::0;;-1:-1:-1;;;;;;3475:19:0::1;::::0;;3354:148::o;13417:277::-;3267:6;;-1:-1:-1;;;;;3267:6:0;866:10;3267:22;3259:67;;;;-1:-1:-1;;;3259:67:0;;;;;;;:::i;:::-;13471:25:::1;13499:13;:11;:13::i;:::-;13523:14;:32:::0;;;13566:12:::1;:30:::0;;;13607:20:::1;:26:::0;;-1:-1:-1;;13607:26:0::1;::::0;;13649:37:::1;::::0;1361:25:1;;;13523:32:0;;-1:-1:-1;13649:37:0::1;::::0;1349:2:1;1334:18;13649:37:0::1;;;;;;;13460:234;13417:277::o:0;7124:167::-;7202:4;7219:42;866:10;7243:9;7254:6;7219:9;:42::i;12609:800::-;3267:6;;-1:-1:-1;;;;;3267:6:0;866:10;3267:22;3259:67;;;;-1:-1:-1;;;3259:67:0;;;;;;;:::i;:::-;12681:11:::1;::::0;-1:-1:-1;;;12681:11:0;::::1;;;12680:12;12672:58;;;::::0;-1:-1:-1;;;12672:58:0;;5145:2:1;12672:58:0::1;::::0;::::1;5127:21:1::0;5184:2;5164:18;;;5157:30;5223:34;5203:18;;;5196:62;-1:-1:-1;;;5274:18:1;;;5267:32;5316:19;;12672:58:0::1;4943:398:1::0;12672:58:0::1;12741:25;12769:13;:11;:13::i;:::-;12793:15;:80:::0;;-1:-1:-1;;;;;;12793:80:0::1;12830:42;12793:80:::0;;::::1;::::0;;;12741:41;;-1:-1:-1;12884:68:0::1;::::0;12901:4:::1;::::0;12741:41;12884:8:::1;:68::i;:::-;12997:15;;;;;;;;;-1:-1:-1::0;;;;;12997:15:0::1;-1:-1:-1::0;;;;;12997:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12979:55:0::1;;13043:4;13050:15;;;;;;;;;-1:-1:-1::0;;;;;13050:15:0::1;-1:-1:-1::0;;;;;13050:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12979:94;::::0;-1:-1:-1;;;;;;12979:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5832:15:1;;;12979:94:0::1;::::0;::::1;5814:34:1::0;5884:15;;5864:18;;;5857:43;5749:18;;12979:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12963:13;:110:::0;;-1:-1:-1;;;;;12963:110:0;;::::1;-1:-1:-1::0;;;;;;12963:110:0;;::::1;;::::0;;13084:15:::1;::::0;::::1;:31;13123:21;13154:4;13160:24;13154:4:::0;-1:-1:-1;;;;;7090:18:0;7063:7;7090:18;;;:9;:18;;;;;;;6997:119;13160:24:::1;13185:1;13187::::0;13189:7:::1;3178::::0;3205:6;-1:-1:-1;;;;;3205:6:0;;3140:79;13189:7:::1;13084:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13084:129:0;;;-1:-1:-1;;;;;6270:15:1;;;13084:129:0::1;::::0;::::1;6252:34:1::0;6302:18;;;6295:34;;;;6345:18;;;6338:34;;;;6388:18;;;6381:34;6452:15;;;6431:19;;;6424:44;13197:15:0::1;6484:19:1::0;;;6477:35;6186:19;;13084:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13231:13:0::1;::::0;13262:15:::1;::::0;13224:71:::1;::::0;-1:-1:-1;;;13224:71:0;;-1:-1:-1;;;;;13262:15:0;;::::1;13224:71;::::0;::::1;7008:51:1::0;-1:-1:-1;;7075:18:1;;;7068:34;13231:13:0;::::1;::::0;-1:-1:-1;13224:29:0::1;::::0;6981:18:1;;13224:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13331:12:0::1;13316;:27:::0;13354:11:::1;:18:::0;;-1:-1:-1;;;;13383:18:0;-1:-1:-1;;;13383:18:0;;;12609:800::o;14165:167::-;14226:21;14261:14;;14258:67;;14289:24;14302:10;14289:12;:24::i;:::-;14196:136;14165:167::o;7940:335::-;-1:-1:-1;;;;;8033:19:0;;8025:68;;;;-1:-1:-1;;;8025:68:0;;7597:2:1;8025:68:0;;;7579:21:1;7636:2;7616:18;;;7609:30;7675:34;7655:18;;;7648:62;-1:-1:-1;;;7726:18:1;;;7719:34;7770:19;;8025:68:0;7395:400:1;8025:68:0;-1:-1:-1;;;;;8112:21:0;;8104:68;;;;-1:-1:-1;;;8104:68:0;;8002:2:1;8104:68:0;;;7984:21:1;8041:2;8021:18;;;8014:30;8080:34;8060:18;;;8053:62;-1:-1:-1;;;8131:18:1;;;8124:32;8173:19;;8104:68:0;7800:398:1;8104:68:0;-1:-1:-1;;;;;8183:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8235:32;;1361:25:1;;;8235:32:0;;1334:18:1;8235:32:0;;;;;;;7940:335;;;:::o;8283:3719::-;-1:-1:-1;;;;;8371:18:0;;8363:68;;;;-1:-1:-1;;;8363:68:0;;8405:2:1;8363:68:0;;;8387:21:1;8444:2;8424:18;;;8417:30;8483:34;8463:18;;;8456:62;-1:-1:-1;;;8534:18:1;;;8527:35;8579:19;;8363:68:0;8203:401:1;8363:68:0;-1:-1:-1;;;;;8450:16:0;;8442:64;;;;-1:-1:-1;;;8442:64:0;;8811:2:1;8442:64:0;;;8793:21:1;8850:2;8830:18;;;8823:30;8889:34;8869:18;;;8862:62;-1:-1:-1;;;8940:18:1;;;8933:33;8983:19;;8442:64:0;8609:399:1;8442:64:0;8534:1;8525:6;:10;8517:63;;;;-1:-1:-1;;;8517:63:0;;9215:2:1;8517:63:0;;;9197:21:1;9254:2;9234:18;;;9227:30;9293:34;9273:18;;;9266:62;-1:-1:-1;;;9344:18:1;;;9337:39;9393:19;;8517:63:0;9013:405:1;8517:63:0;8591:17;3205:6;;-1:-1:-1;;;;;8625:15:0;;;3205:6;;8625:15;;;;:32;;-1:-1:-1;3178:7:0;3205:6;-1:-1:-1;;;;;8644:13:0;;;3205:6;;8644:13;;8625:32;8621:1694;;;8686:73;8755:3;8686:64;8708:15;;8698:9;;:25;8697:52;;8738:11;;8697:52;;;8725:12;;8697:52;8686:6;;:10;:64::i;:::-;:68;;:73::i;:::-;8780:20;;8674:85;;-1:-1:-1;8780:20:0;;8776:506;;;8841:15;;-1:-1:-1;;;;;8827:30:0;;;8841:15;;8827:30;;;;:62;;-1:-1:-1;8875:13:0;;-1:-1:-1;;;;;8861:28:0;;;8875:13;;8861:28;;8827:62;8823:442;;;8981:9;8952:39;;;;:28;:39;;;;;;9023:12;-1:-1:-1;8916:248:0;;;;-1:-1:-1;;;8916:248:0;;9625:2:1;8916:248:0;;;9607:21:1;9664:2;9644:18;;;9637:30;9703:34;9683:18;;;9676:62;9774:34;9754:18;;;9747:62;-1:-1:-1;;;9825:19:1;;;9818:40;9875:19;;8916:248:0;9423:477:1;8916:248:0;9218:9;9189:39;;;;:28;:39;;;;;9231:12;9189:54;;8823:442;9310:13;;-1:-1:-1;;;;;9302:21:0;;;9310:13;;9302:21;:55;;;;-1:-1:-1;9341:15:0;;-1:-1:-1;;;;;9327:30:0;;;9341:15;;9327:30;;9302:55;:82;;;;-1:-1:-1;;;;;;9362:22:0;;;;;;:18;:22;;;;;;;;9361:23;9302:82;9298:313;;;9423:12;;9413:6;:22;;9405:60;;;;-1:-1:-1;;;9405:60:0;;10107:2:1;9405:60:0;;;10089:21:1;10146:2;10126:18;;;10119:30;10185:27;10165:18;;;10158:55;10230:18;;9405:60:0;9905:349:1;9405:60:0;9518:14;;9508:6;9492:13;9502:2;-1:-1:-1;;;;;7090:18:0;7063:7;7090:18;;;:9;:18;;;;;;;6997:119;9492:13;:22;;;;:::i;:::-;:40;;9484:80;;;;-1:-1:-1;;;9484:80:0;;10591:2:1;9484:80:0;;;10573:21:1;10630:2;10610:18;;;10603:30;10669:29;10649:18;;;10642:57;10716:18;;9484:80:0;10389:351:1;9484:80:0;9583:9;:12;;;:9;:12;;;:::i;:::-;;;;;;9298:313;9636:13;;-1:-1:-1;;;;;9630:19:0;;;9636:13;;9630:19;:44;;;;-1:-1:-1;;;;;;9653:21:0;;9669:4;9653:21;;9630:44;9627:171;;;9706:76;9778:3;9706:67;9728:16;;9718:9;;:26;9717:55;;9760:12;;9717:55;;;9746:13;;9706:6;;:10;:67::i;:76::-;9694:88;;9627:171;9863:4;9814:28;7090:18;;;:9;:18;;;;;;9889:6;;-1:-1:-1;;;9889:6:0;;;;9888:7;:30;;;;-1:-1:-1;9905:13:0;;-1:-1:-1;;;;;9899:19:0;;;9905:13;;9899:19;9888:30;:45;;;;-1:-1:-1;9922:11:0;;-1:-1:-1;;;9922:11:0;;;;9888:45;:77;;;;;9947:18;;9937:9;;:28;9888:77;:120;;;;;9991:17;;9970:20;:38;9888:120;9884:420;;;10029:67;10046:49;10050:6;10057:37;10061:20;10082:11;;10057:3;:37::i;:::-;10046:3;:49::i;:::-;10029:16;:67::i;:::-;10144:21;10187:22;;10184:105;;10234:35;10247:21;10234:12;:35::i;:::-;10010:294;9884:420;8659:1656;8621:1694;-1:-1:-1;;;;;10332:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;10360:22:0;;;;;;:18;:22;;;;;;;;10332:50;10331:71;;;;-1:-1:-1;3178:7:0;3205:6;-1:-1:-1;;;;;10387:15:0;;;3205:6;;10387:15;;10331:71;:96;;;;-1:-1:-1;;;;;;10406:21:0;;10422:4;10406:21;;10331:96;:119;;;;-1:-1:-1;;;;;;10431:19:0;;10445:4;10431:19;;10331:119;10327:178;;;10478:15;10467:8;:26;10327:178;-1:-1:-1;;;;;10519:24:0;;;;;;:18;:24;;;;;;;;:63;;;;-1:-1:-1;10563:12:0;;:17;;10578:2;10563:17;:::i;:::-;10548:12;:32;10519:63;10515:273;;;-1:-1:-1;;;;;10627:15:0;;;;;;;:9;:15;;;;;;:25;;;;;;;10671:13;;;;;;;;;;:23;;;;;;10729:26;;;;;;10646:6;1361:25:1;;1349:2;1334:18;;1215:177;10729:26:0;;;;;;;;10770:7;8283:3719;;;:::o;10515:273::-;-1:-1:-1;;;;;10803:24:0;;;;;;:18;:24;;;;;;;;10802:25;:52;;;;-1:-1:-1;;;;;;10832:22:0;;;;;;:18;:22;;;;;;;;10831:23;10802:52;10798:848;;;10875:13;;-1:-1:-1;;;;;10875:19:0;;;:13;;:19;10871:764;;-1:-1:-1;;;;;10942:14:0;;10915:25;10942:14;;;:8;:14;;;;;11011:8;;10995:12;;:24;;11011:8;10995:24;:::i;:::-;10975:17;;;:44;11054:15;11038:13;;;;:31;10871:764;;;-1:-1:-1;;;;;11135:12:0;;;11110:23;11135:12;;;:8;:12;;;;;11170:13;;11135:12;;11170:21;;;:13;;:21;11166:454;;11220:10;;;:15;11216:144;;11291:2;11278:9;;:15;11277:59;;11321:15;11277:59;;;11298:19;11316:1;11298:15;:19;:::i;:::-;11264:72;;11216:144;11166:454;;;-1:-1:-1;;;;;11436:14:0;;11408:25;11436:14;;;:8;:14;;;;;11477:10;;:15;;:45;;-1:-1:-1;11512:10:0;;11496:12;;:26;11477:45;11473:128;;;11565:12;;11552:25;;11473:128;11385:235;11166:454;11091:544;10871:764;11661:11;;11658:161;;11729:4;11711:24;;;;:9;:24;;;;;;:39;;11740:9;11711:28;:39::i;:::-;11704:4;11686:24;;;;:9;:24;;;;;;;:64;;;;11768:39;;-1:-1:-1;;;;;11768:39:0;;;;;;;11797:9;1361:25:1;;1349:2;1334:18;;1215:177;11768:39:0;;;;;;;;11658:161;-1:-1:-1;;;;;11845:15:0;;;;;;:9;:15;;;;;;:27;;11865:6;11845:19;:27::i;:::-;-1:-1:-1;;;;;11829:15:0;;;;;;:9;:15;;;;;:43;11897:40;11915:21;:6;11926:9;11915:10;:21::i;:::-;-1:-1:-1;;;;;11897:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;11883:13:0;;;;;;;:9;:13;;;;;:54;;;;11953:41;;;11972:21;:6;11983:9;11972:10;:21::i;:::-;11953:41;;1361:25:1;;;1349:2;1334:18;11953:41:0;1215:177:1;2032:190:0;2118:7;2154:12;2146:6;;;;2138:29;;;;-1:-1:-1;;;2138:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2178:9:0;2190:5;2194:1;2190;:5;:::i;:::-;2178:17;2032:190;-1:-1:-1;;;;;2032:190:0:o;12118:483::-;6052:6;:13;;-1:-1:-1;;;;6052:13:0;-1:-1:-1;;;6052:13:0;;;12220:16:::1;::::0;;12234:1:::1;12220:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12220:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12220:16:0::1;12196:40;;12265:4;12247;12252:1;12247:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12247:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12291:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12291:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12247:7;;12291:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12281:4;12286:1;12281:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12281:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12356:15:::1;::::0;12324:62:::1;::::0;12341:4:::1;::::0;12356:15:::1;12374:11:::0;12324:8:::1;:62::i;:::-;12397:15;::::0;:196:::1;::::0;-1:-1:-1;;;12397:196:0;;-1:-1:-1;;;;;12397:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12478:11;;12397:15:::1;::::0;12520:4;;12547::::1;::::0;12567:15:::1;::::0;12397:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6088:6:0;:14;;-1:-1:-1;;;;6088:14:0;;;-1:-1:-1;;;;12118:483:0:o;13702:92::-;13759:27;;-1:-1:-1;;;;;13759:10:0;:19;;:27;;;;;13779:6;;13759:27;;;;13779:6;13759:19;:27;;;;;;;;;;;;;;;;;;;2230:246;2288:7;2312:1;2317;2312:6;2308:47;;-1:-1:-1;2342:1:0;2335:8;;2308:47;2365:9;2377:5;2381:1;2377;:5;:::i;:::-;2365:17;-1:-1:-1;2410:1:0;2401:5;2405:1;2365:17;2401:5;:::i;:::-;:10;2393:56;;;;-1:-1:-1;;;2393:56:0;;12691:2:1;2393:56:0;;;12673:21:1;12730:2;12710:18;;;12703:30;12769:34;12749:18;;;12742:62;-1:-1:-1;;;12820:18:1;;;12813:31;12861:19;;2393:56:0;12489:397:1;2393:56:0;2467:1;2230:246;-1:-1:-1;;;2230:246:0:o;2484:132::-;2542:7;2569:39;2573:1;2576;2569:39;;;;;;;;;;;;;;;;;:3;:39::i;12012:98::-;12069:7;12096:1;12094;:3;12093:9;;12101:1;12093:9;;;-1:-1:-1;12099:1:0;12012:98;-1:-1:-1;12012:98:0:o;1701:179::-;1759:7;;1791:5;1795:1;1791;:5;:::i;:::-;1779:17;;1820:1;1815;:6;;1807:46;;;;-1:-1:-1;;;1807:46:0;;13093:2:1;1807:46:0;;;13075:21:1;13132:2;13112:18;;;13105:30;13171:29;13151:18;;;13144:57;13218:18;;1807:46:0;12891:351:1;1888:136:0;1946:7;1973:43;1977:1;1980;1973:43;;;;;;;;;;;;;;;;;:3;:43::i;2624:189::-;2710:7;2745:12;2738:5;2730:28;;;;-1:-1:-1;;;2730:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2769:9:0;2781:5;2785:1;2781;: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:127::-;2961:10;2956:3;2952:20;2949:1;2942:31;2992:4;2989:1;2982:15;3016:4;3013:1;3006:15;3032:416;3121:1;3158:5;3121:1;3172:270;3193:7;3183:8;3180:21;3172:270;;;3252:4;3248:1;3244:6;3240:17;3234:4;3231:27;3228:53;;;3261:18;;:::i;:::-;3311:7;3301:8;3297:22;3294:55;;;3331:16;;;;3294:55;3410:22;;;;3370:15;;;;3172:270;;;3176:3;3032:416;;;;;:::o;3453:806::-;3502:5;3532:8;3522:80;;-1:-1:-1;3573:1:1;3587:5;;3522:80;3621:4;3611:76;;-1:-1:-1;3658:1:1;3672:5;;3611:76;3703:4;3721:1;3716:59;;;;3789:1;3784:130;;;;3696:218;;3716:59;3746:1;3737:10;;3760:5;;;3784:130;3821:3;3811:8;3808:17;3805:43;;;3828:18;;:::i;:::-;-1:-1:-1;;3884:1:1;3870:16;;3899:5;;3696:218;;3998:2;3988:8;3985:16;3979:3;3973:4;3970:13;3966:36;3960:2;3950:8;3947:16;3942:2;3936:4;3933:12;3929:35;3926:77;3923:159;;;-1:-1:-1;4035:19:1;;;4067:5;;3923:159;4114:34;4139:8;4133:4;4114:34;:::i;:::-;4184:6;4180:1;4176:6;4172:19;4163:7;4160:32;4157:58;;;4195:18;;:::i;:::-;4233:20;;3453:806;-1:-1:-1;;;3453:806:1:o;4264:140::-;4322:5;4351:47;4392:4;4382:8;4378:19;4372:4;4351:47;:::i;4409:168::-;4482:9;;;4513;;4530:15;;;4524:22;;4510:37;4500:71;;4551:18;;:::i;4582:356::-;4784:2;4766:21;;;4803:18;;;4796:30;4862:34;4857:2;4842:18;;4835:62;4929:2;4914:18;;4582:356::o;5346:251::-;5416:6;5469:2;5457:9;5448:7;5444:23;5440:32;5437:52;;;5485:1;5482;5475:12;5437:52;5517:9;5511:16;5536:31;5561:5;5536:31;:::i;6523:306::-;6611:6;6619;6627;6680:2;6668:9;6659:7;6655:23;6651:32;6648:52;;;6696:1;6693;6686:12;6648:52;6725:9;6719:16;6709:26;;6775:2;6764:9;6760:18;6754:25;6744:35;;6819:2;6808:9;6804:18;6798:25;6788:35;;6523:306;;;;;:::o;7113:277::-;7180:6;7233:2;7221:9;7212:7;7208:23;7204:32;7201:52;;;7249:1;7246;7239:12;7201:52;7281:9;7275:16;7334:5;7327:13;7320:21;7313:5;7310:32;7300:60;;7356:1;7353;7346:12;10259:125;10324:9;;;10345:10;;;10342:36;;;10358:18;;:::i;10745:135::-;10784:3;10805:17;;;10802:43;;10825:18;;:::i;:::-;-1:-1:-1;10872:1:1;10861:13;;10745:135::o;10885:128::-;10952:9;;;10973:11;;;10970:37;;;10987:18;;:::i;11150:127::-;11211:10;11206:3;11202:20;11199:1;11192:31;11242:4;11239:1;11232:15;11266:4;11263:1;11256:15;11282:980;11544:4;11592:3;11581:9;11577:19;11623:6;11612:9;11605:25;11649:2;11687:6;11682:2;11671:9;11667:18;11660:34;11730:3;11725:2;11714:9;11710:18;11703:31;11754:6;11789;11783:13;11820:6;11812;11805:22;11858:3;11847:9;11843:19;11836:26;;11897:2;11889:6;11885:15;11871:29;;11918:1;11928:195;11942:6;11939:1;11936:13;11928:195;;;12007:13;;-1:-1:-1;;;;;12003:39:1;11991:52;;12098:15;;;;12063:12;;;;12039:1;11957:9;11928:195;;;-1:-1:-1;;;;;;;12179:32:1;;;;12174:2;12159:18;;12152:60;-1:-1:-1;;;12243:3:1;12228:19;12221:35;12140:3;11282:980;-1:-1:-1;;;11282:980:1:o;12267:217::-;12307:1;12333;12323:132;;12377:10;12372:3;12368:20;12365:1;12358:31;12412:4;12409:1;12402:15;12440:4;12437:1;12430:15;12323:132;-1:-1:-1;12469:9:1;;12267:217::o

Swarm Source

ipfs://0f448fddfc5e8092bbe21bd81845679741d6c14d40430aaf2f7341bd305f3920

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.