ETH Price: $1,969.29 (-2.15%)
 

More Info

Private Name Tags

TokenTracker

Tao Ceτi (CETI) ($0.0033)

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Transfer244363232026-02-11 21:49:3518 days ago1770846575IN
Tao Ceti: CETI Token
0 ETH0.000002670.05875791
Transfer244046902026-02-07 11:36:5922 days ago1770464219IN
Tao Ceti: CETI Token
0 ETH0.000012780.28015407
Approve243961242026-02-06 6:54:4723 days ago1770360887IN
Tao Ceti: CETI Token
0 ETH0.000017240.69635363
Approve243958682026-02-06 6:03:1123 days ago1770357791IN
Tao Ceti: CETI Token
0 ETH0.000052391.11364478
Approve243944892026-02-06 1:25:2324 days ago1770341123IN
Tao Ceti: CETI Token
0 ETH0.000176473.78104362
Approve243837722026-02-04 13:24:5925 days ago1770211499IN
Tao Ceti: CETI Token
0 ETH0.000012660.2693191
Approve243702812026-02-02 16:10:5927 days ago1770048659IN
Tao Ceti: CETI Token
0 ETH0.000082721.76055631
Approve243678452026-02-02 8:01:1127 days ago1770019271IN
Tao Ceti: CETI Token
0 ETH0.000012580.26944269
Transfer243675632026-02-02 7:04:3527 days ago1770015875IN
Tao Ceti: CETI Token
0 ETH0.0000310.49436669
Approve243476032026-01-30 12:12:1130 days ago1769775131IN
Tao Ceti: CETI Token
0 ETH0.000008090.17201956
Approve243432382026-01-29 21:35:4731 days ago1769722547IN
Tao Ceti: CETI Token
0 ETH0.00000980.20849059
Approve243432182026-01-29 21:31:4731 days ago1769722307IN
Tao Ceti: CETI Token
0 ETH0.000009790.20813182
Transfer243429472026-01-29 20:37:1131 days ago1769719031IN
Tao Ceti: CETI Token
0 ETH0.000133492.12845771
Approve243341952026-01-28 15:19:5932 days ago1769613599IN
Tao Ceti: CETI Token
0 ETH0.000025170.5351076
Transfer243341032026-01-28 15:01:3532 days ago1769612495IN
Tao Ceti: CETI Token
0 ETH0.000019920.31761925
Approve243338832026-01-28 14:17:3532 days ago1769609855IN
Tao Ceti: CETI Token
0 ETH0.000009170.19507691
Approve243328952026-01-28 10:59:1132 days ago1769597951IN
Tao Ceti: CETI Token
0 ETH0.000006160.22952674
Transfer243295762026-01-27 23:52:3533 days ago1769557955IN
Tao Ceti: CETI Token
0 ETH0.000002660.05834533
Approve243286462026-01-27 20:45:5933 days ago1769546759IN
Tao Ceti: CETI Token
0 ETH0.000007260.15562147
Approve243217392026-01-26 21:38:4734 days ago1769463527IN
Tao Ceti: CETI Token
0 ETH0.000007960.17059272
Approve243209522026-01-26 19:00:3534 days ago1769454035IN
Tao Ceti: CETI Token
0 ETH0.000007050.15005607
Approve243183122026-01-26 10:09:1134 days ago1769422151IN
Tao Ceti: CETI Token
0 ETH0.000002970.06361312
Transfer242933172026-01-22 22:29:4738 days ago1769120987IN
Tao Ceti: CETI Token
0 ETH0.00000210.04620722
Transfer242902132026-01-22 12:06:2338 days ago1769083583IN
Tao Ceti: CETI Token
0 ETH0.00007761.23748531
Transfer242901922026-01-22 12:02:1138 days ago1769083331IN
Tao Ceti: CETI Token
0 ETH0.000075551.2048949
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

API
[{"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 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.

0x1bFCe574dEFf725A3f483C334b790E25c8FA9779
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.