ETH Price: $3,641.84 (+1.74%)

Contract

0xecbBe10D3b5aDb681DEb586D012b588E046bcb9B
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve212572152024-11-24 11:09:475 days ago1732446587IN
0xecbBe10D...E046bcb9B
0 ETH0.000232239.58335367
Approve210959942024-11-01 23:10:4728 days ago1730502647IN
0xecbBe10D...E046bcb9B
0 ETH0.000357177.67830082
Transfer210771802024-10-30 8:10:5930 days ago1730275859IN
0xecbBe10D...E046bcb9B
0 ETH0.000569699.96460728
Transfer210770262024-10-30 7:39:4730 days ago1730273987IN
0xecbBe10D...E046bcb9B
0 ETH0.000739389.95503789
Approve210649292024-10-28 15:08:5932 days ago1730128139IN
0xecbBe10D...E046bcb9B
0 ETH0.0007293815.65981415
Transfer210648972024-10-28 15:02:2332 days ago1730127743IN
0xecbBe10D...E046bcb9B
0 ETH0.0011996417.26508117
Transfer209940232024-10-18 17:44:4742 days ago1729273487IN
0xecbBe10D...E046bcb9B
0 ETH0.0011627416.73396046
Transfer209841622024-10-17 8:42:3543 days ago1729154555IN
0xecbBe10D...E046bcb9B
0 ETH0.0018245626.258813
Approve209659192024-10-14 19:33:2346 days ago1728934403IN
0xecbBe10D...E046bcb9B
0 ETH0.0005587823.05892204
Approve208739182024-10-01 23:26:3559 days ago1727825195IN
0xecbBe10D...E046bcb9B
0 ETH0.000351667.56000036
Approve208421292024-09-27 13:02:1163 days ago1727442131IN
0xecbBe10D...E046bcb9B
0 ETH0.0005621812.06992027
Approve207672562024-09-17 2:08:4774 days ago1726538927IN
0xecbBe10D...E046bcb9B
0 ETH0.00015053.23540466
Approve207602082024-09-16 2:29:1175 days ago1726453751IN
0xecbBe10D...E046bcb9B
0 ETH0.000075731.62821841
Approve207599572024-09-16 1:38:4775 days ago1726450727IN
0xecbBe10D...E046bcb9B
0 ETH0.000084131.80643226
Approve207514432024-09-14 21:10:3576 days ago1726348235IN
0xecbBe10D...E046bcb9B
0 ETH0.000171023.67662653
Approve207486932024-09-14 11:57:3576 days ago1726315055IN
0xecbBe10D...E046bcb9B
0 ETH0.000081011.74171974
Approve207431692024-09-13 17:25:3577 days ago1726248335IN
0xecbBe10D...E046bcb9B
0 ETH0.000245395.2754385
Approve207419992024-09-13 13:29:3577 days ago1726234175IN
0xecbBe10D...E046bcb9B
0 ETH0.000127772.74693818
Transfer207419862024-09-13 13:26:5977 days ago1726234019IN
0xecbBe10D...E046bcb9B
0 ETH0.000200352.88342524
Approve207417492024-09-13 12:39:1177 days ago1726231151IN
0xecbBe10D...E046bcb9B
0 ETH0.00020394.37773769
Approve207415762024-09-13 12:04:2377 days ago1726229063IN
0xecbBe10D...E046bcb9B
0 ETH0.000144773.11240079
Approve207357222024-09-12 16:28:1178 days ago1726158491IN
0xecbBe10D...E046bcb9B
0 ETH0.000421599.0631551
Approve207334692024-09-12 8:54:1178 days ago1726131251IN
0xecbBe10D...E046bcb9B
0 ETH0.000130682.8093734
Approve207277262024-09-11 13:40:1179 days ago1726062011IN
0xecbBe10D...E046bcb9B
0 ETH0.000178443.83607604
Transfer207265752024-09-11 9:47:5979 days ago1726048079IN
0xecbBe10D...E046bcb9B
0 ETH0.000241413.47435876
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
207420182024-09-13 13:33:3577 days ago1726234415
0xecbBe10D...E046bcb9B
0.01944668 ETH
207420182024-09-13 13:33:3577 days ago1726234415
0xecbBe10D...E046bcb9B
0.01944668 ETH
207059212024-09-08 12:34:4782 days ago1725798887
0xecbBe10D...E046bcb9B
0.01704289 ETH
207059212024-09-08 12:34:4782 days ago1725798887
0xecbBe10D...E046bcb9B
0.01704289 ETH
207001202024-09-07 17:08:3583 days ago1725728915
0xecbBe10D...E046bcb9B
0.10224121 ETH
207001202024-09-07 17:08:3583 days ago1725728915
0xecbBe10D...E046bcb9B
0.10224121 ETH
206994952024-09-07 15:03:1183 days ago1725721391
0xecbBe10D...E046bcb9B
0.10762148 ETH
206994952024-09-07 15:03:1183 days ago1725721391
0xecbBe10D...E046bcb9B
0.10762148 ETH
206994822024-09-07 15:00:3583 days ago1725721235
0xecbBe10D...E046bcb9B
0.04444593 ETH
206994822024-09-07 15:00:3583 days ago1725721235
0xecbBe10D...E046bcb9B
0.04444593 ETH
206994772024-09-07 14:59:3583 days ago1725721175
0xecbBe10D...E046bcb9B
0.04574262 ETH
206994772024-09-07 14:59:3583 days ago1725721175
0xecbBe10D...E046bcb9B
0.04574262 ETH
206993442024-09-07 14:32:5983 days ago1725719579
0xecbBe10D...E046bcb9B
0.03748907 ETH
206993442024-09-07 14:32:5983 days ago1725719579
0xecbBe10D...E046bcb9B
0.03748907 ETH
206990442024-09-07 13:32:5983 days ago1725715979
0xecbBe10D...E046bcb9B
1.20781548 ETH
206990442024-09-07 13:32:5983 days ago1725715979
0xecbBe10D...E046bcb9B
0.20781548 ETH
206903392024-09-06 8:24:3584 days ago1725611075
0xecbBe10D...E046bcb9B
0.92763841 ETH
206903392024-09-06 8:24:3584 days ago1725611075
0xecbBe10D...E046bcb9B
0.92763841 ETH
206893482024-09-06 5:04:5984 days ago1725599099
0xecbBe10D...E046bcb9B
0.01063815 ETH
206893482024-09-06 5:04:5984 days ago1725599099
0xecbBe10D...E046bcb9B
0.01063815 ETH
206855962024-09-05 16:31:4785 days ago1725553907
0xecbBe10D...E046bcb9B
1.236939 ETH
206855962024-09-05 16:31:4785 days ago1725553907
0xecbBe10D...E046bcb9B
1.236939 ETH
206849622024-09-05 14:23:5985 days ago1725546239
0xecbBe10D...E046bcb9B
0.03939323 ETH
206849622024-09-05 14:23:5985 days ago1725546239
0xecbBe10D...E046bcb9B
0.03939323 ETH
206846512024-09-05 13:21:3585 days ago1725542495
0xecbBe10D...E046bcb9B
0.24791792 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FiberNetwork

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-09-02
*/

// SPDX-License-Identifier: MIT

/*
Introducing Fiber Network, an innovative DeFi project designed to change the way we think about
cloud computing and decentralized finance. Our goal is to combine the latest technology with easy-to-use
computing options to improve your online experience, focusing on speed, security, and privacy.

Socials:

Tg: https://t.me/FiberNetwork_Erc
Web: https://fibernetworkerc.net/
Twitter: https://x.com/FiberNetworkErc
Docs: https://fibernetwork.gitbook.io/fiber-network/


*/

pragma solidity 0.8.23;

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

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

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

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

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

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

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

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

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract FiberNetwork is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address payable private _taxWallet;

    uint256 private _initialBuyTax = 30;
    uint256 private _initialSellTax = 35;
    uint256 private _finalBuyTax = 4;
    uint256 private _finalSellTax = 4;
    uint256 private _reduceBuyTaxAt = 40;
    uint256 private _reduceSellTaxAt = 40;
    uint256 private _preventSwapBefore = 20;
    uint256 private _transferTax = 4;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 10_000_000 * 10**_decimals;
    string private constant _name = unicode"Fiber Network";
    string private constant _symbol = unicode"Fiber";
    uint256 public _maxTxAmount= (_tTotal * 3) / 100;
    uint256 public _maxWalletSize= (_tTotal * 3) / 100;
    uint256 public _taxSwapThreshold= (_tTotal * 1) / 100;
    uint256 public _maxTaxSwap= (_tTotal * 2) / 100;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    uint256 private firstBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    event ClearToken(address TokenAddressCleared, uint256 Amount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

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

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        if (from != owner() && to != owner()) {

            if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
                require(tradingOpen, "Trading not opened");
            }

            if(_buyCount == 0){
                taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);
            }

            if(_buyCount > 0){
                taxAmount = amount.mul(_transferTax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);
                _buyCount++;
                if(block.number == firstBlock){
                    require(_buyCount <= 21, "Exceeds buys on the first block.");
                }
            }

            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) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");

                swapTokensForEth(min(amount,min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }

                sellCount++;
                lastSellBlock =block.number;
            }
        }

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

        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeLimit() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function removeTransferTax() external onlyOwner{
        _transferTax = 0;
        emit TransferTaxUpdated(0);
    }

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

    function addLP() external  onlyOwner() {
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp);
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

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

        _finalBuyTax = _newFee;
        _finalSellTax = _newFee;
    }

    function clearStuckToken(address tokenAddress, uint256 tokens) external returns (bool success) {
        require(_msgSender() == _taxWallet);

        if(tokens == 0){
            tokens = IERC20(tokenAddress).balanceOf(address(this));
        }

        emit ClearToken(tokenAddress,tokens);
        return IERC20(tokenAddress).transfer(_taxWallet, tokens);
    }

    function manualSend() external {
        require(_msgSender() == _taxWallet);

        uint256 ethBalance= address(this).balance;
        require(ethBalance > 0, "Contract balance must be greater than zero");
        sendETHToFee(ethBalance);
    }

    function manualSwap() external {
        require(_msgSender() == _taxWallet);

        uint256 tokenBalance = balanceOf(address(this));
        if(tokenBalance > 0){
          swapTokensForEth(tokenBalance);
        }

        uint256 ethBalance = address(this).balance;
        if(ethBalance > 0){ sendETHToFee(ethBalance); }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","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":[],"name":"addLP","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":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferTax","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"},{"stateMutability":"payable","type":"receive"}]

6080604052601e60055560236006556004600755600460085560286009556028600a556014600b556004600c555f600d5560646009600a620000429190620006ba565b620000519062989680620006d1565b6200005e906003620006d1565b6200006a9190620006eb565b600e5560646200007d6009600a620006ba565b6200008c9062989680620006d1565b62000099906003620006d1565b620000a59190620006eb565b600f556064620000b86009600a620006ba565b620000c79062989680620006d1565b620000d4906001620006d1565b620000e09190620006eb565b6010556064620000f36009600a620006ba565b620001029062989680620006d1565b6200010f906002620006d1565b6200011b9190620006eb565b6011556013805461ffff60a81b191690555f6014819055601581905560165534801562000146575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b03191633179055620001a76009600a620006ba565b620001b69062989680620006d1565b335f908152600160208190526040822092909255600390620001df5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055308082526003909452828120805486166001908117909155600454909216815291909120805490931617909155601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556200028b9190620002766009600a620006ba565b620002859062989680620006d1565b62000480565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002dc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200030291906200070b565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000362573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200038891906200070b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620003d3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003f991906200070b565b601380546001600160a01b0319166001600160a01b0392909216919091179055620004213390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200045a6009600a620006ba565b620004699062989680620006d1565b60405190815260200160405180910390a362000733565b6001600160a01b038316620004e85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166200054b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620004df565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620005ff57815f1904821115620005e357620005e3620005ab565b80851615620005f157918102915b93841c9390800290620005c4565b509250929050565b5f826200061757506001620006b4565b816200062557505f620006b4565b81600181146200063e5760028114620006495762000669565b6001915050620006b4565b60ff8411156200065d576200065d620005ab565b50506001821b620006b4565b5060208310610133831016604e8410600b84101617156200068e575081810a620006b4565b6200069a8383620005bf565b805f1904821115620006b057620006b0620005ab565b0290505b92915050565b5f620006ca60ff84168362000607565b9392505050565b8082028115828204841417620006b457620006b4620005ab565b5f826200070657634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156200071c575f80fd5b81516001600160a01b0381168114620006ca575f80fd5b611a5180620007415f395ff3fe60806040526004361061013f575f3560e01c806377b54bad116100b3578063bc37e1a31161006d578063bc37e1a314610372578063bf474bed14610386578063c9567bf91461039b578063dd62ed3e146103af578063ec1f3f63146103f3578063f429389014610412575f80fd5b806377b54bad146102b75780637d1db4a5146102d65780638da5cb5b146102eb5780638f9a55c01461031157806395d89b4114610326578063a9059cbb14610353575f80fd5b806323b872dd1161010457806323b872dd1461020d578063313ce5671461022c57806351bc3c8514610247578063622565891461025b57806370a082311461026f578063715018a6146102a3575f80fd5b806306fdde031461014a578063095ea7b3146101915780630faee56f146101c0578063109daa99146101e357806318160ddd146101f9575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5060408051808201909152600d81526c4669626572204e6574776f726b60981b60208201525b6040516101889190611616565b60405180910390f35b34801561019c575f80fd5b506101b06101ab366004611676565b610426565b6040519015158152602001610188565b3480156101cb575f80fd5b506101d560115481565b604051908152602001610188565b3480156101ee575f80fd5b506101f761043c565b005b348015610204575f80fd5b506101d56104aa565b348015610218575f80fd5b506101b06102273660046116a0565b6104c9565b348015610237575f80fd5b5060405160098152602001610188565b348015610252575f80fd5b506101f7610530565b348015610266575f80fd5b506101f7610581565b34801561027a575f80fd5b506101d56102893660046116de565b6001600160a01b03165f9081526001602052604090205490565b3480156102ae575f80fd5b506101f761062a565b3480156102c2575f80fd5b506101b06102d1366004611676565b61069b565b3480156102e1575f80fd5b506101d5600e5481565b3480156102f6575f80fd5b505f546040516001600160a01b039091168152602001610188565b34801561031c575f80fd5b506101d5600f5481565b348015610331575f80fd5b506040805180820190915260058152642334b132b960d91b602082015261017b565b34801561035e575f80fd5b506101b061036d366004611676565b6107eb565b34801561037d575f80fd5b506101f76107f7565b348015610391575f80fd5b506101d560105481565b3480156103a6575f80fd5b506101f76108f4565b3480156103ba575f80fd5b506101d56103c93660046116f9565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103fe575f80fd5b506101f761040d366004611730565b610a0b565b34801561041d575f80fd5b506101f7610a50565b5f610432338484610adc565b5060015b92915050565b5f546001600160a01b0316331461046e5760405162461bcd60e51b815260040161046590611747565b60405180910390fd5b5f600c8190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020015b60405180910390a1565b5f6104b76009600a611870565b6104c4906298968061187e565b905090565b5f6104d5848484610bff565b6105268433610521856040518060600160405280602881526020016119f4602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611299565b610adc565b5060019392505050565b6004546001600160a01b0316336001600160a01b03161461054f575f80fd5b305f90815260016020526040902054801561056d5761056d816112d1565b47801561057d5761057d81611441565b5050565b5f546001600160a01b031633146105aa5760405162461bcd60e51b815260040161046590611747565b6105b66009600a611870565b6105c3906298968061187e565b600e556105d26009600a611870565b6105df906298968061187e565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61060f6009600a611870565b61061c906298968061187e565b6040519081526020016104a0565b5f546001600160a01b031633146106535760405162461bcd60e51b815260040161046590611747565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6004545f906001600160a01b0316336001600160a01b0316146106bc575f80fd5b815f0361072c576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610705573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107299190611895565b91505b604080516001600160a01b0385168152602081018490527fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f910160405180910390a16004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820184905284169063a9059cbb906044016020604051808303815f875af11580156107c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e491906118ac565b9392505050565b5f610432338484610bff565b5f546001600160a01b031633146108205760405162461bcd60e51b815260040161046590611747565b6012546001600160a01b031663f305d7194730610851816001600160a01b03165f9081526001602052604090205490565b5f806108645f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108ca573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108ef91906118cb565b505050565b5f546001600160a01b0316331461091d5760405162461bcd60e51b815260040161046590611747565b601354600160a01b900460ff16156109775760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610465565b60135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015291169063095ea7b3906044016020604051808303815f875af11580156109c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ed91906118ac565b506013805462ff00ff60a01b19166201000160a01b17905543601655565b6004546001600160a01b0316336001600160a01b031614610a2a575f80fd5b6007548111158015610a3e57506008548111155b610a46575f80fd5b6007819055600855565b6004546001600160a01b0316336001600160a01b031614610a6f575f80fd5b4780610ad05760405162461bcd60e51b815260206004820152602a60248201527f436f6e74726163742062616c616e6365206d7573742062652067726561746572604482015269207468616e207a65726f60b01b6064820152608401610465565b610ad981611441565b50565b6001600160a01b038316610b3e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610465565b6001600160a01b038216610b9f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610465565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c635760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610465565b6001600160a01b038216610cc55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610465565b5f8111610d265760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610465565b5f80546001600160a01b03858116911614801590610d5157505f546001600160a01b03848116911614155b1561115c576001600160a01b0384165f9081526003602052604090205460ff16158015610d9657506001600160a01b0383165f9081526003602052604090205460ff16155b15610de957601354600160a01b900460ff16610de95760405162461bcd60e51b8152602060048201526012602482015271151c98591a5b99c81b9bdd081bdc195b995960721b6044820152606401610465565b600d545f03610e2157610e1e6064610e18600954600d5411610e0d57600554610e11565b6007545b8590611478565b906114f6565b90505b600d5415610e4657610e436064610e18600c548561147890919063ffffffff16565b90505b6013546001600160a01b038581169116148015610e7157506012546001600160a01b03848116911614155b8015610e9557506001600160a01b0383165f9081526003602052604090205460ff16155b15610ff357600e54821115610eec5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610465565b600f5482610f0e856001600160a01b03165f9081526001602052604090205490565b610f1891906118f6565b1115610f665760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610465565b610f816064610e18600954600d5411610e0d57600554610e11565b600d80549192505f610f9283611909565b91905055506016544303610ff3576015600d541115610ff35760405162461bcd60e51b815260206004820181905260248201527f457863656564732062757973206f6e2074686520666972737420626c6f636b2e6044820152606401610465565b6013546001600160a01b03848116911614801561101957506001600160a01b0384163014155b15611046576110436064610e18600a54600d541161103957600654610e11565b6008548590611478565b90505b305f90815260016020526040902054601354600160a81b900460ff1615801561107c57506013546001600160a01b038581169116145b80156110915750601354600160b01b900460ff165b801561109e575060105481115b80156110ad5750600b54600d54115b1561115a576015544311156110c1575f6014555b6003601454106111135760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000006044820152606401610465565b61113061112b8461112684601154611537565b611537565b6112d1565b4780156111405761114047611441565b60148054905f61114f83611909565b909155505043601555505b505b80156111d457305f9081526001602052604090205461117b908261154b565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111cb9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546111f690836115a9565b6001600160a01b0385165f9081526001602052604090205561123961121b83836115a9565b6001600160a01b0385165f908152600160205260409020549061154b565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61128285856115a9565b60405190815260200160405180910390a350505050565b5f81848411156112bc5760405162461bcd60e51b81526004016104659190611616565b505f6112c88486611921565b95945050505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061131757611317611934565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561136e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113929190611948565b816001815181106113a5576113a5611934565b6001600160a01b0392831660209182029290920101526012546113cb9130911684610adc565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906114039085905f90869030904290600401611963565b5f604051808303815f87803b15801561141a575f80fd5b505af115801561142c573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561057d573d5f803e3d5ffd5b5f825f0361148757505f610436565b5f611492838561187e565b90508261149f85836119d4565b146107e45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610465565b5f6107e483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115ea565b5f81831161154557826107e4565b50919050565b5f8061155783856118f6565b9050838110156107e45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610465565b5f6107e483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611299565b5f818361160a5760405162461bcd60e51b81526004016104659190611616565b505f6112c884866119d4565b5f602080835283518060208501525f5b8181101561164257858101830151858201604001528201611626565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ad9575f80fd5b5f8060408385031215611687575f80fd5b823561169281611662565b946020939093013593505050565b5f805f606084860312156116b2575f80fd5b83356116bd81611662565b925060208401356116cd81611662565b929592945050506040919091013590565b5f602082840312156116ee575f80fd5b81356107e481611662565b5f806040838503121561170a575f80fd5b823561171581611662565b9150602083013561172581611662565b809150509250929050565b5f60208284031215611740575f80fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117ca57815f19048211156117b0576117b061177c565b808516156117bd57918102915b93841c9390800290611795565b509250929050565b5f826117e057506001610436565b816117ec57505f610436565b8160018114611802576002811461180c57611828565b6001915050610436565b60ff84111561181d5761181d61177c565b50506001821b610436565b5060208310610133831016604e8410600b841016171561184b575081810a610436565b6118558383611790565b805f19048211156118685761186861177c565b029392505050565b5f6107e460ff8416836117d2565b80820281158282048414176104365761043661177c565b5f602082840312156118a5575f80fd5b5051919050565b5f602082840312156118bc575f80fd5b815180151581146107e4575f80fd5b5f805f606084860312156118dd575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156104365761043661177c565b5f6001820161191a5761191a61177c565b5060010190565b818103818111156104365761043661177c565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611958575f80fd5b81516107e481611662565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119b35784516001600160a01b03168352938301939183019160010161198e565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119ee57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203b9a22768fa7f6cb5df46778309129cb34ada063af806bcbb31690f1cbf72bd364736f6c63430008170033

Deployed Bytecode

0x60806040526004361061013f575f3560e01c806377b54bad116100b3578063bc37e1a31161006d578063bc37e1a314610372578063bf474bed14610386578063c9567bf91461039b578063dd62ed3e146103af578063ec1f3f63146103f3578063f429389014610412575f80fd5b806377b54bad146102b75780637d1db4a5146102d65780638da5cb5b146102eb5780638f9a55c01461031157806395d89b4114610326578063a9059cbb14610353575f80fd5b806323b872dd1161010457806323b872dd1461020d578063313ce5671461022c57806351bc3c8514610247578063622565891461025b57806370a082311461026f578063715018a6146102a3575f80fd5b806306fdde031461014a578063095ea7b3146101915780630faee56f146101c0578063109daa99146101e357806318160ddd146101f9575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5060408051808201909152600d81526c4669626572204e6574776f726b60981b60208201525b6040516101889190611616565b60405180910390f35b34801561019c575f80fd5b506101b06101ab366004611676565b610426565b6040519015158152602001610188565b3480156101cb575f80fd5b506101d560115481565b604051908152602001610188565b3480156101ee575f80fd5b506101f761043c565b005b348015610204575f80fd5b506101d56104aa565b348015610218575f80fd5b506101b06102273660046116a0565b6104c9565b348015610237575f80fd5b5060405160098152602001610188565b348015610252575f80fd5b506101f7610530565b348015610266575f80fd5b506101f7610581565b34801561027a575f80fd5b506101d56102893660046116de565b6001600160a01b03165f9081526001602052604090205490565b3480156102ae575f80fd5b506101f761062a565b3480156102c2575f80fd5b506101b06102d1366004611676565b61069b565b3480156102e1575f80fd5b506101d5600e5481565b3480156102f6575f80fd5b505f546040516001600160a01b039091168152602001610188565b34801561031c575f80fd5b506101d5600f5481565b348015610331575f80fd5b506040805180820190915260058152642334b132b960d91b602082015261017b565b34801561035e575f80fd5b506101b061036d366004611676565b6107eb565b34801561037d575f80fd5b506101f76107f7565b348015610391575f80fd5b506101d560105481565b3480156103a6575f80fd5b506101f76108f4565b3480156103ba575f80fd5b506101d56103c93660046116f9565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103fe575f80fd5b506101f761040d366004611730565b610a0b565b34801561041d575f80fd5b506101f7610a50565b5f610432338484610adc565b5060015b92915050565b5f546001600160a01b0316331461046e5760405162461bcd60e51b815260040161046590611747565b60405180910390fd5b5f600c8190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020015b60405180910390a1565b5f6104b76009600a611870565b6104c4906298968061187e565b905090565b5f6104d5848484610bff565b6105268433610521856040518060600160405280602881526020016119f4602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611299565b610adc565b5060019392505050565b6004546001600160a01b0316336001600160a01b03161461054f575f80fd5b305f90815260016020526040902054801561056d5761056d816112d1565b47801561057d5761057d81611441565b5050565b5f546001600160a01b031633146105aa5760405162461bcd60e51b815260040161046590611747565b6105b66009600a611870565b6105c3906298968061187e565b600e556105d26009600a611870565b6105df906298968061187e565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61060f6009600a611870565b61061c906298968061187e565b6040519081526020016104a0565b5f546001600160a01b031633146106535760405162461bcd60e51b815260040161046590611747565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6004545f906001600160a01b0316336001600160a01b0316146106bc575f80fd5b815f0361072c576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610705573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107299190611895565b91505b604080516001600160a01b0385168152602081018490527fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f910160405180910390a16004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820184905284169063a9059cbb906044016020604051808303815f875af11580156107c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e491906118ac565b9392505050565b5f610432338484610bff565b5f546001600160a01b031633146108205760405162461bcd60e51b815260040161046590611747565b6012546001600160a01b031663f305d7194730610851816001600160a01b03165f9081526001602052604090205490565b5f806108645f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108ca573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108ef91906118cb565b505050565b5f546001600160a01b0316331461091d5760405162461bcd60e51b815260040161046590611747565b601354600160a01b900460ff16156109775760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610465565b60135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015291169063095ea7b3906044016020604051808303815f875af11580156109c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ed91906118ac565b506013805462ff00ff60a01b19166201000160a01b17905543601655565b6004546001600160a01b0316336001600160a01b031614610a2a575f80fd5b6007548111158015610a3e57506008548111155b610a46575f80fd5b6007819055600855565b6004546001600160a01b0316336001600160a01b031614610a6f575f80fd5b4780610ad05760405162461bcd60e51b815260206004820152602a60248201527f436f6e74726163742062616c616e6365206d7573742062652067726561746572604482015269207468616e207a65726f60b01b6064820152608401610465565b610ad981611441565b50565b6001600160a01b038316610b3e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610465565b6001600160a01b038216610b9f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610465565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c635760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610465565b6001600160a01b038216610cc55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610465565b5f8111610d265760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610465565b5f80546001600160a01b03858116911614801590610d5157505f546001600160a01b03848116911614155b1561115c576001600160a01b0384165f9081526003602052604090205460ff16158015610d9657506001600160a01b0383165f9081526003602052604090205460ff16155b15610de957601354600160a01b900460ff16610de95760405162461bcd60e51b8152602060048201526012602482015271151c98591a5b99c81b9bdd081bdc195b995960721b6044820152606401610465565b600d545f03610e2157610e1e6064610e18600954600d5411610e0d57600554610e11565b6007545b8590611478565b906114f6565b90505b600d5415610e4657610e436064610e18600c548561147890919063ffffffff16565b90505b6013546001600160a01b038581169116148015610e7157506012546001600160a01b03848116911614155b8015610e9557506001600160a01b0383165f9081526003602052604090205460ff16155b15610ff357600e54821115610eec5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610465565b600f5482610f0e856001600160a01b03165f9081526001602052604090205490565b610f1891906118f6565b1115610f665760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610465565b610f816064610e18600954600d5411610e0d57600554610e11565b600d80549192505f610f9283611909565b91905055506016544303610ff3576015600d541115610ff35760405162461bcd60e51b815260206004820181905260248201527f457863656564732062757973206f6e2074686520666972737420626c6f636b2e6044820152606401610465565b6013546001600160a01b03848116911614801561101957506001600160a01b0384163014155b15611046576110436064610e18600a54600d541161103957600654610e11565b6008548590611478565b90505b305f90815260016020526040902054601354600160a81b900460ff1615801561107c57506013546001600160a01b038581169116145b80156110915750601354600160b01b900460ff165b801561109e575060105481115b80156110ad5750600b54600d54115b1561115a576015544311156110c1575f6014555b6003601454106111135760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000006044820152606401610465565b61113061112b8461112684601154611537565b611537565b6112d1565b4780156111405761114047611441565b60148054905f61114f83611909565b909155505043601555505b505b80156111d457305f9081526001602052604090205461117b908261154b565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111cb9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546111f690836115a9565b6001600160a01b0385165f9081526001602052604090205561123961121b83836115a9565b6001600160a01b0385165f908152600160205260409020549061154b565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61128285856115a9565b60405190815260200160405180910390a350505050565b5f81848411156112bc5760405162461bcd60e51b81526004016104659190611616565b505f6112c88486611921565b95945050505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061131757611317611934565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561136e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113929190611948565b816001815181106113a5576113a5611934565b6001600160a01b0392831660209182029290920101526012546113cb9130911684610adc565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906114039085905f90869030904290600401611963565b5f604051808303815f87803b15801561141a575f80fd5b505af115801561142c573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561057d573d5f803e3d5ffd5b5f825f0361148757505f610436565b5f611492838561187e565b90508261149f85836119d4565b146107e45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610465565b5f6107e483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115ea565b5f81831161154557826107e4565b50919050565b5f8061155783856118f6565b9050838110156107e45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610465565b5f6107e483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611299565b5f818361160a5760405162461bcd60e51b81526004016104659190611616565b505f6112c884866119d4565b5f602080835283518060208501525f5b8181101561164257858101830151858201604001528201611626565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ad9575f80fd5b5f8060408385031215611687575f80fd5b823561169281611662565b946020939093013593505050565b5f805f606084860312156116b2575f80fd5b83356116bd81611662565b925060208401356116cd81611662565b929592945050506040919091013590565b5f602082840312156116ee575f80fd5b81356107e481611662565b5f806040838503121561170a575f80fd5b823561171581611662565b9150602083013561172581611662565b809150509250929050565b5f60208284031215611740575f80fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117ca57815f19048211156117b0576117b061177c565b808516156117bd57918102915b93841c9390800290611795565b509250929050565b5f826117e057506001610436565b816117ec57505f610436565b8160018114611802576002811461180c57611828565b6001915050610436565b60ff84111561181d5761181d61177c565b50506001821b610436565b5060208310610133831016604e8410600b841016171561184b575081810a610436565b6118558383611790565b805f19048211156118685761186861177c565b029392505050565b5f6107e460ff8416836117d2565b80820281158282048414176104365761043661177c565b5f602082840312156118a5575f80fd5b5051919050565b5f602082840312156118bc575f80fd5b815180151581146107e4575f80fd5b5f805f606084860312156118dd575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156104365761043661177c565b5f6001820161191a5761191a61177c565b5060010190565b818103818111156104365761043661177c565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611958575f80fd5b81516107e481611662565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119b35784516001600160a01b03168352938301939183019160010161198e565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119ee57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203b9a22768fa7f6cb5df46778309129cb34ada063af806bcbb31690f1cbf72bd364736f6c63430008170033

Deployed Bytecode Sourcemap

3964:9505:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6286:83;;;;;;;;;;-1:-1:-1;6356:5:0;;;;;;;;;;;;-1:-1:-1;;;6356:5:0;;;;6286:83;;;;;;;:::i;:::-;;;;;;;;7119:161;;;;;;;;;;-1:-1:-1;7119:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7119:161:0;1023:187:1;5058:47:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5058:47:0;1215:177:1;11473:119:0;;;;;;;;;;;;;:::i;:::-;;6563:95;;;;;;;;;;;;;:::i;7288:313::-;;;;;;;;;;-1:-1:-1;7288:313:0;;;;;:::i;:::-;;:::i;6472:83::-;;;;;;;;;;-1:-1:-1;6472:83:0;;4694:1;2000:36:1;;1988:2;1973:18;6472:83:0;1858:184:1;13124:342:0;;;;;;;;;;;;;:::i;11305:160::-;;;;;;;;;;;;;:::i;6666:119::-;;;;;;;;;;-1:-1:-1;6666:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6759:18:0;6732:7;6759:18;;;:9;:18;;;;;;;6666:119;3045:148;;;;;;;;;;;;;:::i;12481:373::-;;;;;;;;;;-1:-1:-1;12481:373:0;;;;;:::i;:::-;;:::i;4886:48::-;;;;;;;;;;;;;;;;2831:79;;;;;;;;;;-1:-1:-1;2869:7:0;2896:6;2831:79;;-1:-1:-1;;;;;2896:6:0;;;2445:51:1;;2433:2;2418:18;2831:79:0;2299:203:1;4941:50:0;;;;;;;;;;;;;;;;6377:87;;;;;;;;;;-1:-1:-1;6449:7:0;;;;;;;;;;;;-1:-1:-1;;;6449:7:0;;;;6377:87;;6793:167;;;;;;;;;;-1:-1:-1;6793:167:0;;;;;:::i;:::-;;:::i;11700:192::-;;;;;;;;;;;;;:::i;4998:53::-;;;;;;;;;;;;;;;;11900:286;;;;;;;;;;;;;:::i;6968:143::-;;;;;;;;;;-1:-1:-1;6968:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7076:18:0;;;7049:7;7076:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6968:143;12235:238;;;;;;;;;;-1:-1:-1;12235:238:0;;;;;:::i;:::-;;:::i;12862:254::-;;;;;;;;;;;;;:::i;7119:161::-;7194:4;7211:39;666:10;7234:7;7243:6;7211:8;:39::i;:::-;-1:-1:-1;7268:4:0;7119:161;;;;;:::o;11473:119::-;2958:6;;-1:-1:-1;;;;;2958:6:0;666:10;2958:22;2950:67;;;;-1:-1:-1;;;2950:67:0;;;;;;;:::i;:::-;;;;;;;;;11546:1:::1;11531:12;:16:::0;;;11563:21:::1;::::0;1361:25:1;;;11563:21:0::1;::::0;1349:2:1;1334:18;11563:21:0::1;;;;;;;;11473:119::o:0;6563:95::-;6616:7;4750:13;4694:1;4750:2;:13;:::i;:::-;4737:26;;:10;:26;:::i;:::-;6636:14;;6563:95;:::o;7288:313::-;7386:4;7403:36;7413:6;7421:9;7432:6;7403:9;:36::i;:::-;7450:121;7459:6;666:10;7481:89;7519:6;7481:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7481:19:0;;;;;;:11;:19;;;;;;;;666:10;7481:33;;;;;;;;;;:37;:89::i;:::-;7450:8;:121::i;:::-;-1:-1:-1;7589:4:0;7288:313;;;;;:::o;13124:342::-;13190:10;;-1:-1:-1;;;;;13190:10:0;666;-1:-1:-1;;;;;13174:26:0;;13166:35;;;;;;13255:4;13214:20;6759:18;;;:9;:18;;;;;;13275:16;;13272:75;;13305:30;13322:12;13305:16;:30::i;:::-;13380:21;13415:14;;13412:47;;13432:24;13445:10;13432:12;:24::i;:::-;13155:311;;13124:342::o;11305:160::-;2958:6;;-1:-1:-1;;;;;2958:6:0;666:10;2958:22;2950:67;;;;-1:-1:-1;;;2950:67:0;;;;;;;:::i;:::-;4750:13:::1;4694:1;4750:2;:13;:::i;:::-;4737:26;::::0;:10:::1;:26;:::i;:::-;11357:12;:22:::0;4750:13:::1;4694:1;4750:2;:13;:::i;:::-;4737:26;::::0;:10:::1;:26;:::i;:::-;11390:14;:24:::0;11430:27:::1;4750:13;4694:1;4750:2;:13;:::i;:::-;4737:26;::::0;:10:::1;:26;:::i;:::-;11430:27;::::0;1361:25:1;;;1349:2;1334:18;11430:27:0::1;1215:177:1::0;3045:148:0;2958:6;;-1:-1:-1;;;;;2958:6:0;666:10;2958:22;2950:67;;;;-1:-1:-1;;;2950:67:0;;;;;;;:::i;:::-;3152:1:::1;3136:6:::0;;3115:40:::1;::::0;-1:-1:-1;;;;;3136:6:0;;::::1;::::0;3115:40:::1;::::0;3152:1;;3115:40:::1;3183:1;3166:19:::0;;-1:-1:-1;;;;;;3166:19:0::1;::::0;;3045:148::o;12481:373::-;12611:10;;12562:12;;-1:-1:-1;;;;;12611:10:0;666;-1:-1:-1;;;;;12595:26:0;;12587:35;;;;;;12638:6;12648:1;12638:11;12635:96;;12674:45;;-1:-1:-1;;;12674:45:0;;12713:4;12674:45;;;2445:51:1;-1:-1:-1;;;;;12674:30:0;;;;;2418:18:1;;12674:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12665:54;;12635:96;12748:31;;;-1:-1:-1;;;;;5699:32:1;;5681:51;;5763:2;5748:18;;5741:34;;;12748:31:0;;5654:18:1;12748:31:0;;;;;;;12827:10;;;12797:49;;-1:-1:-1;;;12797:49:0;;-1:-1:-1;;;;;12827:10:0;;;12797:49;;;5681:51:1;;;;5748:18;;;5741:34;;;12797:29:0;;;;;5654:18:1;;12797:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12790:56;12481:373;-1:-1:-1;;;12481:373:0:o;6793:167::-;6871:4;6888:42;666:10;6912:9;6923:6;6888:9;:42::i;11700:192::-;2958:6;;-1:-1:-1;;;;;2958:6:0;666:10;2958:22;2950:67;;;;-1:-1:-1;;;2950:67:0;;;;;;;:::i;:::-;11750:15:::1;::::0;-1:-1:-1;;;;;11750:15:0::1;:31;11789:21;11820:4;11827:24;11820:4:::0;-1:-1:-1;;;;;6759:18:0;6732:7;6759:18;;;:9;:18;;;;;;;6666:119;11827:24:::1;11853:1;11856::::0;11859:7:::1;2869::::0;2896:6;-1:-1:-1;;;;;2896:6:0;;2831:79;11859:7:::1;11750:134;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11750:134:0;;;-1:-1:-1;;;;;6714:15:1;;;11750:134:0::1;::::0;::::1;6696:34:1::0;6746:18;;;6739:34;;;;6789:18;;;6782:34;;;;6832:18;;;6825:34;6896:15;;;6875:19;;;6868:44;11868:15:0::1;6928:19:1::0;;;6921:35;6630:19;;11750:134:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11700:192::o:0;11900:286::-;2958:6;;-1:-1:-1;;;;;2958:6:0;666:10;2958:22;2950:67;;;;-1:-1:-1;;;2950:67:0;;;;;;;:::i;:::-;11964:11:::1;::::0;-1:-1:-1;;;11964:11:0;::::1;;;11963:12;11955:47;;;::::0;-1:-1:-1;;;11955:47:0;;7480:2:1;11955:47:0::1;::::0;::::1;7462:21:1::0;7519:2;7499:18;;;7492:30;7558:25;7538:18;;;7531:53;7601:18;;11955:47:0::1;7278:347:1::0;11955:47:0::1;12020:13;::::0;12051:15:::1;::::0;12013:71:::1;::::0;-1:-1:-1;;;12013:71:0;;-1:-1:-1;;;;;12051:15:0;;::::1;12013:71;::::0;::::1;5681:51:1::0;-1:-1:-1;;5748:18:1;;;5741:34;12020:13:0;::::1;::::0;12013:29:::1;::::0;5654:18:1;;12013:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12095:11:0::1;:18:::0;;-1:-1:-1;;;;12124:18:0;-1:-1:-1;;;12124:18:0;;;12166:12:::1;12095:11;12153:25:::0;11900:286::o;12235:238::-;12314:10;;-1:-1:-1;;;;;12314:10:0;666;-1:-1:-1;;;;;12298:26:0;;12290:35;;;;;;12355:12;;12344:7;:23;;:51;;;;;12382:13;;12371:7;:24;;12344:51;12336:60;;;;;;12409:12;:22;;;12442:13;:23;12235:238::o;12862:254::-;12928:10;;-1:-1:-1;;;;;12928:10:0;666;-1:-1:-1;;;;;12912:26:0;;12904:35;;;;;;12972:21;13012:14;13004:69;;;;-1:-1:-1;;;13004:69:0;;7832:2:1;13004:69:0;;;7814:21:1;7871:2;7851:18;;;7844:30;7910:34;7890:18;;;7883:62;-1:-1:-1;;;7961:18:1;;;7954:40;8011:19;;13004:69:0;7630:406:1;13004:69:0;13084:24;13097:10;13084:12;:24::i;:::-;12893:223;12862:254::o;7609:335::-;-1:-1:-1;;;;;7702:19:0;;7694:68;;;;-1:-1:-1;;;7694:68:0;;8243:2:1;7694:68:0;;;8225:21:1;8282:2;8262:18;;;8255:30;8321:34;8301:18;;;8294:62;-1:-1:-1;;;8372:18:1;;;8365:34;8416:19;;7694:68:0;8041:400:1;7694:68:0;-1:-1:-1;;;;;7781:21:0;;7773:68;;;;-1:-1:-1;;;7773:68:0;;8648:2:1;7773:68:0;;;8630:21:1;8687:2;8667:18;;;8660:30;8726:34;8706:18;;;8699:62;-1:-1:-1;;;8777:18:1;;;8770:32;8819:19;;7773:68:0;8446:398:1;7773:68:0;-1:-1:-1;;;;;7852:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7904:32;;1361:25:1;;;7904:32:0;;1334:18:1;7904:32:0;;;;;;;7609:335;;;:::o;7952:2740::-;-1:-1:-1;;;;;8040:18:0;;8032:68;;;;-1:-1:-1;;;8032:68:0;;9051:2:1;8032:68:0;;;9033:21:1;9090:2;9070:18;;;9063:30;9129:34;9109:18;;;9102:62;-1:-1:-1;;;9180:18:1;;;9173:35;9225:19;;8032:68:0;8849:401:1;8032:68:0;-1:-1:-1;;;;;8119:16:0;;8111:64;;;;-1:-1:-1;;;8111:64:0;;9457:2:1;8111:64:0;;;9439:21:1;9496:2;9476:18;;;9469:30;9535:34;9515:18;;;9508:62;-1:-1:-1;;;9586:18:1;;;9579:33;9629:19;;8111:64:0;9255:399:1;8111:64:0;8203:1;8194:6;:10;8186:64;;;;-1:-1:-1;;;8186:64:0;;9861:2:1;8186:64:0;;;9843:21:1;9900:2;9880:18;;;9873:30;9939:34;9919:18;;;9912:62;-1:-1:-1;;;9990:18:1;;;9983:39;10039:19;;8186:64:0;9659:405:1;8186:64:0;8261:17;2896:6;;-1:-1:-1;;;;;8297:15:0;;;2896:6;;8297:15;;;;:32;;-1:-1:-1;2869:7:0;2896:6;-1:-1:-1;;;;;8316:13:0;;;2896:6;;8316:13;;8297:32;8293:2032;;;-1:-1:-1;;;;;8352:24:0;;;;;;:18;:24;;;;;;;;8351:25;:52;;;;-1:-1:-1;;;;;;8381:22:0;;;;;;:18;:22;;;;;;;;8380:23;8351:52;8348:133;;;8431:11;;-1:-1:-1;;;8431:11:0;;;;8423:42;;;;-1:-1:-1;;;8423:42:0;;10271:2:1;8423:42:0;;;10253:21:1;10310:2;10290:18;;;10283:30;-1:-1:-1;;;10329:18:1;;;10322:48;10387:18;;8423:42:0;10069:342:1;8423:42:0;8500:9;;8513:1;8500:14;8497:147;;8546:82;8624:3;8546:73;8570:15;;8558:9;;:27;8557:61;;8604:14;;8557:61;;;8589:12;;8557:61;8546:6;;:10;:73::i;:::-;:77;;:82::i;:::-;8534:94;;8497:147;8663:9;;:13;8660:97;;8708:33;8737:3;8708:24;8719:12;;8708:6;:10;;:24;;;;:::i;:33::-;8696:45;;8660:97;8785:13;;-1:-1:-1;;;;;8777:21:0;;;8785:13;;8777:21;:55;;;;-1:-1:-1;8816:15:0;;-1:-1:-1;;;;;8802:30:0;;;8816:15;;8802:30;;8777:55;:83;;;;-1:-1:-1;;;;;;8838:22:0;;;;;;:18;:22;;;;;;;;8836:24;8777:83;8773:577;;;8900:12;;8890:6;:22;;8882:60;;;;-1:-1:-1;;;8882:60:0;;10618:2:1;8882:60:0;;;10600:21:1;10657:2;10637:18;;;10630:30;10696:27;10676:18;;;10669:55;10741:18;;8882:60:0;10416:349:1;8882:60:0;8995:14;;8985:6;8969:13;8979:2;-1:-1:-1;;;;;6759:18:0;6732:7;6759:18;;;:9;:18;;;;;;;6666:119;8969:13;:22;;;;:::i;:::-;:40;;8961:79;;;;-1:-1:-1;;;8961:79:0;;11102:2:1;8961:79:0;;;11084:21:1;11141:2;11121:18;;;11114:30;11180:28;11160:18;;;11153:56;11226:18;;8961:79:0;10900:350:1;8961:79:0;9071:82;9149:3;9071:73;9095:15;;9083:9;;:27;9082:61;;9129:14;;9082:61;;9071:82;9172:9;:11;;9059:94;;-1:-1:-1;9172:9:0;:11;;;:::i;:::-;;;;;;9221:10;;9205:12;:26;9202:133;;9276:2;9263:9;;:15;;9255:60;;;;-1:-1:-1;;;9255:60:0;;11597:2:1;9255:60:0;;;11579:21:1;;;11616:18;;;11609:30;11675:34;11655:18;;;11648:62;11727:18;;9255:60:0;11395:356:1;9255:60:0;9375:13;;-1:-1:-1;;;;;9369:19:0;;;9375:13;;9369:19;:44;;;;-1:-1:-1;;;;;;9392:21:0;;9408:4;9392:21;;9369:44;9366:181;;;9446:85;9527:3;9446:76;9470:16;;9458:9;;:28;9457:64;;9506:15;;9457:64;;;9490:13;;9446:6;;:10;:76::i;:85::-;9434:97;;9366:181;9612:4;9563:28;6759:18;;;:9;:18;;;;;;9638:6;;-1:-1:-1;;;9638:6:0;;;;9637:7;:30;;;;-1:-1:-1;9654:13:0;;-1:-1:-1;;;;;9648:19:0;;;9654:13;;9648:19;9637:30;:45;;;;-1:-1:-1;9671:11:0;;-1:-1:-1;;;9671:11:0;;;;9637:45;:89;;;;;9709:17;;9686:20;:40;9637:89;:123;;;;;9742:18;;9730:9;;:30;9637:123;9633:681;;;9800:13;;9785:12;:28;9781:90;;;9850:1;9838:9;:13;9781:90;9909:1;9897:9;;:13;9889:49;;;;-1:-1:-1;;;9889:49:0;;11958:2:1;9889:49:0;;;11940:21:1;11997:2;11977:18;;;11970:30;12036:25;12016:18;;;12009:53;12079:18;;9889:49:0;11756:347:1;9889:49:0;9959:68;9976:50;9980:6;9987:38;9991:20;10013:11;;9987:3;:38::i;:::-;9976:3;:50::i;:::-;9959:16;:68::i;:::-;10075:21;10119:22;;10115:106;;10166:35;10179:21;10166:12;:35::i;:::-;10241:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;10286:12:0;10271:13;:27;-1:-1:-1;9633:681:0;8331:1994;8293:2032;10340:13;;10337:166;;10412:4;10394:24;;;;:9;:24;;;;;;:39;;10423:9;10394:28;:39::i;:::-;10385:4;10367:24;;;;:9;:24;;;;;;;:66;;;;10451:40;;-1:-1:-1;;;;;10451:40:0;;;;;;;10481:9;1361:25:1;;1349:2;1334:18;;1215:177;10451:40:0;;;;;;;;10337:166;-1:-1:-1;;;;;10533:15:0;;;;;;:9;:15;;;;;;:27;;10553:6;10533:19;:27::i;:::-;-1:-1:-1;;;;;10515:15:0;;;;;;:9;:15;;;;;:45;10587:40;10605:21;:6;10616:9;10605:10;:21::i;:::-;-1:-1:-1;;;;;10587:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10571:13:0;;;;;;;:9;:13;;;;;:56;;;;10643:41;;;10662:21;:6;10673:9;10662:10;:21::i;:::-;10643:41;;1361:25:1;;;1349:2;1334:18;10643:41:0;;;;;;;8021:2671;7952:2740;;;:::o;1723:190::-;1809:7;1845:12;1837:6;;;;1829:29;;;;-1:-1:-1;;;1829:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1869:9:0;1881:5;1885:1;1881;:5;:::i;:::-;1869:17;1723:190;-1:-1:-1;;;;;1723:190:0:o;10814:483::-;5612:6;:13;;-1:-1:-1;;;;5612:13:0;-1:-1:-1;;;5612:13:0;;;10916:16:::1;::::0;;10930:1:::1;10916:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10916:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10916:16:0::1;10892:40;;10961:4;10943;10948:1;10943:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10943:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10987:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10987:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10943:7;;10987:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10977:4;10982:1;10977:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10977:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11052:15:::1;::::0;11020:62:::1;::::0;11037:4:::1;::::0;11052:15:::1;11070:11:::0;11020:8:::1;:62::i;:::-;11093:15;::::0;:196:::1;::::0;-1:-1:-1;;;11093:196:0;;-1:-1:-1;;;;;11093:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11174:11;;11093:15:::1;::::0;11216:4;;11243::::1;::::0;11263:15:::1;::::0;11093:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5648:6:0;:14;;-1:-1:-1;;;;5648:14:0;;;-1:-1:-1;;;;10814:483:0:o;11600:92::-;11657:10;;:27;;-1:-1:-1;;;;;11657:10:0;;;;:27;;;;;11677:6;;11657:10;:27;:10;:27;11677:6;11657:10;:27;;;;;;;;;;;;;;;;;;;1921:246;1979:7;2003:1;2008;2003:6;1999:47;;-1:-1:-1;2033:1:0;2026:8;;1999:47;2056:9;2068:5;2072:1;2068;:5;:::i;:::-;2056:17;-1:-1:-1;2101:1:0;2092:5;2096:1;2056:17;2092:5;:::i;:::-;:10;2084:56;;;;-1:-1:-1;;;2084:56:0;;14170:2:1;2084:56:0;;;14152:21:1;14209:2;14189:18;;;14182:30;14248:34;14228:18;;;14221:62;-1:-1:-1;;;14299:18:1;;;14292:31;14340:19;;2084:56:0;13968:397:1;2175:132:0;2233:7;2260:39;2264:1;2267;2260:39;;;;;;;;;;;;;;;;;:3;:39::i;10702:104::-;10759:7;10788:1;10784;:5;10783:15;;10797:1;10783:15;;;-1:-1:-1;10793:1:0;10702:104;-1:-1:-1;10702:104:0:o;1392:179::-;1450:7;;1482:5;1486:1;1482;:5;:::i;:::-;1470:17;;1511:1;1506;:6;;1498:46;;;;-1:-1:-1;;;1498:46:0;;14572:2:1;1498:46:0;;;14554:21:1;14611:2;14591:18;;;14584:30;14650:29;14630:18;;;14623:57;14697:18;;1498:46:0;14370:351:1;1579:136:0;1637:7;1664:43;1668:1;1671;1664:43;;;;;;;;;;;;;;;;;:3;:43::i;2315:189::-;2401:7;2436:12;2429:5;2421:28;;;;-1:-1:-1;;;2421:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2460:9:0;2472:5;2476:1;2472;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:180::-;2959:6;3012:2;3000:9;2991:7;2987:23;2983:32;2980:52;;;3028:1;3025;3018:12;2980:52;-1:-1:-1;3051:23:1;;2900:180;-1:-1:-1;2900:180:1:o;3085:356::-;3287:2;3269:21;;;3306:18;;;3299:30;3365:34;3360:2;3345:18;;3338:62;3432:2;3417:18;;3085:356::o;3636:127::-;3697:10;3692:3;3688:20;3685:1;3678:31;3728:4;3725:1;3718:15;3752:4;3749:1;3742:15;3768:416;3857:1;3894:5;3857:1;3908:270;3929:7;3919:8;3916:21;3908:270;;;3988:4;3984:1;3980:6;3976:17;3970:4;3967:27;3964:53;;;3997:18;;:::i;:::-;4047:7;4037:8;4033:22;4030:55;;;4067:16;;;;4030:55;4146:22;;;;4106:15;;;;3908:270;;;3912:3;3768:416;;;;;:::o;4189:806::-;4238:5;4268:8;4258:80;;-1:-1:-1;4309:1:1;4323:5;;4258:80;4357:4;4347:76;;-1:-1:-1;4394:1:1;4408:5;;4347:76;4439:4;4457:1;4452:59;;;;4525:1;4520:130;;;;4432:218;;4452:59;4482:1;4473:10;;4496:5;;;4520:130;4557:3;4547:8;4544:17;4541:43;;;4564:18;;:::i;:::-;-1:-1:-1;;4620:1:1;4606:16;;4635:5;;4432:218;;4734:2;4724:8;4721:16;4715:3;4709:4;4706:13;4702:36;4696:2;4686:8;4683:16;4678:2;4672:4;4669:12;4665:35;4662:77;4659:159;;;-1:-1:-1;4771:19:1;;;4803:5;;4659:159;4850:34;4875:8;4869:4;4850:34;:::i;:::-;4920:6;4916:1;4912:6;4908:19;4899:7;4896:32;4893:58;;;4931:18;;:::i;:::-;4969:20;;4189:806;-1:-1:-1;;;4189:806:1:o;5000:140::-;5058:5;5087:47;5128:4;5118:8;5114:19;5108:4;5087:47;:::i;5145:168::-;5218:9;;;5249;;5266:15;;;5260:22;;5246:37;5236:71;;5287:18;;:::i;5318:184::-;5388:6;5441:2;5429:9;5420:7;5416:23;5412:32;5409:52;;;5457:1;5454;5447:12;5409:52;-1:-1:-1;5480:16:1;;5318:184;-1:-1:-1;5318:184:1:o;6073:277::-;6140:6;6193:2;6181:9;6172:7;6168:23;6164:32;6161:52;;;6209:1;6206;6199:12;6161:52;6241:9;6235:16;6294:5;6287:13;6280:21;6273:5;6270:32;6260:60;;6316:1;6313;6306:12;6967:306;7055:6;7063;7071;7124:2;7112:9;7103:7;7099:23;7095:32;7092:52;;;7140:1;7137;7130:12;7092:52;7169:9;7163:16;7153:26;;7219:2;7208:9;7204:18;7198:25;7188:35;;7263:2;7252:9;7248:18;7242:25;7232:35;;6967:306;;;;;:::o;10770:125::-;10835:9;;;10856:10;;;10853:36;;;10869:18;;:::i;11255:135::-;11294:3;11315:17;;;11312:43;;11335:18;;:::i;:::-;-1:-1:-1;11382:1:1;11371:13;;11255:135::o;12108:128::-;12175:9;;;12196:11;;;12193:37;;;12210:18;;:::i;12373:127::-;12434:10;12429:3;12425:20;12422:1;12415:31;12465:4;12462:1;12455:15;12489:4;12486:1;12479:15;12505:251;12575:6;12628:2;12616:9;12607:7;12603:23;12599:32;12596:52;;;12644:1;12641;12634:12;12596:52;12676:9;12670:16;12695:31;12720:5;12695:31;:::i;12761:980::-;13023:4;13071:3;13060:9;13056:19;13102:6;13091:9;13084:25;13128:2;13166:6;13161:2;13150:9;13146:18;13139:34;13209:3;13204:2;13193:9;13189:18;13182:31;13233:6;13268;13262:13;13299:6;13291;13284:22;13337:3;13326:9;13322:19;13315:26;;13376:2;13368:6;13364:15;13350:29;;13397:1;13407:195;13421:6;13418:1;13415:13;13407:195;;;13486:13;;-1:-1:-1;;;;;13482:39:1;13470:52;;13577:15;;;;13542:12;;;;13518:1;13436:9;13407:195;;;-1:-1:-1;;;;;;;13658:32:1;;;;13653:2;13638:18;;13631:60;-1:-1:-1;;;13722:3:1;13707:19;13700:35;13619:3;12761:980;-1:-1:-1;;;12761:980:1:o;13746:217::-;13786:1;13812;13802:132;;13856:10;13851:3;13847:20;13844:1;13837:31;13891:4;13888:1;13881:15;13919:4;13916:1;13909:15;13802:132;-1:-1:-1;13948:9:1;;13746:217::o

Swarm Source

ipfs://3b9a22768fa7f6cb5df46778309129cb34ada063af806bcbb31690f1cbf72bd3

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.