ETH Price: $2,450.94 (-1.16%)

Contract

0xa5d7fDD37600b009746Be994005E3f38E3b66740
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve189099202024-01-01 3:27:59307 days ago1704079679IN
0xa5d7fDD3...8E3b66740
0 ETH0.0002527310.40201282
Approve162881512022-12-29 4:52:35675 days ago1672289555IN
0xa5d7fDD3...8E3b66740
0 ETH0.0003624814.91904933
Transfer156979632022-10-07 18:21:59757 days ago1665166919IN
0xa5d7fDD3...8E3b66740
0 ETH0.0026378411.77061874
Approve156979532022-10-07 18:19:59757 days ago1665166799IN
0xa5d7fDD3...8E3b66740
0 ETH0.000456439.79877573
Approve155751932022-09-20 14:09:47774 days ago1663682987IN
0xa5d7fDD3...8E3b66740
0 ETH0.0003427714.1076917
Transfer154093612022-08-25 13:31:53800 days ago1661434313IN
0xa5d7fDD3...8E3b66740
0 ETH0.0022582210.06698561
Approve154088962022-08-25 11:39:25801 days ago1661427565IN
0xa5d7fDD3...8E3b66740
0 ETH0.000337717.25013269
Approve139171642022-01-01 3:39:111037 days ago1641008351IN
0xa5d7fDD3...8E3b66740
0 ETH0.0044237394.96860945
Approve137588472021-12-07 13:41:211061 days ago1638884481IN
0xa5d7fDD3...8E3b66740
0 ETH0.0018489969.3
Approve137588462021-12-07 13:41:161061 days ago1638884476IN
0xa5d7fDD3...8E3b66740
0 ETH0.0038941783.6
Approve136566422021-11-21 6:47:551078 days ago1637477275IN
0xa5d7fDD3...8E3b66740
0 ETH0.004445395.43178477
Approve135879162021-11-10 10:14:421089 days ago1636539282IN
0xa5d7fDD3...8E3b66740
0 ETH0.0039576484.96268292
Approve135765582021-11-08 15:24:121090 days ago1636385052IN
0xa5d7fDD3...8E3b66740
0 ETH0.00598292128.44137065
Approve135751292021-11-08 10:06:521091 days ago1636366012IN
0xa5d7fDD3...8E3b66740
0 ETH0.00469609100.8157255
Approve135508602021-11-04 14:54:531094 days ago1636037693IN
0xa5d7fDD3...8E3b66740
0 ETH0.00654476140.50295288
Approve135431702021-11-03 9:46:011096 days ago1635932761IN
0xa5d7fDD3...8E3b66740
0 ETH0.0056363121
Approve135414982021-11-03 3:21:151096 days ago1635909675IN
0xa5d7fDD3...8E3b66740
0 ETH0.0068872147.85436575
Approve135324502021-11-01 17:20:531097 days ago1635787253IN
0xa5d7fDD3...8E3b66740
0 ETH0.00489704183.54059448
Approve135311592021-11-01 12:23:081098 days ago1635769388IN
0xa5d7fDD3...8E3b66740
0 ETH0.0045419197.5056946
Approve135302522021-11-01 8:53:001098 days ago1635756780IN
0xa5d7fDD3...8E3b66740
0 ETH0.00551101118.31041857
Approve135294502021-11-01 5:46:481098 days ago1635745608IN
0xa5d7fDD3...8E3b66740
0 ETH0.00627823134.78099908
Approve135273152021-10-31 21:52:281098 days ago1635717148IN
0xa5d7fDD3...8E3b66740
0 ETH0.00588598126.36029051
Approve135267522021-10-31 19:53:391098 days ago1635710019IN
0xa5d7fDD3...8E3b66740
0 ETH0.00800996171.95771106
Approve135254952021-10-31 15:05:301098 days ago1635692730IN
0xa5d7fDD3...8E3b66740
0 ETH0.0077371166.1
Approve135254722021-10-31 15:01:081098 days ago1635692468IN
0xa5d7fDD3...8E3b66740
0 ETH0.00686935147.47112846
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
156979632022-10-07 18:21:59757 days ago1665166919
0xa5d7fDD3...8E3b66740
0.00210614 ETH
156979632022-10-07 18:21:59757 days ago1665166919
0xa5d7fDD3...8E3b66740
0.00210614 ETH
156979632022-10-07 18:21:59757 days ago1665166919
0xa5d7fDD3...8E3b66740
0.00421228 ETH
154093612022-08-25 13:31:53800 days ago1661434313
0xa5d7fDD3...8E3b66740
0.02320974 ETH
154093612022-08-25 13:31:53800 days ago1661434313
0xa5d7fDD3...8E3b66740
0.02320974 ETH
154093612022-08-25 13:31:53800 days ago1661434313
0xa5d7fDD3...8E3b66740
0.04641949 ETH
137588492021-12-07 13:41:401061 days ago1638884500
0xa5d7fDD3...8E3b66740
0.00503225 ETH
137588492021-12-07 13:41:401061 days ago1638884500
0xa5d7fDD3...8E3b66740
0.00503225 ETH
137588492021-12-07 13:41:401061 days ago1638884500
0xa5d7fDD3...8E3b66740
0.0100645 ETH
136930142021-11-27 0:59:091072 days ago1637974749
0xa5d7fDD3...8E3b66740
0.00210241 ETH
136930142021-11-27 0:59:091072 days ago1637974749
0xa5d7fDD3...8E3b66740
0.00210241 ETH
136930142021-11-27 0:59:091072 days ago1637974749
0xa5d7fDD3...8E3b66740
0.00420483 ETH
136011582021-11-12 11:55:181087 days ago1636718118
0xa5d7fDD3...8E3b66740
0.00323758 ETH
136011582021-11-12 11:55:181087 days ago1636718118
0xa5d7fDD3...8E3b66740
0.00323758 ETH
136011582021-11-12 11:55:181087 days ago1636718118
0xa5d7fDD3...8E3b66740
0.00647516 ETH
135600532021-11-06 1:21:281093 days ago1636161688
0xa5d7fDD3...8E3b66740
0.00427765 ETH
135600532021-11-06 1:21:281093 days ago1636161688
0xa5d7fDD3...8E3b66740
0.00427765 ETH
135600532021-11-06 1:21:281093 days ago1636161688
0xa5d7fDD3...8E3b66740
0.00855531 ETH
135508752021-11-04 14:57:501094 days ago1636037870
0xa5d7fDD3...8E3b66740
0.00530477 ETH
135508752021-11-04 14:57:501094 days ago1636037870
0xa5d7fDD3...8E3b66740
0.00530477 ETH
135508752021-11-04 14:57:501094 days ago1636037870
0xa5d7fDD3...8E3b66740
0.01060954 ETH
135416942021-11-03 4:06:171096 days ago1635912377
0xa5d7fDD3...8E3b66740
0.0063305 ETH
135416942021-11-03 4:06:171096 days ago1635912377
0xa5d7fDD3...8E3b66740
0.0063305 ETH
135416942021-11-03 4:06:171096 days ago1635912377
0xa5d7fDD3...8E3b66740
0.01266101 ETH
135388712021-11-02 17:32:341096 days ago1635874354
0xa5d7fDD3...8E3b66740
0.01402754 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Nadeko

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-10-28
*/

/**
 *Submitted for verification at Etherscan.io on 2021-10-22
*/

// https://nadekoinu.com
// https://t.me/nadekoinu
// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

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

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

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

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

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

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

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

}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    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 Nadeko is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    
    string private constant _name = "Nadeko Inu";
    string private constant _symbol = "Nadeko";
    uint8 private constant _decimals = 9;   
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _feeAddrWallet1 = payable(0x1F649103968B8704A815288b3A3fCc5AC4444257);
        _feeAddrWallet2 = payable(0x4ab3B276aE189bC34C323BC65d0fE67d8DFDFb2b);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        _isExcludedFromFee[_feeAddrWallet2] = true;
        emit Transfer(address(0x0000000000000000000000000000000000000000), _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 tokenFromReflection(_rOwned[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 setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function setMaxTxAmount (uint256 amt) external onlyOwner() {
        _maxTxAmount = amt;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    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");
        _feeAddr1 = 2;
        _feeAddr2 = 8;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _feeAddr1 = 2;
                _feeAddr2 = 10;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
		
        _tokenTransfer(from,to,amount);
    }

    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 sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount.div(2));
        _feeAddrWallet2.transfer(amount.div(2));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = 200000000;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function removeStrictTxLimit() public onlyOwner {
        _maxTxAmount = 1e12 * 10**9;
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","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":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeStrictTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"setMaxTxAmount","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"},{"stateMutability":"payable","type":"receive"}]

60806040526200001b683635c9adc5dea000006000196200022b565b620000299060001962000205565b600855600f805462ffffff60a81b19169055683635c9adc5dea000006010553480156200005557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c80546001600160a01b0319908116731f649103968b8704a815288b3a3fcc5ac444425717909155600d8054909116734ab3b276ae189bc34c323bc65d0fe67d8dfdfb2b17905560085460026000620000ee3390565b6001600160a01b03166001600160a01b031681526020019081526020016000208190555060016005600062000128620001f660201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526005909352818320805485166001908117909155600c54821684528284208054861682179055600d54909116835291208054909216179055620001993390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620001e891815260200190565b60405180910390a36200024e565b6000546001600160a01b031690565b6000828210156200022657634e487b7160e01b600052601160045260246000fd5b500390565b6000826200024957634e487b7160e01b600052601260045260246000fd5b500690565b611acc806200025e6000396000f3fe6080604052600436106101185760003560e01c8063715018a6116100a0578063c3c8cd8011610064578063c3c8cd801461031e578063c9567bf914610333578063dd62ed3e14610348578063ec28438a1461038e578063ff872602146103ae57600080fd5b8063715018a6146102725780638da5cb5b1461028757806395d89b41146102af578063a9059cbb146102de578063b515566a146102fe57600080fd5b8063273123b7116100e7578063273123b7146101df578063313ce567146102015780635932ead11461021d5780636fc3eaec1461023d57806370a082311461025257600080fd5b806306fdde0314610124578063095ea7b31461016957806318160ddd1461019957806323b872dd146101bf57600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5060408051808201909152600a8152694e6164656b6f20496e7560b01b60208201525b6040516101609190611883565b60405180910390f35b34801561017557600080fd5b5061018961018436600461170a565b6103c3565b6040519015158152602001610160565b3480156101a557600080fd5b50683635c9adc5dea000005b604051908152602001610160565b3480156101cb57600080fd5b506101896101da3660046116c9565b6103da565b3480156101eb57600080fd5b506101ff6101fa366004611656565b610443565b005b34801561020d57600080fd5b5060405160098152602001610160565b34801561022957600080fd5b506101ff610238366004611802565b610497565b34801561024957600080fd5b506101ff6104df565b34801561025e57600080fd5b506101b161026d366004611656565b61050c565b34801561027e57600080fd5b506101ff61052e565b34801561029357600080fd5b506000546040516001600160a01b039091168152602001610160565b3480156102bb57600080fd5b506040805180820190915260068152654e6164656b6f60d01b6020820152610153565b3480156102ea57600080fd5b506101896102f936600461170a565b6105a2565b34801561030a57600080fd5b506101ff610319366004611736565b6105af565b34801561032a57600080fd5b506101ff610645565b34801561033f57600080fd5b506101ff61067b565b34801561035457600080fd5b506101b1610363366004611690565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561039a57600080fd5b506101ff6103a936600461183c565b610a3a565b3480156103ba57600080fd5b506101ff610a69565b60006103d0338484610aa2565b5060015b92915050565b60006103e7848484610bc6565b610439843361043485604051806060016040528060288152602001611a6f602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610f13565b610aa2565b5060019392505050565b6000546001600160a01b031633146104765760405162461bcd60e51b815260040161046d906118d8565b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146104c15760405162461bcd60e51b815260040161046d906118d8565b600f8054911515600160b81b0260ff60b81b19909216919091179055565b600c546001600160a01b0316336001600160a01b0316146104ff57600080fd5b4761050981610f4d565b50565b6001600160a01b0381166000908152600260205260408120546103d490610fd2565b6000546001600160a01b031633146105585760405162461bcd60e51b815260040161046d906118d8565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006103d0338484610bc6565b6000546001600160a01b031633146105d95760405162461bcd60e51b815260040161046d906118d8565b60005b8151811015610641576001600660008484815181106105fd576105fd611a1f565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610639816119ee565b9150506105dc565b5050565b600c546001600160a01b0316336001600160a01b03161461066557600080fd5b60006106703061050c565b905061050981611056565b6000546001600160a01b031633146106a55760405162461bcd60e51b815260040161046d906118d8565b600f54600160a01b900460ff16156106ff5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161046d565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561073c3082683635c9adc5dea00000610aa2565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561077557600080fd5b505afa158015610789573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ad9190611673565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107f557600080fd5b505afa158015610809573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082d9190611673565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561087557600080fd5b505af1158015610889573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ad9190611673565b600f80546001600160a01b0319166001600160a01b03928316179055600e541663f305d71947306108dd8161050c565b6000806108f26000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561095557600080fd5b505af1158015610969573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061098e9190611855565b5050600f8054630bebc20060105563ffff00ff60a01b198116630101000160a01b17909155600e5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b158015610a0257600080fd5b505af1158015610a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610641919061181f565b6000546001600160a01b03163314610a645760405162461bcd60e51b815260040161046d906118d8565b601055565b6000546001600160a01b03163314610a935760405162461bcd60e51b815260040161046d906118d8565b683635c9adc5dea00000601055565b6001600160a01b038316610b045760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161046d565b6001600160a01b038216610b655760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161046d565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c2a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161046d565b6001600160a01b038216610c8c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161046d565b60008111610cee5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161046d565b6002600a556008600b556000546001600160a01b03848116911614801590610d2457506000546001600160a01b03838116911614155b15610f03576001600160a01b03831660009081526006602052604090205460ff16158015610d6b57506001600160a01b03821660009081526006602052604090205460ff16155b610d7457600080fd5b600f546001600160a01b038481169116148015610d9f5750600e546001600160a01b03838116911614155b8015610dc457506001600160a01b03821660009081526005602052604090205460ff16155b8015610dd95750600f54600160b81b900460ff165b15610e3657601054811115610ded57600080fd5b6001600160a01b0382166000908152600760205260409020544211610e1157600080fd5b610e1c42601e61197e565b6001600160a01b0383166000908152600760205260409020555b600f546001600160a01b038381169116148015610e615750600e546001600160a01b03848116911614155b8015610e8657506001600160a01b03831660009081526005602052604090205460ff16155b15610e96576002600a908155600b555b6000610ea13061050c565b600f54909150600160a81b900460ff16158015610ecc5750600f546001600160a01b03858116911614155b8015610ee15750600f54600160b01b900460ff165b15610f0157610eef81611056565b478015610eff57610eff47610f4d565b505b505b610f0e8383836111df565b505050565b60008184841115610f375760405162461bcd60e51b815260040161046d9190611883565b506000610f4484866119d7565b95945050505050565b600c546001600160a01b03166108fc610f678360026111ea565b6040518115909202916000818181858888f19350505050158015610f8f573d6000803e3d6000fd5b50600d546001600160a01b03166108fc610faa8360026111ea565b6040518115909202916000818181858888f19350505050158015610641573d6000803e3d6000fd5b60006008548211156110395760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161046d565b600061104361122c565b905061104f83826111ea565b9392505050565b600f805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061109e5761109e611a1f565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156110f257600080fd5b505afa158015611106573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112a9190611673565b8160018151811061113d5761113d611a1f565b6001600160a01b039283166020918202929092010152600e546111639130911684610aa2565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061119c90859060009086903090429060040161190d565b600060405180830381600087803b1580156111b657600080fd5b505af11580156111ca573d6000803e3d6000fd5b5050600f805460ff60a81b1916905550505050565b610f0e83838361124f565b600061104f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611346565b6000806000611239611374565b909250905061124882826111ea565b9250505090565b600080600080600080611261876113b6565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506112939087611413565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546112c29086611455565b6001600160a01b0389166000908152600260205260409020556112e4816114b4565b6112ee84836114fe565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161133391815260200190565b60405180910390a3505050505050505050565b600081836113675760405162461bcd60e51b815260040161046d9190611883565b506000610f448486611996565b6008546000908190683635c9adc5dea0000061139082826111ea565b8210156113ad57505060085492683635c9adc5dea0000092509050565b90939092509050565b60008060008060008060008060006113d38a600a54600b54611522565b92509250925060006113e361122c565b905060008060006113f68e878787611577565b919e509c509a509598509396509194505050505091939550919395565b600061104f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f13565b600080611462838561197e565b90508381101561104f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161046d565b60006114be61122c565b905060006114cc83836115c7565b306000908152600260205260409020549091506114e99082611455565b30600090815260026020526040902055505050565b60085461150b9083611413565b60085560095461151b9082611455565b6009555050565b600080808061153c606461153689896115c7565b906111ea565b9050600061154f60646115368a896115c7565b90506000611567826115618b86611413565b90611413565b9992985090965090945050505050565b600080808061158688866115c7565b9050600061159488876115c7565b905060006115a288886115c7565b905060006115b4826115618686611413565b939b939a50919850919650505050505050565b6000826115d6575060006103d4565b60006115e283856119b8565b9050826115ef8583611996565b1461104f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161046d565b803561165181611a4b565b919050565b60006020828403121561166857600080fd5b813561104f81611a4b565b60006020828403121561168557600080fd5b815161104f81611a4b565b600080604083850312156116a357600080fd5b82356116ae81611a4b565b915060208301356116be81611a4b565b809150509250929050565b6000806000606084860312156116de57600080fd5b83356116e981611a4b565b925060208401356116f981611a4b565b929592945050506040919091013590565b6000806040838503121561171d57600080fd5b823561172881611a4b565b946020939093013593505050565b6000602080838503121561174957600080fd5b823567ffffffffffffffff8082111561176157600080fd5b818501915085601f83011261177557600080fd5b81358181111561178757611787611a35565b8060051b604051601f19603f830116810181811085821117156117ac576117ac611a35565b604052828152858101935084860182860187018a10156117cb57600080fd5b600095505b838610156117f5576117e181611646565b8552600195909501949386019386016117d0565b5098975050505050505050565b60006020828403121561181457600080fd5b813561104f81611a60565b60006020828403121561183157600080fd5b815161104f81611a60565b60006020828403121561184e57600080fd5b5035919050565b60008060006060848603121561186a57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b818110156118b057858101830151858201604001528201611894565b818111156118c2576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561195d5784516001600160a01b031683529383019391830191600101611938565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561199157611991611a09565b500190565b6000826119b357634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156119d2576119d2611a09565b500290565b6000828210156119e9576119e9611a09565b500390565b6000600019821415611a0257611a02611a09565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461050957600080fd5b801515811461050957600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208c8d0d15e169707dbaf889b5c96463890ab0b1f225ef28ce4326f912d07ad8fd64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101185760003560e01c8063715018a6116100a0578063c3c8cd8011610064578063c3c8cd801461031e578063c9567bf914610333578063dd62ed3e14610348578063ec28438a1461038e578063ff872602146103ae57600080fd5b8063715018a6146102725780638da5cb5b1461028757806395d89b41146102af578063a9059cbb146102de578063b515566a146102fe57600080fd5b8063273123b7116100e7578063273123b7146101df578063313ce567146102015780635932ead11461021d5780636fc3eaec1461023d57806370a082311461025257600080fd5b806306fdde0314610124578063095ea7b31461016957806318160ddd1461019957806323b872dd146101bf57600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5060408051808201909152600a8152694e6164656b6f20496e7560b01b60208201525b6040516101609190611883565b60405180910390f35b34801561017557600080fd5b5061018961018436600461170a565b6103c3565b6040519015158152602001610160565b3480156101a557600080fd5b50683635c9adc5dea000005b604051908152602001610160565b3480156101cb57600080fd5b506101896101da3660046116c9565b6103da565b3480156101eb57600080fd5b506101ff6101fa366004611656565b610443565b005b34801561020d57600080fd5b5060405160098152602001610160565b34801561022957600080fd5b506101ff610238366004611802565b610497565b34801561024957600080fd5b506101ff6104df565b34801561025e57600080fd5b506101b161026d366004611656565b61050c565b34801561027e57600080fd5b506101ff61052e565b34801561029357600080fd5b506000546040516001600160a01b039091168152602001610160565b3480156102bb57600080fd5b506040805180820190915260068152654e6164656b6f60d01b6020820152610153565b3480156102ea57600080fd5b506101896102f936600461170a565b6105a2565b34801561030a57600080fd5b506101ff610319366004611736565b6105af565b34801561032a57600080fd5b506101ff610645565b34801561033f57600080fd5b506101ff61067b565b34801561035457600080fd5b506101b1610363366004611690565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561039a57600080fd5b506101ff6103a936600461183c565b610a3a565b3480156103ba57600080fd5b506101ff610a69565b60006103d0338484610aa2565b5060015b92915050565b60006103e7848484610bc6565b610439843361043485604051806060016040528060288152602001611a6f602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610f13565b610aa2565b5060019392505050565b6000546001600160a01b031633146104765760405162461bcd60e51b815260040161046d906118d8565b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146104c15760405162461bcd60e51b815260040161046d906118d8565b600f8054911515600160b81b0260ff60b81b19909216919091179055565b600c546001600160a01b0316336001600160a01b0316146104ff57600080fd5b4761050981610f4d565b50565b6001600160a01b0381166000908152600260205260408120546103d490610fd2565b6000546001600160a01b031633146105585760405162461bcd60e51b815260040161046d906118d8565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006103d0338484610bc6565b6000546001600160a01b031633146105d95760405162461bcd60e51b815260040161046d906118d8565b60005b8151811015610641576001600660008484815181106105fd576105fd611a1f565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610639816119ee565b9150506105dc565b5050565b600c546001600160a01b0316336001600160a01b03161461066557600080fd5b60006106703061050c565b905061050981611056565b6000546001600160a01b031633146106a55760405162461bcd60e51b815260040161046d906118d8565b600f54600160a01b900460ff16156106ff5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161046d565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561073c3082683635c9adc5dea00000610aa2565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561077557600080fd5b505afa158015610789573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ad9190611673565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107f557600080fd5b505afa158015610809573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082d9190611673565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561087557600080fd5b505af1158015610889573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ad9190611673565b600f80546001600160a01b0319166001600160a01b03928316179055600e541663f305d71947306108dd8161050c565b6000806108f26000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561095557600080fd5b505af1158015610969573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061098e9190611855565b5050600f8054630bebc20060105563ffff00ff60a01b198116630101000160a01b17909155600e5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b158015610a0257600080fd5b505af1158015610a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610641919061181f565b6000546001600160a01b03163314610a645760405162461bcd60e51b815260040161046d906118d8565b601055565b6000546001600160a01b03163314610a935760405162461bcd60e51b815260040161046d906118d8565b683635c9adc5dea00000601055565b6001600160a01b038316610b045760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161046d565b6001600160a01b038216610b655760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161046d565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c2a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161046d565b6001600160a01b038216610c8c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161046d565b60008111610cee5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161046d565b6002600a556008600b556000546001600160a01b03848116911614801590610d2457506000546001600160a01b03838116911614155b15610f03576001600160a01b03831660009081526006602052604090205460ff16158015610d6b57506001600160a01b03821660009081526006602052604090205460ff16155b610d7457600080fd5b600f546001600160a01b038481169116148015610d9f5750600e546001600160a01b03838116911614155b8015610dc457506001600160a01b03821660009081526005602052604090205460ff16155b8015610dd95750600f54600160b81b900460ff165b15610e3657601054811115610ded57600080fd5b6001600160a01b0382166000908152600760205260409020544211610e1157600080fd5b610e1c42601e61197e565b6001600160a01b0383166000908152600760205260409020555b600f546001600160a01b038381169116148015610e615750600e546001600160a01b03848116911614155b8015610e8657506001600160a01b03831660009081526005602052604090205460ff16155b15610e96576002600a908155600b555b6000610ea13061050c565b600f54909150600160a81b900460ff16158015610ecc5750600f546001600160a01b03858116911614155b8015610ee15750600f54600160b01b900460ff165b15610f0157610eef81611056565b478015610eff57610eff47610f4d565b505b505b610f0e8383836111df565b505050565b60008184841115610f375760405162461bcd60e51b815260040161046d9190611883565b506000610f4484866119d7565b95945050505050565b600c546001600160a01b03166108fc610f678360026111ea565b6040518115909202916000818181858888f19350505050158015610f8f573d6000803e3d6000fd5b50600d546001600160a01b03166108fc610faa8360026111ea565b6040518115909202916000818181858888f19350505050158015610641573d6000803e3d6000fd5b60006008548211156110395760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161046d565b600061104361122c565b905061104f83826111ea565b9392505050565b600f805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061109e5761109e611a1f565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156110f257600080fd5b505afa158015611106573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112a9190611673565b8160018151811061113d5761113d611a1f565b6001600160a01b039283166020918202929092010152600e546111639130911684610aa2565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061119c90859060009086903090429060040161190d565b600060405180830381600087803b1580156111b657600080fd5b505af11580156111ca573d6000803e3d6000fd5b5050600f805460ff60a81b1916905550505050565b610f0e83838361124f565b600061104f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611346565b6000806000611239611374565b909250905061124882826111ea565b9250505090565b600080600080600080611261876113b6565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506112939087611413565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546112c29086611455565b6001600160a01b0389166000908152600260205260409020556112e4816114b4565b6112ee84836114fe565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161133391815260200190565b60405180910390a3505050505050505050565b600081836113675760405162461bcd60e51b815260040161046d9190611883565b506000610f448486611996565b6008546000908190683635c9adc5dea0000061139082826111ea565b8210156113ad57505060085492683635c9adc5dea0000092509050565b90939092509050565b60008060008060008060008060006113d38a600a54600b54611522565b92509250925060006113e361122c565b905060008060006113f68e878787611577565b919e509c509a509598509396509194505050505091939550919395565b600061104f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f13565b600080611462838561197e565b90508381101561104f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161046d565b60006114be61122c565b905060006114cc83836115c7565b306000908152600260205260409020549091506114e99082611455565b30600090815260026020526040902055505050565b60085461150b9083611413565b60085560095461151b9082611455565b6009555050565b600080808061153c606461153689896115c7565b906111ea565b9050600061154f60646115368a896115c7565b90506000611567826115618b86611413565b90611413565b9992985090965090945050505050565b600080808061158688866115c7565b9050600061159488876115c7565b905060006115a288886115c7565b905060006115b4826115618686611413565b939b939a50919850919650505050505050565b6000826115d6575060006103d4565b60006115e283856119b8565b9050826115ef8583611996565b1461104f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161046d565b803561165181611a4b565b919050565b60006020828403121561166857600080fd5b813561104f81611a4b565b60006020828403121561168557600080fd5b815161104f81611a4b565b600080604083850312156116a357600080fd5b82356116ae81611a4b565b915060208301356116be81611a4b565b809150509250929050565b6000806000606084860312156116de57600080fd5b83356116e981611a4b565b925060208401356116f981611a4b565b929592945050506040919091013590565b6000806040838503121561171d57600080fd5b823561172881611a4b565b946020939093013593505050565b6000602080838503121561174957600080fd5b823567ffffffffffffffff8082111561176157600080fd5b818501915085601f83011261177557600080fd5b81358181111561178757611787611a35565b8060051b604051601f19603f830116810181811085821117156117ac576117ac611a35565b604052828152858101935084860182860187018a10156117cb57600080fd5b600095505b838610156117f5576117e181611646565b8552600195909501949386019386016117d0565b5098975050505050505050565b60006020828403121561181457600080fd5b813561104f81611a60565b60006020828403121561183157600080fd5b815161104f81611a60565b60006020828403121561184e57600080fd5b5035919050565b60008060006060848603121561186a57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b818110156118b057858101830151858201604001528201611894565b818111156118c2576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561195d5784516001600160a01b031683529383019391830191600101611938565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561199157611991611a09565b500190565b6000826119b357634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156119d2576119d2611a09565b500290565b6000828210156119e9576119e9611a09565b500390565b6000600019821415611a0257611a02611a09565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461050957600080fd5b801515811461050957600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208c8d0d15e169707dbaf889b5c96463890ab0b1f225ef28ce4326f912d07ad8fd64736f6c63430008070033

Deployed Bytecode Sourcemap

3643:10555:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5528:83;;;;;;;;;;-1:-1:-1;5598:5:0;;;;;;;;;;;;-1:-1:-1;;;5598:5:0;;;;5528:83;;;;;;;:::i;:::-;;;;;;;;6380:161;;;;;;;;;;-1:-1:-1;6380:161:0;;;;;:::i;:::-;;:::i;:::-;;;5537:14:1;;5530:22;5512:41;;5500:2;5485:18;6380:161:0;5372:187:1;5805:95:0;;;;;;;;;;-1:-1:-1;4142:12:0;5805:95;;;10222:25:1;;;10210:2;10195:18;5805:95:0;10076:177:1;6549:313:0;;;;;;;;;;-1:-1:-1;6549:313:0;;;;;:::i;:::-;;:::i;10925:88::-;;;;;;;;;;-1:-1:-1;10925:88:0;;;;;:::i;:::-;;:::i;:::-;;5714:83;;;;;;;;;;-1:-1:-1;5714:83:0;;4553:1;11385:36:1;;11373:2;11358:18;5714:83:0;11243:184:1;6870:103:0;;;;;;;;;;-1:-1:-1;6870:103:0;;;;;:::i;:::-;;:::i;12302:194::-;;;;;;;;;;;;;:::i;5908:138::-;;;;;;;;;;-1:-1:-1;5908:138:0;;;;;:::i;:::-;;:::i;2722:148::-;;;;;;;;;;;;;:::i;2508:79::-;;;;;;;;;;-1:-1:-1;2546:7:0;2573:6;2508:79;;-1:-1:-1;;;;;2573:6:0;;;4110:51:1;;4098:2;4083:18;2508:79:0;3964:203:1;5619:87:0;;;;;;;;;;-1:-1:-1;5691:7:0;;;;;;;;;;;;-1:-1:-1;;;5691:7:0;;;;5619:87;;6054:167;;;;;;;;;;-1:-1:-1;6054:167:0;;;;;:::i;:::-;;:::i;10643:164::-;;;;;;;;;;-1:-1:-1;10643:164:0;;;;;:::i;:::-;;:::i;12095:195::-;;;;;;;;;;;;;:::i;9825:806::-;;;;;;;;;;;;;:::i;6229:143::-;;;;;;;;;;-1:-1:-1;6229:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6337:18:0;;;6310:7;6337:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6229:143;6981:96;;;;;;;;;;-1:-1:-1;6981:96:0;;;;;:::i;:::-;;:::i;10819:94::-;;;;;;;;;;;;;:::i;6380:161::-;6455:4;6472:39;306:10;6495:7;6504:6;6472:8;:39::i;:::-;-1:-1:-1;6529:4:0;6380:161;;;;;:::o;6549:313::-;6647:4;6664:36;6674:6;6682:9;6693:6;6664:9;:36::i;:::-;6711:121;6720:6;306:10;6742:89;6780:6;6742:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6742:19:0;;;;;;:11;:19;;;;;;;;306:10;6742:33;;;;;;;;;;:37;:89::i;:::-;6711:8;:121::i;:::-;-1:-1:-1;6850:4:0;6549:313;;;;;:::o;10925:88::-;2635:6;;-1:-1:-1;;;;;2635:6:0;306:10;2635:22;2627:67;;;;-1:-1:-1;;;2627:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;10985:12:0::1;11000:5;10985:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;10985:20:0::1;::::0;;10925:88::o;6870:103::-;2635:6;;-1:-1:-1;;;;;2635:6:0;306:10;2635:22;2627:67;;;;-1:-1:-1;;;2627:67:0;;;;;;;:::i;:::-;6942:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;6942:23:0::1;-1:-1:-1::0;;;;6942:23:0;;::::1;::::0;;;::::1;::::0;;6870:103::o;12302:194::-;12368:15;;-1:-1:-1;;;;;12368:15:0;306:10;-1:-1:-1;;;;;12352:31:0;;12344:40;;;;;;12424:21;12456:32;12424:21;12456:12;:32::i;:::-;12333:163;12302:194::o;5908:138::-;-1:-1:-1;;;;;6021:16:0;;5974:7;6021:16;;;:7;:16;;;;;;6001:37;;:19;:37::i;2722:148::-;2635:6;;-1:-1:-1;;;;;2635:6:0;306:10;2635:22;2627:67;;;;-1:-1:-1;;;2627:67:0;;;;;;;:::i;:::-;2829:1:::1;2813:6:::0;;2792:40:::1;::::0;-1:-1:-1;;;;;2813:6:0;;::::1;::::0;2792:40:::1;::::0;2829:1;;2792:40:::1;2860:1;2843:19:::0;;-1:-1:-1;;;;;;2843:19:0::1;::::0;;2722:148::o;6054:167::-;6132:4;6149:42;306:10;6173:9;6184:6;6149:9;:42::i;10643:164::-;2635:6;;-1:-1:-1;;;;;2635:6:0;306:10;2635:22;2627:67;;;;-1:-1:-1;;;2627:67:0;;;;;;;:::i;:::-;10717:6:::1;10712:88;10733:5;:12;10729:1;:16;10712:88;;;10784:4;10767;:14;10772:5;10778:1;10772:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10767:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10767:14:0;:21;;-1:-1:-1;;10767:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10747:3;::::1;::::0;::::1;:::i;:::-;;;;10712:88;;;;10643:164:::0;:::o;12095:195::-;12161:15;;-1:-1:-1;;;;;12161:15:0;306:10;-1:-1:-1;;;;;12145:31:0;;12137:40;;;;;;12188:23;12214:24;12232:4;12214:9;:24::i;:::-;12188:50;;12249:33;12266:15;12249:16;:33::i;9825:806::-;2635:6;;-1:-1:-1;;;;;2635:6:0;306:10;2635:22;2627:67;;;;-1:-1:-1;;;2627:67:0;;;;;;;:::i;:::-;9889:11:::1;::::0;-1:-1:-1;;;9889:11:0;::::1;;;9888:12;9880:47;;;::::0;-1:-1:-1;;;9880:47:0;;9926:2:1;9880:47:0::1;::::0;::::1;9908:21:1::0;9965:2;9945:18;;;9938:30;10004:25;9984:18;;;9977:53;10047:18;;9880:47:0::1;9724:347:1::0;9880:47:0::1;10049:15;:34:::0;;-1:-1:-1;;;;;;10049:34:0::1;9995:42;10049:34:::0;;::::1;::::0;;;10094:58:::1;10111:4;9995:42:::0;4142:12:::1;10094:8;:58::i;:::-;10197:16;-1:-1:-1::0;;;;;10197:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10179:56:0::1;;10244:4;10251:16;-1:-1:-1::0;;;;;10251:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10179:96;::::0;-1:-1:-1;;;;;;10179:96:0::1;::::0;;;;;;-1:-1:-1;;;;;4402:15:1;;;10179:96:0::1;::::0;::::1;4384:34:1::0;4454:15;;4434:18;;;4427:43;4319:18;;10179:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10163:13;:112:::0;;-1:-1:-1;;;;;;10163:112:0::1;-1:-1:-1::0;;;;;10163:112:0;;::::1;;::::0;;10286:15:::1;::::0;::::1;:31;10325:21;10356:4;10362:24;10356:4:::0;10362:9:::1;:24::i;:::-;10387:1;10389::::0;10391:7:::1;2546::::0;2573:6;-1:-1:-1;;;;;2573:6:0;;2508:79;10391:7:::1;10286:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10286:129:0;;;-1:-1:-1;;;;;5119:15:1;;;10286:129:0::1;::::0;::::1;5101:34:1::0;5151:18;;;5144:34;;;;5194:18;;;5187:34;;;;5237:18;;;5230:34;5301:15;;;5280:19;;;5273:44;10399:15:0::1;5333:19:1::0;;;5326:35;5035:19;;10286:129:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10426:11:0::1;:18:::0;;10503:9:::1;10488:12;:24:::0;-1:-1:-1;;;;10523:18:0;;-1:-1:-1;;;10523:18:0;;;;10590:15:::1;::::0;10552:71:::1;::::0;-1:-1:-1;;;10552:71:0;;-1:-1:-1;;;;;10590:15:0;;::::1;10552:71;::::0;::::1;4655:51:1::0;-1:-1:-1;;4722:18:1;;;4715:34;10559:13:0;;;-1:-1:-1;10552:29:0::1;::::0;4628:18:1;;10552:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6981:96::-:0;2635:6;;-1:-1:-1;;;;;2635:6:0;306:10;2635:22;2627:67;;;;-1:-1:-1;;;2627:67:0;;;;;;;:::i;:::-;7051:12:::1;:18:::0;6981:96::o;10819:94::-;2635:6;;-1:-1:-1;;;;;2635:6:0;306:10;2635:22;2627:67;;;;-1:-1:-1;;;2627:67:0;;;;;;;:::i;:::-;10893:12:::1;10878;:27:::0;10819:94::o;7347:335::-;-1:-1:-1;;;;;7440:19:0;;7432:68;;;;-1:-1:-1;;;7432:68:0;;9521:2:1;7432:68:0;;;9503:21:1;9560:2;9540:18;;;9533:30;9599:34;9579:18;;;9572:62;-1:-1:-1;;;9650:18:1;;;9643:34;9694:19;;7432:68:0;9319:400:1;7432:68:0;-1:-1:-1;;;;;7519:21:0;;7511:68;;;;-1:-1:-1;;;7511:68:0;;7183:2:1;7511:68:0;;;7165:21:1;7222:2;7202:18;;;7195:30;7261:34;7241:18;;;7234:62;-1:-1:-1;;;7312:18:1;;;7305:32;7354:19;;7511:68:0;6981:398:1;7511:68:0;-1:-1:-1;;;;;7590:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7642:32;;10222:25:1;;;7642:32:0;;10195:18:1;7642:32:0;;;;;;;7347:335;;;:::o;7690:1462::-;-1:-1:-1;;;;;7778:18:0;;7770:68;;;;-1:-1:-1;;;7770:68:0;;9115:2:1;7770:68:0;;;9097:21:1;9154:2;9134:18;;;9127:30;9193:34;9173:18;;;9166:62;-1:-1:-1;;;9244:18:1;;;9237:35;9289:19;;7770:68:0;8913:401:1;7770:68:0;-1:-1:-1;;;;;7857:16:0;;7849:64;;;;-1:-1:-1;;;7849:64:0;;6368:2:1;7849:64:0;;;6350:21:1;6407:2;6387:18;;;6380:30;6446:34;6426:18;;;6419:62;-1:-1:-1;;;6497:18:1;;;6490:33;6540:19;;7849:64:0;6166:399:1;7849:64:0;7941:1;7932:6;:10;7924:64;;;;-1:-1:-1;;;7924:64:0;;8705:2:1;7924:64:0;;;8687:21:1;8744:2;8724:18;;;8717:30;8783:34;8763:18;;;8756:62;-1:-1:-1;;;8834:18:1;;;8827:39;8883:19;;7924:64:0;8503:405:1;7924:64:0;8011:1;7999:9;:13;8035:1;8023:9;:13;-1:-1:-1;2573:6:0;-1:-1:-1;;;;;8051:15:0;;;2573:6;;8051:15;;;;:32;;-1:-1:-1;2546:7:0;2573:6;-1:-1:-1;;;;;8070:13:0;;;2573:6;;8070:13;;8051:32;8047:1053;;;-1:-1:-1;;;;;8109:10:0;;;;;;:4;:10;;;;;;;;8108:11;:24;;;;-1:-1:-1;;;;;;8124:8:0;;;;;;:4;:8;;;;;;;;8123:9;8108:24;8100:33;;;;;;8160:13;;-1:-1:-1;;;;;8152:21:0;;;8160:13;;8152:21;:55;;;;-1:-1:-1;8191:15:0;;-1:-1:-1;;;;;8177:30:0;;;8191:15;;8177:30;;8152:55;:83;;;;-1:-1:-1;;;;;;8213:22:0;;;;;;:18;:22;;;;;;;;8211:24;8152:83;:102;;;;-1:-1:-1;8239:15:0;;-1:-1:-1;;;8239:15:0;;;;8152:102;8148:325;;;8322:12;;8312:6;:22;;8304:31;;;;;;-1:-1:-1;;;;;8362:12:0;;;;;;:8;:12;;;;;;8377:15;-1:-1:-1;8354:39:0;;;;;;8427:30;:15;8446:10;8427:30;:::i;:::-;-1:-1:-1;;;;;8412:12:0;;;;;;:8;:12;;;;;:45;8148:325;8525:13;;-1:-1:-1;;;;;8519:19:0;;;8525:13;;8519:19;:55;;;;-1:-1:-1;8558:15:0;;-1:-1:-1;;;;;8542:32:0;;;8558:15;;8542:32;;8519:55;:85;;;;-1:-1:-1;;;;;;8580:24:0;;;;;;:18;:24;;;;;;;;8578:26;8519:85;8515:172;;;8637:1;8625:9;:13;;;8657:9;:14;8515:172;8701:28;8732:24;8750:4;8732:9;:24::i;:::-;8776:6;;8701:55;;-1:-1:-1;;;;8776:6:0;;;;8775:7;:32;;;;-1:-1:-1;8794:13:0;;-1:-1:-1;;;;;8786:21:0;;;8794:13;;8786:21;;8775:32;:47;;;;-1:-1:-1;8811:11:0;;-1:-1:-1;;;8811:11:0;;;;8775:47;8771:318;;;8843:38;8860:20;8843:16;:38::i;:::-;8929:21;8972:22;;8969:105;;9019:35;9032:21;9019:12;:35::i;:::-;8824:265;8771:318;8085:1015;8047:1053;9114:30;9129:4;9134:2;9137:6;9114:14;:30::i;:::-;7690:1462;;;:::o;1363:190::-;1449:7;1485:12;1477:6;;;;1469:29;;;;-1:-1:-1;;;1469:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1509:9:0;1521:5;1525:1;1521;:5;:::i;:::-;1509:17;1363:190;-1:-1:-1;;;;;1363:190:0:o;9659:154::-;9716:15;;-1:-1:-1;;;;;9716:15:0;:39;9741:13;:6;9752:1;9741:10;:13::i;:::-;9716:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9766:15:0;;-1:-1:-1;;;;;9766:15:0;:39;9791:13;:6;9802:1;9791:10;:13::i;:::-;9766:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7085:254;7152:7;7191;;7180;:18;;7172:73;;;;-1:-1:-1;;;7172:73:0;;6772:2:1;7172:73:0;;;6754:21:1;6811:2;6791:18;;;6784:30;6850:34;6830:18;;;6823:62;-1:-1:-1;;;6901:18:1;;;6894:40;6951:19;;7172:73:0;6570:406:1;7172:73:0;7256:19;7279:10;:8;:10::i;:::-;7256:33;-1:-1:-1;7307:24:0;:7;7256:33;7307:11;:24::i;:::-;7300:31;7085:254;-1:-1:-1;;;7085:254:0:o;9160:483::-;4929:6;:13;;-1:-1:-1;;;;4929:13:0;-1:-1:-1;;;4929:13:0;;;9262:16:::1;::::0;;9276:1:::1;9262:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9262:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9262:16:0::1;9238:40;;9307:4;9289;9294:1;9289:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9289:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9333:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9333:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9289:7;;9333:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9323:4;9328:1;9323:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9323:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9398:15:::1;::::0;9366:62:::1;::::0;9383:4:::1;::::0;9398:15:::1;9416:11:::0;9366:8:::1;:62::i;:::-;9439:15;::::0;:196:::1;::::0;-1:-1:-1;;;9439:196:0;;-1:-1:-1;;;;;9439:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9520:11;;9439:15:::1;::::0;9562:4;;9589::::1;::::0;9609:15:::1;::::0;9439:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4965:6:0;:14;;-1:-1:-1;;;;4965:14:0;;;-1:-1:-1;;;;9160:483:0:o;11029:146::-;11123:44;11141:6;11149:9;11160:6;11123:17;:44::i;1815:132::-;1873:7;1900:39;1904:1;1907;1900:39;;;;;;;;;;;;;;;;;:3;:39::i;13762:163::-;13803:7;13824:15;13841;13860:19;:17;:19::i;:::-;13823:56;;-1:-1:-1;13823:56:0;-1:-1:-1;13897:20:0;13823:56;;13897:11;:20::i;:::-;13890:27;;;;13762:163;:::o;11183:488::-;11282:15;11299:23;11324:12;11338:23;11363:12;11377:13;11394:19;11405:7;11394:10;:19::i;:::-;-1:-1:-1;;;;;11442:15:0;;;;;;:7;:15;;;;;;11281:132;;-1:-1:-1;11281:132:0;;-1:-1:-1;11281:132:0;;-1:-1:-1;11281:132:0;-1:-1:-1;11281:132:0;-1:-1:-1;11281:132:0;-1:-1:-1;11442:28:0;;11281:132;11442:19;:28::i;:::-;-1:-1:-1;;;;;11424:15:0;;;;;;;:7;:15;;;;;;:46;;;;11502:18;;;;;;;:39;;11525:15;11502:22;:39::i;:::-;-1:-1:-1;;;;;11481:18:0;;;;;;:7;:18;;;;;:60;11553:16;11563:5;11553:9;:16::i;:::-;11580:23;11592:4;11598;11580:11;:23::i;:::-;11636:9;-1:-1:-1;;;;;11619:44:0;11628:6;-1:-1:-1;;;;;11619:44:0;;11647:15;11619:44;;;;10222:25:1;;10210:2;10195:18;;10076:177;11619:44:0;;;;;;;;11270:401;;;;;;11183:488;;;:::o;1955:189::-;2041:7;2076:12;2069:5;2061:28;;;;-1:-1:-1;;;2061:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2100:9:0;2112:5;2116:1;2112;:5;:::i;13933:262::-;14030:7;;13983;;;;4142:12;14104:20;14030:7;4142:12;14104:11;:20::i;:::-;14094:7;:30;14090:61;;;-1:-1:-1;;14134:7:0;;;4142:12;;-1:-1:-1;13933:262:0;-1:-1:-1;13933:262:0:o;14090:61::-;14170:7;;14179;;-1:-1:-1;13933:262:0;-1:-1:-1;13933:262:0:o;12510:471::-;12569:7;12578;12587;12596;12605;12614;12635:23;12660:12;12674:13;12691:42;12703:7;12712:9;;12723;;12691:11;:42::i;:::-;12634:99;;;;;;12744:19;12767:10;:8;:10::i;:::-;12744:33;;12789:15;12806:23;12831:12;12847:46;12859:7;12868:4;12874:5;12881:11;12847;:46::i;:::-;12788:105;;-1:-1:-1;12788:105:0;-1:-1:-1;12788:105:0;-1:-1:-1;12944:15:0;;-1:-1:-1;12961:4:0;;-1:-1:-1;12967:5:0;;-1:-1:-1;;;;;12510:471:0;;;;;;;:::o;1219:136::-;1277:7;1304:43;1308:1;1311;1304:43;;;;;;;;;;;;;;;;;:3;:43::i;1032:179::-;1090:7;;1122:5;1126:1;1122;:5;:::i;:::-;1110:17;;1151:1;1146;:6;;1138:46;;;;-1:-1:-1;;;1138:46:0;;7586:2:1;1138:46:0;;;7568:21:1;7625:2;7605:18;;;7598:30;7664:29;7644:18;;;7637:57;7711:18;;1138:46:0;7384:351:1;11679:212:0;11732:19;11755:10;:8;:10::i;:::-;11732:33;-1:-1:-1;11776:13:0;11792:22;:5;11732:33;11792:9;:22::i;:::-;11866:4;11850:22;;;;:7;:22;;;;;;11776:38;;-1:-1:-1;11850:33:0;;11776:38;11850:26;:33::i;:::-;11841:4;11825:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;11679:212:0:o;11899:147::-;11977:7;;:17;;11989:4;11977:11;:17::i;:::-;11967:7;:27;12018:10;;:20;;12033:4;12018:14;:20::i;:::-;12005:10;:33;-1:-1:-1;;11899:147:0:o;12989:351::-;13082:7;;;;13135:28;13159:3;13135:19;:7;13147:6;13135:11;:19::i;:::-;:23;;:28::i;:::-;13120:43;-1:-1:-1;13174:13:0;13190:29;13215:3;13190:20;:7;13202;13190:11;:20::i;:29::-;13174:45;-1:-1:-1;13230:23:0;13256:28;13174:45;13256:17;:7;13268:4;13256:11;:17::i;:::-;:21;;:28::i;:::-;13230:54;13320:4;;-1:-1:-1;13326:5:0;;-1:-1:-1;12989:351:0;;-1:-1:-1;;;;;12989:351:0:o;13348:409::-;13458:7;;;;13514:24;:7;13526:11;13514;:24::i;:::-;13496:42;-1:-1:-1;13549:12:0;13564:21;:4;13573:11;13564:8;:21::i;:::-;13549:36;-1:-1:-1;13596:13:0;13612:22;:5;13622:11;13612:9;:22::i;:::-;13596:38;-1:-1:-1;13645:23:0;13671:28;13596:38;13671:17;:7;13683:4;13671:11;:17::i;:28::-;13718:7;;;;-1:-1:-1;13744:4:0;;-1:-1:-1;13348:409:0;;-1:-1:-1;;;;;;;13348:409:0:o;1561:246::-;1619:7;1643:6;1639:47;;-1:-1:-1;1673:1:0;1666:8;;1639:47;1696:9;1708:5;1712:1;1708;:5;:::i;:::-;1696:17;-1:-1:-1;1741:1:0;1732:5;1736:1;1696:17;1732:5;:::i;:::-;:10;1724:56;;;;-1:-1:-1;;;1724:56:0;;7942:2:1;1724:56:0;;;7924:21:1;7981:2;7961:18;;;7954:30;8020:34;8000:18;;;7993:62;-1:-1:-1;;;8071:18:1;;;8064:31;8112:19;;1724:56:0;7740:397:1;14:134;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:247::-;212:6;265:2;253:9;244:7;240:23;236:32;233:52;;;281:1;278;271:12;233:52;320:9;307:23;339:31;364:5;339:31;:::i;405:251::-;475:6;528:2;516:9;507:7;503:23;499:32;496:52;;;544:1;541;534:12;496:52;576:9;570:16;595:31;620:5;595:31;:::i;661:388::-;729:6;737;790:2;778:9;769:7;765:23;761:32;758:52;;;806:1;803;796:12;758:52;845:9;832:23;864:31;889:5;864:31;:::i;:::-;914:5;-1:-1:-1;971:2:1;956:18;;943:32;984:33;943:32;984:33;:::i;:::-;1036:7;1026:17;;;661:388;;;;;:::o;1054:456::-;1131:6;1139;1147;1200:2;1188:9;1179:7;1175:23;1171:32;1168:52;;;1216:1;1213;1206:12;1168:52;1255:9;1242:23;1274:31;1299:5;1274:31;:::i;:::-;1324:5;-1:-1:-1;1381:2:1;1366:18;;1353:32;1394:33;1353:32;1394:33;:::i;:::-;1054:456;;1446:7;;-1:-1:-1;;;1500:2:1;1485:18;;;;1472:32;;1054:456::o;1515:315::-;1583:6;1591;1644:2;1632:9;1623:7;1619:23;1615:32;1612:52;;;1660:1;1657;1650:12;1612:52;1699:9;1686:23;1718:31;1743:5;1718:31;:::i;:::-;1768:5;1820:2;1805:18;;;;1792:32;;-1:-1:-1;;;1515:315:1:o;1835:1132::-;1919:6;1950:2;1993;1981:9;1972:7;1968:23;1964:32;1961:52;;;2009:1;2006;1999:12;1961:52;2049:9;2036:23;2078:18;2119:2;2111:6;2108:14;2105:34;;;2135:1;2132;2125:12;2105:34;2173:6;2162:9;2158:22;2148:32;;2218:7;2211:4;2207:2;2203:13;2199:27;2189:55;;2240:1;2237;2230:12;2189:55;2276:2;2263:16;2298:2;2294;2291:10;2288:36;;;2304:18;;:::i;:::-;2350:2;2347:1;2343:10;2382:2;2376:9;2445:2;2441:7;2436:2;2432;2428:11;2424:25;2416:6;2412:38;2500:6;2488:10;2485:22;2480:2;2468:10;2465:18;2462:46;2459:72;;;2511:18;;:::i;:::-;2547:2;2540:22;2597:18;;;2631:15;;;;-1:-1:-1;2666:11:1;;;2696;;;2692:20;;2689:33;-1:-1:-1;2686:53:1;;;2735:1;2732;2725:12;2686:53;2757:1;2748:10;;2767:169;2781:2;2778:1;2775:9;2767:169;;;2838:23;2857:3;2838:23;:::i;:::-;2826:36;;2799:1;2792:9;;;;;2882:12;;;;2914;;2767:169;;;-1:-1:-1;2955:6:1;1835:1132;-1:-1:-1;;;;;;;;1835:1132:1:o;2972:241::-;3028:6;3081:2;3069:9;3060:7;3056:23;3052:32;3049:52;;;3097:1;3094;3087:12;3049:52;3136:9;3123:23;3155:28;3177:5;3155:28;:::i;3218:245::-;3285:6;3338:2;3326:9;3317:7;3313:23;3309:32;3306:52;;;3354:1;3351;3344:12;3306:52;3386:9;3380:16;3405:28;3427:5;3405:28;:::i;3468:180::-;3527:6;3580:2;3568:9;3559:7;3555:23;3551:32;3548:52;;;3596:1;3593;3586:12;3548:52;-1:-1:-1;3619:23:1;;3468:180;-1:-1:-1;3468:180:1:o;3653:306::-;3741:6;3749;3757;3810:2;3798:9;3789:7;3785:23;3781:32;3778:52;;;3826:1;3823;3816:12;3778:52;3855:9;3849:16;3839:26;;3905:2;3894:9;3890:18;3884:25;3874:35;;3949:2;3938:9;3934:18;3928:25;3918:35;;3653:306;;;;;:::o;5564:597::-;5676:4;5705:2;5734;5723:9;5716:21;5766:6;5760:13;5809:6;5804:2;5793:9;5789:18;5782:34;5834:1;5844:140;5858:6;5855:1;5852:13;5844:140;;;5953:14;;;5949:23;;5943:30;5919:17;;;5938:2;5915:26;5908:66;5873:10;;5844:140;;;6002:6;5999:1;5996:13;5993:91;;;6072:1;6067:2;6058:6;6047:9;6043:22;6039:31;6032:42;5993:91;-1:-1:-1;6145:2:1;6124:15;-1:-1:-1;;6120:29:1;6105:45;;;;6152:2;6101:54;;5564:597;-1:-1:-1;;;5564:597:1:o;8142:356::-;8344:2;8326:21;;;8363:18;;;8356:30;8422:34;8417:2;8402:18;;8395:62;8489:2;8474:18;;8142:356::o;10258:980::-;10520:4;10568:3;10557:9;10553:19;10599:6;10588:9;10581:25;10625:2;10663:6;10658:2;10647:9;10643:18;10636:34;10706:3;10701:2;10690:9;10686:18;10679:31;10730:6;10765;10759:13;10796:6;10788;10781:22;10834:3;10823:9;10819:19;10812:26;;10873:2;10865:6;10861:15;10847:29;;10894:1;10904:195;10918:6;10915:1;10912:13;10904:195;;;10983:13;;-1:-1:-1;;;;;10979:39:1;10967:52;;11074:15;;;;11039:12;;;;11015:1;10933:9;10904:195;;;-1:-1:-1;;;;;;;11155:32:1;;;;11150:2;11135:18;;11128:60;-1:-1:-1;;;11219:3:1;11204:19;11197:35;11116:3;10258:980;-1:-1:-1;;;10258:980:1:o;11432:128::-;11472:3;11503:1;11499:6;11496:1;11493:13;11490:39;;;11509:18;;:::i;:::-;-1:-1:-1;11545:9:1;;11432:128::o;11565:217::-;11605:1;11631;11621:132;;11675:10;11670:3;11666:20;11663:1;11656:31;11710:4;11707:1;11700:15;11738:4;11735:1;11728:15;11621:132;-1:-1:-1;11767:9:1;;11565:217::o;11787:168::-;11827:7;11893:1;11889;11885:6;11881:14;11878:1;11875:21;11870:1;11863:9;11856:17;11852:45;11849:71;;;11900:18;;:::i;:::-;-1:-1:-1;11940:9:1;;11787:168::o;11960:125::-;12000:4;12028:1;12025;12022:8;12019:34;;;12033:18;;:::i;:::-;-1:-1:-1;12070:9:1;;11960:125::o;12090:135::-;12129:3;-1:-1:-1;;12150:17:1;;12147:43;;;12170:18;;:::i;:::-;-1:-1:-1;12217:1:1;12206:13;;12090:135::o;12230:127::-;12291:10;12286:3;12282:20;12279:1;12272:31;12322:4;12319:1;12312:15;12346:4;12343:1;12336:15;12362:127;12423:10;12418:3;12414:20;12411:1;12404:31;12454:4;12451:1;12444:15;12478:4;12475:1;12468:15;12494:127;12555:10;12550:3;12546:20;12543:1;12536:31;12586:4;12583:1;12576:15;12610:4;12607:1;12600:15;12626:131;-1:-1:-1;;;;;12701:31:1;;12691:42;;12681:70;;12747:1;12744;12737:12;12762:118;12848:5;12841:13;12834:21;12827:5;12824:32;12814:60;;12870:1;12867;12860:12

Swarm Source

ipfs://8c8d0d15e169707dbaf889b5c96463890ab0b1f225ef28ce4326f912d07ad8fd

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.