ETH Price: $3,075.32 (-5.40%)
 

More Info

Private Name Tags

TokenTracker

Tao Ceτi (CETI) (@$0.3354)

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Approve217583062025-02-02 10:43:3553 mins ago1738493015IN
Tao Ceti: CETI Token
0 ETH0.000076221.62226798
Transfer217581142025-02-02 10:05:111 hr ago1738490711IN
Tao Ceti: CETI Token
0 ETH0.000164983.61930922
Transfer217580832025-02-02 9:58:471 hr ago1738490327IN
Tao Ceti: CETI Token
0 ETH0.000191952.84388256
Approve217578972025-02-02 9:21:112 hrs ago1738488071IN
Tao Ceti: CETI Token
0 ETH0.000230074.89676784
Transfer217576742025-02-02 8:35:593 hrs ago1738485359IN
Tao Ceti: CETI Token
0 ETH0.000211893.13992325
Approve217567722025-02-02 5:33:476 hrs ago1738474427IN
Tao Ceti: CETI Token
0 ETH0.000067592.28468376
Approve217564212025-02-02 4:22:597 hrs ago1738470179IN
Tao Ceti: CETI Token
0 ETH0.000099383.35904325
Approve217561922025-02-02 3:36:477 hrs ago1738467407IN
Tao Ceti: CETI Token
0 ETH0.000144544.88571582
Approve217560032025-02-02 2:58:598 hrs ago1738465139IN
Tao Ceti: CETI Token
0 ETH0.000073672.49020248
Approve217552712025-02-02 0:32:2311 hrs ago1738456343IN
Tao Ceti: CETI Token
0 ETH0.000082152.7434779
Approve217552362025-02-02 0:25:2311 hrs ago1738455923IN
Tao Ceti: CETI Token
0 ETH0.000116392.47403296
Approve217552122025-02-02 0:20:3511 hrs ago1738455635IN
Tao Ceti: CETI Token
0 ETH0.000098353.31623821
Approve217551712025-02-02 0:12:1111 hrs ago1738455131IN
Tao Ceti: CETI Token
0 ETH0.000174383.73048441
Approve217551292025-02-02 0:03:4711 hrs ago1738454627IN
Tao Ceti: CETI Token
0 ETH0.000093193.14999515
Transfer217550892025-02-01 23:55:4711 hrs ago1738454147IN
Tao Ceti: CETI Token
0 ETH0.000267584.26704242
Transfer217550172025-02-01 23:41:2311 hrs ago1738453283IN
Tao Ceti: CETI Token
0 ETH0.000223954.91030053
Approve217550092025-02-01 23:39:4711 hrs ago1738453187IN
Tao Ceti: CETI Token
0 ETH0.000286346.09425809
Transfer217549882025-02-01 23:35:3512 hrs ago1738452935IN
Tao Ceti: CETI Token
0 ETH0.000314836.24863107
Approve217548482025-02-01 23:07:3512 hrs ago1738451255IN
Tao Ceti: CETI Token
0 ETH0.000191066.4578792
Approve217548232025-02-01 23:02:3512 hrs ago1738450955IN
Tao Ceti: CETI Token
0 ETH0.00023785.09379086
Approve217546032025-02-01 22:17:5913 hrs ago1738448279IN
Tao Ceti: CETI Token
0 ETH0.00010432.23350977
Approve217520542025-02-01 13:45:3521 hrs ago1738417535IN
Tao Ceti: CETI Token
0 ETH0.000201584.29033293
Approve217508362025-02-01 9:40:5925 hrs ago1738402859IN
Tao Ceti: CETI Token
0 ETH0.000186833.97637378
Approve217501292025-02-01 7:18:5928 hrs ago1738394339IN
Tao Ceti: CETI Token
0 ETH0.000093831.99710573
Transfer217501192025-02-01 7:16:5928 hrs ago1738394219IN
Tao Ceti: CETI Token
0 ETH0.000097191.92945274
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CETI

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : CETI.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity 0.8.24;
/*********************************************************************************************************************|
|                                                                                                                     |
|              τττττττττττττττττττ       ττττττττττττττττττττττττττττττττττττττττττττττττττττττττττττ     τττττ       |
|           ττττττττττττττττττττ      τττττττττττττττττττττττττττττττττττττττττττττττττττττττττττττττ     τττττ       |
|         τττττττ                   τττττττ                                τττττ                          τττττ       |
|         τττττ                    ττττττ                                  τττττ                          τττ         |
|        ττττττ                    ττττττ                                  τττττ                                      |
|        ττττττ                    τττττττττττττττττττττττττττ             τττττ                              τ       |
|        ττττττ                    τττττττττττττττττττττττττττ             τττττ                            τττ       |
|        ττττττ                    ττττττ                                  τττττ                          τττττ       |
|        ττττττ                    ττττττ                                  τττττ                          τττττ       |
|         ττττττ                    ττττττ                                 ττττττ         τττττττττ       τττττ       |
|          ττττττττττττττττττττ      τττττττττττττττττττττττττττττττττ      ττττττττττττττττττττ          τττττ       |
|            ττττττττττττττττττττ      τττττττττττττττττττττττττττττττ        τττττττττττττττ             τττττ       |       
|                 ττττττττττττττττ          ττττττττττττττττττττττττττ             τττττ                  τττττ       |
|                                                                                                                     |
**********************************************************************************************************************|
|                                                                                                                     |
|                     PER MARE                         PER TERRAS                        PER CONSTELLATUM             |
|                                                                                                                     |
**********************************************************************************************************************|
|                                                                                                                     |
|        @notice Modern and gas efficient ERC20 + EIP-2612 implementation with ownership and a tax.                   |
|        @author Ceτɩ https://taoceti.ai                                                                              |
|        @author Modified from Solmate                                                                                |
|                                                                                                                     |
**********************************************************************************************************************/
contract CETI {
    event Transfer(address indexed from, address indexed to, uint256 amount);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 amount
    );
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    error NOT_OWNER();
    error PERMIT_DEADLINE_EXPIRED();
    error INVALID_SIGNER();
    error MAX_BUY_AMOUNT_EXCEEDED();
    error MAX_WALLET_AMOUNT_EXCEEDED();
    error FEE_WILLY_HIGH();
    error DO_LITTLE();
    error GAMES_OVER();

    string public name = "Tao Ce\u03C4i";
    string public symbol = "CETI";
    uint8 public immutable decimals = 18;

    uint256 public totalSupply;
    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;

    uint256 internal immutable INITIAL_CHAIN_ID;
    bytes32 internal immutable INITIAL_DOMAIN_SEPARATOR;
    mapping(address => uint256) public nonces;

    uint256 public sellFee = 5;
    uint256 public buyAndTransferFee = 5;
    uint256 public maxBuyAmount = totalSupply / 300;
    address public feeReceiver;

    mapping(address => bool) internal _isExcludedFromFee;
    
    address public owner;

    bool public whackAMole = true;

    modifier onlyOwner() {
        if(msg.sender != owner)
            revert NOT_OWNER();
        _;
    }

    constructor() {
        INITIAL_CHAIN_ID = block.chainid;
        INITIAL_DOMAIN_SEPARATOR = computeDomainSeparator();
        owner = msg.sender;
        feeReceiver = owner;
        _isExcludedFromFee[owner] = true;
        _mint(owner, 21_000_000 ether);
    }

    function approve(
        address spender,
        uint256 amount
    ) public virtual returns (bool) {
        allowance[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transfer(
        address to,
        uint256 amount
    ) public virtual returns (bool) {
        balanceOf[msg.sender] -= amount;
        unchecked {
            if(!_isExcludedFromFee[to] && !_isExcludedFromFee[msg.sender]){
                    uint fee = (amount * buyAndTransferFee) / 100;
                    if(whackAMole) {
                        if(amount > maxBuyAmount)
                            revert MAX_BUY_AMOUNT_EXCEEDED();
                        if(balanceOf[to] + amount > maxBuyAmount * 3)
                            revert MAX_WALLET_AMOUNT_EXCEEDED();
                    }
                    amount -= fee;
                    balanceOf[to] += amount;
                    balanceOf[feeReceiver] += fee;
                    emit Transfer(msg.sender, feeReceiver, fee);
            }
            else
                balanceOf[to] += amount;
        }
        if (to == address(0)) {
            unchecked {
                totalSupply -= amount;
            }
        }
        emit Transfer(msg.sender, to, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual returns (bool) {
        uint256 allowed = allowance[from][msg.sender];
        if (allowed != type(uint256).max)
            allowance[from][msg.sender] = allowed - amount;

        balanceOf[from] -= amount;
        unchecked {
            uint fee;
            if(!_isExcludedFromFee[to] && !_isExcludedFromFee[from]){
                fee = (amount * sellFee) / 100;            
                amount -= fee;
                balanceOf[to] += amount;
                balanceOf[feeReceiver] += fee;
                emit Transfer(from, feeReceiver, fee);
            }
            else
                balanceOf[to] += amount;
        }
        if (to == address(0)) {
            unchecked {
                totalSupply -= amount;
            }
        }
        emit Transfer(from, to, amount);
        return true;
    }

    function permit(
        address owner_,
        address spender_,
        uint256 value_,
        uint256 deadline_,
        uint8 v_,
        bytes32 r_,
        bytes32 s_
    ) public virtual {
        if(deadline_ < block.timestamp)
            revert PERMIT_DEADLINE_EXPIRED();
        unchecked {
            address recoveredAddress = ecrecover(
                keccak256(
                    abi.encodePacked(
                        "\x19\x01",
                        DOMAIN_SEPARATOR(),
                        keccak256(
                            abi.encode(
                                keccak256(
                                   "Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"
                                ),
                                owner_,
                                spender_,
                                value_,
                                nonces[owner]++,
                                deadline_
                            )
                        )
                    )
                ),
                v_,
                r_,
                s_
            );
            if(recoveredAddress == address(0) || recoveredAddress != owner_)
                revert INVALID_SIGNER();
            allowance[recoveredAddress][spender_] = value_;
        }
        emit Approval(owner_, spender_, value_);
    }

    function setFeeReceiver(address feeReceiver_) public onlyOwner {
        _isExcludedFromFee[feeReceiver_] = true;
        feeReceiver = feeReceiver_;
    }

    function renounceOwnership() public onlyOwner {
        owner = address(0);
        _isExcludedFromFee[msg.sender] = false;
        emit OwnershipTransferred(owner, address(0));
    }

    function transferOwnership(address newOwner_) public onlyOwner {
        address oldOwner = owner;
        _isExcludedFromFee[oldOwner] = false;
        owner = newOwner_;
        _isExcludedFromFee[owner] = true;
        emit OwnershipTransferred(oldOwner, newOwner_);
    }

    function setFees(uint256 _buyAndTransferFee, uint256 _sellFee) public onlyOwner {
        if( buyAndTransferFee > 35 || sellFee > 35)
            revert FEE_WILLY_HIGH();
        buyAndTransferFee = _buyAndTransferFee;
        sellFee = _sellFee;
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFee[account] = excluded;
    }

    function setMaxBuyAmount(uint256 _maxBuyAmount) public onlyOwner {
        if(_maxBuyAmount < totalSupply / 300)
            revert DO_LITTLE();
        maxBuyAmount = _maxBuyAmount;
        maxBuyAmount = totalSupply;
    }

    function turnOffMaxBuyAmount() public onlyOwner {
        if(!whackAMole)
            revert GAMES_OVER();
        whackAMole = false;
    }

    function DOMAIN_SEPARATOR() public view virtual returns (bytes32) {
        return
            block.chainid == INITIAL_CHAIN_ID
                ? INITIAL_DOMAIN_SEPARATOR
                : computeDomainSeparator();
    }

    function computeDomainSeparator() internal view virtual returns (bytes32) {
        return
            keccak256(
                abi.encode(
                    keccak256(
                        "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"
                    ),
                    keccak256(bytes(name)),
                    keccak256("1"),
                    block.chainid,
                    address(this)
                )
            );
    }

    function _mint(address to, uint256 amount) internal virtual {
        totalSupply += amount;
        unchecked {
            balanceOf[to] += amount;
        }
        emit Transfer(address(0), to, amount);
    }

    function _burn(address from, uint256 amount) internal virtual {
        balanceOf[from] -= amount;
        unchecked {
            totalSupply -= amount;
        }
        emit Transfer(from, address(0), amount);
    }
}
//                                    0xCE71cd1CeA29f9849844462bE12b9bC3E62F5AF1                                     \\

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"DO_LITTLE","type":"error"},{"inputs":[],"name":"FEE_WILLY_HIGH","type":"error"},{"inputs":[],"name":"GAMES_OVER","type":"error"},{"inputs":[],"name":"INVALID_SIGNER","type":"error"},{"inputs":[],"name":"MAX_BUY_AMOUNT_EXCEEDED","type":"error"},{"inputs":[],"name":"MAX_WALLET_AMOUNT_EXCEEDED","type":"error"},{"inputs":[],"name":"NOT_OWNER","type":"error"},{"inputs":[],"name":"PERMIT_DEADLINE_EXPIRED","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","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":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyAndTransferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"spender_","type":"address"},{"internalType":"uint256","name":"value_","type":"uint256"},{"internalType":"uint256","name":"deadline_","type":"uint256"},{"internalType":"uint8","name":"v_","type":"uint8"},{"internalType":"bytes32","name":"r_","type":"bytes32"},{"internalType":"bytes32","name":"s_","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"feeReceiver_","type":"address"}],"name":"setFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyAndTransferFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxBuyAmount","type":"uint256"}],"name":"setMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner_","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"turnOffMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"whackAMole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]

60e06040526040518060400160405280600981526020017f54616f204365cf846900000000000000000000000000000000000000000000008152505f908162000049919062000621565b506040518060400160405280600481526020017f43455449000000000000000000000000000000000000000000000000000000008152506001908162000090919062000621565b50601260ff1660809060ff168152506005600655600560075561012c600254620000bb91906200075f565b6008556001600b60146101000a81548160ff021916908315150217905550348015620000e5575f80fd5b504660a08181525050620000fe6200026060201b60201c565b60c0818152505033600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a5f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200025a600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a115eec47f6cf7e35000000620002ee60201b60201c565b62000974565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516200029291906200083e565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001620002d3959493929190620008c4565b60405160208183030381529060405280519060200120905090565b8060025f8282546200030191906200091f565b925050819055508060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003b1919062000959565b60405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200043957607f821691505b6020821081036200044f576200044e620003f4565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620004b37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000476565b620004bf868362000476565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6200050962000503620004fd84620004d7565b620004e0565b620004d7565b9050919050565b5f819050919050565b6200052483620004e9565b6200053c620005338262000510565b84845462000482565b825550505050565b5f90565b6200055262000544565b6200055f81848462000519565b505050565b5b8181101562000586576200057a5f8262000548565b60018101905062000565565b5050565b601f821115620005d5576200059f8162000455565b620005aa8462000467565b81016020851015620005ba578190505b620005d2620005c98562000467565b83018262000564565b50505b505050565b5f82821c905092915050565b5f620005f75f1984600802620005da565b1980831691505092915050565b5f620006118383620005e6565b9150826002028217905092915050565b6200062c82620003bd565b67ffffffffffffffff811115620006485762000647620003c7565b5b62000654825462000421565b620006618282856200058a565b5f60209050601f83116001811462000697575f841562000682578287015190505b6200068e858262000604565b865550620006fd565b601f198416620006a78662000455565b5f5b82811015620006d057848901518255600182019150602085019450602081019050620006a9565b86831015620006f05784890151620006ec601f891682620005e6565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200076b82620004d7565b91506200077883620004d7565b9250826200078b576200078a62000705565b5b828204905092915050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154620007c08162000421565b620007cc818662000796565b9450600182165f8114620007e95760018114620007ff5762000835565b60ff198316865281151582028601935062000835565b6200080a85620007a0565b5f5b838110156200082d578154818901526001820191506020810190506200080c565b838801955050505b50505092915050565b5f6200084b8284620007b2565b915081905092915050565b5f819050919050565b6200086a8162000856565b82525050565b6200087b81620004d7565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620008ac8262000881565b9050919050565b620008be81620008a0565b82525050565b5f60a082019050620008d95f8301886200085f565b620008e860208301876200085f565b620008f760408301866200085f565b62000906606083018562000870565b620009156080830184620008b3565b9695505050505050565b5f6200092b82620004d7565b91506200093883620004d7565b925082820190508082111562000953576200095262000732565b5b92915050565b5f6020820190506200096e5f83018462000870565b92915050565b60805160a05160c0516124d56200099f5f395f610be301525f610baf01525f610b8a01526124d55ff3fe608060405234801561000f575f80fd5b5060043610610171575f3560e01c8063816b1b10116100dc578063c024666811610095578063dd62ed3e1161006f578063dd62ed3e14610417578063efdcd97414610447578063f2fde38b14610463578063f34eb0b81461047f57610171565b8063c0246668146103d5578063d505accf146103f1578063d55e2d871461040d57610171565b8063816b1b101461030f57806388e765ff1461032d5780638da5cb5b1461034b57806395d89b4114610369578063a9059cbb14610387578063b3f00674146103b757610171565b80632b14ca561161012e5780632b14ca561461024b578063313ce567146102695780633644e5151461028757806370a08231146102a5578063715018a6146102d55780637ecebe00146102df57610171565b806306fdde0314610175578063095ea7b3146101935780630b78f9c0146101c357806318160ddd146101df57806323b872dd146101fd5780632897817e1461022d575b5f80fd5b61017d61049b565b60405161018a9190611ce4565b60405180910390f35b6101ad60048036038101906101a89190611d95565b610526565b6040516101ba9190611ded565b60405180910390f35b6101dd60048036038101906101d89190611e06565b610613565b005b6101e76106f5565b6040516101f49190611e53565b60405180910390f35b61021760048036038101906102129190611e6c565b6106fb565b6040516102249190611ded565b60405180910390f35b610235610b7c565b6040516102429190611e53565b60405180910390f35b610253610b82565b6040516102609190611e53565b60405180910390f35b610271610b88565b60405161027e9190611ed7565b60405180910390f35b61028f610bac565b60405161029c9190611f08565b60405180910390f35b6102bf60048036038101906102ba9190611f21565b610c08565b6040516102cc9190611e53565b60405180910390f35b6102dd610c1d565b005b6102f960048036038101906102f49190611f21565b610db4565b6040516103069190611e53565b60405180910390f35b610317610dc9565b6040516103249190611ded565b60405180910390f35b610335610ddc565b6040516103429190611e53565b60405180910390f35b610353610de2565b6040516103609190611f5b565b60405180910390f35b610371610e07565b60405161037e9190611ce4565b60405180910390f35b6103a1600480360381019061039c9190611d95565b610e93565b6040516103ae9190611ded565b60405180910390f35b6103bf6112b6565b6040516103cc9190611f5b565b60405180910390f35b6103ef60048036038101906103ea9190611f9e565b6112db565b005b61040b60048036038101906104069190612030565b6113b9565b005b6104156116b5565b005b610431600480360381019061042c91906120cd565b61179d565b60405161043e9190611e53565b60405180910390f35b610461600480360381019061045c9190611f21565b6117bd565b005b61047d60048036038101906104789190611f21565b6118db565b005b6104996004803603810190610494919061210b565b611aee565b005b5f80546104a790612163565b80601f01602080910402602001604051908101604052809291908181526020018280546104d390612163565b801561051e5780601f106104f55761010080835404028352916020019161051e565b820191905f5260205f20905b81548152906001019060200180831161050157829003601f168201915b505050505081565b5f8160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106019190611e53565b60405180910390a36001905092915050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610699576040517f71d78b1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602360075411806106ac57506023600654115b156106e3576040517f9e42164e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600781905550806006819055505050565b60025481565b5f8060045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146108285782816107ab91906121c0565b60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8260035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461087491906121c0565b925050819055505f600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561091a5750600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15610a7c576064600654850281610934576109336121f3565b5b04905080840393508360035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508060035f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254019250508190555060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a6f9190611e53565b60405180910390a3610ac7565b8360035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b0b578260025f82825403925050819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610b689190611e53565b60405180910390a360019150509392505050565b60075481565b60065481565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000004614610be157610bdc611bd0565b610c03565b7f00000000000000000000000000000000000000000000000000000000000000005b905090565b6003602052805f5260405f205f915090505481565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ca3576040517f71d78b1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f73ffffffffffffffffffffffffffffffffffffffff16600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3565b6005602052805f5260405f205f915090505481565b600b60149054906101000a900460ff1681565b60085481565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054610e1490612163565b80601f0160208091040260200160405190810160405280929190818152602001828054610e4090612163565b8015610e8b5780601f10610e6257610100808354040283529160200191610e8b565b820191905f5260205f20905b815481529060010190602001808311610e6e57829003601f168201915b505050505081565b5f8160035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610ee091906121c0565b92505081905550600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015610f855750600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156111b9575f6064600754840281610fa057610f9f6121f3565b5b049050600b60149054906101000a900460ff161561107357600854831115610ff4576040517f5d29f30e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003600854028360035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054011115611072576040517fc41993c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b80830392508260035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508060035f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254019250508190555060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111ab9190611e53565b60405180910390a350611204565b8160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611247578160025f82825403925050819055505b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112a49190611e53565b60405180910390a36001905092915050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611361576040517f71d78b1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b428410156113f3576040517f6a851bd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60016113fe610bac565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a60055f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f815480929190600101919050558b6040516020016114a496959493929190612220565b604051602081830303815290604052805190602001206040516020016114cb9291906122f3565b604051602081830303815290604052805190602001208585856040515f81526020016040526040516115009493929190612329565b6020604051602081039080840390855afa158015611520573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061159257508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b156115c9576040517f6cbfd82c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8560045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925876040516116a49190611e53565b60405180910390a350505050505050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461173b576040517f71d78b1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600b60149054906101000a900460ff16611781576040517fbe2fe23c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f600b60146101000a81548160ff021916908315150217905550565b6004602052815f5260405f20602052805f5260405f205f91509150505481565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611843576040517f71d78b1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611961576040517f71d78b1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555081600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a5f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b74576040517f71d78b1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61012c600254611b84919061236c565b811015611bbd576040517f4b703e7500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060088190555060025460088190555050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f604051611c009190612438565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001611c3f95949392919061244e565b60405160208183030381529060405280519060200120905090565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611c91578082015181840152602081019050611c76565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611cb682611c5a565b611cc08185611c64565b9350611cd0818560208601611c74565b611cd981611c9c565b840191505092915050565b5f6020820190508181035f830152611cfc8184611cac565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611d3182611d08565b9050919050565b611d4181611d27565b8114611d4b575f80fd5b50565b5f81359050611d5c81611d38565b92915050565b5f819050919050565b611d7481611d62565b8114611d7e575f80fd5b50565b5f81359050611d8f81611d6b565b92915050565b5f8060408385031215611dab57611daa611d04565b5b5f611db885828601611d4e565b9250506020611dc985828601611d81565b9150509250929050565b5f8115159050919050565b611de781611dd3565b82525050565b5f602082019050611e005f830184611dde565b92915050565b5f8060408385031215611e1c57611e1b611d04565b5b5f611e2985828601611d81565b9250506020611e3a85828601611d81565b9150509250929050565b611e4d81611d62565b82525050565b5f602082019050611e665f830184611e44565b92915050565b5f805f60608486031215611e8357611e82611d04565b5b5f611e9086828701611d4e565b9350506020611ea186828701611d4e565b9250506040611eb286828701611d81565b9150509250925092565b5f60ff82169050919050565b611ed181611ebc565b82525050565b5f602082019050611eea5f830184611ec8565b92915050565b5f819050919050565b611f0281611ef0565b82525050565b5f602082019050611f1b5f830184611ef9565b92915050565b5f60208284031215611f3657611f35611d04565b5b5f611f4384828501611d4e565b91505092915050565b611f5581611d27565b82525050565b5f602082019050611f6e5f830184611f4c565b92915050565b611f7d81611dd3565b8114611f87575f80fd5b50565b5f81359050611f9881611f74565b92915050565b5f8060408385031215611fb457611fb3611d04565b5b5f611fc185828601611d4e565b9250506020611fd285828601611f8a565b9150509250929050565b611fe581611ebc565b8114611fef575f80fd5b50565b5f8135905061200081611fdc565b92915050565b61200f81611ef0565b8114612019575f80fd5b50565b5f8135905061202a81612006565b92915050565b5f805f805f805f60e0888a03121561204b5761204a611d04565b5b5f6120588a828b01611d4e565b97505060206120698a828b01611d4e565b965050604061207a8a828b01611d81565b955050606061208b8a828b01611d81565b945050608061209c8a828b01611ff2565b93505060a06120ad8a828b0161201c565b92505060c06120be8a828b0161201c565b91505092959891949750929550565b5f80604083850312156120e3576120e2611d04565b5b5f6120f085828601611d4e565b925050602061210185828601611d4e565b9150509250929050565b5f602082840312156121205761211f611d04565b5b5f61212d84828501611d81565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061217a57607f821691505b60208210810361218d5761218c612136565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6121ca82611d62565b91506121d583611d62565b92508282039050818111156121ed576121ec612193565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f60c0820190506122335f830189611ef9565b6122406020830188611f4c565b61224d6040830187611f4c565b61225a6060830186611e44565b6122676080830185611e44565b61227460a0830184611e44565b979650505050505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f6122bd60028361227f565b91506122c882612289565b600282019050919050565b5f819050919050565b6122ed6122e882611ef0565b6122d3565b82525050565b5f6122fd826122b1565b915061230982856122dc565b60208201915061231982846122dc565b6020820191508190509392505050565b5f60808201905061233c5f830187611ef9565b6123496020830186611ec8565b6123566040830185611ef9565b6123636060830184611ef9565b95945050505050565b5f61237682611d62565b915061238183611d62565b925082612391576123906121f3565b5b828204905092915050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f81546123c481612163565b6123ce818661239c565b9450600182165f81146123e857600181146123fd5761242f565b60ff198316865281151582028601935061242f565b612406856123a6565b5f5b8381101561242757815481890152600182019150602081019050612408565b838801955050505b50505092915050565b5f61244382846123b8565b915081905092915050565b5f60a0820190506124615f830188611ef9565b61246e6020830187611ef9565b61247b6040830186611ef9565b6124886060830185611e44565b6124956080830184611f4c565b969550505050505056fea264697066735822122096ea8bdf7631d4d9a908354208f38cfb9755807a60085fd47a1d51e69aad267564736f6c63430008180033

Deployed Bytecode

0x608060405234801561000f575f80fd5b5060043610610171575f3560e01c8063816b1b10116100dc578063c024666811610095578063dd62ed3e1161006f578063dd62ed3e14610417578063efdcd97414610447578063f2fde38b14610463578063f34eb0b81461047f57610171565b8063c0246668146103d5578063d505accf146103f1578063d55e2d871461040d57610171565b8063816b1b101461030f57806388e765ff1461032d5780638da5cb5b1461034b57806395d89b4114610369578063a9059cbb14610387578063b3f00674146103b757610171565b80632b14ca561161012e5780632b14ca561461024b578063313ce567146102695780633644e5151461028757806370a08231146102a5578063715018a6146102d55780637ecebe00146102df57610171565b806306fdde0314610175578063095ea7b3146101935780630b78f9c0146101c357806318160ddd146101df57806323b872dd146101fd5780632897817e1461022d575b5f80fd5b61017d61049b565b60405161018a9190611ce4565b60405180910390f35b6101ad60048036038101906101a89190611d95565b610526565b6040516101ba9190611ded565b60405180910390f35b6101dd60048036038101906101d89190611e06565b610613565b005b6101e76106f5565b6040516101f49190611e53565b60405180910390f35b61021760048036038101906102129190611e6c565b6106fb565b6040516102249190611ded565b60405180910390f35b610235610b7c565b6040516102429190611e53565b60405180910390f35b610253610b82565b6040516102609190611e53565b60405180910390f35b610271610b88565b60405161027e9190611ed7565b60405180910390f35b61028f610bac565b60405161029c9190611f08565b60405180910390f35b6102bf60048036038101906102ba9190611f21565b610c08565b6040516102cc9190611e53565b60405180910390f35b6102dd610c1d565b005b6102f960048036038101906102f49190611f21565b610db4565b6040516103069190611e53565b60405180910390f35b610317610dc9565b6040516103249190611ded565b60405180910390f35b610335610ddc565b6040516103429190611e53565b60405180910390f35b610353610de2565b6040516103609190611f5b565b60405180910390f35b610371610e07565b60405161037e9190611ce4565b60405180910390f35b6103a1600480360381019061039c9190611d95565b610e93565b6040516103ae9190611ded565b60405180910390f35b6103bf6112b6565b6040516103cc9190611f5b565b60405180910390f35b6103ef60048036038101906103ea9190611f9e565b6112db565b005b61040b60048036038101906104069190612030565b6113b9565b005b6104156116b5565b005b610431600480360381019061042c91906120cd565b61179d565b60405161043e9190611e53565b60405180910390f35b610461600480360381019061045c9190611f21565b6117bd565b005b61047d60048036038101906104789190611f21565b6118db565b005b6104996004803603810190610494919061210b565b611aee565b005b5f80546104a790612163565b80601f01602080910402602001604051908101604052809291908181526020018280546104d390612163565b801561051e5780601f106104f55761010080835404028352916020019161051e565b820191905f5260205f20905b81548152906001019060200180831161050157829003601f168201915b505050505081565b5f8160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106019190611e53565b60405180910390a36001905092915050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610699576040517f71d78b1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602360075411806106ac57506023600654115b156106e3576040517f9e42164e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600781905550806006819055505050565b60025481565b5f8060045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146108285782816107ab91906121c0565b60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8260035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461087491906121c0565b925050819055505f600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561091a5750600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15610a7c576064600654850281610934576109336121f3565b5b04905080840393508360035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508060035f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254019250508190555060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a6f9190611e53565b60405180910390a3610ac7565b8360035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b0b578260025f82825403925050819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610b689190611e53565b60405180910390a360019150509392505050565b60075481565b60065481565b7f000000000000000000000000000000000000000000000000000000000000001281565b5f7f00000000000000000000000000000000000000000000000000000000000000014614610be157610bdc611bd0565b610c03565b7fc4ddac35b978197cd21ad71738af357de0dcef5f55753065cd8c917e88ab4f7f5b905090565b6003602052805f5260405f205f915090505481565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ca3576040517f71d78b1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f73ffffffffffffffffffffffffffffffffffffffff16600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3565b6005602052805f5260405f205f915090505481565b600b60149054906101000a900460ff1681565b60085481565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054610e1490612163565b80601f0160208091040260200160405190810160405280929190818152602001828054610e4090612163565b8015610e8b5780601f10610e6257610100808354040283529160200191610e8b565b820191905f5260205f20905b815481529060010190602001808311610e6e57829003601f168201915b505050505081565b5f8160035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610ee091906121c0565b92505081905550600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015610f855750600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156111b9575f6064600754840281610fa057610f9f6121f3565b5b049050600b60149054906101000a900460ff161561107357600854831115610ff4576040517f5d29f30e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003600854028360035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054011115611072576040517fc41993c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b80830392508260035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508060035f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254019250508190555060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111ab9190611e53565b60405180910390a350611204565b8160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611247578160025f82825403925050819055505b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112a49190611e53565b60405180910390a36001905092915050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611361576040517f71d78b1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b428410156113f3576040517f6a851bd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60016113fe610bac565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a60055f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f815480929190600101919050558b6040516020016114a496959493929190612220565b604051602081830303815290604052805190602001206040516020016114cb9291906122f3565b604051602081830303815290604052805190602001208585856040515f81526020016040526040516115009493929190612329565b6020604051602081039080840390855afa158015611520573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061159257508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b156115c9576040517f6cbfd82c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8560045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925876040516116a49190611e53565b60405180910390a350505050505050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461173b576040517f71d78b1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600b60149054906101000a900460ff16611781576040517fbe2fe23c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f600b60146101000a81548160ff021916908315150217905550565b6004602052815f5260405f20602052805f5260405f205f91509150505481565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611843576040517f71d78b1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611961576040517f71d78b1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555081600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a5f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b74576040517f71d78b1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61012c600254611b84919061236c565b811015611bbd576040517f4b703e7500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060088190555060025460088190555050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f604051611c009190612438565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001611c3f95949392919061244e565b60405160208183030381529060405280519060200120905090565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611c91578082015181840152602081019050611c76565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611cb682611c5a565b611cc08185611c64565b9350611cd0818560208601611c74565b611cd981611c9c565b840191505092915050565b5f6020820190508181035f830152611cfc8184611cac565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611d3182611d08565b9050919050565b611d4181611d27565b8114611d4b575f80fd5b50565b5f81359050611d5c81611d38565b92915050565b5f819050919050565b611d7481611d62565b8114611d7e575f80fd5b50565b5f81359050611d8f81611d6b565b92915050565b5f8060408385031215611dab57611daa611d04565b5b5f611db885828601611d4e565b9250506020611dc985828601611d81565b9150509250929050565b5f8115159050919050565b611de781611dd3565b82525050565b5f602082019050611e005f830184611dde565b92915050565b5f8060408385031215611e1c57611e1b611d04565b5b5f611e2985828601611d81565b9250506020611e3a85828601611d81565b9150509250929050565b611e4d81611d62565b82525050565b5f602082019050611e665f830184611e44565b92915050565b5f805f60608486031215611e8357611e82611d04565b5b5f611e9086828701611d4e565b9350506020611ea186828701611d4e565b9250506040611eb286828701611d81565b9150509250925092565b5f60ff82169050919050565b611ed181611ebc565b82525050565b5f602082019050611eea5f830184611ec8565b92915050565b5f819050919050565b611f0281611ef0565b82525050565b5f602082019050611f1b5f830184611ef9565b92915050565b5f60208284031215611f3657611f35611d04565b5b5f611f4384828501611d4e565b91505092915050565b611f5581611d27565b82525050565b5f602082019050611f6e5f830184611f4c565b92915050565b611f7d81611dd3565b8114611f87575f80fd5b50565b5f81359050611f9881611f74565b92915050565b5f8060408385031215611fb457611fb3611d04565b5b5f611fc185828601611d4e565b9250506020611fd285828601611f8a565b9150509250929050565b611fe581611ebc565b8114611fef575f80fd5b50565b5f8135905061200081611fdc565b92915050565b61200f81611ef0565b8114612019575f80fd5b50565b5f8135905061202a81612006565b92915050565b5f805f805f805f60e0888a03121561204b5761204a611d04565b5b5f6120588a828b01611d4e565b97505060206120698a828b01611d4e565b965050604061207a8a828b01611d81565b955050606061208b8a828b01611d81565b945050608061209c8a828b01611ff2565b93505060a06120ad8a828b0161201c565b92505060c06120be8a828b0161201c565b91505092959891949750929550565b5f80604083850312156120e3576120e2611d04565b5b5f6120f085828601611d4e565b925050602061210185828601611d4e565b9150509250929050565b5f602082840312156121205761211f611d04565b5b5f61212d84828501611d81565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061217a57607f821691505b60208210810361218d5761218c612136565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6121ca82611d62565b91506121d583611d62565b92508282039050818111156121ed576121ec612193565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f60c0820190506122335f830189611ef9565b6122406020830188611f4c565b61224d6040830187611f4c565b61225a6060830186611e44565b6122676080830185611e44565b61227460a0830184611e44565b979650505050505050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f6122bd60028361227f565b91506122c882612289565b600282019050919050565b5f819050919050565b6122ed6122e882611ef0565b6122d3565b82525050565b5f6122fd826122b1565b915061230982856122dc565b60208201915061231982846122dc565b6020820191508190509392505050565b5f60808201905061233c5f830187611ef9565b6123496020830186611ec8565b6123566040830185611ef9565b6123636060830184611ef9565b95945050505050565b5f61237682611d62565b915061238183611d62565b925082612391576123906121f3565b5b828204905092915050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f81546123c481612163565b6123ce818661239c565b9450600182165f81146123e857600181146123fd5761242f565b60ff198316865281151582028601935061242f565b612406856123a6565b5f5b8381101561242757815481890152600182019150602081019050612408565b838801955050505b50505092915050565b5f61244382846123b8565b915081905092915050565b5f60a0820190506124615f830188611ef9565b61246e6020830187611ef9565b61247b6040830186611ef9565b6124886060830185611e44565b6124956080830184611f4c565b969550505050505056fea264697066735822122096ea8bdf7631d4d9a908354208f38cfb9755807a60085fd47a1d51e69aad267564736f6c63430008180033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

At ceτi, our mission is to accelerate the advancement of decentralized artificial intelligence.

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ 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.